Del via


Udtrykseksempler i Power BI Report Builder

GÆLDER FOR: Power BI Report Builder Power BI Desktop

Udtryk bruges ofte i sideinddelte rapporter i Power BI Report Builder til at styre indhold og rapportudseende. Udtryk skrives i Microsoft Visual Basic og kan bruge indbyggede funktioner, brugerdefineret kode, rapport- og gruppevariabler og brugerdefinerede variabler. Udtryk begynder med et lighedstegn (=).

Denne artikel indeholder eksempler på udtryk, der kan bruges til almindelige opgaver i en rapport.

Du kan få flere oplysninger om enkle og komplekse udtryk, hvor du kan bruge udtryk, og de referencetyper, du kan inkludere i et udtryk, under Udtryk i Power BI Report Builder.

Funktioner

Mange udtryk i en rapport indeholder funktioner. Du kan formatere data, anvende logik og få adgang til rapportmetadata ved hjælp af disse funktioner. Du kan skrive udtryk, der bruger funktioner fra Kørselsbiblioteket i Microsoft Visual Basic og fra xref:System.Convert navneområderne og xref:System.Math . Du kan føje referencer til funktioner i brugerdefineret kode. Du kan også bruge klasser fra Microsoft Microsoft .NET Framework, herunder xref:System.Text.RegularExpressions.

Visual Basic-funktioner

Du kan bruge Visual Basic-funktioner til at manipulere de data, der vises i tekstfelter eller bruges til parametre, egenskaber eller andre områder i rapporten. Dette afsnit indeholder eksempler, der demonstrerer nogle af disse funktioner. Du kan få flere oplysninger under Medlemmer af Visual Basic-kørselsbiblioteket på MSDN.

Microsoft .NET Framework indeholder mange brugerdefinerede formatindstillinger, f.eks. for bestemte datoformater. Du kan få flere oplysninger under Formateringstyper.

Matematiske funktioner

  • Funktionen Round er nyttig til at afrunde tal til det nærmeste heltal. Følgende udtryk runder 1,3 til 1:

    =Round(1.3)  
    

    Du kan også skrive et udtryk for at afrunde en værdi til et multiplum, som du angiver, på samme måde som funktionen MRound i Excel. Multiplicer værdien med en faktor, der opretter et heltal, afrunder tallet og derefter dividerer med den samme faktor. Hvis du f.eks. vil afrunde 1,3 til det nærmeste multiplum af 0,2, som er 1,4, skal du bruge følgende udtryk:

    =Round(1.3*5)/5  
    

Datofunktioner

  • Funktionen Today leverer den aktuelle dato. Dette udtryk kan bruges i et tekstfelt til at vise datoen i rapporten eller i en parameter til at filtrere data baseret på den aktuelle dato.

    =Today()  
    
  • Brug funktionen DateInterval til at trække en bestemt del af en dato ud. Her er nogle gyldige DateInterval-parametre :

    • Datointerval.sekund
    • Datointerval.minut
    • Datointerval.time
    • DateInterval.Weekday
    • Datointerval.dag
    • DateInterval.DayOfYear
    • DateInterval.WeekOfYear
    • Datointerval.måned
    • DateInterval.Quarter
    • Datointerval.år

    Dette udtryk viser f.eks. ugenummeret i det aktuelle år for dags dato:

    =DatePart(DateInterval.WeekOfYear, today()) 
    
  • Funktionen DateAdd er nyttig til at levere et datointerval baseret på en enkelt parameter. Følgende udtryk indeholder en dato, der er seks måneder efter datoen fra en parameter med navnet StartDate.

    =DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)  
    
  • Funktionen Year viser året for en bestemt dato. Du kan gruppere datoer sammen eller vise året som et navn for et sæt datoer. Dette udtryk angiver året for en bestemt gruppe af salgsordredatoer. Funktionen Month og andre funktioner kan også bruges til at manipulere datoer. Du kan få flere oplysninger i dokumentationen til Visual Basic.

    =Year(Fields!OrderDate.Value)  
    
  • Du kan kombinere funktioner i et udtryk for at tilpasse formatet. Følgende udtryk ændrer formatet af en dato i formatet måned-dag-år til måned-uge-ugenummer. Du kan f.eks. ændre "18/12/2022" til "December Week 3":

    =Format(Fields!MyDate.Value, "MMMM") & " Week " &   
    (Int(DateDiff("d", DateSerial(Year(Fields!MyDate.Value),   
    Month(Fields!MyDate.Value),1), Fields!FullDateAlternateKey.Value)/7)+1).ToString  
    

    Når det bruges som et beregnet felt i et datasæt, kan du bruge dette udtryk i et diagram til at aggregere værdier efter uge inden for hver måned.

  • Følgende udtryk formaterer værdien SellStartDate som MMM-yyy. Feltet SellStartDate er en datetime-datatype.

    =FORMAT(Fields!SellStartDate.Value, "MMM-yy")  
    
  • Følgende udtryk formaterer værdien SellStartDate som dd/MM/åååå. Feltet SellStartDate er en datetime-datatype.

    =FORMAT(Fields!SellStartDate.Value, "dd/MM/yyyy")  
    
  • Funktionen CDate konverterer værdien til en dato. Funktionen Now returnerer en datoværdi, der indeholder den aktuelle dato og det aktuelle klokkeslæt i henhold til dit system. DateDiff returnerer en lang værdi, der angiver antallet af tidsintervaller mellem to datoværdier .

    I følgende eksempel vises startdatoen for det aktuelle år

    =DateAdd(DateInterval.Year,DateDiff(DateInterval.Year,CDate("01/01/1900"),Now()),CDate("01/01/1900"))  
    
  • I følgende eksempel vises startdatoen for den forrige måned baseret på den aktuelle måned.

    =DateAdd(DateInterval.Month,DateDiff(DateInterval.Month,CDate("01/01/1900"),Now())-1,CDate("01/01/1900"))  
    
  • Følgende udtryk genererer intervalårene mellem SellStartDate og LastReceiptDate. Disse felter er i to forskellige datasæt, DataSet1 og DataSet2.

    =DATEDIFF("yyyy", First(Fields!SellStartDate.Value, "DataSet1"), First(Fields!LastReceiptDate.Value, "DataSet2"))  
    
  • Funktionen DatePart returnerer en heltalsværdi , der indeholder den angivne komponent for en given datoværdi . Følgende udtryk returnerer året for den første værdi af SellStartDate i DataSet1. Datasætområdet er angivet, fordi der er flere datasæt i rapporten.

    =Datepart("yyyy", First(Fields!SellStartDate.Value, "DataSet1"))  
    
    
  • Funktionen DateSerial returnerer en datoværdi , der repræsenterer et angivet år, en angivet måned og en angivet dag, hvor klokkeslætsoplysningerne er angivet til midnat. I følgende eksempel vises slutdatoen for den foregående måned baseret på den aktuelle måned.

    =DateSerial(Year(Now()), Month(Now()), "1").AddDays(-1)  
    
  • Følgende udtryk viser forskellige datoer baseret på en datoparameterværdi, der er valgt af brugeren.

Eksempel på beskrivelse Eksempel
I går =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-1)
For to dage siden =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-2)
For en måned siden =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-1,Day(Parameters!TodaysDate.Value))
For to måneder siden =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-2,Day(Parameters!TodaysDate.Value))
For et år siden =DateSerial(Year(Parameters!TodaysDate.Value)-1,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value))
For to år siden =DateSerial(Year(Parameters!TodaysDate.Value)-2,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value))

Strengfunktioner

  • Kombiner mere end ét felt ved hjælp af sammenkædningsoperatorer og Visual Basic-konstanter. Følgende udtryk returnerer to felter, hver på en separat linje i det samme tekstfelt:

    =Fields!FirstName.Value & vbCrLf & Fields!LastName.Value   
    
  • Formatér datoer og tal i en streng med funktionen Format . I følgende udtryk vises værdierne for parametrene StartDate og EndDate i langt datoformat:

    =Format(Parameters!StartDate.Value, "D") & " through " &  Format(Parameters!EndDate.Value, "D")    
    

    Hvis tekstfeltet kun indeholder en dato eller et tal, skal du bruge egenskaben Format for tekstfeltet til at anvende formatering i stedet for funktionen Format i tekstfeltet.

  • Funktionerne Right, Len og InStr er nyttige til returnering af en understreng, f.eks. trimning af DOMÆNE-brugernavn\ til kun brugernavnet. Følgende udtryk returnerer delen af strengen til højre for en omvendt skråstreg (\) fra en parameter med navnet User:

    =Right(Parameters!User.Value, Len(Parameters!User.Value) - InStr(Parameters!User.Value, "\"))  
    

    Følgende udtryk resulterer i den samme værdi som den forrige ved hjælp af medlemmer af klassen Microsoft .NET Framework xref:System.String i stedet for Visual Basic-funktioner:

    =Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)  
    
  • Vis de valgte værdier fra en parameter med flere værdier. I følgende eksempel bruges funktionen Join til at sammenkæde de valgte værdier for parameteren MySelection til en enkelt streng, der kan angives som et udtryk for værdien af et tekstfelt i et rapportelement:

    = Join(Parameters!MySelection.Value)  
    

    Følgende eksempel gør det samme som i det forrige eksempel og viser en tekststreng før listen over valgte værdier.

    ="Report for " & JOIN(Parameters!MySelection.Value, " & ")  
    
    
  • Funktionerne Regex fra Microsoft .NET Framework xref:System.Text.RegularExpressions er nyttige til at ændre formatet af eksisterende strenge, f.eks. formatering af et telefonnummer. I følgende udtryk bruges funktionen Replace til at ændre formatet af et ticifret telefonnummer i et felt fra "nnn-nnn-nnnnn" til "(nnn) nnn-nnnn":

    =System.Text.RegularExpressions.Regex.Replace(Fields!Phone.Value, "(\d{3})[ -.]*(\d{3})[ -.]*(\d{4})", "($1) $2-$3")  
    

    Bemærk

    Kontrollér, at værdien for Felter! Phone.Value har ingen ekstra mellemrum og er af typen xref:System.String.

Søg

  • Ved at angive et nøglefelt kan du bruge funktionen Lookup til at hente en værdi fra et datasæt for en en til en-relation, f.eks. et nøgleværdipar. I følgende udtryk vises produktnavnet fra et datasæt ("Produkt"), hvor produkt-id'et matcher:

    =Lookup(Fields!PID.Value, Fields!ProductID.Value, Fields.ProductName.Value, "Product")  
    

Opslagssæt

  • Ved at angive et nøglefelt kan du bruge funktionen LookupSet til at hente et værdisæt fra et datasæt for en en til mange-relation. En person kan f.eks. have flere telefonnumre. I følgende eksempel skal du antage, at datasættet PhoneList indeholder et person-id og et telefonnummer i hver række. LookupSet returnerer en matrix af værdier. Følgende udtryk kombinerer returværdierne i en enkelt streng og viser listen over telefonnumre for den person, der er angivet af ContactID:

    =Join(LookupSet(Fields!ContactID.Value, Fields!PersonID.Value, Fields!PhoneNumber.Value, "PhoneList"),",")  
    

Konverteringsfunktioner

Du kan bruge Visual Basic-funktioner til at konvertere et felt fra én datatype til en anden datatype. Konverteringsfunktioner kan bruges til at konvertere standarddatatypen for et felt til den datatype, der skal bruges til beregninger eller til at kombinere tekst.

  • Følgende udtryk konverterer konstanten 500 til typen Decimal for at sammenligne den med datatypen Transact-SQL penge i feltet Værdi for et filterudtryk.

    =CDec(500)  
    
  • I følgende udtryk vises antallet af værdier, der er valgt for parameteren MySelection med flere værdier.

    =CStr(Parameters!MySelection.Count)  
    

Beslutningsfunktioner

  • Funktionen IIF returnerer en af to værdier, afhængigt af om udtrykket er true eller ej. I følgende udtryk bruges funktionen IIF til at returnere en boolesk værdi af True , hvis værdien af LineTotal overstiger 100. Ellers returneres False:

    =IIF(Fields!LineTotal.Value > 100, True, False)  
    
  • Brug flere IIF-funktioner (også kendt som "indlejrede IIF'er ") til at returnere en af tre værdier, afhængigt af værdien af PctComplete. Følgende udtryk kan placeres i fyldfarven i et tekstfelt for at ændre baggrundsfarven, afhængigt af værdien i tekstfeltet.

    =IIF(Fields!PctComplete.Value >= 10, "Green", IIF(Fields!PctComplete.Value >= 1, "Blue", "Red"))  
    

    Værdier, der er større end eller lig med 10, vises med en grøn baggrund, mellem 1 og 9 vises med en blå baggrund, og mindre end 1 vises med en rød baggrund.

  • En anden måde at få den samme funktionalitet på bruger funktionen Switch . Funktionen Switch er nyttig, når der er tre eller flere betingelser at teste. Funktionen Switch returnerer den værdi, der er knyttet til det første udtryk i en serie, der evalueres til sand:

    =Switch(Fields!PctComplete.Value >= 10, "Green", Fields!PctComplete.Value >= 1, "Blue", Fields!PctComplete.Value = 1, "Yellow", Fields!PctComplete.Value <= 0, "Red")  
    

    Værdier, der er større end eller lig med 10, vises med en grøn baggrund, mellem 1 og 9 vises med en blå baggrund, lig med 1 skærm med en gul baggrund, og 0 eller mindre vises med en rød baggrund.

  • Test værdien af feltet ImportantDate , og returner "Red", hvis den er mere end en uge gammel, og "Blue" ellers. Dette udtryk kan bruges til at styre egenskaben Color for et tekstfelt i et rapportelement:

    =IIF(DateDiff("d",Fields!ImportantDate.Value, Now())>7,"Red","Blue")  
    
  • Test værdien af feltet PhoneNumber, og returner "Ingen værdi", hvis den er null (Intet i Visual Basic). Ellers returneres telefonnummerværdien. Dette udtryk kan bruges til at styre værdien af et tekstfelt i et rapportelement.

    =IIF(Fields!PhoneNumber.Value Is Nothing,"No Value",Fields!PhoneNumber.Value)  
    
  • Test værdien af feltet Afdeling, og returner enten et underrapportnavn eller en null-værdi (Intet i Visual Basic). Dette udtryk kan bruges til betingede underrapporter for detaljeadgang.

    =IIF(Fields!Department.Value = "Development", "EmployeeReport", Nothing)  
    
  • Test, om en feltværdi er null. Dette udtryk kan bruges til at styre egenskaben Hidden for et billedrapportelement. I følgende eksempel vises det billede, der er angivet i feltet LargePhoto , kun, hvis værdien af feltet ikke er null.

    =IIF(IsNothing(Fields!LargePhoto.Value),True,False)  
    
  • Funktionen MonthName returnerer en strengværdi, der indeholder navnet på den angivne måned. I følgende eksempel vises NA i feltet Måned, når feltet indeholder værdien 0.

    IIF(Fields!Month.Value=0,"NA",MonthName(IIF(Fields!Month.Value=0,1,Fields!Month.Value)))  
    
    

Rapportfunktioner

I et udtryk kan du føje en reference til yderligere rapportfunktioner, der manipulerer data i en rapport. Dette afsnit indeholder eksempler på to af disse funktioner.

Sum

  • Funktionen Sum kan sammentrække værdierne i en gruppe eller et dataområde. Denne funktion kan være nyttig i sidehovedet eller sidefoden i en gruppe. I følgende udtryk vises summen af data i gruppen Ordre eller dataområdet:

    =Sum(Fields!LineTotal.Value, "Order")  
    
  • Du kan også bruge funktionen Sum til betingede aggregeringsberegninger. Hvis et datasæt f.eks. har et felt med navnet State med de mulige værdier Not Started, Started, Finished, beregner følgende udtryk, når det placeres i en gruppeoverskrift, kun den samlede sum for værdien Afsluttet:

    =Sum(IIF(Fields!State.Value = "Finished", 1, 0))  
    

Rækkenummer

  • Når funktionen RowNumber bruges i et tekstfelt i et dataområde, vises rækkenummeret for hver forekomst af tekstfeltet, hvor udtrykket vises. Denne funktion kan være nyttig til at nummere rækker i en tabel. Det kan også være nyttigt til mere komplekse opgaver, f.eks. at angive sideskift baseret på antallet af rækker. Du kan få flere oplysninger under Sideskift i denne artikel.

    Det område, du angiver for kontrolelementer af typen RowNumber , når omnummerering starter. Nøgleordet Intet angiver, at funktionen begynder at tælle ved den første række i det yderste dataområde. Hvis du vil begynde at tælle i indlejrede dataområder, skal du bruge navnet på dataområdet. Hvis du vil begynde at tælle i en gruppe, skal du bruge navnet på gruppen.

    =RowNumber(Nothing)  
    

Udseendet af rapportdata

Du kan bruge udtryk til at manipulere, hvordan data vises i en rapport. Du kan f.eks. få vist værdierne for to felter i et enkelt tekstfelt, få vist oplysninger om rapporten eller påvirke, hvordan sideskift indsættes i rapporten.

Sidehoveder og sidefødder

Når du designer en rapport, kan du få vist navnet på rapporten og sidetallet i rapportfoden. Det gør du ved at bruge følgende udtryk:

  • Følgende udtryk indeholder navnet på rapporten og den tid, den blev kørt. Den kan placeres i et tekstfelt i rapportfoden eller i rapportens brødtekst. Klokkeslættet er formateret med den Microsoft .NET Framework formateringsstreng til kort dato:

    =Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")  
    
  • Følgende udtryk, der er placeret i et tekstfelt i sidefoden i en rapport, indeholder sidetal og sider i alt i rapporten:

    =Globals.PageNumber & " of " & Globals.TotalPages  
    

I følgende eksempler beskrives det, hvordan du får vist de første og sidste værdier fra en side i sidehovedet på samme måde som på en mappeliste. I eksemplet antages det, at der er et dataområde, der indeholder et tekstfelt med navnet Efternavn.

  • Følgende udtryk, der er placeret i et tekstfelt i venstre side af sidehovedet, indeholder den første værdi i tekstfeltet LastName på siden:

    =First(ReportItems("LastName").Value)  
    
  • Følgende udtryk, der er placeret i et tekstfelt i højre side af sidehovedet, indeholder den sidste værdi i tekstfeltet LastName på siden:

    =Last(ReportItems("LastName").Value)  
    

I følgende eksempel beskrives det, hvordan du får vist en sidetotal. I eksemplet antages det, at der er et dataområde, der indeholder et tekstfelt med navnet Omkostninger.

  • Følgende udtryk, der er placeret i sidehovedet eller sidefoden, indeholder summen af værdierne i tekstfeltet Omkostninger for siden:

    =Sum(ReportItems("Cost").Value)  
    

Bemærk

Du kan kun referere til ét rapportelement pr. udtryk i et sidehoved eller en sidefod. Du kan også referere til navnet på tekstfeltet, men ikke det faktiske dataudtryk i tekstfeltet, i udtryk for sidehoved og sidefod.

Sideskift

I nogle rapporter kan du placere et sideskift i slutningen af et angivet antal rækker i stedet for eller ud over grupper eller rapportelementer. Opret en gruppe, der indeholder de ønskede grupper eller detaljeposter, føj et sideskift til gruppen, og tilføj derefter et gruppeudtryk for at gruppere efter et angivet antal rækker.

  • Når følgende udtryk placeres i gruppeudtrykket, tildeles et tal til hvert sæt på 25 rækker. Når der er defineret et sideskift for gruppen, resulterer dette udtryk i et sideskift hver 25. række.

    =Ceiling(RowNumber(Nothing)/25)  
    

    Hvis du vil tillade brugeren at angive en værdi for antallet af rækker pr. side, skal du oprette en parameter med navnet RowsPerPage og basere gruppeudtrykket på parameteren, som vist i følgende udtryk:

    =Ceiling(RowNumber(Nothing)/Parameters!RowsPerPage.Value)  
    

Egenskaber

Udtryk bruges ikke kun til at vise data i tekstfelter. De kan også bruges til at ændre, hvordan egenskaber anvendes på rapportelementer. Du kan ændre typografioplysninger for et rapportelement eller ændre dets synlighed.

Formatering

  • Når følgende udtryk bruges i egenskaben Color for et tekstfelt, ændres farven på teksten, afhængigt af værdien i feltet Profit :

    =Iif(Fields!Profit.Value < 0, "Red", "Black")  
    

    Du kan også bruge objektvariablen Mig i Visual Basic. Denne variabel er en anden måde at referere til værdien af et tekstfelt på.

    =Iif(Me.Value < 0, "Red", "Black")

  • Når følgende udtryk bruges i egenskaben BackgroundColor for et rapportelement i et dataområde, skiftes baggrundsfarven for hver række mellem lysegrøn og hvid:

    =Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")  
    

    Hvis du bruger et udtryk for et angivet område, skal du muligvis angive datasættet for aggregeringsfunktionen:

    =Iif(RowNumber("Employees") Mod 2, "PaleGreen", "White")  
    

Bemærk

Tilgængelige farver kommer fra optællingen Microsoft .NET Framework KnownColor.

Diagramfarver

Hvis du vil angive farver for et figurdiagram, kan du bruge brugerdefineret kode til at styre den rækkefølge, farver knyttes til datapunktværdier. Dette hjælper dig med at bruge ensartede farver til flere diagrammer, der har de samme kategorigrupper.

Synlighed

Du kan få vist og skjule elementer i en rapport ved hjælp af egenskaberne for synlighed for rapportelementet. I et dataområde, f.eks. en tabel, kan du indledningsvist skjule detaljerækker baseret på værdien i et udtryk.

  • Når følgende udtryk bruges til indledende synlighed af detaljerækker i en gruppe, vises detaljerækkerne for alt salg, der overstiger 90 % i feltet PctQuota :

    =IIF(Fields!PctQuota.Value>.9, False, True)  
    
  • Når følgende udtryk er angivet i egenskaben Hidden for en tabel, vises tabellen kun, hvis den har mere end 12 rækker:

    =IIF(CountRows()>12,false,true)  
    
  • Når følgende udtryk er angivet i egenskaben Hidden for en kolonne, vises kolonnen kun, hvis feltet findes i rapportdatasættet, efter at dataene er hentet fra datakilden:

    =IIF(Fields!Column_1.IsMissing, true, false)  
    

Du kan tilpasse URL-adresser ved hjælp af rapportdata og også betinget styre, om URL-adresser tilføjes som en handling for et tekstfelt.

  • Når følgende udtryk bruges som en handling i et tekstfelt, genereres der en brugerdefineret URL-adresse, der angiver datasætfeltet EmployeeID som en URL-parameter.

    ="https://adventure-works/MyInfo?ID=" & Fields!EmployeeID.Value  
    
  • Følgende udtryk styrer betinget, om der skal tilføjes en URL-adresse i et tekstfelt. Dette udtryk afhænger af en parameter med navnet IncludeURLs , der gør det muligt for en bruger at beslutte, om aktive URL-adresser skal medtages i en rapport. Dette udtryk er angivet som en handling i et tekstfelt. Ved at angive parameteren til Falsk og derefter få vist rapporten kan du eksportere rapporten til Microsoft Excel uden links.

    =IIF(Parameters!IncludeURLs.Value,"https://adventure-works.com/productcatalog",Nothing)  
    

Bemærk

Sideinddelte rapporter i Power BI understøtter ikke brug af JavaScript i et Go To URL-udtryk .

Rapportdata

Udtryk kan bruges til at manipulere de data, der bruges i rapporten. Du kan referere til parametre og andre rapportoplysninger. Du kan endda ændre den forespørgsel, der bruges til at hente data til rapporten.

Parametre

Du kan bruge udtryk i en parameter til at variere standardværdien for parameteren. Du kan f.eks. bruge en parameter til at filtrere data til en bestemt bruger baseret på det bruger-id, der bruges til at køre rapporten.

  • Når følgende udtryk bruges som standardværdi for en parameter, indsamles bruger-id'et for den person, der kører rapporten:

    =User!UserID  
    
  • Hvis du vil referere til en parameter i en forespørgselsparameter, et filterudtryk, et tekstfelt eller et andet område i rapporten, skal du bruge den globale samling Parametre . I dette eksempel antages det, at parameteren hedder Afdeling:

    =Parameters!Department.Value  
    
  • Parametre kan oprettes i en rapport, men angives til skjult. Når rapporten kører på rapportserveren, vises parameteren ikke på værktøjslinjen, og rapportlæseren kan ikke ændre standardværdien. Du kan bruge en skjult parameter, der er angivet til en standardværdi, en brugerdefineret konstant. Du kan bruge denne værdi i et hvilket som helst udtryk, herunder et feltudtryk. Følgende udtryk identificerer det felt, der er angivet af standardparameterværdien for parameteren med navnet ParameterField:

    =Fields(Parameters!ParameterField.Value).Value  
    

Brugerdefineret kode

Du kan bruge brugerdefineret kode, der er integreret i en rapport.

Brug af gruppevariabler til brugerdefineret sammenlægning

Du kan initialisere værdien for en gruppevariabel, der er lokal for et bestemt gruppeområde, og derefter inkludere en reference til variablen i udtryk. En af de måder, du kan bruge en gruppevariabel med brugerdefineret kode på, er ved at implementere en brugerdefineret aggregering.

Undertrykker null- eller nulværdier på kørselstidspunktet

Nogle værdier i et udtryk kan evalueres til null eller udefineret på behandlingstidspunktet for rapporten. Dette kan medføre kørselsfejl, der medfører , at #Error vises i tekstfeltet i stedet for det evaluerede udtryk. Funktionen IIF er særligt følsom over for denne funktionsmåde, fordi hver del af IIF-sætningen i modsætning til en If-Then-Else-sætning evalueres (herunder funktionskald), før den overføres til den rutine, der tester for true eller false. Sætningen =IIF(Fields!Sales.Value is NOTHING, 0, Fields!Sales.Value) genererer #Error i den gengivne rapport, hvis Felter! Sales.Value er INTET.

Hvis du vil undgå denne betingelse, skal du bruge en af følgende strategier:

  • Angiv tælleren til 0 og nævneren til 1, hvis værdien for felt B er 0 eller udefineret. Ellers skal du angive tælleren til værdien for felt A og nævneren til værdien for felt B.

    =IIF(Field!B.Value=0, 0, Field!A.Value / IIF(Field!B.Value =0, 1, Field!B.Value))  
    
  • Brug en brugerdefineret kodefunktion til at returnere værdien for udtrykket. I følgende eksempel returneres den procentvise forskel mellem en aktuel værdi og en tidligere værdi. Dette kan bruges til at beregne forskellen mellem to på hinanden følgende værdier, og den håndterer kantafstanden for den første sammenligning (når der ikke er nogen tidligere værdi) og tilfælde, hvor enten den forrige værdi eller den aktuelle værdi er null (Intet i Visual Basic).

    Public Function GetDeltaPercentage(ByVal PreviousValue, ByVal CurrentValue) As Object  
        If IsNothing(PreviousValue) OR IsNothing(CurrentValue) Then  
            Return Nothing  
        Else if PreviousValue = 0 OR CurrentValue = 0 Then  
            Return Nothing  
        Else   
            Return (CurrentValue - PreviousValue) / CurrentValue  
        End If  
    End Function  
    

    Følgende udtryk viser, hvordan du kalder denne brugerdefinerede kode fra et tekstfelt for objektbeholderen ColumnGroupByYear (gruppe eller dataområde).

    =Code.GetDeltaPercentage(Previous(Sum(Fields!Sales.Value),"ColumnGroupByYear"), Sum(Fields!Sales.Value))  
    

    Denne kode hjælper med at undgå kørselsundtagelser. Du kan nu bruge et udtryk som =IIF(Me.Value < 0, "red", "black") i egenskaben Color for tekstfeltet til betinget visning af tekst baseret på, om værdierne er større end eller mindre end 0.

Næste trin