Temat: Reporting services na hostingu
Jeśli nie potrzebujesz serwera raportów z pracą grupową w przeglądarce i integracją z SharePointem czy innymi bajerami, masz zbiór utworzonych wcześniej raportów (albo generujesz je dynamicznie - XML) to zapewne wystarczy Ci sama tylko kontrolka kliencka (kilka DLLek), do której
podasz ścieżkę do RDLC i która wyrenderuje raport.
Przeglądarka raportów składa się z silnika renderującego i kontrolki wyświetlającej, więc możesz raport wyświetlać albo w tej kontrolce, albo skorzystać z jedynie z samego silnika i "renderować" raport bez wyświetlania do strumienia, np. do pliku PDF, XLS, DOC. (To się bardzo przydaje w aplikacjach WinForms do generowania wydruków seryjnych.)
Co od obsługi kontrolki, to trzeba zainstalować pakiet redistributable. Ale jeśli nie ma takich uprawnień, to żaden problem - można go sobie zainstalować na domowym komputerze, wyciągnąć kilka (chyba 4 czy 5) DLLek z GAC i zwyczajnie wgrać je do katalogu aplikacji na serwerze. Pote na stronę wrzucić kontrolkę przeglądarki raportów i poustawiać w niej co trzeba (można to zrobić także w kodzie) i podpiąć źródło danych. Nie potrzeba w takim przypadku żadnych usług RS, ani SQL Servera.
Co do wypełniania raportu danymi, to w wielu tutorialach podawane są rozwiązania gdzie cały proces definiowania raportu i osadzania go w kontrolce dzieje się automagicznie poprzez kreatory: klik - połączenie z bazą danych - klik - wybór danych do wyświetlenia - klik - tworzą się odpowiednie metody i data sety - klik buduj aplikację. Jest to wygodne, ale czasem trzeba mieć nad wszystkim większą kontrolę.
Warto wtedy wiedzieć, że jedyne, czego tak naprawdę wymaga cały proces, to:
- XSD z definicjami tabel. Tego wymaga edytor raportu. Generujesz sobie w nim wizualnie XSDka z informacjami o tabelach i ich kolumnach, a potem w raporcie odwołujesz się do tych definicji, przeciągając po prostu (lub wybierając w comboboxach) pola tabel.
- DataSet z danymi (a tak naprawdę wystarczy jedna DataTable). Jeśli masz już tego DataSeta (wygenerowanego gdzieś wcześniej), to podanie go do kontrolki, ustawienie jakichś tam parametrów, to kilka - kilkanaście linijek kodu i ew. dodanie zdarzenia do przetwarzania subraportów.
Nie pracowałem od dawna z ASP.NET i WebForms, ale mam dużo przykładowych źródeł dla WinForms (RS to mój ulubiony silnik do wydruków i generowania plików PDF i XLS w aplikacjach okienkowych) - a pamiętam, że obsługa kontrolki WinForms i WebForms jest niemal identyczna:
Jeśli będziesz potrzebował pomocy w obsłudze tej kontrolki, to wolnym czasie mogę sobie odświeżyć pamięć, napisać jakąś prostą aplikacyjkę, postawić i na localhoście i potestować.
Do generowania raportów wystarcza Visual Web Developer Express 2008 + pakiet redistributable kontrolki renderującej raporty + addin generatora raportów do WebDevelopera. Cały ten komplet jest za darmo do komercyjnego wykorzystania (jak wszystko w wersji Express).
Niestety, w wersji WVD 2010 nie ma (jest to oficjalna informacja od MS) i chyba nie będzie już nigdy darmowego addina do tworzenia raportów, trzeba kupić pełną wersję :/ Nie ma jednak problemu, bo raporty z VWD 2008 (i nawet 2005) będą działać poprawnie, może będą tylko nieco uboższe (zwykle to niewielki problem). Wadą jest tylko konieczność posiadania zainstalowanego VWD 2008. Jest także darmowy edytor RDLC (
fyiReporting) ale mnie odrzuca od niego :)
Przy okazji:
http://weblogs.asp.net/rajbk/archive/2010/05/09/creati...
http://weblogs.asp.net/rajbk/archive/2006/03/02/How-to...
i powiązane.
Pozdrawiam.
Adrian Olszewski edytował(a) ten post dnia 15.07.11 o godzinie 12:13