2014-06-05 12 views
5

Potrzebuję dynamicznie określać źródło danych dla raportów SSRS w czasie wykonywania. Znalazłem te rozwiązania:Dynamicznie ustawić źródło danych dla raportów SSRS bez konta nienadzorowanego wykonywania?

Change SSRS data source of report programmatically in server side

SSRS Dynamic Shared Data Source

inne technologie, takie jak Crystal Reports pozwoliły nam bardzo łatwo zmienić źródło danych do woli przez dziesięciolecia tak wydaje dziwne mi się, że te hacki są nadal najlepszy sposób, aby to osiągnąć, ale zakładając, że tak jest: czy można to zrobić bez włączania konta nienadzorowanej realizacji?

+0

Rozwój SSRS niejednokrotnie sprowadza się do użycia serii brzydkich hacków, aby oszukać to, co chcesz. Czasami jednak cofnięcie się i spojrzenie na ogólne wymagania mogą ujawnić inne opcje. Jaki jest powód, dla którego musisz uruchamiać różne źródła danych? Czy jest ich skończona liczba? Czy łatwiej byłoby po prostu wdrożyć wiele kopii tego samego raportu, z których każde używa innego źródła danych? – kyzen

+1

@kyzen Tak, myślę, że na początku to właśnie zamierzamy zrobić (rozmieścić kopie z różnymi źródłami danych). Istnieją dwa powody, dla których chciałbym zmienić źródło danych. Pierwsza służy do wskazywania raportów do serwera programistycznego lub produkcyjnego, a druga do klientów, którzy mają swoje dane w oddzielnych bazach danych. – BVernon

+1

Możesz uczynić to trochę * łatwiejszym dla siebie, pisząc całkowicie niestandardowy skrypt wdrażania programu Power Shell lub korzystając z wielu konfiguracji wdrażania w programie Visual Studio. Visual Studio byłoby mniej pracy z góry, ale będzie nieco sztywne pod względem struktury wdrażania. W programie Powershell można przechowywać dane konfiguracyjne na zewnątrz (XML, tabela itp.), Co może znacznie ułatwić zarządzanie złożonymi regułami wdrażania na dłuższą metę. – kyzen

Odpowiedz

7

Oto jak zmienić źródło danych w czasie wykonywania.

  1. Utwórz parametr raportu DatabaseServer.
  2. Utwórz parametr raportu DatabaseName.
  3. Utwórz źródło danych dsTest dla raportu (służy do testowania lokalnego).
  4. Ustaw źródło danych dsTest tak, aby wskazywało na testową bazę danych.
  5. Tworzenie innego źródła „dsDynamic” dane i ustawić swój wyraz ciąg połączenia z następującym: ="Data Source="+Parameters!DatabaseServer.Value+";Initial Catalog="&Parameters!DatabaseName.Value

  6. zbudować i przetestować raport ustawieniu wszystkich zestawów danych do połączenia testowego utworzonego w kroku 3.

  7. Set zestawów danych raportu do dynamicznego zestawu danych utworzonego w kroku 5 przed wdrożeniem na żywo.
  8. Wyślij nazwę bazy danych i nazwę serwera do raportów z aplikacji, aby wskazać inną instancję bazy danych.
+1

Nawet nie pamiętam, co zrobiłem, ale zaznaczając to jako odpowiedź, ponieważ jest to jedyna i zakładam, że to działa dla ciebie :) – BVernon

+0

Zaznaczałem to tak samo, jak użyłem go z powodzeniem. Dziękuję @lrb. – callisto

+0

Co robi "&" w kroku 5? – mcolegro

Powiązane problemy