16.06.2011, 17:57 | #1 |
Участник
|
Отчет по временной таблице
Есть отчет, нужно, чтобы в диалоге накладывались ограничения на одну таблицу(допустим, CustTable), а в отчете в качестве единственного datasource используется некая TmpTable ( она же и выводится в body).
Создаю класс - наследник RunBaseReport, перекрываю query, чтобы в диалоге появлялась не TmpTable из DS отчета, а CustTable. Потом обрабатываю данные и заполняю временную таблицу. Теперь, если я пытаюсь вызвать queryRun().setRecord(myClass.parmtmpTable()) в отчете , то получаю ошибку wrong argument type, тк queryRun в отчете содержит CustTable не смотря на то, что в отчете в DS лежит TmpTable. Можно ли подобную задачу решить с помошью RunBaseReport - наследника, или лучше создать runBase класс и вызывать отчет из него с помощью new new MenuFunction(menuitemoutputstr(myReport, MenuItemType::Output).run(args); |
|
16.06.2011, 20:18 | #2 |
Участник
|
Если я не ошибаюсь, то логика примерно такая
Тот запрос, который служит источником объектов на форме диалога - это то, что возвращает метод \Classes\RunBaseReport\queryRun() А запрос, который будет записан в сам отчет имеет строго фиксированное имя переменной queryRun. Эта переменная объявляется в \Classes\RunBaseReport\ClassDeclaration Это значит, что если перекрыть метод QueryRun и вернуть из него переменную с именем отличным от фиксированного имени queryRun, то на форме диалога будут отображены настройки именно этого QueryRun, но в отчет они вообще никогда не попадут. Примерно вот это сделать X++: public QueryRun queryRun() { ; if (! qrMy) { this.createMyQueryRun(); } return qrMy; } Ну, естесственно, надо будет еще дополнительно модифицировать pack/unpack, чтобы сохранять/восстанавливать еще и настройки этого query. По крайней мере в Ax2009 у меня получилось таким образом вывести диалог по VendTable, а отчет по CustTable. |
|
|
За это сообщение автора поблагодарили: Hyper (1), IKA (1), PavelX (2), S.Kuskov (2). |
Теги |
query, queryrun, отчет |
|
Похожие темы | ||||
Тема | Ответов | |||
Отчет, основанный на временной таблице | 10 | |||
Отчет по временной таблице | 3 | |||
Отчет по временной таблице | 3 | |||
Отчет по временной таблице | 1 | |||
отчёт по пустой таблице | 2 |
|