Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak wyświetlić numer strony w treści raportu SSRS 2008 R2?

Najpierw musisz użyć zmiennych raportu: kliknij prawym przyciskiem myszy w puste miejsce raportu -> Zmienne -> Utwórz zmienną taką jak PageCount (ustaw domyślną wartość na 0)

Następnie w nagłówku lub stopce -> utwórz pole tekstowe i ustaw wyrażenie ->

=Variables!PageCount.SetValue(Variables!PageCount.Value+1)

Zwiększy się automatycznie dla każdej strony. (WAŻNE:NIE ukrywaj go w nagłówku lub stopce, SetValue NIE DZIAŁA, jeśli ukryjesz pole, więc zmień czcionkę na 1 lub tekst na biały, rób cokolwiek, po prostu NIE ukrywaj tego (wypisze 'Prawda', ponieważ ustawienie miało miejsce))

Następnie możesz użyć:

=Variables!PageCount.Value

w dowolnej części raportu, aby uzyskać dostęp do numeru strony.

WAŻNE:Zwróć uwagę, że próbowałem użyć Globals!PageNumber do ustawienia zmiennej, ale ostatecznie nie było to dostępne z treści raportu. Więc musi to być coś, co jest dostępne z nagłówka/stopki LUB treści.

W moim przypadku muszę zresetować numer strony dla każdego wystąpienia mojej grupy. Więc po prostu ustawiam wyzwalacz na końcu grupy. (np. Sprawdzam, czy moja całkowita wartość zwraca się, ponieważ wiem, że dla każdego końca moja grupa będę miał wyświetlacz Total.

Z powodu funkcji IIF zarówno prawda, jak i fałsz będą przetwarzane, więc jeśli umieścisz ustawiacze w IIF na przykład poniżej:

=IIF(IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(Variables!PageCount.Value+1),Variables!PageCount.SetValue(0))

 ) 

w efekcie cały czas będzie miał wartość 0, ponieważ raport sprawdzi część prawdziwą, a następnie część fałszywą, oba ustawienia zostaną wykonane (wartość zostanie ustawiona dwukrotnie)

więc potrzebujemy 2 pudełek i czegoś takiego:(Musisz ukryć niepotrzebne pole w swoich warunkach sprawdzania)

=IIF(IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(Variables!PageCount.Value+1),"")
)

Musisz ukryć to pole, gdy NOT IsNothing(ReportItems!TotalBox.Value)

=IIF(NOT IsNothing(ReportItems!TotalBox.Value),Variables!PageCount.SetValue(0),"")
)

Ponownie musisz ukryć to pole, gdy IsNothing(ReportItems!TotalBox.Value)

Oczywiście możesz użyć innego sposobu określenia końca instancji grupy, na przykład:zrób pole tekstowe, które TYLKO zawiera ustaloną wartość na końcu tabeli grup. i ukryj to. podczas sprawdzania spustu postępuj podobnie jak ja.

Działa dobrze we wszystkich wersjach powyżej 2008 R2 (w zestawie).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie SQL działa przez bardzo długi czas, jeśli wyszukiwany termin nie zostanie znaleziony

  2. Nie można wykonać operacji, ponieważ dostawca OLE DB SQLNCLI10 dla serwera połączonego (null) nie mógł rozpocząć transakcji rozproszonej

  3. Jak mogę pobrać listę parametrów z procedury składowanej w SQL Server?

  4. Jak zautomatyzować zbieranie danych w rozwoju bazy danych SQL Server

  5. Czy można połączyć wartości kolumn w ciąg znaków za pomocą CTE?