Príklady výrazov v aplikácii Power BI Zostavovač zostáv
VZŤAHUJE SA NA: Power BI Zostavovač zostáv Power BI Desktop
Výrazy sa v službe Power BI často používajú Zostavovač zostáv stránkovaných zostavách na ovládanie obsahu a vzhľadu zostáv. Výrazy sa píšu v jazyku Microsoft Visual Basic a môžu používať vstavané funkcie, vlastný kód, premenné zostáv a skupín a premenné definované používateľom. Výrazy začínajú znamienkom rovnosti (=).
Tento článok obsahuje príklady výrazov, ktoré možno použiť na bežné úlohy v zostave.
Funkcie Visual Basic: Príklady dátumu, reťazca, konverzie a podmienených funkcií jazyka Visual Basic.
Funkcie zostáv: Príklady agregátov a ďalších funkcií vstavaných zostáv.
Vzhľad údajov zostavy: Príklady na zmenu vzhľadu zostavy.
Vlastnosti: Príklady nastavenia vlastností položky zostavy na ovládanie formátu alebo viditeľnosti.
Parametre: Príklady použitia parametrov vo výraze.
Vlastný kód: Príklady vloženého vlastného kódu.
Ďalšie informácie o jednoduchých a komplexných výrazoch, o tom, kde môžete výrazy použiť a typoch odkazov, ktoré môžete do výrazu zahrnúť, nájdete v téme Výrazy v službe Power BI Zostavovač zostáv.
Funkcie
Mnoho výrazov v zostave obsahuje funkcie. Pomocou týchto funkcií môžete formátovať údaje, používať logiku a získať prístup k metaúdajom zostavy. Môžete písať výrazy, ktoré používajú funkcie z knižnice režimu runtime jazyka Microsoft Visual Basic a z xref:System.Convert
priestorov názvov a xref:System.Math
. Máte možnosť pridávať odkazy na funkcie vo vlastnom kóde. Môžete tiež použiť triedy rozhrania Microsoft.NET Framework vrátane xref:System.Text.RegularExpressions
.
Funkcie jazyka Visual Basic
Funkcie jazyka Visual Basic môžete použiť na manipuláciu s údajmi, ktoré sa zobrazujú v textových poliach alebo sa používajú pre parametre, vlastnosti alebo iné oblasti zostavy. Táto časť obsahuje príklady použitia niektorých týchto funkcií. Ďalšie informácie nájdete na lokalite MSDN v téme Členovia knižnice režimu runtime jazyka Visual Basic.
.NET Framework poskytuje mnoho možností vlastného formátu, napríklad pre konkrétne formáty dátumov. Ďalšie informácie nájdete v téme Typy formátovania.
Matematické funkcie
Funkcia Zaokrúhliť je užitočná na zaokrúhlenie čísel na najbližšie celé číslo. Nasledujúci výraz zaokrúhli 1,3 na 1:
=Round(1.3)
Môžete tiež napísať výraz na zaokrúhlenia násobku, ktorý určíte, podobne ako funkcia MRound v Exceli. Hodnotu vynásobte činiteľom, ktorý vytvára celé číslo, zaokrúhlite číslo a výsledok tým istým činiteľom vydeľte. Ak chcete napríklad zaokrúhliť číslo 1,3 na najbližší násobok čísla 0,2, čo je 1,4, použite nasledujúci výraz:
=Round(1.3*5)/5
Dátumové funkcie
Funkcia Today (Dnes ) poskytuje aktuálny dátum. Tento výraz možno použiť v textovom poli na zobrazenie dátumu v zostave alebo v parametri na filtrovanie údajov podľa aktuálneho dátumu.
=Today()
Na vytiahenie konkrétnej časti dátumu použite funkciu DateInterval. Tu je niekoľko platných parametrov funkcie DateInterval :
- DateInterval.Second
- DateInterval.Minute
- DateInterval.Hour
- DateInterval.Weekday
- DateInterval.Day
- DateInterval.DayOfYear
- DateInterval.WeekOfYear
- DateInterval.Month
- DateInterval.Quarter
- DateInterval.Year
Napríklad tento výraz zobrazí posuvný počet týždňov v aktuálnom roku pre dnešný dátum:
=DatePart(DateInterval.WeekOfYear, today())
Funkcia DateAdd je užitočná na dodávanie rozsahov dátumov založených na jednom parametri. Nasledujúci výraz poskytuje dátum šesť mesiacov od dátumu z parametra StartDate.
=DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
Funkcia Year zobrazí pre konkrétny dátum rok. Môžete zoskupiť dátumy alebo zobraziť rok ako označenie množiny dátumov. Tento výraz uvádza rok danej skupiny dátumov predajných objednávok. Na prácu s dátumami možno použiť aj funkciu Month a ďalšie funkcie. Ďalšie informácie nájdete v dokumentácii k jazyku Visual Basic.
=Year(Fields!OrderDate.Value)
Kombinovanie funkcií vo výraze môžete prispôsobiť formát. Nasledujúci výraz zmení formát dátumu z formátu mesiac-deň-rok na mesiac-týždeň-číslo týždňa. Zmeňte napríklad hodnotu 12/18/2022 na 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
Ak sa tento výraz používa ako vypočítavané pole v množine údajov, môžete v grafe použiť na agregáciu hodnôt v rámci týždňa v rámci každého mesiaca.
Nasledujúci výraz upravuje formát hodnoty SellStartDate na MMM-rr. Pole SellStartDate je dátového typu Datetime.
=FORMAT(Fields!SellStartDate.Value, "MMM-yy")
Nasledujúci výraz upravuje formát hodnoty SellStartDate na dd/MM/rrrr. Pole SellStartDate je dátového typu Datetime.
=FORMAT(Fields!SellStartDate.Value, "dd/MM/yyyy")
Funkcia CDate skonvertuje hodnotu na dátum. Funkcia Now vráti dátumovú hodnotu obsahujúcu aktuálny dátum a čas podľa vášho systému. Funkcia DateDiff vráti dlhúhodnotu určujúcu počet časových intervalov medzi dvomi dátumami.
Nasledujúci príklad zobrazuje počiatočný dátum aktuálneho roka
=DateAdd(DateInterval.Year,DateDiff(DateInterval.Year,CDate("01/01/1900"),Now()),CDate("01/01/1900"))
Nasledujúci príklad zobrazuje počiatočný dátum predchádzajúceho mesiaca na základe aktuálneho mesiaca.
=DateAdd(DateInterval.Month,DateDiff(DateInterval.Month,CDate("01/01/1900"),Now())-1,CDate("01/01/1900"))
Nasledujúci výraz vytvára ročné intervaly medzi hodnotami SellStartDate a LastReceiptDate. Tieto polia sa nachádzajú v dvoch rôznych množinách údajov, DataSet1 a DataSet2.
=DATEDIFF("yyyy", First(Fields!SellStartDate.Value, "DataSet1"), First(Fields!LastReceiptDate.Value, "DataSet2"))
Funkcia DatePart vráti celočíselnúhodnotu obsahujúcu zadaný komponent danej hodnoty dátumu. Nasledujúci výraz vráti rok pre prvú hodnotu SellStartDate v množine údajov DataSet1. Rozsah množiny údajov je zadaný, pretože v zostave existuje viacero množín údajov.
=Datepart("yyyy", First(Fields!SellStartDate.Value, "DataSet1"))
Funkcia DateSerial vráti hodnotu typu Date predstavujúcu zadaný rok, mesiac a deň s informáciami o čase nastavenými na polnoc. Nasledujúci príklad zobrazuje koncový dátum mesiaca predchádzajúceho aktuálnemu mesiacu.
=DateSerial(Year(Now()), Month(Now()), "1").AddDays(-1)
Nasledujúce výrazy zobrazujú rôzne dátumy na základe hodnoty dátumového parametra vybraného používateľom.
Popis príkladu | Príklad |
---|---|
Uskutočnená včera o | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-1) |
Pred dvoma dňami | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-2) |
Pred mesiacom | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-1,Day(Parameters!TodaysDate.Value)) |
Pred dvoma mesiacmi | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-2,Day(Parameters!TodaysDate.Value)) |
Pred rokom | =DateSerial(Year(Parameters!TodaysDate.Value)-1,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)) |
Pred dvoma rokmi | =DateSerial(Year(Parameters!TodaysDate.Value)-2,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)) |
Funkcie reťazca
Pomocou operátorov reťazenia a konštátov jazyka Visual Basic môžete kombinovať viac ako jedno pole. Nasledujúci výraz vráti dve polia, každé v samostatnom riadku toho istého textového poľa:
=Fields!FirstName.Value & vbCrLf & Fields!LastName.Value
Pomocou funkcie Format môžete formátovať dátumy a čísla v reťazci. Nasledujúci výraz zobrazuje hodnoty parametrov StartDate a EndDate v dlhom formáte dátumu:
=Format(Parameters!StartDate.Value, "D") & " through " & Format(Parameters!EndDate.Value, "D")
Ak textové pole obsahuje iba dátum alebo číslo, na použitie formátovania namiesto funkcie Format v rámci textového poľa použite vlastnosť Format.
Funkcie Right, Len a InStr sú užitočné na vrátenie podreťazca, napríklad orezanie mena používateľa DOMÉNY\iba na meno používateľa. Nasledujúci výraz vráti časť reťazca napravo od znaku spätnej lomky (\) z parametra s názvom User:
=Right(Parameters!User.Value, Len(Parameters!User.Value) - InStr(Parameters!User.Value, "\"))
Výsledkom nasledujúceho výrazu je rovnaká hodnota ako pri predchádzajúcom výraze, no namiesto funkcií jazyka Visual Basic používa členov triedy rozhrania .NET Framework
xref:System.String
:=Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)
Zobrazenie vybraných hodnôt z multihodnotového parametra. Nasledujúci príklad používa funkciu Join na zreťazenie vybraných hodnôt parametra MySelection do jedného reťazca, ktorý je možné nastaviť ako výraz hodnoty textového poľa v položke zostavy:
= Join(Parameters!MySelection.Value)
Nasledujúci príklad má rovnakú funkciu ako predchádzajúci príklad a zobrazuje textový reťazec pred zoznamom vybratých hodnôt.
="Report for " & JOIN(Parameters!MySelection.Value, " & ")
Funkcie Regex z rozhrania .NET Framework
xref:System.Text.RegularExpressions
sú užitočné na zmenu formátu existujúcich reťazcov, napríklad na zmenu formátu telefónneho čísla. Nasledujúci výraz používa funkciu Replace , čím mení formát desaťmiestneho telefónneho čísla v poli z formátu "nnn-nnn-nnnn" na "(nnn) nnn-nnnn":=System.Text.RegularExpressions.Regex.Replace(Fields!Phone.Value, "(\d{3})[ -.]*(\d{3})[ -.]*(\d{4})", "($1) $2-$3")
Poznámka
Skontrolujte, či hodnota pre Fields!Telefón. Funkcia Value neobsahuje žiadne nadbytočné medzery a je typu
xref:System.String
.
Vyhľadávanie
Pri vzťahu 1 na 1 môžete zadaním poľa kľúča použiť funkciu Lookup na načítanie hodnoty z množiny údajov, napríklad pri dvojici kľúč-hodnota. Nasledujúci výraz priradí k identifikátoru produktu, aby sa zhodoval s názvom produktu z množiny údajov ("Produkt"), čím sa môže zhodovať:
=Lookup(Fields!PID.Value, Fields!ProductID.Value, Fields.ProductName.Value, "Product")
LookupSet
Pri vzťahu 1 na mnoho môžete zadaním poľa kľúča použiť funkciu LookupSet na načítanie množiny hodnôt z množiny údajov. Osoba môže mať napríklad viacero telefónnych čísel. V nasledujúcom príklade predpokladajme, že množina údajov Telefón List obsahuje v každom riadku identifikátor osoby a telefónne číslo. Funkcia LookupSet vráti pole hodnôt. Nasledujúci výraz kombinuje vrátené hodnoty do jedného reťazca a zobrazuje zoznam telefónnych čísel osoby určenej hodnotou ContactID:
=Join(LookupSet(Fields!ContactID.Value, Fields!PersonID.Value, Fields!PhoneNumber.Value, "PhoneList"),",")
Funkcie konverzie
Funkcie jazyka Visual Basic môžete použiť na konverziu poľa z jedného typu údajov na iný typ údajov. Funkcie konverzie možno použiť na konvertovanie predvoleného typu údajov poľa na typ údajov potrebný na výpočty alebo na kombinovanie textu.
Nasledujúci výraz konvertuje konštantu 500 na typ Desatinné číslo, aby ho výraz filtra mohol porovnať s peňažným typom údajov Transact-SQL v poli Value.
=CDec(500)
Nasledujúci výraz zobrazuje počet hodnôt vybratých multihodnotovým parametrom MySelection.
=CStr(Parameters!MySelection.Count)
Rozhodovacie funkcie
Funkcia IIF vráti jednu z dvoch hodnôt podľa toho, či je výraz true alebo nie. Nasledujúci výraz používa funkciu IIF na vrátenie booleovskej hodnoty True , ak hodnota poľa LineTotal prekročí 100. V opačnom prípade vráti hodnotu False:
=IIF(Fields!LineTotal.Value > 100, True, False)
Použite viaceré funkcie IIF (známe aj ako "vnorené IIFs" na vrátenie jednej z troch hodnôt v závislosti od hodnoty PctComplete. Nasledujúci výraz možno umiestniť do poľa farby výplne textu, aby sa v závislosti od hodnoty v textovom poli zmenila farba pozadia.
=IIF(Fields!PctComplete.Value >= 10, "Green", IIF(Fields!PctComplete.Value >= 1, "Blue", "Red"))
Hodnoty väčšie ako alebo rovnajúce sa 10 sa zobrazujú so zeleným pozadím, hodnoty v rozmedzí 1 – 9 s modrým pozadím a hodnoty menšie ako 1 s červeným pozadím.
Iný spôsob s rovnakou funkciou používa funkciu Switch . Funkcia Switch je užitočná, ak sa majú otestovať tri alebo viac podmienok. Funkcia Switch vráti hodnotu priradenú prvému výrazu v rade, ktorý vyhodnotí ako pravdivý (hodnota true):
=Switch(Fields!PctComplete.Value >= 10, "Green", Fields!PctComplete.Value >= 1, "Blue", Fields!PctComplete.Value = 1, "Yellow", Fields!PctComplete.Value <= 0, "Red")
Hodnoty väčšie ako alebo rovnajúce sa 10 sa zobrazujú so zeleným pozadím, hodnoty v rozmedzí 1 – 9 s modrým, hodnoty rovné 1 so žltým a hodnoty 0 alebo menšie sa zobrazia s červeným pozadím.
Testovanie hodnoty poľa ImportantDate a vrátenie hodnoty Red (Červená), ak je stará viac ako týždeň, v opačnom prípade hodnota Blue (Modrá). Tento výraz možno použiť na ovládanie vlastnosti Color (Farba) textového poľa v položke zostavy:
=IIF(DateDiff("d",Fields!ImportantDate.Value, Now())>7,"Red","Blue")
Testovanie hodnoty poľa Telefón Číslo a vrátenie hodnoty Bez hodnoty, ak má hodnotu null (nič v jazyku Visual Basic); v opačnom prípade vráti hodnotu telefónneho čísla. Tento výraz možno použiť na ovládanie hodnoty textového poľa v položke zostavy.
=IIF(Fields!PhoneNumber.Value Is Nothing,"No Value",Fields!PhoneNumber.Value)
Testovanie hodnoty poľa Department (Oddelenie ) a vrátenie názvu čiastkovej zostavy alebo hodnoty null (nič v jazyku Visual Basic). Tento výraz možno použiť na podmienené čiastkové zostavy podrobnej analýzy.
=IIF(Fields!Department.Value = "Development", "EmployeeReport", Nothing)
Testovanie, či hodnota poľa je null. Tento výraz možno použiť na ovládanie vlastnosti Hidden (Skryté ) obrázkovej položky zostavy. V nasledujúcom príklade sa obrázok uvedený v poli LargePhoto zobrazí len vtedy, ak hodnota poľa nie je null.
=IIF(IsNothing(Fields!LargePhoto.Value),True,False)
Funkcia MonthName vráti hodnotu reťazca obsahujúcu názov zadaného mesiaca. Nasledujúci príklad zobrazuje NA v poli Month (Mesiac), keď pole obsahuje hodnotu 0.
IIF(Fields!Month.Value=0,"NA",MonthName(IIF(Fields!Month.Value=0,1,Fields!Month.Value)))
Funkcie zostáv
Vo výraze môžete pridať odkaz na ďalšie funkcie zostáv, ktoré pracujú s údajmi v zostave. Táto časť obsahuje príklady dvoch z týchto funkcií.
Sum
Funkcia Sum dokáže sčítať hodnoty v skupine alebo oblasti údajov. Táto funkcia môže byť užitočná v hlavičke alebo päte skupiny. Nasledujúci výraz zobrazí súčet údajov v skupine alebo údajovej oblasti Order (Objednávka):
=Sum(Fields!LineTotal.Value, "Order")
Funkciu Sum môžete použiť aj na výpočty podmienených agregátov. Ak má napríklad množina údajov pole s názvom State (Stav) s možnými hodnotami Not Started (Nezačatá), Started (Začatá), Finished (Dokončené), nasledujúci výraz po umiestnení do hlavičky skupiny vypočíta agregovaný súčet iba pre hodnotu Finished (Dokončené):
=Sum(IIF(Fields!State.Value = "Finished", 1, 0))
RowNumber (Číslo Riadka)
Funkcia RowNumber zobrazí po použití v textovom poli v oblasti údajov číslo riadka každej inštancie textového poľa, v ktorom sa výraz zobrazí. Táto funkcia môže byť užitočná pri čísloní riadkov v tabuľke. Môže byť užitočný aj pri zložitejších úlohách, napríklad pri vytváraní zlomov strán na základe počtu riadkov. Ďalšie informácie nájdete v téme Zlomy strán v tomto článku.
Rozsah zadaný pre RowNumber ovláda začiatok číslovania. Kľúčové slovo Nothing (nič ) označuje, že funkcia začne počítať v prvom riadku najkrajnejšej oblasti údajov. Ak chcete začať počítať vo vnorených oblastiach údajov, použite názov oblasti údajov. Ak chcete začať počítať v skupine, použite názov skupiny.
=RowNumber(Nothing)
Vzhľad údajov zostavy
Pomocou výrazov môžete upraviť spôsob zobrazenia údajov v zostave. Môžete napríklad zobraziť hodnoty dvoch polí v jednom textovom poli, zobraziť informácie o zostave alebo ovplyvniť, ako sa v zostave vložia zlomy strán.
Hlavičky a päty strán
Pri navrhovaní zostavy môžete v päte zostavy zobraziť názov zostavy a číslo strany. Ak to chcete urobiť, môžete použiť nasledujúce výrazy:
Nasledujúci výraz poskytuje názov zostavy a čas jej spustenia. Môže byť umiestnený v textovom poli v päte zostavy alebo v tele zostavy. Čas je naformátovaný formátovacím reťazcom rozhrania .NET Framework pre krátky dátum:
=Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
Nasledujúci výraz poskytuje po umiestnení do textového poľa v päte zostavy číslo strany a celkový počet strán zostavy:
=Globals.PageNumber & " of " & Globals.TotalPages
Nasledujúce príklady opisujú, ako v hlavičke strany zobraziť prvú a poslednú hodnotu zo strany, podobne ako sa uvádzajú výpisy adresára. V príklade sa predpokladá, že oblasť údajov obsahuje textové pole s názvom LastName.
Nasledujúci výraz poskytuje po umiestnení do textového poľa na ľavej strane hlavičky stránky prvú hodnotu textového poľa LastName na stránke:
=First(ReportItems("LastName").Value)
Nasledujúci výraz poskytuje po umiestnení do textového poľa na pravej strane hlavičky stránky poslednú hodnotu textového poľa LastName na stránke:
=Last(ReportItems("LastName").Value)
Nasledujúci príklad popisuje spôsob zobrazenia súčtu strany. V príklade sa predpokladá, že oblasť údajov obsahuje textové pole s názvom Cost ( Cena).
Nasledujúci výraz poskytuje po umiestnení do hlavičky alebo päty stránky súčet hodnôt v textovom poli Náklady na stránke:
=Sum(ReportItems("Cost").Value)
Poznámka
V hlavičke alebo päte stránky môžete odkazovať len na jednu položku zostavy na výraz. Vo výrazoch v hlavičkách a pätách stránky môžete odkazovať aj na názov textového poľa, ale nie na skutočný údajový výraz v textovom poli.
Zlomy
V niektorých zostavách môžete umiestniť zlom strany na koniec zadaného počtu riadkov namiesto zlomov riadkov (alebo navyše) za skupiny alebo položky zostavy. Vytvorte skupinu obsahujúcu požadované skupiny alebo podrobné záznamy, pridajte do skupiny zlom strany a potom pridajte skupinový výraz na zoskupenie podľa zadaného počtu riadkov.
Nasledujúci výraz priradí po umiestnení do skupinového výrazu každej množine 25 riadkov číslo. Keď je pre skupinu definovaný zlom strany, tento výraz spôsobí, že vždy po 25 riadkoch nasleduje zlom strany.
=Ceiling(RowNumber(Nothing)/25)
Ak chcete používateľom povoliť nastavovať hodnoty počtu riadkov na stranu, vytvorte parameter s názvom RowsPerPage a založiť skupinový výraz na parametri, ako je to znázornené v nasledujúcom výraze:
=Ceiling(RowNumber(Nothing)/Parameters!RowsPerPage.Value)
Vlastnosti
Výrazy sa nepoužívajú iba na zobrazenie údajov v textových poliach. Môžu sa tiež použiť na zmenu používania vlastností na položky zostavy. Môžete zmeniť informácie o štýle položky zostavy alebo zmeniť jej viditeľnosť.
Formátovanie
Nasledujúci výraz zmení po použití vo vlastnosti Color (Farba) textového poľa farbu textu v závislosti od hodnoty poľa Profit (Zisk ):
=Iif(Fields!Profit.Value < 0, "Red", "Black")
Môžete tiež použiť premennú objektu jazyka Visual Basic Me. Je to ďalší spôsob odkazovania na hodnotu textového poľa.
=Iif(Me.Value < 0, "Red", "Black")
Nasledujúci výraz zmení po použití vo vlastnosti BackgroundColor (farba pozadia) položky zostavy farbu pozadia každého riadka striedavo na bledozelenú a bielu:
=Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")
Ak pre zadaný rozsah používate výraz, pre agregačnú funkciu možno budete musieť uviesť množinu údajov:
=Iif(RowNumber("Employees") Mod 2, "PaleGreen", "White")
Poznámka
Dostupné farby pochádzajú z enumerácie KnownColor rozhrania .NET Framework.
Farby grafu
Ak chcete určiť farby tvarového grafu, môžete použiť vlastný kód na ovládanie poradia mapovania farieb hodnotám údajových bodov. Uľahčuje to konzistentné používanie farieb vo viacerých grafoch obsahujúcich rovnaké kategórie skupín.
Visibility
Pomocou vlastností viditeľnosti položky zostavy môžete zobraziť a skryť položky v zostave. V oblasti údajov, ako je napríklad tabuľka, môžete na začiatku skryť riadky s podrobnosťami na základe hodnoty vo výraze.
Nasledujúci výraz, po prvotnom použití na viditeľnosť riadkov s podrobnosťami v skupine, zobrazí riadky s podrobnosťami všetkých predajov prekračujúcich 90 percent v poli PctQuota :
=IIF(Fields!PctQuota.Value>.9, False, True)
Ak je nasledujúci výraz nastavený vo vlastnosti Hidden (Skryté ) tabuľky, tak zobrazí tabuľku iba vtedy, ak má tabuľka viac ako 12 riadkov:
=IIF(CountRows()>12,false,true)
Ak je nasledujúci výraz nastavený vo vlastnosti Hidden (Skryté ) stĺpca, stĺpec sa zobrazí iba ak pole existuje v množine údajov zostavy po načítaní údajov zo zdroja údajov:
=IIF(Fields!Column_1.IsMissing, true, false)
Adresy url
Url adresy môžete prispôsobiť pomocou údajov zostavy a tiež podmienene ovládať, či sa adresy URL pridávajú ako akcia textového poľa.
Nasledujúci výraz generuje pri použití ako akcia textového poľa prispôsobenú URL adresu, ktorá určuje pole množiny údajov EmployeeID ako parameter adresy URL.
="https://adventure-works/MyInfo?ID=" & Fields!EmployeeID.Value
Nasledujúci výraz podmienene určuje, či sa má do textového poľa pridať URL adresa. Tento výraz závisí od parametra s názvom IncludeURLs , ktorý umožňuje používateľovi rozhodnúť sa, či do zostavy zahrnúť aktívne adresy URL. Tento výraz je nastavený ako akcia textového poľa. Nastavením parametra na hodnotu False (nepravdivý) a následným zobrazením zostavy môžete zostavu exportovať do Microsoft Excelu bez hypertextových prepojení.
=IIF(Parameters!IncludeURLs.Value,"https://adventure-works.com/productcatalog",Nothing)
Poznámka
Stránkované zostavy služby Power BI nepodporjú používanie jazyka JavaScript vo výraze Prejsť na URL adresu .
Údaje zostavy
Výrazy možno použiť na manipuláciu s údajmi použitými v zostave. Môžete odkazovať na parametre a iné informácie zostavy. Môžete dokonca zmeniť dotaz používaný na načítanie údajov pre zostavu.
Parametre
Výrazy môžete použiť v parametri na zmenu predvolenej hodnoty parametra. Parameter môžete napríklad použiť na filtrovanie údajov pre konkrétneho používateľa na základe ID používateľa, ktoré sa používa na spustenie zostavy.
Nasledujúci výraz zbiera pri použití ako predvolená hodnota parametra ID používateľa spúšťaného zostavou:
=User!UserID
Ak chcete odkazovať na parameter v parametri dotazu, výraze filtra, textovom poli alebo inej oblasti zostavy, použite globálnu kolekciu Parametre . Tento príklad predpokladá, že parameter sa nazýva Department:
=Parameters!Department.Value
Parametre je možné vytvoriť v zostave, ale môžu byť nastavené na skryté. Keď je zostava spustená na serveri zostáv, parameter sa nezobrazuje na paneli s nástrojmi a čítačka zostavy nemôže zmeniť predvolenú hodnotu. Môžete použiť skrytý parameter nastavený na predvolenú hodnotu vlastnej konštanty. Túto hodnotu môžete použiť v ľubovoľnom výraze vrátane poľa výrazu. Nasledujúci výraz identifikuje pole zadané predvolenou hodnotou parametra s názvom ParameterField:
=Fields(Parameters!ParameterField.Value).Value
Vlastný kód
Môžete použiť vlastný kód vložený do zostavy.
Používanie skupinových premenných na vlastné agregácie
Môžete inicializovať hodnotu skupinovej premennej miestnej pre konkrétny rozsah skupiny a potom odkazovať na túto premennú vo výrazoch. Jedným zo spôsobov, ktorým môžete použiť skupinovú premennú s vlastným kódom, je implementácia vlastnej agregácie.
Potlačenie hodnoty null alebo nulových hodnôt v čase spustenia
Niektoré hodnoty vo výraze môžu byť v čase spracovania zostavy vyhodnotené ako hodnoty null alebo ako nedefinované. Môže to spôsobiť chyby spustenia, ktoré #Error budú zobrazovať v textovom poli namiesto hodnoteného výrazu. Funkcia IIF je na toto správanie mimoriadne citlivá, pretože na rozdiel od vyhlásenia If-Then-Else sa hodnotí každá časť vyhlásenia IIF (vrátane volania funkcií) a potom sa posúva do rutiny testujúcich, či je hodnota true alebo false. =IIF(Fields!Sales.Value is NOTHING, 0, Fields!Sales.Value)
Príkaz vygeneruje #Error vo vykreslenej zostave v prípade, že polia! Sales.Value je NOTHING.
Ak sa chcete tejto podmienke vyhnúť, použite jednu z nasledujúcich stratégií:
Ak je hodnota poľa B 0 alebo nedefinovaná, nastavte číslovač na 0 a menovateľ na 1; V opačnom prípade nastavte číslovač na hodnotu poľa A a menovateľ na hodnotu poľa B.
=IIF(Field!B.Value=0, 0, Field!A.Value / IIF(Field!B.Value =0, 1, Field!B.Value))
Na vrátenie hodnoty výrazu použite funkciu vlastného kódu. Nasledujúci príklad vráti percentuálny rozdiel medzi aktuálnou hodnotou a predchádzajúcou hodnotou. Túto funkciu môžete použiť na výpočet rozdielu medzi akýmikoľvek dvomi po sebe nasledujúcimi hodnotami a spracúva okrajovým prípadom prvého porovnania (keď nie je žiadna predchádzajúca hodnota) a prípadmi, keď je buď predchádzajúca hodnota alebo aktuálna hodnota null (nič v jazyku 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
Nasledujúci výraz ukazuje, ako pre kontajner ColumnGroupByYear (oblasť údajov alebo skupina) volať tento vlastný kód z textového poľa.
=Code.GetDeltaPercentage(Previous(Sum(Fields!Sales.Value),"ColumnGroupByYear"), Sum(Fields!Sales.Value))
Tento kód pomáha vyhnúť sa výnimkám spustenia. Teraz môžete použiť výraz ako
=IIF(Me.Value < 0, "red", "black")
vo vlastnosti Color (Farba ) textového poľa na podmienečné zobrazenie textu podľa toho, či sú hodnoty väčšie alebo menšie ako 0.