Power BI:n raportin muodostimen lauseke-esimerkit
KOSKEE: Power BI Report Builder Power BI Desktop
Lausekkeita käytetään usein Power BI:n raportin muodostimen sivutetuissa raporteissa sisällön ja raportin ulkoasun hallintaan. Lausekkeet kirjoitetaan Microsoft Visual Basicilla, ja niissä voidaan käyttää sisäisiä funktioita, mukautettua koodia, raportti- ja ryhmämuuttujia sekä käyttäjän määrittämiä muuttujia. Lausekkeet alkavat yhtäläisyysmerkillä (=).
Tässä artikkelissa annetaan esimerkkejä lausekkeista, joita voidaan käyttää raportin yleisissä tehtävissä.
Visual Basic -funktiot: Esimerkkejä päivämäärä-, merkkijono-, muunto- ja ehdollisista Visual Basic -funktioista.
Raporttifunktiot: Esimerkkejä koosteita ja muita sisäisiä raporttifunktioita varten.
Raporttitietojen ulkoasu: Esimerkkejä raportin ulkoasun muuttamisesta.
Ominaisuudet: Esimerkkejä raporttikohteen muoto- tai näkyvyysominaisuuksien määrittämisestä.
Parametrit: Esimerkkejä parametrien käytöstä lausekkeessa.
Mukautettu koodi: Esimerkkejä upotetusta mukautetusta koodista.
Jos haluat lisätietoja yksinkertaisista ja monimutkaisista lausekkeista, missä voit käyttää lausekkeita ja minkä tyyppisiä viittauksia voit sisällyttää lausekkeeseen, katso Lausekkeet Power BI:n raportin muodostimessa.
Funktiot
Monet raportin lausekkeet sisältävät funktioita. Voit muotoilla tietoja, soveltaa logiikkaa ja käyttää raportin metatietoja näiden funktioiden avulla. Voit kirjoittaa lausekkeita, joissa käytetään Microsoft Visual Basic -suorituspalvelukirjaston ja - xref:System.Convert
xref:System.Math
nimitilojen funktioita. Voit lisätä viittauksia funktioihin mukautetulla koodilla. Voit käyttää myös Microsoft .NET Framework luokkia, kuten xref:System.Text.RegularExpressions
.
Visual Basic -funktiot
Visual Basic -funktioiden avulla voit käsitellä tietoja, jotka näytetään tekstiruuduissa tai joita käytetään parametreissa, ominaisuuksissa tai raportin muissa alueissa. Tässä osiossa on esimerkkejä joistain näistä funktioista. Lisätietoja on kohdassa Visual Basicin suorituksenaikaisen kirjaston jäsenet MSDN:ssä.
.NET Framework tarjoaa monia mukautettuja muotoiluasetuksia, esimerkiksi tietyt päivämäärämuodot. Lisätietoja on artikkelissa Muotoilutyypit.
Matemaattiset funktiot
Round-funktion avulla voit pyöristää luvut lähimpään kokonaislukuun. Seuraava lauseke pyöristää 1,3:n 1:ksi:
=Round(1.3)
Voit myös kirjoittaa lausekkeen, joka pyöristää arvon määrittämäksesi monikertaan Excelin MRound-funktion tapaan. Kerro arvo kertoimella, joka luo kokonaisluvun, pyöristä luku ja jaa sitten samalla kertoimella. Jos esimerkiksi haluat pyöristää 1,3:n arvon 0,2 lähimpään monikertaan, joka on 1,4, käytä seuraavaa lauseketta:
=Round(1.3*5)/5
Päivämääräfunktiot
Today-funktio antaa nykyisen päivämäärän. Tätä lauseketta voidaan käyttää tekstiruudussa näyttämään raportin päivämäärä tai parametrissa suodattamaan tiedot nykyisen päivämäärän perusteella.
=Today()
DateInterval-funktiolla voit eristää tietyn päivämäärän osan. Seuraavassa on joitakin kelvollisia DateInterval-parametreja :
- DateInterval.Second
- DateInterval.Minute
- DateInterval.Hour
- DateInterval.Weekday
- DateInterval.Day
- DateInterval.DayOfYear
- DateInterval.WeekOfYear
- DateInterval.Month
- DateInterval.Quarter
- DateInterval.Year
Esimerkiksi tämä lauseke näyttää tämän päivän päivämäärän viikonnumeron kuluvana vuonna:
=DatePart(DateInterval.WeekOfYear, today())
DateAdd-funktiolla voidaan antaa useita yksittäiseen parametriin perustuvia päivämääriä. Seuraava lauseke antaa päivämäärän, joka on kuuden kuukauden päässä StartDate-parametrin päivämäärästä.
=DateAdd(DateInterval.Month, 6, Parameters!StartDate.Value)
Year-funktio näyttää tietyn päivämäärän vuoden. Voit ryhmitellä päivämääriä yhteen tai näyttää vuoden päivämääräjoukon otsikkona. Tämä lauseke antaa tietyn myyntitilauspäivämääräryhmän vuoden. Month-funktiota ja muita funktioita voidaan käyttää myös päivämäärien muokkaamiseen. Katso lisätietoja Visual Basic -dokumentaatiosta.
=Year(Fields!OrderDate.Value)
Voit mukauttaa muotoa yhdistämällä lausekkeen funktioita. Seuraava lauseke muuttaa kuukausi-päivä-vuosi-päivämäärämuodon kuukauden viikko-viikon numero -muotoon. Voit esimerkiksi muuttaa 18.12.2022 tekstiksi "Joulukuun viikko 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
Kun tätä lauseketta käytetään tietojoukossa laskettuna kenttänä, voit koostaa tämän lausekkeen avulla arvot kunkin kuukauden viikon mukaan.
Seuraava lauseke muotoilee SellStartDate-arvon muotoon MMM-yy. SellStartDate-kenttä on päivämäärä/aika-tietotyyppi.
=FORMAT(Fields!SellStartDate.Value, "MMM-yy")
Seuraava lauseke muotoilee SellStartDate-arvon muotoon pp/KK/vv. SellStartDate-kenttä on päivämäärä/aika-tietotyyppi.
=FORMAT(Fields!SellStartDate.Value, "dd/MM/yyyy")
CDate-funktio muuntaa arvon päivämääräksi. Now-funktio palauttaa päivämääräarvon, joka sisältää järjestelmän senhetkisen päivämäärän ja ajan. DateDiff palauttaa Long-arvon, joka määrittää kahden päivämääräarvon välisten aikavälien määrän.
Seuraavassa esimerkissä näytetään nykyisen vuoden alkamispäivämäärä
=DateAdd(DateInterval.Year,DateDiff(DateInterval.Year,CDate("01/01/1900"),Now()),CDate("01/01/1900"))
Seuraavassa esimerkissä näytetään edellisen kuukauden alkamispäivämäärä kuluvan kuukauden mukaan.
=DateAdd(DateInterval.Month,DateDiff(DateInterval.Month,CDate("01/01/1900"),Now())-1,CDate("01/01/1900"))
Seuraava lauseke luo vuosien välein SellStartDate- ja LastReceiptDate-arvojen välillä. Nämä kentät ovat kahdessa eri tietojoukossa, DataSet1 ja DataSet2.
=DATEDIFF("yyyy", First(Fields!SellStartDate.Value, "DataSet1"), First(Fields!LastReceiptDate.Value, "DataSet2"))
DatePart-funktio palauttaa kokonaislukuarvon, joka sisältää määritetyn osan annetusta Päivämäärä-arvosta. Seuraava lauseke palauttaa DataSet1-tietojoukon SellStartDate-funktion ensimmäisen arvon vuoden. Tietojoukon vaikutusalue on määritetty, koska raportissa on useita tietojoukkoja.
=Datepart("yyyy", First(Fields!SellStartDate.Value, "DataSet1"))
DateSerial-funktio palauttaa päivämääräarvon, joka edustaa määritettyä vuotta, kuukautta ja päivää. Kellonajaksi määritetään keskiyö. Seuraavassa esimerkissä näytetään edellisen kuukauden päättymispäivämäärä kuluvan kuukauden mukaan.
=DateSerial(Year(Now()), Month(Now()), "1").AddDays(-1)
Seuraavat lausekkeet näyttävät eri päivämääriä käyttäjän valitseman parametriarvon perusteella.
Esimerkkikuvaus | Esimerkki |
---|---|
Eilen | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-1) |
Kaksi päivää sitten | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)-2) |
Kuukausi sitten | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-1,Day(Parameters!TodaysDate.Value)) |
Kaksi kuukautta sitten | =DateSerial(Year(Parameters!TodaysDate.Value),Month(Parameters!TodaysDate.Value)-2,Day(Parameters!TodaysDate.Value)) |
Vuosi sitten | =DateSerial(Year(Parameters!TodaysDate.Value)-1,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)) |
Kaksi vuotta sitten | =DateSerial(Year(Parameters!TodaysDate.Value)-2,Month(Parameters!TodaysDate.Value),Day(Parameters!TodaysDate.Value)) |
Merkkijonofunktiot
Yhdistä useita kenttiä ketjutusoperaattoreilla ja Visual Basic -vakioilla. Seuraava lauseke palauttaa kaksi kenttää, jotka ovat samassa tekstiruudussa eri rivillä:
=Fields!FirstName.Value & vbCrLf & Fields!LastName.Value
Muotoile merkkijonon päivämääriä ja numeroita Format-funktiolla. Seuraava lauseke näyttää StartDate- ja EndDate-parametrien arvot pitkässä päivämäärämuodossa:
=Format(Parameters!StartDate.Value, "D") & " through " & Format(Parameters!EndDate.Value, "D")
Jos tekstiruutu sisältää vain päivämäärän tai luvun, käytä tekstiruudun Muotoilu-ominaisuutta muotoilun käyttämiseen tekstiruudussa olevan Format-funktion sijaan.
Right-, Len- ja InStr-funktiot ovat hyödyllisiä alimerkkijonon palauttamiseen. Esimerkiksi TOIMIALUE-käyttäjänimen\ rajaus pelkästään käyttäjänimeen. Seuraava lauseke palauttaa User-parametrista kenoviivan oikealla puolella olevan merkkijonon osan (\):
=Right(Parameters!User.Value, Len(Parameters!User.Value) - InStr(Parameters!User.Value, "\"))
Seuraava lauseke tuottaa saman arvon kuin edellinenkin lauseke, jossa käytetään .NET Framework
xref:System.String
-luokan jäseniä Visual Basic -funktioiden sijaan:=Parameters!User.Value.Substring(Parameters!User.Value.IndexOf("\")+1, Parameters!User.Value.Length-Parameters!User.Value.IndexOf("\")-1)
Näytä moniarvoisen parametrin valitut arvot. Seuraavassa esimerkissä Join-funktiota käytetään parametrin MySelection valittujen arvojen ketjuttamiseen yksittäiseksi merkkijonoksi, joka voidaan määrittää lausekkeeksi raporttikohteen tekstiruudun arvolle:
= Join(Parameters!MySelection.Value)
Seuraava esimerkki tekee saman kuin edellisessä esimerkissä ja näyttää tekstimerkkijonon ennen valittujen arvojen luetteloa.
="Report for " & JOIN(Parameters!MySelection.Value, " & ")
.NET Framework
xref:System.Text.RegularExpressions
Regex-funktiot ovat hyödyllisiä jo olemassa olevien merkkijonojen muodon muuttamiseen, esimerkiksi puhelinnumeron muotoiluun. Seuraavassa lausekkeessa Replace-funktion avulla kentässä oleva kymmennumeroinen puhelinnumero muutetaan muodosta "nnn-nnn-nnn-nnnn" muotoon "(nnn) nnn-nnnn":=System.Text.RegularExpressions.Regex.Replace(Fields!Phone.Value, "(\d{3})[ -.]*(\d{3})[ -.]*(\d{4})", "($1) $2-$3")
Muistiinpano
Varmista, että Kentät-arvo ! Phone.Value ei sisällä välilyöntejä ja sen tyyppi
xref:System.String
on .
Haku
Kun olet määrittänyt avainkentän, voit noutaa Lookup-funktiolla tietojoukosta yksi yhteen -suhteen arvon, esimerkiksi avain-arvoparin. Seuraava lauseke näyttää tietojoukon ("Tuote") tuotenimen, jos tuotetunnus vastaa seuraavaa:
=Lookup(Fields!PID.Value, Fields!ProductID.Value, Fields.ProductName.Value, "Product")
LookupSet
Kun olet määrittänyt avainkentän, voit noutaa LookupSet-funktiolla tietojoukosta yksi moneen -suhteen arvojoukon. Henkilöllä voi olla esimerkiksi useita puhelinnumeroita. Seuraavassa esimerkissä oletetaan, että PhoneList-tietojoukon kukin rivi sisältää henkilön tunnuksen ja puhelinnumeron. LookupSet palauttaa useita arvoja. Seuraava lauseke yhdistää palautusarvot yksittäiseksi merkkijonoksi ja näyttää ContactID-funktion määrittämän henkilön puhelinnumeroiden luettelon:
=Join(LookupSet(Fields!ContactID.Value, Fields!PersonID.Value, Fields!PhoneNumber.Value, "PhoneList"),",")
Muuntofunktiot
Visual Basic -funktioiden avulla voit muuntaa kentän tietotyypistä toiseen. Muuntofunktioiden avulla kentän oletustietotyyppi voidaan muuntaa laskutoimituksiin tai tekstin yhdistämiseen tarvittavaksi tietotyypiksi.
Seuraava lauseke muuntaa vakion 500 Decimal-tyyppiseksi, jotta sitä voidaan verrata Transact-SQL-rahatietotyyppiin suodatinlausekkeen Arvo-kentässä.
=CDec(500)
Seuraava lauseke näyttää moniarvoisen MySelection-parametrin valittujen arvojen määrän.
=CStr(Parameters!MySelection.Count)
Päätösfunktiot
IIF-funktio palauttaa kaksi arvoa sen mukaan, onko lauseke tosi vai epämukainen. Seuraava lauseke käyttää IIF-funktiota palauttamaan totuusarvon Tosi, jos LineTotal-arvo ylittää sadan. Muussa tapauksessa se palauttaa arvon False:
=IIF(Fields!LineTotal.Value > 100, True, False)
Käytä useita IIF-funktioita (sisäkkäisiä IIF-funktioita) palauttaaksesi yhden kolmesta arvosta PctComplete-arvon mukaan. Seuraava lauseke voidaan sijoittaa tekstiruudun täyttöväriin taustavärin muuttamiseksi tekstiruudussa olevan arvon mukaan.
=IIF(Fields!PctComplete.Value >= 10, "Green", IIF(Fields!PctComplete.Value >= 1, "Blue", "Red"))
10 ja sen kokoiset arvot vihreällä taustalla 1–9 sinisellä taustalla ja alle 1:n arvot näkyvät punaisella taustalla.
Switch-funktio on toinen tapa tuottaa sama toiminnallisuus. Switch-funktion avulla voit testata kolmea tai useampaa ehtoa. Switch-funktio palauttaa ensimmäiseen lausekkeeseen liittyvän arvon sarjassa, joka antaa tulokseksi true:
=Switch(Fields!PctComplete.Value >= 10, "Green", Fields!PctComplete.Value >= 1, "Blue", Fields!PctComplete.Value = 1, "Yellow", Fields!PctComplete.Value <= 0, "Red")
10 ja sen arvot ovat suurempia tai yhtä suuria kuin 10 vihreä tausta, 1–9 sinisellä taustalla, yhtä suuri kuin 1, keltainen tausta ja 0 tai vähemmän punainen tausta.
Testaa ImportantDate-kentän arvo ja palauta "Red", jos se on yli viikon vanha, ja muussa tapauksessa sininen. Tällä lausekkeella voidaan hallita raporttikohteen tekstiruudun Väri-ominaisuutta:
=IIF(DateDiff("d",Fields!ImportantDate.Value, Now())>7,"Red","Blue")
Testaa PhoneNumber-kentän arvo ja palauta "Ei arvoa" jos se on tyhjäarvo (Ei mitään Visual Basicissa); muussa tapauksessa palauta puhelinnumeroarvo. Tällä lausekkeella voidaan hallita raporttikohteen tekstiruudun arvoa.
=IIF(Fields!PhoneNumber.Value Is Nothing,"No Value",Fields!PhoneNumber.Value)
Testaa Osasto-kentän arvo ja palauta joko aliraportin nimi tai tyhjäarvo (Ei mitään Visual Basicissa). Tätä lauseketta voidaan käyttää aliraporttien ehdolliseen poraamiseen.
=IIF(Fields!Department.Value = "Development", "EmployeeReport", Nothing)
Testaa, onko kentän arvo tyhjäarvo. Tällä lausekkeella voidaan hallita raporttikohteen kuvan Piilotettu-ominaisuutta . Seuraavassa esimerkissä LargePhoto-kentän määrittämä kuva näytetään vain, jos kentän arvo ei ole tyhjäarvo.
=IIF(IsNothing(Fields!LargePhoto.Value),True,False)
MonthName-funktio palauttaa merkkijonoarvon, joka sisältää määritetyn kuukauden nimen. Seuraavassa esimerkissä kuukausikentässä näkyy NA, kun kentän sisältämä arvo on 0.
IIF(Fields!Month.Value=0,"NA",MonthName(IIF(Fields!Month.Value=0,1,Fields!Month.Value)))
Raporttifunktiot
Lausekkeessa voit lisätä viitteen raportin lisäfunktioihin, jotka käsittelevät raportin tietoja. Tässä osiossa annetaan esimerkkejä kahdesta tällaisesta funktiosta.
Summa
Sum-funktiolla voidaan laskea yhteen ryhmän tai tietoalueen arvot. Tämä funktio voi olla hyödyllinen ryhmän otsikossa tai alatunnisteessa. Seuraava lauseke näyttää Tilaus-ryhmän tai -tietoalueen tietojen summan:
=Sum(Fields!LineTotal.Value, "Order")
Voit käyttää myös Sum-funktiota ehdollisia koostelaskelmia varten. Jos tietojoukossa on esimerkiksi kenttä, jonka nimi on Tila ja jonka mahdolliset arvot ovat Ei aloitettu, Aloitettu, Valmis, ryhmän otsikkoon asetettuna seuraava lauseke laskee vain Valmis-arvon koostetun summan:
=Sum(IIF(Fields!State.Value = "Finished", 1, 0))
Rivin numero
Tietoalueen tekstiruudussa käytettynä RowNumber-funktio näyttää kunkin lausekkeen sisältämän tekstiruudun esiintymän rivin numeron. Tämä funktio voi olla kätevä taulukon rivien numeroimiseksi. Siitä voi olla hyötyä myös monimutkaisemmissa tehtävissä, kuten rivien määrään perustuvien sivunvaihtojen antamisissa. Katso lisätietoja tämän artikkelin kohdasta Sivunvaihdot .
RowNumber-ohjausobjekteille määrittämäsi laajuus, kun numerointi alkaa uudelleen. Ei mitään -avainsana ilmaisee, että funktio alkaa laskea uloimman tietoalueen ensimmäisestä rivistä. Voit aloittaa sisäkkäisten tietoalueiden sisäisen laskemisen tietoalueen nimen avulla. Voit aloittaa ryhmän sisäisen laskemisen käyttämällä ryhmän nimeä.
=RowNumber(Nothing)
Raporttitietojen ulkoasu
Lausekkeiden avulla voit muokata sitä, miten tiedot näkyvät raportissa. Voit esimerkiksi näyttää kahden kentän arvot yhdessä tekstiruudussa, näyttää raporttia koskevia tietoja tai vaikuttaa siihen, miten sivunvaihdot lisätään raporttiin.
Sivun ylä- ja alatunnisteet
Kun suunnittelet raporttia, voit näyttää raportin nimen ja sivunumeron raportin alatunnisteessa. Voit tehdä tämän seuraavien lausekkeiden avulla:
Seuraava lauseke antaa raportin nimen ja sen suorittamisen kellonajan. Se voidaan sijoittaa raportin alatunnisteessa olevaan tekstiruutuun tai raportin leipätekstiin. Kellonaika muotoillaan .NET Framework lyhyen päivämäärän muotoilumerkkijonolla:
=Globals.ReportName & ", dated " & Format(Globals.ExecutionTime, "d")
Raportin alatunnisteessa olevaan tekstiruutuun sijoitettuna seuraava lauseke antaa sivunumeron ja raportin kokonaissivumäärän:
=Globals.PageNumber & " of " & Globals.TotalPages
Seuraavissa esimerkeissä kuvataan, miten sivun ensimmäinen ja viimeinen arvo näytetään sivun otsikossa samalla tavalla kuin hakemistoluettelossa. Esimerkissä oletetaan, että käytössä on tietoalue, joka sisältää muokkausruudun nimeltä Sukunimi.
Sivun otsikon vasemmalle puolelle tekstiruutuun sijoitettuna seuraava lauseke antaa sivun LastName-tekstiruudun ensimmäisen arvon:
=First(ReportItems("LastName").Value)
Sivun otsikon oikealle puolelle tekstiruutuun sijoitettuna seuraava lauseke antaa Sivun Sukunimi-tekstiruudun viimeisen arvon:
=Last(ReportItems("LastName").Value)
Seuraavassa esimerkissä kuvataan, miten sivun summa näytetään. Esimerkissä oletetaan, että tietoalue sisältää muokkausruudun, jonka nimi on Kustannus.
Sivun otsikkoon tai alatunnisteeseen sijoitettuna seuraava lauseke antaa sivun Kustannus-tekstiruudussa olevien arvojen summan:
=Sum(ReportItems("Cost").Value)
Muistiinpano
Voit viitata vain yhteen sivun otsikon tai alatunnisteen raporttikohteeseen lauseketta kohti. Voit myös viitata tekstiruudun nimeen, mutta et varsinaiseen tietolausekkeeseen tekstiruudun, sivun otsikon ja alatunnisteen lausekkeiden sisällä.
Sivunvaihdot
Joissakin raporteissa voit sijoittaa sivunvaihdon määritetyn rivimäärän loppuun ryhmien tai raporttikohteiden lopussa olevien sivunvaihtojen sijaan tai niiden lisäksi. Luo ryhmä, joka sisältää haluamasi ryhmät tai tietotietueet, lisää sivunvaihto ryhmään ja lisää sitten ryhmälauseke ryhmään määritetyn rivimäärän mukaan.
Ryhmälausekkeeseen sijoitettuna seuraava lauseke määrittää numeron kullekin 25 rivin joukolle. Kun ryhmälle on määritetty sivunvaihto, tämä lauseke aiheuttaa sivunvaihdon 25 rivin välein.
=Ceiling(RowNumber(Nothing)/25)
Jotta käyttäjä voi määrittää sivulla näytettyjen rivien määrän, luo parametri nimeltä RowsPerPage ja perusta parametrille ryhmälauseke seuraavassa lausekkeessa esitetyllä tavalla:
=Ceiling(RowNumber(Nothing)/Parameters!RowsPerPage.Value)
Ominaisuudet
Lausekkeita ei käytetä vain tietojen näyttämiseen tekstiruuduissa. Niiden avulla voidaan myös muuttaa sitä, miten ominaisuuksia käytetään raporttikohteissa. Voit muuttaa raporttikohteen tyylitietoja tai muuttaa sen näkyvyyttä.
Muotoilu
Tekstiruudun Väri-ominaisuudessa käytettynä seuraava lauseke muuttaa tekstin väriä Tuotto-kentän arvon mukaan:
=Iif(Fields!Profit.Value < 0, "Red", "Black")
Voit myös käyttää Visual Basic -objektimuuttujaa Me. Tämä muuttuja on toinen tapa viitata tekstiruudun arvoon.
=Iif(Me.Value < 0, "Red", "Black")
Tietoalueella olevan raporttikohteen BackgroundColor-ominaisuudessa käytettynä seuraava lauseke vaihtelee rivien taustaväriä vaaleanvihreän ja valkoisen välillä:
=Iif(RowNumber(Nothing) Mod 2, "PaleGreen", "White")
Jos käytät lauseketta tiettyyn laajuuteen, sinun on ehkä ilmaistava koostefunktion tietojoukko:
=Iif(RowNumber("Employees") Mod 2, "PaleGreen", "White")
Muistiinpano
Käytettävissä olevat värit ovat peräisin KnownColor-.NET Framework luetteloinnista.
Kaaviovärit
Voit määrittää Muoto-kaavion värit mukautetulla koodilla, jolla voit hallita värien ja arvopistearvojen yhdistämistä. Näin voit käyttää yhtenäisiä värejä useissa kaavioissa, joissa on samat luokkaryhmät.
Näkyvyys
Voit näyttää ja piilottaa raportin kohteita raporttikohteen näkyvyysominaisuuksien avulla. Voit piilottaa taulukon tai tietoalueen tietorivit aluksi lausekkeen arvon perusteella.
Ryhmän tietorivien alkunäkyvyydenä käytetään seuraavaa lauseketta, joka näyttää kaikki yli 90 prosenttia ylittävät tietorivit PctQuota-kentässä :
=IIF(Fields!PctQuota.Value>.9, False, True)
Taulukon Piilotettu-ominaisuuteen asetettuna seuraava lauseke näyttää taulukon vain, jos siinä on yli 12 riviä:
=IIF(CountRows()>12,false,true)
Sarakkeen Piilotettu-ominaisuuteen asetettuna seuraava lauseke näyttää sarakkeen vain, jos kenttä on olemassa raportin tietojoukossa sen jälkeen, kun tiedot on noudettu tietolähteestä:
=IIF(Fields!Column_1.IsMissing, true, false)
URL-osoitteet
Voit mukauttaa URL-osoitteita käyttämällä raporttitietoja ja hallita ehdollisesti, lisätäänkö URL-osoitteet tekstiruudun toiminnoksi.
Tekstiruudun toimintona käytettynä seuraava lauseke luo mukautetun URL-osoitteen, joka määrittää tietojoukkokentän EmployeeID URL-parametriksi.
="https://adventure-works/MyInfo?ID=" & Fields!EmployeeID.Value
Seuraava lauseke määrittää ehdollisesti, lisätäänkö URL-osoite tekstiruutuun. Tämä lauseke on riippuvainen IncludeURLs-nimisestä parametrista, jonka avulla käyttäjä voi päättää, sisällytetäänkö aktiiviset URL-osoitteet raporttiin. Tämä lauseke on määritetty tekstiruudun toiminnoksi. Kun määrität parametrin arvoksi Epätosi ja tarkastelet sitten raporttia, voit viedä raportin Microsoft Exceliin ilman hyperlinkkejä.
=IIF(Parameters!IncludeURLs.Value,"https://adventure-works.com/productcatalog",Nothing)
Muistiinpano
Power BI:n sivutetut raportit eivät tue JavaScriptiä Siirry URL-osoitteeseen -lausekkeessa.
Raporttitiedot
Lausekkeita voidaan käyttää raportissa käytettävien tietojen käsittelyyn. Voit viitata parametreihin ja muihin raporttitietoihin. Voit myös muuttaa kyselyä, jota käytetään raportin tietojen noutamiseen.
Parametrit
Voit muuttaa parametrin oletusarvoa käyttämällä lausekkeita parametrissa. Voit esimerkiksi käyttää parametria tietojen suodattamiseen tietylle käyttäjälle raportin suorittamiseen käytetyn käyttäjätunnuksen perusteella.
Parametrin oletusarvona käytettynä seuraava lauseke kerää raporttia suorittavan henkilön käyttäjätunnuksen:
=User!UserID
Voit viitata kyselyparametrin, suodatinlausekkeen, tekstiruudun tai raportin muun alueen parametriin yleisellä Parametrit-kokoelmalla . Tässä esimerkissä oletetaan, että parametrin nimi on Osasto:
=Parameters!Department.Value
Parametrit voidaan luoda raportissa, mutta ne voidaan määrittää piilotetuksi. Kun raportti suoritetaan raporttipalvelimessa, parametri ei näy työkalurivillä ja raportin lukija ei voi muuttaa oletusarvoa. Voit käyttää piilotettua parametrijoukkoa mukautetun vakion oletusarvoon. Voit käyttää tätä arvoa missä tahansa lausekkeessa, mukaan lukien kenttälausekkeessa. Seuraava lauseke tunnistaa ParameterField-parametrin oletusparametriarvon määrittämän kentän:
=Fields(Parameters!ParameterField.Value).Value
Mukautettu koodi
Voit käyttää mukautettua koodia upotettuna raporttiin.
Ryhmän muuttujien käyttäminen mukautettuun koostamiseen
Voit valmistella tiettyyn ryhmän laajuuteen paikallisen ryhmämuuttujan arvon ja sisällyttää lausekkeisiin viittauksen kyseiseen muuttujaan. Voit käyttää mukautettua koodia sisältävän ryhmämuuttujan esimerkiksi mukautetun koosteen toteuttamiseen.
Tyhjäarvojen tai nolla-arvojen poisskaaminen suorituksen aikana
Jotkin lausekkeen arvot voivat tuottaa tyhjäarvon tai määrittämättömän arvon raportin käsittelyhetkellä. Tämä voi luoda suoritusaikavirheitä, joiden tuloksena #Error näytetään tekstiruudussa arvioitujen lausekkeiden sijaan. IIF-funktio on erityisen herkkä, koska If-Then-Else-lausekkeesta poiketen IIF-lausekkeen jokainen osa (mukaan lukien funktiokutsut) arvioidaan ennen kuin ne siirretään tosi- ja epätosi-testausrutiiniin. Lauseke =IIF(Fields!Sales.Value is NOTHING, 0, Fields!Sales.Value)
luo #Error hahmonnettuun raporttiin, jos Kentät! Sales.Value on EI MITÄÄN.
Voit välttää tämän käyttämällä jotakin seuraavista strategioista:
Määritä osoittajaksi 0 ja nimittäjäksi 1, jos kentän B arvo on 0 tai määrittämätön. muussa tapauksessa aseta osoittajaksi kentän A arvo ja nimittäjäksi kentän B arvo.
=IIF(Field!B.Value=0, 0, Field!A.Value / IIF(Field!B.Value =0, 1, Field!B.Value))
Mukautetun koodifunktion avulla voit palauttaa lausekkeen arvon. Seuraavassa esimerkissä palautetaan nykyisen arvon ja edellisen arvon välinen prosentuaalinen ero. Tämän avulla voidaan laskea kahden peräkkäisen arvon välinen ero, ja se käsittelee ensimmäisen vertailun reunatapauksen (kun edellistä arvoa ei ole) ja tapaukset, joissa edellinen tai nykyinen arvo on tyhjäarvo (Ei mitään Visual Basicissa).
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
Seuraava lauseke näyttää, miten voit kutsua tämän mukautetun koodin ColumnGroupByYear-säilön tekstiruudusta (ryhmä tai tietoalue).
=Code.GetDeltaPercentage(Previous(Sum(Fields!Sales.Value),"ColumnGroupByYear"), Sum(Fields!Sales.Value))
Tämä koodi auttaa välttämään poikkeuksia suorituksen aikana. Voit nyt käyttää lauseketta, kuten
=IIF(Me.Value < 0, "red", "black")
, tekstiruudun Väri-ominaisuudessa, tekstin ehdolliseen näyttämiseen sen mukaan, ovatko arvot suurempia vai pienempiä kuin 0.