Услуги за отчитане - вземете данни в подотчети

Имам задачата да отчитам данни от проучване с помощта на Reporting Services 2008.

Моето предизвикателство е следното:

  • анкетата има произволен брой въпроси
  • въпросът е един от три вида (числова оценка, въпрос с да/не или свободен текст)

За да се справя с това, реших да използвам подотчети в основния си отчет, напр. Дефинирах по един отчет за всеки от трите типа въпроси и сега, когато докладвам за проучване, по същество създавам динамично RDL за отчета за проучването, като използвам трите типа въпроси като подотчети.

Това всъщност работи доста добре досега - но се сблъсквам с един основен проблем: как да вкарам данните в подотчетите?

Подходът, който виждам в момента, е всеки (под)отчет за тип въпрос да дефинира свой собствен набор от данни въз основа на споделен източник на данни, за да извлече стойностите от базата данни. Почти съм сигурен, че това ще свърши работа - но не съм много запален да имам потенциално 5, 10, 20 подотчета, отиващи към базата данни, за да получа данните си независимо.

Това, на което се надявах, беше да мога да извлека данните веднъж за цялото проучване, в „основния“ отчет, и след това просто да подавам подходящия поднабор от данни във всеки подотчет, докато се изобразява – но не изглежда да намери някакъв начин да направи това....

Пропускам ли нещо напълно очевидно? Не съм имал много контакт с Reporting Services и последният ми проект с него беше преди четири години (с Reporting Services 2000) - така че има голям шанс просто да съм сляп за очевидното решение :-) Моля, уведомете ме!

Благодаря за всякакви съвети, насоки към добри статии или блогове в Reporting Services и всякаква помощ!

Марк


person marc_s    schedule 19.11.2009    source източник


Отговори (3)


Обичайният начин е да се предадат параметри (като период от време) от основния отчет към подотчетите и след това подотчетите да се погрижат за всичко останало. За да подобрите производителността, вижте дали можете да изобразите подотчети от кеш или моментна снимка. Кешът съхранява отчет с комбинация от предадени параметри, така че след първото „попадане на база данни“ някои или повечето подотчети може действително да бъдат върнати от кеша.

person Damir Sudarevic    schedule 19.11.2009
comment
Благодаря - надявах се да намеря друг начин, но изглежда, че наистина не мога да направя много тук, освен да подавам параметри и да правя заявки за данните във всеки подотчет поотделно. - person marc_s; 20.11.2009

Борех се със същия проблем. Но има начин, по който можете да постигнете разумна производителност, като използвате "кеширан споделен набор от данни". По принцип подотчетите ще използват по-голям набор от данни, включително всички редове за всички подотчети. С помощта на „филтър за набор от данни“ всеки подотчет може да филтрира правилно редовете. Това обаче е налично само за версия 2008.

person humblesticker    schedule 26.08.2010

Ако параметрите са крайните данни, от които се нуждаете, тогава просто ги използвайте и създайте фиктивен набор от данни в подотчета - можете просто да имате „SELECT 1 AS DUMMY“ като sql (това предполага, че подотчетите имат различни оформления едно от друго)

Или може би можете да преосмислите „главния“ набор от данни с функция или таблична функция?

Все още ще обложи sql сървъра, но поне ще го направи с едно посещение и източването на RS кутията ще бъде по-малко.

person adolf garlic    schedule 09.03.2010