Johdannaisparametrien käyttö sivutetuissa raporteissa

Tämä artikkeli koskee raportin laatijaa, joka suunnittelee Power BI :n sivutettuja raportteja. Se tarjoaa skenaarioita johdannaisparametrien suunnitteluun. Johdannaisparametrit ovat raportin parametreja, joilla on riippuvuussuhteita. Kun raportin käyttäjä valitsee parametrin arvon (tai arvot), sen avulla voidaan määrittää toisen parametrin käytettävissä olevat arvot.

Muistiinpano

Tässä artikkelissa ei esitellä johdannaisparametreja eikä niiden määrittämistä. Jos et ole perehtynyt johdannaisparametreihin, suosittelemme, että luet ensin artikkelista Johdannaisparametrien lisääminen raporttiin Power BI Raportin muodostin.

Suunnitteluskenaariot

Johdannaisparametrien käyttämiseen on kaksi suunnitteluskenaariota. Niitä voidaan käyttää tehokkaasti

  • Suurien kohdejoukkojen suodattaminen
  • Olennaisten kohteiden esittäminen

Esimerkki tietokannasta

Tämän artikkelin esimerkit perustuvat Azure-SQL-tietokanta. Tietokanta kirjaa myyntitoiminnot ja sisältää erilaisia taulukoita, jotka tallentavat jälleenmyyjiä, tuotteita ja myyntitilauksia.

Taulukko nimeltä Reseller tallentaa kullekin jälleenmyyjälle yhden tietueen ja sisältää useita tuhansia tietueita. Reseller-taulukossa on seuraavat sarakkeet:

  • ResellerCode (kokonaisluku)
  • ResellerName
  • Country-Region
  • State-Province
  • Paikkakunta
  • PostalCode

Saatavilla on myös taulukko nimeltä Myynti. Se tallentaa myyntitilaustietueet ja sillä on viiteavainsuhde Reseller-taulukkoon ResellerCode-sarakkeessa.

Esimerkki vaatimuksesta

Jälleenmyyjän profiilia koskevan raportin laatimista vaaditaan. Raportti on suunniteltava siten, että se näyttää yksittäisen jälleenmyyjän tiedot. Ei ole asianmukaista, että raportin käyttäjä syöttää jälleenmyyjän koodin, koska hän harvoin muistaa sitä.

Suurien kohdejoukkojen suodattaminen

Tarkastellaanpa kolmea esimerkkiä, joiden avulla voit rajoittaa suurten käytettävissä olevien kohteiden joukkoa, kuten jälleenmyyjiä. Ne ovat:

Tässä esimerkissä raportin käyttäjä soveltaa viittä raportin parametria. Käyttäjän on valittava maa tai alue, osavaltio tai maakunta, kaupunki ja postinumero. Viimeisessä parametrissa luetellaan jälleenmyyjät, jotka asuvat kyseisessä maantieteellisessä sijainnissa.

Screenshot of Power BI paginated report parameters showing filter by related columns.

Voit kehittää johdannaisparametrit seuraavasti:

  1. Luo viisi raportin parametria, jotka on järjestetty oikeaan järjestykseen.

  2. Luo CountryRegion-tietojoukko, joka hakee erilliset maa- tai aluearvot, käyttämällä seuraavaa kyselylauseketta:

    SELECT DISTINCT
      [Country-Region]
    FROM
      [Reseller]
    ORDER BY
      [Country-Region]
    
  3. Luo StateProvince-tietojoukko, joka hakee valitun maan tai alueen erilliset osavaltio- tai maakunta-arvot, käyttämällä seuraavaa kyselylauseketta:

    SELECT DISTINCT
      [State-Province]
    FROM
      [Reseller]
    WHERE
      [Country-Region] = @CountryRegion
    ORDER BY
      [State-Province]
    
  4. Luo City-tietojoukko, joka hakee valitun maan tai alueen erilliset kaupunkiarvot, käyttämällä seuraavaa kyselylauseketta:

    SELECT DISTINCT
      [City]
    FROM
      [Reseller]
    WHERE
      [Country-Region] = @CountryRegion
      AND [State-Province] = @StateProvince
    ORDER BY
      [City]
    
  5. Luo postalcode-tietojoukko tämän mallin avulla.

  6. Luo Reseller-tietojoukko, jotta voit hakea valittujen maantieteellisten arvojen kaikki jälleenmyyjät, käyttämällä seuraavaa kyselylauseketta:

    SELECT
      [ResellerCode],
      [ResellerName]
    FROM
      [Reseller]
    WHERE
      [Country-Region] = @CountryRegion
      AND [State-Province] = @StateProvince
      AND [City] = @City
      AND [PostalCode] = @PostalCode
    ORDER BY
      [ResellerName]
    
  7. Yhdistä jokaisen tietojoukon ensimmäistä lukuun ottamatta kyselyparametrit vastaaviin raportin parametreihin.

Muistiinpano

Kaikki näissä esimerkeissä näytetyt kyselyparametrit (edessä @-symboli) voidaan upottaa SELECT-lausekkeisiin tai välittää tallennettuihin toimintosarjoihin.

Yleensä tallennetut toimintosarjat ovat parempi rakennemenetelmä. Tämä johtuu siitä, että niiden kyselysuunnitelmat on tallennettu välimuistiin nopeampaa suoritusta varten, ja niiden avulla voit kehittää edistyneempää logiikkaa tarvittaessa. Niitä ei kuitenkaan tällä hetkellä tueta yhdyskäytävään liittyviä tietolähteitä (SQL Server, Oracle ja Teradata) varten.

Lopuksi on aina varmistettava, että käytössä on sopivat indeksit, jotta tiedot haetaan tehokkaasti. Muussa tapauksessa raportin parametrien täyttäminen voi olla hidasta, ja tietokanta voi ylikuormittua. Lisätietoja SQL Server -indeksoinnista on artikkelissa SQL Server -indeksin arkkitehtuuri- ja suunnitteluopas.

Suodata ryhmittelysarakkeen mukaan

Tässä esimerkissä raportin käyttäjä soveltaa raportin parametria jälleenmyyjän ensimmäisen kirjaimen valitsemiseksi. Toinen parametri luettelee sitten jälleenmyyjät, kun nimi alkaa valitulla kirjaimella.

Screenshot of Power BI paginated report parameters showing filter by a grouping column.

Voit kehittää johdannaisparametrit seuraavasti:

  1. Luo ReportGroup- ja Reseller-raportin parametrit, jotka on järjestetty oikeaan järjestykseen.

  2. Luo ReportGroup-tietojoukko, jotta voit hakea kaikkien jälleenmyyjien käyttämät ensimmäiset kirjaimet, käyttämällä seuraavaa kyselylauseketta:

    SELECT DISTINCT
      LEFT([ResellerName], 1) AS [ReportGroup]
    FROM
      [Reseller]
    ORDER BY
      [ReportGroup]
    
  3. Luo Reseller-tietojoukko, jotta voit hakea valitulla kirjaimella alkavat kaikki jälleenmyyjät, käyttämällä seuraavaa kyselylauseketta:

    SELECT
      [ResellerCode],
      [ResellerName]
    FROM
      [Reseller]
    WHERE
      LEFT([ResellerName], 1) = @ReportGroup
    ORDER BY
      [ResellerName]
    
  4. Yhdistä Reseller-tietojoukon kyselyparametri vastaavaan raporttiparametriin.

Ryhmittelysarake kannattaa lisätä Reseller-taulukkoon . Kun se on jatkuva ja indeksoitu, se tuottaa parhaan tuloksen. Lisätietoja on kohdassa Laskettujen sarakkeiden määrittäminen taulukossa.

ALTER TABLE [Reseller]
ADD [ReportGroup] AS LEFT([ResellerName], 1) PERSISTED

Tämä tekniikka voi tarjota vieläkin enemmän mahdollisuuksia. Harkitse seuraavaa komentosarjaa, joka lisää uuden ryhmittelysarakkeen jälleenmyyjien suodattamiseksi esimääritettyjen kirjainkaistan mukaan. Se luo myös indeksin, joka hakee tehokkaasti raportin parametrien edellyttämät tiedot.

ALTER TABLE [Reseller]
ADD [ReportGroup2] AS CASE
  WHEN [ResellerName] LIKE '[A-C]%' THEN 'A-C'
  WHEN [ResellerName] LIKE '[D-H]%' THEN 'D-H'
  WHEN [ResellerName] LIKE '[I-M]%' THEN 'I-M'
  WHEN [ResellerName] LIKE '[N-S]%' THEN 'N-S'
  WHEN [ResellerName] LIKE '[T-Z]%' THEN 'T-Z'
  ELSE '[Other]'
END PERSISTED
GO

CREATE NONCLUSTERED INDEX [Reseller_ReportGroup2]
ON [Reseller] ([ReportGroup2]) INCLUDE ([ResellerCode], [ResellerName])
GO

Suodata hakumallin mukaan

Tässä esimerkissä raportin käyttäjä soveltaa raportin parametria hakumallin syöttämistä. Toinen parametri luettelee sitten jälleenmyyjät, kun nimi sisältää mallin.

Screenshot of Power BI paginated report parameters showing filter by search pattern.

Voit kehittää johdannaisparametrit seuraavasti:

  1. Luo Search- ja Reseller-raportin parametrit, jotka on järjestetty oikeaan järjestykseen.

  2. Luo Reseller-tietojoukko, jotta voit hakea hakutekstin sisältävät kaikki jälleenmyyjät, käyttämällä seuraavaa kyselylauseketta:

    SELECT
      [ResellerCode],
      [ResellerName]
    FROM
      [Reseller]
    WHERE
      [ResellerName] LIKE '%' + @Search + '%'
    ORDER BY
      [ResellerName]
    
  3. Yhdistä Reseller-tietojoukon kyselyparametri vastaavaan raporttiparametriin.

Vihje

Tämän mallin avulla voit tarjota raportin käyttäjille parempia hallintatoimintoja. Sen avulla he voivat määrittää arvon täsmäyttämisen oman mallinsa. Esimerkiksi hakuarvo "red%" suodattaa jälleenmyyjiin, joiden nimet alkavat merkeillä "red".

Lisätietoja on kohdassa LIKE (Transact-SQL).

Näin voit antaa raportin käyttäjien määrittää oman mallinsa.

WHERE
  [ResellerName] LIKE @Search

Monet käyttäjät, jotka eivät ole tietokanta-ammattilaisia, eivät kuitenkaan tiedä prosenttiosuuden (%) yleismerkkiä. Sen sijaan he tuntevat tähden (*). Muokkaamalla WHERE-lausetta voit antaa heidän käyttää tätä merkkiä.

WHERE
  [ResellerName] LIKE SUBSTITUTE(@Search, '%', '*')

Olennaisten kohteiden esittäminen

Tässä skenaariossa voit käyttää faktatietoja käytettävissä olevien arvojen rajoittamiseen. Raportin käyttäjille esitetään kohteet, joissa toiminta on tallennettu.

Tässä esimerkissä raportin käyttäjä soveltaa kolmea raportin parametria. Kaksi ensimmäistä joukkoa määrittää myyntitilausten päivämäärien päivämääräalueen. Kolmas parametri luettelee jälleenmyyjät, jotka ovat tehneet tilauksia kyseisenä ajanjaksona.

Screenshot of Power BI paginated report parameters showing three report parameters: Start Order Date, End Order Date, and Reseller.

Voit kehittää johdannaisparametrit seuraavasti:

  1. Luo OrderDateStart-, OrderDateEnd- ja Reseller-raportin parametrit, jotka on järjestetty oikeaan järjestykseen.

  2. Luo Reseller-tietojoukko, jotta voit hakea kaikki jälleenmyyjät, jotka loivat tilauksia päivämääräjaksolla, käyttämällä seuraavaa kyselylauseketta:

    SELECT DISTINCT
      [r].[ResellerCode],
      [r].[ResellerName]
    FROM
      [Reseller] AS [r]
    INNER JOIN [Sales] AS [s]
      ON [s].[ResellerCode] = [r].[ResellerCode]
    WHERE
      [s].[OrderDate] >= @OrderDateStart
      AND [s].[OrderDate] < DATEADD(DAY, 1, @OrderDateEnd)
    ORDER BY
      [r].[ResellerName]
    

Suosituksia

Suosittelemme, että suunnittelet raportit johdannaisparametrien avulla aina, kun se on mahdollista. Tämä johtuu siitä, että:

  • Takaat raporttisi käyttäjille intuitiivisia ja hyödyllisiä kokemuksia.
  • Ovat tehokkaita, koska ne hakevat pienempiä käytettävissä olevien arvojen joukkoja

Varmista, että optimoit tietolähteesi:

  • käyttämällä tallennettuja toimintosarjoja aina kun se on mahdollista,
  • Lisäämällä asianmukaiset indeksit tietojen tehokkaaksi hakemiseen
  • Materialisoimalla sarakkeiden arvot – ja jopa rivit – kalliiden kyselyaika-arviointien välttämiseksi

Saat lisätietoja tähän artikkeliin liittyen tutustumalla seuraaviin resursseihin: