Mukautettu koodi lausekkeissa sivutetuissa raporteissa Power BI:n raportin muodostimessa
KOSKEE: Power BI Report Builder Power BI Desktop
Voit lisätä mukautettua koodia upotettuna raporttiin. Käytä upotettua koodia mukautettuihin vakioihin, monimutkaisiin funktioihin tai funktioihin, joita käytetään useita kertoja yhdessä raportissa. Mukautettu koodi voi sisältää uusia mukautettuja vakioita, muuttujia, funktioita tai aliohjeita. Voit sisällyttää vain luku -viittauksia sisäisiin kokoelmiin, kuten Parametrit-kokoelmaan. Et kuitenkaan voi välittää raportin tietoarvojen joukkoja mukautettuihin funktioihin. erityisesti mukautettuja koosteita ei tueta.
Muistiinpano
Mukautettuja kokoonpanoja ei tueta Power BI:n sivutetuissa raporteissa. Harkitse logiikan muuntamista mukautetusta kokoonpanosta upotetuksi koodiksi. Esimerkkejä vaihtoehdoista on kokoonpanon vaihtoehdoissa.
Tärkeä
Ajalle merkitseville laskutoimituksille, jotka arvioidaan kerran suorituksen aikana ja joiden haluat säilyvän samalla arvolla koko raportin käsittelyn ajan, harkitse, käytetäänkö raporttimuuttujaa vai ryhmämuuttujaa. Lisätietoja on artikkelissa Raportti- ja ryhmämuuttujakokoelmat -viittaukset (Power BI:n raportin muodostin).
Sisällytä viittaukset usein käytettyihin funktioihin
Lauseke-valintaikkunan avulla voit tarkastella raportin muodostimeen valmiiksi luokiteltua luetteloa yleisistä funktioista. Kun laajennat Yleisiä funktioita ja valitset luokan, Kohde-ruudussa näkyy luettelo funktioista, jotka sisällytät lausekkeeseen. Yleisiin funktioihin kuuluvat .NET FrameworkMath-, nimitila- ja Convert Visual Basic -suorituskirjastofunktioiden luokat. Kätevyyden vuoksi voit tarkastella yleisimmin käytettyjä funktioita Lauseke-valintaikkunassa, jossa ne on lueteltu luokittain: teksti, päivämäärä ja aika, matematiikka, tarkastus, ohjelmatyönkulku, kooste, rahoitus, muunto ja muut. Harvemmin käytettyjä funktioita ei näytetä luettelossa, mutta niitä voi silti käyttää lausekkeessa.
Jos haluat käyttää sisäistä funktiota, kaksoisnapsauta funktion nimeä Kohde-ruudussa. Funktion kuvaus tulee näkyviin Kuvaus-ruutuun ja esimerkki funktiokutsusta näkyy Esimerkki-ruudussa. Kun kirjoitat koodiruutuun funktion nimen ja sen perässä vasemman sulkeen (IntelliSense-ohjeessa näytetään kaikki funktiokutsun kelvolliset syntaksit. Jos haluat esimerkiksi laskea taulukossa nimetyn Quantity
kentän enimmäisarvon, lisää yksinkertainen lauseke =Max(
Koodi-ruutuun ja tarkastele sitten älytunnisteiden avulla kaikkia mahdollisia funktiokutsun kelvollisia syntakseja. Viimeistele tämä esimerkki kirjoittamalla =Max(Fields!Quantity.Value)
.
Lisätietoja kustakin funktiosta on kohdassa Math, Convertja Visual Basic Runtime -kirjaston jäsenet MSDN:ssä.
Sisällytä viittaukset vähemmän käytettyihin funktioihin
Jos haluat sisällyttää viittauksen muihin vähemmän käytettyihin CLR-nimitiloihin, sinun on käytettävä täydellistä viittausta, kuten StringBuilder. IntelliSenseä ei tueta Lauseke-valintaikkunan koodiruudussa seuraavien harvinaisemmin käytettyjen funktioiden osalta.
Lisätietoja on kohdassa Visual Basic Runtime -kirjaston jäsenet MSDN:ssä.
Sisällytä upotettu koodi
Jos haluat lisätä raporttiin upotettua koodia, käytä Raportin ominaisuudet -valintaikkunan Koodi-välilehteä. Luomasi koodilohko voi sisältää useita menetelmiä. Upotetun koodin menetelmät on kirjoitettava Microsoft Visual Basicilla, ja ne on kirjoitettava esiintymäpohjaisesti. Raportin käsittely lisää automaattisesti viittaukset system.convert- ja System.Math-nimitilaan.
Upotetun koodin menetelmät ovat käytettävissä globaalisti määritetyn koodijäsenen kautta. Voit käyttää näitä viittaamalla Code-jäseniin ja -menetelmän nimeen. Seuraavassa esimerkissä StandardCost
kutsutaan toUSD-menetelmää, joka muuntaa kentän arvon dollariarvoksi:
=Code.ToUSD(Fields!StandardCost.Value)
Jos haluat viitata mukautettuun koodiin sisäisiin kokoelmiin, lisää viittaus sisäiseen raporttiobjektiin:
=Report.Parameters!Param1.Value
Seuraavissa esimerkeissä näytetään, miten voit määrittää mukautettuja vakioita ja muuttujia.
Public Const MyNote = "Authored by Bob"
Public Const NCopies As Int32 = 2
Public Dim MyVersion As String = "123.456"
Public Dim MyDoubleVersion As Double = 123.456
Vaikka mukautetut vakiot eivät näy Vakiot-luokassa Lauseke-valintaikkunassa (joka näyttää vain sisäiset vakiot), voit lisätä niihin viittauksia mistä tahansa lausekkeesta, kuten seuraavissa esimerkeissä näytetään. Lausekkeessa mukautettua vakiota käsitellään varianttina.
=Code.MyNote
=Code.NCopies
=Code.MyVersion
=Code.MyDoubleVersion
Seuraavassa esimerkissä on sekä koodiviittaus että koodin toteutus fixSpelling-funktiolle, joka korvaa tekstin "Bicycle"
tekstin "Bike" kaikissa esiintymiskertoissa SubCategory
kentässä.
=Code.FixSpelling(Fields!SubCategory.Value)
Raportin määrityksen koodilohkoon upotettuna seuraava koodi näyttää FixSpelling-menetelmän toteutuksen. Tässä esimerkissä näytetään, miten voit käyttää täydellistä viittausta Microsoft .NET Framework StringBuilder -luokkaan.
Public Function FixSpelling(ByVal s As String) As String
Dim strBuilder As New System.Text.StringBuilder(s)
If s.Contains("Bike") Then
strBuilder.Replace("Bike", "Bicycle")
Return strBuilder.ToString()
Else : Return s
End If
End Function
Katso lisätietoja sisäisistä objektikokoelmista kohdasta Sisäiset yleiset kohteet ja käyttäjien viittaukset (Power BI:n raportin muodostin).
Sisällytä viittaukset coden parametreihin
Voit viitata yleisen parametrikokoelman mukautettuun koodiin raporttimäärityksen koodilohkossa. Parametrikokoelma on vain luku -tilassa, eikä siinä ole julkisia iteraattoria. Et voi käyttää Visual Basic for Each -rakennetta kokoelman läpi oittamiseen. Sinun on tiedettävä raporttimäärityksessä määritetyn parametrin nimi, ennen kuin voit viitata siihen koodissasi. Voit kuitenkin iteroida läpi kaikki moniarvoisen parametrin arvot.
Seuraavassa taulukossa on esimerkkejä sisäisen kokoelmaan Parameters
viittaamisesta mukautetusta koodista:
Koko yleisen parametrikokoelman välittäminen mukautettuun koodiin.
Tämä funktio palauttaa tietyn raporttiparametrin MyParameter-arvon.
Viittaus lausekkeessa =Code.DisplayAParameterValue(Parameters)
Mukautetun koodin määritys
Public Function DisplayAParameterValue(ByVal parameters as Parameters) as Object
Return parameters("MyParameter").Value
End Function
Yksittäisen parametrin välittäminen mukautettuun koodiin.
Viittaus lausekkeessa =Code.ShowParametersValues(Parameters!DayOfTheWeek)
Tässä esimerkissä palautetaan välitetty parametrin arvo. Jos parametri on moniarvoinen parametri, palautusmerkkijono on kaikkien arvojen ketjutus.
Mukautetun koodin määritys
Public Function ShowParameterValues(ByVal parameter as Parameter)
as String
Dim s as String
If parameter.IsMultiValue then
s = "Multivalue: "
For i as integer = 0 to parameter.Count-1
s = s + CStr(parameter.Value(i)) + " "
Next
Else
s = "Single value: " + CStr(parameter.Value)
End If
Return s
End Function