AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.12.2001, 12:25   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Как Query отобразить на Grid
Подскажите пожалуйста,

Я в АОТ создал Query, а как с ним теперь работать в форме, например отобразить в Grid.
В раздел DataSource он не переносится....
Старый 18.12.2001, 13:53   #2  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Для этого в коде создайте переменную типа 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  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
У меня вопрос: можно ли добавлять таким образом query, если я сам создаю DataSource (у которого не указываю таблицу)?

Если же указать таблицу (в свойствах) DataSource, то ошибок не возникает, иначе ошибка.

Вцелом хотел я вывести результаты выборки (Query) на Grid и все. (Зачем для этого на форме создавать DataSource c конкретной таблицей, если мне важны лишь результаты query! )

Или я чего не понимаю?

PHP код:
public void init()
{
    
super();
    
    
= new Query("CashDepartment");
    
CashDepartment_ds.query(q); 

Старый 25.11.2004, 10:40   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Maxim Gorbunov
Query q = new Query("Prj1Query1");
По-моему, лучше так
PHP код:
Query q = new Query(querystr(Prj1Query1)); 
Работает одинаково.
Но в варианте Максима перекрестных ссылок гарантировано не будет.
Старый 25.11.2004, 11:45   #5  
DreamCreator is offline
DreamCreator
Moderator
Аватар для DreamCreator
Axapta Retail User
 
553 / 45 (3) +++
Регистрация: 04.11.2004
Адрес: Казань
В ответ на

PHP код:
public void init()
{
    
super();

    
= new Query(querystr("DataForResearchQuery"));
    
InfoAboutShop_ds.query(q);

вылезает ошибка "Неправильный тип аргумента функции". И ругается он на последнюю, строчку!

В чем может быть дело?
Старый 25.11.2004, 13:06   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
если вы используете querystr, то кавычек не надо.
посмотрите внимательнее.
Старый 25.11.2004, 14:51   #7  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Перекрестных ссылок не будет ни в одном случае. Единственный плюс от использования 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  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,232 / 974 (37) +++++++
Регистрация: 03.04.2002
Цитата:
Изначально опубликовано Maxim Gorbunov
на этапе компиляции в Вашем коде появится ошибка.
Это огроменный ПЛЮС! Хотя по настоящему ценным он становится в конструкциях tableNum и fieldNum. Т.к. многие глупые ошибки отсекаются еще на стадии компиляции.
__________________
Isn't it nice when things just work?
Старый 25.11.2004, 21:37   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Maxim Gorbunov
Перекрестных ссылок не будет ни в одном случае.
Вот ведь, не буду людей обнадеживать...
Спасибо.
Старый 26.11.2004, 13:27   #10  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Изначально опубликовано 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  
braathe is offline
braathe
Участник
 
90 / 13 (1) ++
Регистрация: 16.02.2005
Цитата:
Изначально опубликовано 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  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
в init датасорса:
PHP код:
void init()
{
    
Query q = new Query;
   ...................
    ;
    
= ..........
    
super();
    
inventTable_ds.query(q);
    (
или  this.query(q);)

С Уважением,
Георгий.
Старый 01.03.2005, 12:41   #13  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,311 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
Таблица нужна, т.к. если внимательно посмотреть на класс QueryRun - то он возвращает не просто набор полей - а набор таблиц (getNo()), в которых уже можно обращаться к полям.
Если не нужна конкретная таблица - можно использовать таблицу Common - это системная таблица, прототип всех таблиц, и при добавлении ее в datasource - ее надо выбрать из списка таблиц в datasource.
Другое дело - что в этом случае - не будет доступен в явном виде набор полей.
И в этом случае в грид данные так просто не выведутся.

Однако в принципе такая задача решается - но достаточно трудоемким способом (аналогично обозревателю таблиц динамически, из кода, добавлять столбцы грида).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
SUM по Amount в Query. С динамическими фильтрами по Grid Poleax DAX: Программирование 8 25.09.2008 16:04
query grid ald DAX: Программирование 16 07.05.2004 15:35
как заставить Grid отобразить "нормальный" real ? Omeo DAX: Программирование 1 30.03.2004 16:23
query->DataSource->grid ald DAX: Программирование 2 06.02.2004 09:24
Query to Grid ? Mack DAX: Программирование 4 10.11.2002 14:09

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 08:49.