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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 17.12.2007, 13:37   #1  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Как работать с report если больше одного datasource?
Есть отчёт.
Два датасорса (приджойнены один к другому).
В fetch корректирую query отчёта получаю первую табличную переменную. Пишу this.send(table1); И дальше вызываю exet-ы.
Выводяться данные только для первого. Для второго всё пусто.
Можно ли как нибудь второй датасорс подконектить.
Или дисплэйные поля прийдётся делать.
Старый 17.12.2007, 14:31   #2  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Вы this.send(table2) в .fetch() пишете?
__________________
С уважением,
glibs®
Старый 17.12.2007, 14:35   #3  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Если в дизайне отчета есть группа со второй таблицей, то надо использовать send для второй таблицы. Иначе достаточно инициализировать курсор через queryrun.get().
Старый 17.12.2007, 14:38   #4  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от glibs Посмотреть сообщение
Вы this.send(table2) в .fetch() пишете?
Да
Старый 17.12.2007, 14:42   #5  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
А у вас есть в дизайне секция-body, у которой в свойстве Table указана таблица table2?
__________________
С уважением,
glibs®
Старый 17.12.2007, 14:49   #6  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от raz Посмотреть сообщение
Если в дизайне отчета есть группа со второй таблицей, то надо использовать send для второй таблицы. Иначе достаточно инициализировать курсор через queryrun.get().
А код можно как send для второй таблицы.
И что нам даст queryrun.get();
Возму я эти две таблицы а чё с ними дальше делать?
send работает только для первой.
Помойму раньше когда уже возился и пришёл к выводу надо дисплэйные методы делать. Просто подумал может есть способ. Пол года уже ни одного стандартного report-а не делал. Всё время в exel. А тут вот пришлось.
Старый 17.12.2007, 15:04   #7  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от glibs Посмотреть сообщение
А у вас есть в дизайне секция-body, у которой в свойстве Table указана таблица table2?
Не было я через generated.
Но через auto тоже не выходит либо send посылаем Table1 и указываем в нём table1, либо table2 и указываем в нём table2. Т.е. либо первая выводится либо вторая.
Старый 17.12.2007, 15:41   #8  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Возможно вопрос и тупой, но я тут не увидел опровержения - поэтому спрошу:

Вы при вызове send увазываете второй параметр - _level в значение 2?
За это сообщение автора поблагодарили: miklenew (2).
Старый 17.12.2007, 15:57   #9  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Возможно вопрос и тупой, но я тут не увидел опровержения - поэтому спрошу:

Вы при вызове send увазываете второй параметр - _level в значение 2?
Вопрос как раз в тему я не знал о существование оного. Надо будет попробовать. Щас решили по старинке делать в exel, чтоб ещё с сеткой не париться. Спасибо.
Старый 17.12.2007, 18:42   #10  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Вы хотите поля из разных таблиц в одной секции вывести, чтоли?

(ну или в одной строке).
__________________
С уважением,
glibs®
Старый 17.12.2007, 18:58   #11  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
В общем, если у вас есть интерес постичь мастерство создания стандартных Аксаптовских отчетов, то см. вложения. Предупреждаю. 4.0. Слеплены коряво (только то, что необходимо было для демонстрации функционала — ни одного лишнего свойства ).
Вложения
Тип файла: zip AxReports.zip (2.9 Кб, 113 просмотров)
__________________
С уважением,
glibs®
За это сообщение автора поблагодарили: miklenew (2).
Старый 17.12.2007, 22:43   #12  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от glibs Посмотреть сообщение
В общем, если у вас есть интерес постичь мастерство создания стандартных Аксаптовских отчетов, то см. вложения. Предупреждаю. 4.0. Слеплены коряво (только то, что необходимо было для демонстрации функционала — ни одного лишнего свойства ).
В принципе сработло то, что предложил kashperuk, но ваш проект тоже было интересно посмотреть.
А для чего используется вот это проверка
X++:
if (queryRun_.changed(tablenum(CustGroup)))
И раз уж тему поднял, а в чём принципиальная разница между AutoDesignSpec и GeneretedDesign? Чем руководствоваться при выборе то или иного типа дизайна?
Те редкие случаи, когда писал report-ы (Excel удобнее для отчётов) я всегда использовал GeneretedDesign.
Старый 18.12.2007, 00:18   #13  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Цитата:
Сообщение от miklenew Посмотреть сообщение
А для чего используется вот это проверка
X++:
if (queryRun_.changed(tablenum(CustGroup)))
Если в запросе соединены 2 таблицы, к примеру CustGroup и CustTable, то для нескольких записей таблицы CustTable будет одна и та же запись CustGroup - в смысле, что несколько клиентов принадлежат одной и той же группе клиентов.

Так вот, эта строка вернет true, когда в переборе закончится одна группа клиентов и начнется следующая. Что довольно удобно и позволяет избежать доп. кодирования, исполняющего эту же по сути проверку, и использования вложенных циклов для этой цели.

Цитата:
Сообщение от miklenew Посмотреть сообщение
И раз уж тему поднял, а в чём принципиальная разница между AutoDesignSpec и GeneretedDesign? Чем руководствоваться при выборе то или иного типа дизайна?
Второй используется для статических отчетов, в которых очень важно точное позиционирование элементов - к примеру, если требуется отчет, формат которого задается сторонним предприятием или законодательством.
Первый позволяет выполнять пользовательскую настройку выводимой информации перед печатью. требует меньше времени для настройки и модификации отчета. Идеально подходит для простых отчетов и внутренних, не требующих конкретого дизайна отчетов.
Старый 18.12.2007, 00:38   #14  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от miklenew
...
А для чего используется вот это проверка
...
Как бы вам так объяснить...

Смотрите. Допустим есть две таблицы. Таблица_1 и Таблица_2. Ну и Таблица_2 связана с Таблица_1.

Предположим, что Таблица_1 имеет одно поле.

Поле_1-1
Значение_1
Значение_2

В Таблица_2 два поля
Поле_2-1.........Поле_2-2
Значение_1.....Связанное_значение_1
Значение_1.....Связанное_значение_2
Значение_2.....Связанное_значение_3
Значение_2.....Связанное_значение_4

Если таблицы связать по inner join следующим образом Таблица_1.Поле_1-1 = Таблица_2.Поле_2-1, то каждый queryRun.next() будет возвращать следующее (предположим, что значение Поле_2-1 мы в запрос не включаем):

Поле_1-1.........Поле_2-2
Значение_1.....Связанное_значение_1
Значение_1.....Связанное_значение_2
Значение_2.....Связанное_значение_3
Значение_2.....Связанное_значение_4

Так вот queryRun.changed() позволяет определить изменилась ли запись после queryRun.next() для определенной таблицы.

Например, для первой и третьей строки queryRun.changed(Таблица_1) вернет true, а для второй и четвертой false. А queryRun.changed(Таблица_2) для всех строк вернет true.

Если бы в отчете не делалась эта проверка, то группа бы печаталась перед КАЖДОЙ строчкой с кодом клиента, а не один раз для группы клиентов. Можете попробовать на первом и втором отчете. Сразу заметите разницу.
Цитата:
Сообщение от miklenew
...
И раз уж тему поднял, а в чём принципиальная разница между AutoDesignSpec и GeneretedDesign? Чем руководствоваться при выборе то или иного типа дизайна?
...
Не знаю. В документации с ходу не нашел. Я почему-то нашел для себя удобным AutoDesign в свое время. Хотя вот попробовал Generated Design, и, вроде, тоже ничего. Работает.
__________________
С уважением,
glibs®
Старый 18.12.2007, 11:01   #15  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Спасибо kashperuk и glibs за толковое разъяснение. К сожаленью не могу добавть ещё одобрение по второму вопросу axforum пишет через три дня можно будет сделать.
Цитата:
Сообщение от kashperuk Посмотреть сообщение
Второй используется для статических отчетов, в которых очень важно точное позиционирование элементов - к примеру, если требуется отчет, формат которого задается сторонним предприятием или законодательством.
Первый позволяет выполнять пользовательскую настройку выводимой информации перед печатью. требует меньше времени для настройки и модификации отчета. Идеально подходит для простых отчетов и внутренних, не требующих конкретого дизайна отчетов.
Вот здесь вот не понял. Сильно отчёты не юзал, но похоже что всё что можно сделать в AutoDesignSpec можно и в GeneretedDesign. На счёт настройки пользователя, что он может настраивать, а что не может тоже не понял. Я поробовал на тех report-ах которые прислал glibs ни там ни там менять я ничего не могу.
Старый 18.12.2007, 11:41   #16  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Если действительно интересно - http://book.axforum.info/morphx.pdf

Почитайте главу 6, которую mikeR переводил - это, кстати, была единственная бесплатная глава в книге, но видимо даже это не привлекло читателей
Старый 18.12.2007, 12:01   #17  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от miklenew
...
похоже что всё что можно сделать в AutoDesignSpec можно и в GeneretedDesign
...
Я пока тоже никакой принципиальной разницы не заметил. В Generated, вроде, секции одну в другую можно вкладывать. Но я пока таким не пользовался.
__________________
С уважением,
glibs®
Старый 18.12.2007, 12:13   #18  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от kashperuk
...
Почитайте главу 6
...
Вроде про отчеты 7-я глава...

Но там тоже написано в рекомендательном стиле (как ВР). Типа то-то нужно пользовать для того, а это для другого. О каких-то различиях там четко не сказано.
__________________
С уважением,
glibs®
Старый 18.12.2007, 13:42   #19  
kashperuk is offline
kashperuk
Участник
Аватар для kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,361 / 2084 (78) +++++++++
Регистрация: 30.05.2004
Адрес: Atlanta, GA, USA
Отличием к примеру является использование шаблонов.
Если что-то поменяется в шаблоне (ReportTemplate), то это изменение автоматически отразится во всех отчетах с AutoDesignSpec.
А отчеты с Generated Design останутся как и были. Потому что при генерации дизайна все секции шаблона реально создаются в дизайне отчета.

И секции вроде дополнительные можно в Generated Design добавлять.

Но основное - это конечно же пользовательская настройка - про нее написано в 7ой (конечно же) главу, в разделе про Авто Дизайн.
За это сообщение автора поблагодарили: glibs (1).
Старый 18.12.2007, 13:56   #20  
glibs is offline
glibs
Member
Сотрудники компании It Box
Most Valuable Professional
Лучший по профессии 2011
Лучший по профессии 2009
 
4,942 / 911 (40) +++++++
Регистрация: 10.06.2002
Адрес: I am from Kyiv, Ukraine. Now I am in Moscow. For private contacts: glibs@hotmail.com
Цитата:
Сообщение от kashperuk
...
Но основное - это конечно же пользовательская настройка
...
О! Увидел.

.

Спасибо.
__________________
С уважением,
glibs®
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Обновление таблицы в DataSource при ее изменении Андре DAX: База знаний и проекты 7 22.04.2008 13:16
ProductiveGap: Quick Quotes from Forrester Report CRM study 2007 Blog bot DAX Blogs 0 19.03.2007 08:05
casperkamal: HTML based Report in Dynamics Ax Blog bot DAX Blogs 0 20.02.2007 09:40
Axapta Lessons: Auto Report as finished Blog bot DAX Blogs 0 28.10.2006 18:22
Кто знает можно как нибудь открыть доступ к полю на форме если DataSource закрыт для AlexT1 DAX: Программирование 9 03.11.2005 00:18

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

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

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