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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.05.2020, 09:10   #1  
Metrofun is offline
Metrofun
Участник
 
72 / 10 (1) +
Регистрация: 27.04.2020
Как 'привязать' к отчёту темповскую таблицу
Здравствуйте.
Есть отчёт, данные для отчёта подготавливаю в темповской таблице (Temporary = Yes).
Как 'привязать' к отчёту темповскую таблицу?
Старый 14.05.2020, 09:49   #2  
Pandasama is offline
Pandasama
Участник
 
457 / 137 (5) +++++
Регистрация: 11.08.2014
Адрес: Барнаул
Версия аксапты? Отчет какой, стандартный аксаптовский? SSRS? Excel?
В вакууме - если у вас там есть QueryRun, то ему можно подсунуть временную таблицу в
queryRun.setCursor()
Старый 14.05.2020, 09:51   #3  
Metrofun is offline
Metrofun
Участник
 
72 / 10 (1) +
Регистрация: 27.04.2020
Цитата:
Сообщение от Pandasama Посмотреть сообщение
Версия аксапты? Отчет какой, стандартный аксаптовский? SSRS? Excel?
В вакууме - если у вас там есть QueryRun, то ему можно подсунуть временную таблицу в
queryRun.setCursor()
3.0, стандартный аксаптовский.
Старый 14.05.2020, 15:22   #4  
Владимир Максимов is offline
Владимир Максимов
Участник
КОРУС Консалтинг
 
1,701 / 1195 (43) ++++++++
Регистрация: 13.01.2004
Записей в блоге: 3
Посмотрите отчеты, имя которых начинается на "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;
}
Здесь я предполагаю, что в качестве DataSource отчета эта временная таблица и указана. Понятно, что в данном варианте временную таблицу можно наполнять хоть непосредственно перед циклом.


Есть еще разные промежуточные варианты, но все сводятся к тому же самому. Либо подстановка данных в сам запрос, либо вмешательство в формирование содержимого объекта в отчете. Все зависит от постановки задачи.

Не помню, есть в dax3.0 где-то в администрировании отчет "Информация базы данных". Это отчет \Reports\SysSqlStatus. Так там вообще DataSource не указан, а организация перебора временных данных - это из метода fetch() вызваны методы fillSQLParamers() и fillODBCParameters()

Но без DataSource сложнее дизайн отчета делать. Придется очень много ручных настроек делать
__________________
- Может, я как-то неправильно живу?!
- Отчего же? Правильно. Только зря...
За это сообщение автора поблагодарили: Corel (1), Pandasama (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Query добавить таблицу на форме iiipoizone DAX: Программирование 3 10.05.2017 13:37
Подвязать таблицу в обозревателе listener DAX: Администрирование 9 15.06.2009 18:26
создать и передать временную таблицу kitty DAX: Программирование 11 13.07.2006 14:40
Невозможно создать таблицу chel DAX: Программирование 0 21.04.2004 21:02
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38

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

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

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