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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 25.11.2019, 19:28   #1  
AnGor is offline
AnGor
Участник
Аватар для AnGor
 
94 / 42 (2) +++
Регистрация: 30.08.2007
Адрес: Ulm
Записей в блоге: 6
! Временные таблицы в SSRS отчетах
Скорее всего известный факт, но вдруг кто не знал
Вот такой код заполнит временную таблицу, но отчет ничего не покажет:
X++:
class goaSsrsReport1 extends SrsReportDataProviderPreProcessTempDB
{
    GoaTmpTable  goaTmpTable;

    [SRSReportDataSetAttribute(tablestr(GoaTmpTable ))]
    public GoaTmpTable getGoaTmpTable()
    {
        select goaTmpTable;
        return goaTmpTable;
    }

    public void processReport()
    {
         goaTmpTable = this.populateTmp();
    }

    GoaTmpTable  populateTmp()
    {
         GoaTmpTable  locGoaTmpTable;
         .....
         return locGoaTmpTable;
    }

}
а вот так покажет:
X++:
class goaSsrsReport1 extends SrsReportDataProviderPreProcessTempDB
{
    GoaTmpTable  goaTmpTable;

    [SRSReportDataSetAttribute(tablestr(GoaTmpTable ))]
    public GoaTmpTable getGoaTmpTable()
    {
        select goaTmpTable;
        return goaTmpTable;
    }

    public void processReport()
    {
         this.populateTmp(goaTmpTable);
    }

    void populateTmp(GoaTmpTable  _GoaTmpTable )
    {
         ..... ////inserting into _GoaTmpTable
    }

}
оказывается методы с атрибутом SRSReportDataSetAttribute создают в SQL новую таблицу (временную), которая привязывается к SSRS.
А такая конструкция, типа goaTmpTable = this.populateTmp(), создаёт новый экземпляр временной таблицы и связь goaTmpTable с SSRS теряется.
За это сообщение автора поблагодарили: dech (2).
Старый 26.11.2019, 09:04   #2  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
548 / 247 (10) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Спасибо.
Возникает вопрос такой: зачем переменной класса присваивать значение метода, если можно с ней работать в том же методе и ничего не присваивать, вернув void? Это шо, эстетизьм?
__________________
Незаменимых людей нет. Но и в отпуск мы тебя не отпустим. © Начальник
Старый 26.11.2019, 11:11   #3  
AnGor is offline
AnGor
Участник
Аватар для AnGor
 
94 / 42 (2) +++
Регистрация: 30.08.2007
Адрес: Ulm
Записей в блоге: 6
Цитата:
Сообщение от dech Посмотреть сообщение
Спасибо.
Возникает вопрос такой: зачем переменной класса присваивать значение метода, если можно с ней работать в том же методе и ничего не присваивать, вернув void? Это шо, эстетизьм?
Точное замечание, с this не комильфо
На самом деле, в проекте я использовал статический метод расширенного мною класса SysQuery, который возвращает таблицу со значениями фильтра для отчета:
SysQuery::GOAFilterToTable(this.parmQuery(),tmpmpSysQuery);
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Отладка Data Methods (business logic) в SSRS отчетах Pandasama DAX: Программирование 6 13.12.2017 15:11
lookup в полях диалоговой формы в ssrs отчетах. Skolos DAX: Программирование 10 30.03.2016 21:28
Временные таблицы и их временные файлы AraraT® DAX: Прочие вопросы 6 12.04.2010 00:39
Временные Таблицы и проблемы с ними Himan DAX: Программирование 39 13.12.2006 19:52
Временные таблицы в отчетах konfet DAX: Программирование 5 19.01.2005 11:32
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:12.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.