sql >> Databasteknik >  >> RDS >> Sqlserver

Hur visar man sidnummer i rapporttexten för SSRS 2008 R2?

Först måste du använda rapportvariabler: högerklicka på det tomma utrymmet i rapporten -> Variabler -> Skapa en variabel såsom PageCount (ställ standardvärdet till 0)

Sedan i din sidhuvud eller sidfot -> skapa en textruta och ställ in uttryck ->

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

Det kommer automatiskt att öka för varje sida.(VIKTIGT:Dölj det INTE från sidhuvudet eller sidfoten, SetValue KOMMER INTE att fungera om du döljer rutan, så ändra teckensnittet till 1 eller texten till vitt, gör vad som helst, bara GÖL INTE det (den kommer att skriva ut "True" när inställningen ägde rum))

Då kan du använda:

=Variables!PageCount.Value

någon del av din rapportkropp för att komma åt sidnumret.

VIKTIGT:OBSERVERA att jag försökte använda Globals!Sidnummer för att ställa in variabeln men till slut var den INTE tillgänglig från rapportens text. Så det måste vara något som både är tillgängligt från sidhuvud/sidfot ELLER Brödtext.

I mitt fall måste jag återställa sidnumret för varje instans av min grupp. Så jag ställer bara in en trigger i slutet av gruppen. (t.ex. jag kontrollerar om jag har min totala värde returnerar, eftersom jag vet för varje ände av gruppen. min grupp jag kommer att ha en total visning.

På grund av funktionen IIF både Sant och Falskt kommer att bearbetas, så om du sätter sättare i IIF som nedan:

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

 ) 

du kommer att ha värdet 0 hela tiden, eftersom rapporten kommer att kontrollera den sanna delen och sedan den falska delen, båda sättarna kommer att exekveras (värdet kommer att ställas in två gånger)

så vi behöver 2 rutor och något i stil med:(Du måste gömma onödiga rutor dina kontrollvillkor)

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

Du måste dölja den här rutan när NOT IsNothing(ReportItems!TotalBox.Value)

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

Återigen måste du dölja den här rutan när IsNothing(ReportItems!TotalBox.Value)

Naturligtvis kan du använda något annat sätt för att bestämma slutet av en gruppinstans, som:skapa en textruta som ENDAST innehåller ett fast värde i slutet av din grupptabell. och gömma det. När du kontrollerar avtryckaren gör bara samma tillvägagångssätt som jag gör.

Det fungerar bra för alla versioner över 2008 R2 (ingår).



  1. Databasdesign:3 typer av användare, separat eller en tabell?

  2. Databasåtkomst med Angular

  3. MySQL världsdatabas Försöker undvika subquery

  4. Mysql-uppdatering baserad på existens i annan tabell