![]() |
#1 |
Участник
|
Как 'привязать' к отчёту темповскую таблицу
Здравствуйте.
Есть отчёт, данные для отчёта подготавливаю в темповской таблице (Temporary = Yes). Как 'привязать' к отчёту темповскую таблицу? |
|
![]() |
#2 |
Участник
|
Версия аксапты? Отчет какой, стандартный аксаптовский? SSRS? Excel?
В вакууме - если у вас там есть QueryRun, то ему можно подсунуть временную таблицу в queryRun.setCursor() |
|
![]() |
#3 |
Участник
|
|
|
![]() |
#4 |
Участник
|
Посмотрите отчеты, имя которых начинается на "tutorial_". Там наверняка есть отчеты по временным таблицам
Собственно, вариантов действия 2 1. Подсовываете в QueryRun предварительно сформированную временную таблицу через QueryRun.setCursor() 1.1. Наполнение самой временной таблицы выполняется не позже run() до вызова super(). Можно в init() делать 1.2. Подстановка выполняется после super() в prompt(). Обычно прямо в prompt() это и делают. Внутри стандартного класса отчета ReportRun используется стандартная же переменная queryRun. Поэтому код там примерно такой X++: public boolean prompt(boolean _enableCopy=TRUE, boolean _enablePages=TRUE, boolean _enableDevice=TRUE, boolean _enableProperties=TRUE, boolean _enablePrintTo=TRUE) { boolean ret; ret = super(_enableCopy, _enablePages, _enableDevice, _enableProperties, _enablePrintTo); // use the temporary table as dataSource in the query queryRun.setCursor(tmpAccountSum); return ret; } 2. Самостоятельно вручную делать цикл по временной таблице и явным образом передавать строку для печати очередной полосы отчета. Это делается в методе fetch() отчета. В этом случае super() там вообще не вызывается. Просто возвращает true. Пример можно посмотреть в стандартных накладных SalesInvoice, PurchInvoice. Правда, там используют постоянные таблицы, но никто не мешает вместо них использовать временные таблицы X++: // Метод отчета boolean fetch() { while select myTmpTab { this.send(myTmpTab); } return true; } Есть еще разные промежуточные варианты, но все сводятся к тому же самому. Либо подстановка данных в сам запрос, либо вмешательство в формирование содержимого объекта в отчете. Все зависит от постановки задачи. Не помню, есть в dax3.0 где-то в администрировании отчет "Информация базы данных". Это отчет \Reports\SysSqlStatus. Так там вообще DataSource не указан, а организация перебора временных данных - это из метода fetch() вызваны методы fillSQLParamers() и fillODBCParameters() Но без DataSource сложнее дизайн отчета делать. Придется очень много ручных настроек делать
__________________
- Может, я как-то неправильно живу?! - Отчего же? Правильно. Только зря... |
|
|
За это сообщение автора поблагодарили: Corel (1), Pandasama (1). |
|
![]() |
||||
Тема | Ответов | |||
Query добавить таблицу на форме | 3 | |||
Подвязать таблицу в обозревателе | 9 | |||
создать и передать временную таблицу | 11 | |||
Невозможно создать таблицу | 0 | |||
Русская локализация Axapta 3 ? | 59 |
|