sql >> Databáze >  >> RDS >> Sqlserver

Jak zobrazit číslo stránky v těle zprávy SSRS 2008 R2?

Nejprve je třeba použít proměnné přehledu: klikněte pravým tlačítkem na prázdné místo v sestavě -> Proměnné -> Vytvořte proměnnou, jako je PageCount (nastavení výchozí hodnoty na 0)

Poté ve vás záhlaví nebo zápatí -> vytvořte textové pole a nastavte výraz ->

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

Automaticky se zvýší pro každou stránku.(DŮLEŽITÉ:NESKRYJTE jej v záhlaví nebo zápatí, SetValue NEBUDE fungovat, pokud rámeček skryjete, takže změňte písmo na 1 nebo text na bílý, udělejte cokoliv, prostě NESKRYTí (po provedení nastavení se vytiskne 'True'))

Pak můžete použít:

=Variables!PageCount.Value

v jakékoli části těla zprávy pro přístup k číslu stránky.

DŮLEŽITÉ:Všimněte si prosím, že jsem se pokusil použít Globals!PageNumber k nastavení proměnné, ale nakonec NENÍ přístupný z těla zprávy. Takže to musí být něco, co je přístupné jak ze záhlaví/zápatí, tak z těla.

V mém případě musím resetovat číslo stránky pro každou instanci své skupiny. Takže nastavím spouštěč na konec skupiny. (např. zkontroluji, zda mám návratovou hodnotu Total value, protože vím pro každý konec skupiny moje skupina bude mít celkový displej.

Kvůli funkci IIF obě části True i False budou zpracovány, takže pokud vložíte settery do IIF jako níže:

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

 ) 

nakonec budete mít po celou dobu hodnotu 0, protože hlášení bude Check the True Part pak False, provedou se oba nastavovače (hodnota bude nastavena dvakrát)

takže potřebujeme 2 políčka a něco jako:(Nepotřebné políčko musíte skrýt za podmínek kontroly)

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

Toto pole musíte skrýt, když NOT IsNothing(ReportItems!TotalBox.Value)

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

Znovu musíte toto pole skrýt, když IsNothing(ReportItems!TotalBox.Value)

Samozřejmě můžete použít nějaký jiný způsob, jak určit konec instance skupiny, jako:vytvořit textové pole, které POUZE obsahuje pevnou hodnotu na konci vaší tabulky skupin. a schovej to. když kontrolujete spoušť, udělejte podobný přístup jako já.

Funguje dobře pro všechny verze nad 2008 R2 (včetně).



  1. Odstraňování problémů Microsoft SQL Server Error 18456

  2. Datum a čas v PHP skriptu

  3. Použití varchar(MAX) vs TEXT na SQL Server

  4. Řazení výsledku dotazu podle pole z jiné tabulky (MySQL)