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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.10.2010, 14:02   #1  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Using Parameters and templates in SSRS Использование параметров и шаблонов в SSRS
Собственно озадачился следующим
1 Можно ли с формы передать в отчет на RS параметры
2 Создать шаблон или шаблоны при вызове отчета с параметрами
__________________
Axapta book for developer
Старый 13.10.2010, 14:18   #2  
Poleax is offline
Poleax
Модератор
Аватар для Poleax
MCP
MCBMSS
Злыдни
 
1,353 / 595 (22) +++++++
Регистрация: 17.02.2005
Адрес: msk
Записей в блоге: 34
Цитата:
Сообщение от MikeR Посмотреть сообщение
1 Можно ли с формы передать в отчет на RS параметры
Calling a Custom Dynamics AX 2009 SSRS report and passing parameters - From X++
__________________

This posting is provided "AS IS" with no warranties, and confers no rights.
За это сообщение автора поблагодарили: MikeR (2).
Старый 13.10.2010, 14:29   #3  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Один параметр - хорошо, а вот как бы туда контейнер передать
__________________
Axapta book for developer
Старый 13.10.2010, 14:53   #4  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Lightbulb
Цитата:
Сообщение от MikeR Посмотреть сообщение
Собственно озадачился следующим
1 Можно ли с формы передать в отчет на RS параметры
2 Создать шаблон или шаблоны при вызове отчета с параметрами
Да, можно, например так:
(в init формы, в дизайне которой добавлен контрол типа Microsoft Web Browser)
X++:
public void init()
{
    ;
    super();
    webBrowser.navigate(strfmt("Pages/ReportViewer.aspx?%2fReports%2fMyReport=%1", emplTable::findByUserId_W(curuserid()).EmplId));
}
как вариант - можно и так

Последний раз редактировалось kornix; 13.10.2010 в 15:00.
За это сообщение автора поблагодарили: MikeR (2).
Старый 13.10.2010, 14:56   #5  
kornix is offline
kornix
MCP
MCBMSS
Злыдни
Ex AND Project
 
414 / 146 (5) +++++
Регистрация: 24.02.2009
Адрес: Санкт-Петербург
Цитата:
Сообщение от MikeR Посмотреть сообщение
Один параметр - хорошо, а вот как бы туда контейнер передать
ой.. пока искал пример - опередили

как вариант можно пробежаться по контейнеру циклом и сформировать строку с запятыми, а ее передавать одним параметром..
Старый 13.10.2010, 15:23   #6  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
с формой понятно, а как распарсить строку в отчете, я смотрю там функции есть....
__________________
Axapta book for developer
Старый 13.10.2010, 15:45   #7  
sukhanchik is offline
sukhanchik
Administrator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
3,311 / 3547 (125) ++++++++++
Регистрация: 13.06.2004
Адрес: Москва
При создании отчета - создаются параметры отчета (что хорошо видно на скриншоте из студии; также параметры отчета можно создать в построителе отчетов (Report Builder) от SQL 2008 R2 или в Management Studio)
Эти параметры автоматически запрашиваются при запуске отчета или же получаются из URL или из Args.parm(). А вот что с ними делать дальше - решает программист отчета. Либо он их как-то в коде на C# заюзает, либо он их отметит как фильтр на запросе отчета (опять-таки - см Report Builder).

PS Report Builder со своим построителем - почему-то отдаленно напомнил Access и его работу с параметрами в запросах (и использовании в отчетах)
__________________
Возможно сделать все. Вопрос времени

Последний раз редактировалось sukhanchik; 13.10.2010 в 15:47.
Старый 13.10.2010, 16:09   #8  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
Когда отчет создается из query, то все просто.
Даже думать не надо, у нас этот функционал к сожалению пока не доступен.
Нашел аналог substring - с этим решено =Replace(Parameters!Params.Value,LSet(Parameters!Params.Value,5),"")
Остается вывод в шаблон и возможность перейти к записи по двойному щелчку из отчета.
__________________
Axapta book for developer
Старый 14.10.2010, 10:51   #9  
MikeR is offline
MikeR
MCT
Аватар для MikeR
MCBMSS
Лучший по профессии 2015
Лучший по профессии 2014
 
1,628 / 627 (24) +++++++
Регистрация: 28.11.2005
Адрес: просто землянин
кстати еще одно интересное наблюдение
- При програмной передаче параметра, возникает необходимость как его использовать. так вот это можно делать не по прямому соответствию а по вхождение в некую коллекцию значений.
X++:
                          (SELECT     ACTNUM
                            FROM          RPAYCIVILCONTRACTACT AS act
                            WHERE      (RECID =@RecID)) AS ActNum,
так не получится, а вот так пройдет

X++:
                          (SELECT     ACTNUM
                            FROM          RPAYCIVILCONTRACTACT AS act
                            WHERE      (RECID IN (@RecID))) AS ActNum,
в конексте передачи строки параметров, строку можно разбить на параметры. Соответственно можно пойти еще дальше
__________________
Axapta book for developer
За это сообщение автора поблагодарили: kornix (2).
Теги
parameters passing, reporting services, ssrs

 

Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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