Usługi raportowania SQL server: Jak zatrzymać Uruchamianie raportu po otwarciu

Mamy kilka raportów SQL server reporting services. Nie pisałam wtedy, ale muszę się nimi zająć.

Te raporty uruchamiają się po otwarciu w przeglądarce, a przy domyślnych parametrach (hasła i ograniczenia wyszukiwania są puste) pobierają dużo danych, co jest powolne. Klient wolałby, aby raport nie był generowany, dopóki użytkownik nie wprowadzi parametrów i nie naciśnie "view report"

Niestety w ogóle nie znam SSRS - jak zatrzymać raport z odpalanie po otwarciu?


Szczegóły tego, jak to zrobić na wdrożonym raporcie (zgodnie z odpowiedzią Rihan Meij) są następujące:

Kliknij na raport, kliknij na "właściwości" u góry. Być może będziesz musiał trochę poczekać, ponieważ powolny raport może działać teraz. Następnie kliknij "parametry" po lewej stronie.

Dla każdego parametru upewnij się, że jest zaznaczona opcja "Prompt User", a dla co najmniej jednego parametru nie jest zaznaczona opcja "has Default". Kliknij ponownie "widok" w lewym górnym rogu (lub wróć aby wyświetlić raport, należy pamiętać, że raport nie uruchamia się od razu.

W kreatorze raportów możesz to zrobić za pomocą menu "Filtr". Usuń wybór wartości z co najmniej jednego filtra i Zapisz raport.

Czy możliwe jest również zatrzymanie raportów podczas ładowania, gdy raport nie ma parametrów?

Author: Anthony, 2008-11-10

7 answers

Odkryłem, że musiałem ustawić przynajmniej jeden z parametrów raportu, aby nie mieć domyślnego, aby utrzymać raport z autorunning.

Musiałem użyć tej konfiguracji (zauważ, że wszystkie 3 parametry pozostawione bez wartości domyślnych akceptują null, więc użytkownicy mogą po prostu kliknąć pola Null):

[brakuje screenów]

Aby użytkownicy mogli to zobaczyć i aby nie dopuścić do autorunningu raportu:

[brakuje screenów]

 14
Author: 0bytes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-28 09:59:36

Zrobiłem to, zmieniając moje zapytanie slighlty, aby wymagało parametrów podczas jego uruchamiania.

Po opublikowaniu raportu na stronie raportu, określiłem, że parametr powinien monitować użytkownika. Ma to wpływ na to, że raport nie pociąga serwera sql na kolana, gdy użytkownicy po prostu otwierają raport, aby zobaczyć.

Zobacz załączony zrzut ekranu (zdjęcie mówi tysiąc słów, prawo :))

 3
Author: Rihan Meij,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-10 13:58:07

Ustawiłem domyślną wartość jednego z moich wyborów parametrów na wartość -1, która nie istnieje (Nieprawidłowa wartość parametru). Nie wygenerowało to błędu. To po prostu ustawić parametr rozwijane pole do i uniemożliwił raport z uruchomieniem. Nie mogłem użyć domyślnej wartości NULL, ponieważ NULL wybiera wszystko i chciałem, aby użytkownik celowo dokonał wyboru ALL (NULL) przed uruchomieniem raportu. Renderowanie raportu trwa kilka minut, jeśli wybrano wszystkie.

 3
Author: Jim W.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-06-24 16:17:10

Wiem, że ten post jest trochę stary, ale ponieważ mam inne rozwiązanie tutaj, po prostu publikuję go na wypadek, gdyby ktoś go potrzebował.

Jeśli używasz ReportViewer, to można ustawić właściwość ShowBody= "False". Następnie w zdarzeniu OnSubmittingParameterValues należy zmienić właściwość ShowBody na true. Wtedy nie potrzebujesz żadnych dodatkowych parametrów lub parametrów bez wartości domyślnej w raporcie.

<rsweb:ReportViewer 
        ID="rv" 
        runat="server"  
        Width="100%" 
        Height="100%" 
        SizeToReportContent="false" 
        ZoomMode="PageWidth"
        KeepSessionAlive="true" 
        ProcessingMode="Remote"
        PromptAreaCollapsed="false" 
        InteractivityPostBackMode="AlwaysAsynchronous"
        AsyncRendering="true" 
        ExportContentDisposition="AlwaysInline"
        ShowReportBody="False"
        ShowPrintButton="false"
        OnSubmittingParameterValues="rv_SubmittingParameterValues"/>

A następnie w metodzie rv_SubmittingParameterValues:

this.rv.ShowReportBody = true;
 2
Author: Teis Lindemark,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-04-29 13:09:18

Uznałem, że najlepszym sposobem jest dodanie parametru, który nie pozwala na NULL, ale nie jest używany przez raport. Uniemożliwia to renderowanie na początku, ale nie wpływa na raport.

Jedyną stroną w dół jest to, że jeśli wyświetlasz raport w przeglądarce raportów, masz pudełko na górze, które wygląda nieco dziwnie. Jestem pewien, że możesz użyć jakiegoś C# / CSS, aby to ukryć.

Ponieważ nie używam przeglądarki raportów do wyświetlania, tylko do renderowania na zapleczu, nie ma to wpływu ja.

Nawet jeśli używasz przeglądarki raportów, jest to pomocne podczas tworzenia!

 1
Author: James Prout,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-29 07:23:52

Zrobiłem to, po prostu dostarczając wartość domyślną do parametru kluczowego, który nie zwraca żadnych wyników.

 1
Author: George,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-12-21 11:34:04

Znalazłem na to dobry trik podczas pracy z raportami, które mają opcjonalne pola, ale pobierają ogromną ilość danych, jeśli opcjonalne pola są puste.

Krok 1: Zapobieganie Automatycznemu Strzelaniu

  • Upewnij się, że opcja "Zezwól na wartość null" nie jest włączona dla opcjonalnych parametrów
  • Upewnij się, że nie ma domyślnej wartości dla opcjonalnych parametrów

Krok 2: Ustaw parametry opcjonalne bez użycia "null"

  • Enable "Allow blank value" for the optional parametry
  • zmodyfikuj klauzulę where dla opcjonalnych parametrów WHERE (@param="" OR column = @param)

W przypadku tej metody istnieją dodatkowe pola, o które użytkownicy mogą się martwić, raport nie uruchomi się, dopóki nie zostanie poproszony, a warunki w klauzuli where nie zostaną ocenione, jeśli pole tekstowe pozostanie puste.


uwaga: jeśli raport określa dostępne wartości, to zamiast "" można użyć dowolnej wartości, która nie jest prawidłowa dla struktury tabeli. inne typy danych (non-string) w ten sposób

 1
Author: Wayne,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-21 21:55:45