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).