|
SSRS 2008R2 -какова последов., в которой обрабатываются dataset и tablix в отчете?
|
|||
---|---|---|---|
#18+
Добрый день! У меня есть shared dataset ds1 (получается при вызове хранимой процедуры – proc1 с параметром Task_ID) И есть другой dataset ds2 (Select * from TableForLookup WHERE Task_ID = @Task_ID – записи в TableForLookup рождаются в процессе работы процедуры proc1) В моем rdl файле dataset ds1 естественно расположен ВЫШЕ по тексту, чем dataset ds2 - т.е. обрабатывается (должен обрабатываться) раньше, чем ds2 Tablix1 подключен к dataset ds1 и в нем сделана динамическая группировка (пользователь может выбрать по какому полю группировать (например, по полю field1), задав параметр отчета) Dataset ds2 я использую для получения соответствующих значений – “лейблов” для поля группировки в header row группы Tablix1 – с помощью функции Lookup(Fields!field1.Value, Fields!ID.Value, Fields!Name.Value, “ds2”) Вся проблема состоит в том, что когда мой отчет запускаетcя в ПЕРВЫЙ раз с определенным Task_ID и каким-нибудь полем для группировки (т.е. запускается хранимка на сервере и вставляются записи в таблицу TableForLookup), Dataset ds2 оказывается пустым и я не вижу ничего в head row для группы. Если я нажимаю кнопку Просмотр отчета еще раз – то с Lookup значениями уже все в порядке Т.е. делаем вывод, что последовательность обработки отчета такова 1) Получение данных в dataset ds1 2) Группировка в tablix1 3) Получение данных в dataset ds2 Как надо исхитриться чтобы заставить RS “играть по моим правилам” – чтобы последовательность обработки была такова 1) Получение данных в dataset ds1 2) Получение данных в dataset ds2 3) Группировка в tablix1 Буду благодарна за подсказки ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2013, 15:47 |
|
SSRS 2008R2 -какова последов., в которой обрабатываются dataset и tablix в отчете?
|
|||
---|---|---|---|
#18+
Вдогонку 1) Я, конечно, знаю про свойство Datasource "Use single transaction when processin the queries" - оно мне не поможет, потому что у меня SHARED dataset 2) возможно зависимость последовательности обработки dataset от места его определения в rdl файле выполняется ТОЛЬКО при включении этого (USE SINGLE TRANSACTION..) - но вопрос все равно остается (: ... |
|||
:
Нравится:
Не нравится:
|
|||
21.02.2013, 16:34 |
|
SSRS 2008R2 -какова последов., в которой обрабатываются dataset и tablix в отчете?
|
|||
---|---|---|---|
#18+
Опять про то же ну да, к сожалению, "datasets are executed in parallel" т.е. нужная мне последовательность действий 1) Получение данных в dataset ds1 2) После завершения получения данных в dataset ds1 - получение данных в dataset ds2 и все это БЕЗ включения флага USE SINGLE TRANSACTION Кто-то предлагает ставить во второй dataset WAITFOR DELAY - но , IMHO, это опасное решение ... |
|||
:
Нравится:
Не нравится:
|
|||
22.02.2013, 11:17 |
|
|
start [/forum/topic.php?fid=31&msg=38160947&tid=1534113]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
2ms |
others: | 271ms |
total: | 404ms |
0 / 0 |