17.12.2007, 13:37 | #1 |
Участник
|
Как работать с report если больше одного datasource?
Есть отчёт.
Два датасорса (приджойнены один к другому). В fetch корректирую query отчёта получаю первую табличную переменную. Пишу this.send(table1); И дальше вызываю exet-ы. Выводяться данные только для первого. Для второго всё пусто. Можно ли как нибудь второй датасорс подконектить. Или дисплэйные поля прийдётся делать. |
|
17.12.2007, 14:31 | #2 |
Member
|
Вы this.send(table2) в .fetch() пишете?
__________________
С уважением, glibs® |
|
17.12.2007, 14:35 | #3 |
NavAx
|
Если в дизайне отчета есть группа со второй таблицей, то надо использовать send для второй таблицы. Иначе достаточно инициализировать курсор через queryrun.get().
|
|
17.12.2007, 14:38 | #4 |
Участник
|
|
|
17.12.2007, 14:42 | #5 |
Member
|
А у вас есть в дизайне секция-body, у которой в свойстве Table указана таблица table2?
__________________
С уважением, glibs® |
|
17.12.2007, 14:49 | #6 |
Участник
|
Цитата:
И что нам даст queryrun.get(); Возму я эти две таблицы а чё с ними дальше делать? send работает только для первой. Помойму раньше когда уже возился и пришёл к выводу надо дисплэйные методы делать. Просто подумал может есть способ. Пол года уже ни одного стандартного report-а не делал. Всё время в exel. А тут вот пришлось. |
|
17.12.2007, 15:04 | #7 |
Участник
|
Цитата:
Но через auto тоже не выходит либо send посылаем Table1 и указываем в нём table1, либо table2 и указываем в нём table2. Т.е. либо первая выводится либо вторая. |
|
17.12.2007, 15:41 | #8 |
Участник
|
Возможно вопрос и тупой, но я тут не увидел опровержения - поэтому спрошу:
Вы при вызове send увазываете второй параметр - _level в значение 2? |
|
|
За это сообщение автора поблагодарили: miklenew (2). |
17.12.2007, 15:57 | #9 |
Участник
|
Вопрос как раз в тему я не знал о существование оного. Надо будет попробовать. Щас решили по старинке делать в exel, чтоб ещё с сеткой не париться. Спасибо.
|
|
17.12.2007, 18:42 | #10 |
Member
|
Вы хотите поля из разных таблиц в одной секции вывести, чтоли?
(ну или в одной строке).
__________________
С уважением, glibs® |
|
17.12.2007, 18:58 | #11 |
Member
|
В общем, если у вас есть интерес постичь мастерство создания стандартных Аксаптовских отчетов, то см. вложения. Предупреждаю. 4.0. Слеплены коряво (только то, что необходимо было для демонстрации функционала — ни одного лишнего свойства ).
__________________
С уважением, glibs® |
|
|
За это сообщение автора поблагодарили: miklenew (2). |
17.12.2007, 22:43 | #12 |
Участник
|
Цитата:
А для чего используется вот это проверка X++: if (queryRun_.changed(tablenum(CustGroup))) Те редкие случаи, когда писал report-ы (Excel удобнее для отчётов) я всегда использовал GeneretedDesign. |
|
18.12.2007, 00:18 | #13 |
Участник
|
Цитата:
Так вот, эта строка вернет true, когда в переборе закончится одна группа клиентов и начнется следующая. Что довольно удобно и позволяет избежать доп. кодирования, исполняющего эту же по сути проверку, и использования вложенных циклов для этой цели. Цитата:
Первый позволяет выполнять пользовательскую настройку выводимой информации перед печатью. требует меньше времени для настройки и модификации отчета. Идеально подходит для простых отчетов и внутренних, не требующих конкретого дизайна отчетов. |
|
18.12.2007, 00:38 | #14 |
Member
|
Цитата:
Сообщение от 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? Чем руководствоваться при выборе то или иного типа дизайна? ...
__________________
С уважением, glibs® |
|
18.12.2007, 11:01 | #15 |
Участник
|
Спасибо kashperuk и glibs за толковое разъяснение. К сожаленью не могу добавть ещё одобрение по второму вопросу axforum пишет через три дня можно будет сделать.
Цитата:
Сообщение от kashperuk
Второй используется для статических отчетов, в которых очень важно точное позиционирование элементов - к примеру, если требуется отчет, формат которого задается сторонним предприятием или законодательством.
Первый позволяет выполнять пользовательскую настройку выводимой информации перед печатью. требует меньше времени для настройки и модификации отчета. Идеально подходит для простых отчетов и внутренних, не требующих конкретого дизайна отчетов. |
|
18.12.2007, 11:41 | #16 |
Участник
|
Если действительно интересно - http://book.axforum.info/morphx.pdf
Почитайте главу 6, которую mikeR переводил - это, кстати, была единственная бесплатная глава в книге, но видимо даже это не привлекло читателей |
|
18.12.2007, 12:01 | #17 |
Member
|
Цитата:
Сообщение от miklenew
...
похоже что всё что можно сделать в AutoDesignSpec можно и в GeneretedDesign ...
__________________
С уважением, glibs® |
|
18.12.2007, 12:13 | #18 |
Member
|
Цитата:
Сообщение от kashperuk
...
Почитайте главу 6 ... Но там тоже написано в рекомендательном стиле (как ВР). Типа то-то нужно пользовать для того, а это для другого. О каких-то различиях там четко не сказано.
__________________
С уважением, glibs® |
|
18.12.2007, 13:42 | #19 |
Участник
|
Отличием к примеру является использование шаблонов.
Если что-то поменяется в шаблоне (ReportTemplate), то это изменение автоматически отразится во всех отчетах с AutoDesignSpec. А отчеты с Generated Design останутся как и были. Потому что при генерации дизайна все секции шаблона реально создаются в дизайне отчета. И секции вроде дополнительные можно в Generated Design добавлять. Но основное - это конечно же пользовательская настройка - про нее написано в 7ой (конечно же) главу, в разделе про Авто Дизайн. |
|
|
За это сообщение автора поблагодарили: glibs (1). |
18.12.2007, 13:56 | #20 |
Member
|
Цитата:
Сообщение от kashperuk
...
Но основное - это конечно же пользовательская настройка ... . Спасибо.
__________________
С уважением, glibs® |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|