Низовете за свързване, базирани на изрази за отчетни услуги, не могат да имат управлявани от данни параметри

Имам нужда моите отчети да имат низове за динамични връзки. Имаме множество сървъри за бази данни и каталози и искаме да поддържаме само един файл с отчети. Единственото решение, което можах да намеря, което би ми позволило да направя това програмно, беше „Свързващи низове, базирани на израз“. По принцип програмно предавам стойности на параметри към отчета за ServerName и InitialCatalog.

Това работи за прости отчети. Въпреки че не е идеален, тъй като модифицирането на отчета изисква промяна на връзката към твърдо кодиран низ за свързване и след това превключване обратно към този, базиран на израз, когато искам да запазя и публикувам.

ОБАЧЕ, това не работи за отчети, които имат управлявани от данни параметри. Например имам отчет, който филтрира данни въз основа на параметър „Град“, който потребителят избира, когато за първи път отвори отчета. Параметърът "Град" е подаване на данни от заявка. Изглежда, че не мога просто да задам параметрите на връзката и да оставя услугите за отчитане да търсят параметъра City.

Отворен съм за идеи тук, различни от „Свързващи низове, базирани на изрази“.

Благодаря.




Отговори (2)


Имах същия проблем. Решението беше изненадващо просто - просто преместете вашите "ServerName" и "InitialCatalog" в горната част на списъка с параметри.

person Aleksandr Demidov    schedule 08.06.2011

Възможна опция е да създадете скрипт за внедряване (който използва rs.exe) и да внедрите множество версии на отчета. В скрипта за внедряване можете да актуализирате източника на данни на отчета. Вашият контрол на източника все още ще има само един отчет и всеки път, когато го пуснете, стартирате скрипта, за да актуализирате множеството копия, които имате в производство.

person SPE109    schedule 27.06.2010
comment
Не искам множество версии на отчета (според въпроса). Искам само един файл с отчет. Това наистина не би трябвало да е толкова трудно, колкото MS го прави. В Crystal Reports всичко, което трябва да направите, е да извикате SetDateSource (о, и да платите абсурдни лицензионни такси, ако искате да го разположите на вашия уеб сайт) - person Justin; 06.07.2010
comment
Просто предлагах заобиколно решение, при което ще имате едно копие на отчета в процес на разработка, но ще разположите няколко версии и ще актуализирате източника на данни при внедряването. Използвал съм този подход и преди и работи доста добре. Просто извиквате SetItemDataSources в rss скриптовия файл, когато разгръщате отчета. - person SPE109; 06.07.2010