18.12.2001, 12:25 | #1 |
Moderator
|
Как Query отобразить на Grid
Подскажите пожалуйста,
Я в АОТ создал Query, а как с ним теперь работать в форме, например отобразить в Grid. В раздел DataSource он не переносится.... |
|
18.12.2001, 13:53 | #2 |
Administrator
|
Для этого в коде создайте переменную типа Query. Когда Вы будете ее инициализировать с помощью new, в качестве параметра передайте имя созданного Вами Query (так, как оно написано в AOT) как строку. Например,
<pre> Query q = new Query("Prj1Query1");</pre>Затем, с помощью метода query у FormDataSource присвойте эту переменную полю query для DataSource, то есть: <pre> InventTable_ds.query(q);</pre>Теперь как только Вы выполните метод executeQuery у FormDataSource (непосредственно из кода, или, например, нажав на кнопку сортировки в Grid), Вы получите необходимую выборку.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
25.11.2004, 10:34 | #3 |
Moderator
|
У меня вопрос: можно ли добавлять таким образом query, если я сам создаю DataSource (у которого не указываю таблицу)?
Если же указать таблицу (в свойствах) DataSource, то ошибок не возникает, иначе ошибка. Вцелом хотел я вывести результаты выборки (Query) на Grid и все. (Зачем для этого на форме создавать DataSource c конкретной таблицей, если мне важны лишь результаты query! ) Или я чего не понимаю? PHP код:
|
|
25.11.2004, 10:40 | #4 |
Участник
|
Цитата:
Изначально опубликовано Maxim Gorbunov
Query q = new Query("Prj1Query1"); PHP код:
Но в варианте Максима перекрестных ссылок гарантировано не будет. |
|
25.11.2004, 11:45 | #5 |
Moderator
|
В ответ на
PHP код:
В чем может быть дело? |
|
25.11.2004, 13:06 | #6 |
Участник
|
если вы используете querystr, то кавычек не надо.
посмотрите внимательнее. |
|
25.11.2004, 14:51 | #7 |
Administrator
|
Перекрестных ссылок не будет ни в одном случае. Единственный плюс от использования queryStr в том, что если вдруг кто-то изменит название Query, то на этапе компиляции в Вашем коде появится ошибка. Ну и, конечно, queryStr - это Best Practice.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
25.11.2004, 15:18 | #8 |
NavAx
|
Цитата:
Изначально опубликовано Maxim Gorbunov
на этапе компиляции в Вашем коде появится ошибка.
__________________
Isn't it nice when things just work? |
|
25.11.2004, 21:37 | #9 |
Участник
|
Цитата:
Изначально опубликовано Maxim Gorbunov
Перекрестных ссылок не будет ни в одном случае. Спасибо. |
|
26.11.2004, 13:27 | #10 |
Administrator
|
Цитата:
Изначально опубликовано macklakov
Это огроменный ПЛЮС!
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
28.02.2005, 23:56 | #11 |
Участник
|
Цитата:
Изначально опубликовано Maxim Gorbunov
Для этого в коде создайте переменную типа Query. Когда Вы будете ее инициализировать с помощью new, в качестве параметра передайте имя созданного Вами Query (так, как оно написано в AOT) как строку. Например, <pre> Query q = new Query("Prj1Query1");</pre>Затем, с помощью метода query у FormDataSource присвойте эту переменную полю query для DataSource, то есть: <pre> InventTable_ds.query(q);</pre>Теперь как только Вы выполните метод executeQuery у FormDataSource (непосредственно из кода, или, например, нажав на кнопку сортировки в Grid), Вы получите необходимую выборку. A kuda vstavit' InventTable_ds.query(q); ? |
|
01.03.2005, 10:06 | #12 |
Модератор
|
в init датасорса:
PHP код:
Георгий. |
|
01.03.2005, 12:41 | #13 |
Administrator
|
Таблица нужна, т.к. если внимательно посмотреть на класс QueryRun - то он возвращает не просто набор полей - а набор таблиц (getNo()), в которых уже можно обращаться к полям.
Если не нужна конкретная таблица - можно использовать таблицу Common - это системная таблица, прототип всех таблиц, и при добавлении ее в datasource - ее надо выбрать из списка таблиц в datasource. Другое дело - что в этом случае - не будет доступен в явном виде набор полей. И в этом случае в грид данные так просто не выведутся. Однако в принципе такая задача решается - но достаточно трудоемким способом (аналогично обозревателю таблиц динамически, из кода, добавлять столбцы грида). |
|
|
Похожие темы | ||||
Тема | Ответов | |||
SUM по Amount в Query. С динамическими фильтрами по Grid | 8 | |||
query grid | 16 | |||
как заставить Grid отобразить "нормальный" real ? | 1 | |||
query->DataSource->grid | 2 | |||
Query to Grid ? | 4 |
|