Kaszkádolt paraméterek használata többoldalas jelentésekben

Ez a cikk többoldalas Power BI-jelentéseket tervező jelentéskészítőként szolgál. Forgatókönyveket biztosít a kaszkádolt paraméterek tervezéséhez. A kaszkádolt paraméterek függőségekkel rendelkező jelentésparaméterek. Amikor egy jelentésfelhasználó kiválaszt egy paraméterértéket (vagy értékeket), az egy másik paraméter elérhető értékeinek beállítására szolgál.

Feljegyzés

A kaszkádolt paramétereket és azok konfigurálásának módját ez a cikk nem ismerteti. Ha nem ismeri teljesen a kaszkádolt paramétereket, javasoljuk, hogy először olvassa el a Kaszkádolt paraméterek hozzáadása jelentéshez a Power BI Jelentéskészítő.

Tervezési forgatókönyvek

A kaszkádolt paraméterek használatához két tervezési forgatókönyv létezik. Hatékonyan felhasználhatók a következőre:

  • Nagy elemek szűrése
  • Releváns elemek megjelenítése

Példaadatbázis

A cikkben bemutatott példák egy Azure SQL Database-en alapulnak. Az adatbázis rögzíti az értékesítési műveleteket, és különböző, viszonteladókat, termékeket és értékesítési rendeléseket tartalmazó táblákat tartalmaz.

A Reseller nevű tábla minden viszonteladóhoz egy rekordot tárol, és több ezer rekordot tartalmaz. A Reseller tábla a következő oszlopokat tartalmazza:

  • ResellerCode (egész szám)
  • ResellerName
  • Country-Region
  • Country-Region
  • Város
  • Irányítószám

Van egy Sales nevű tábla is. Tárolja az értékesítési rendelés rekordjait, és külső kulcskapcsolata van a Reseller táblával a ResellerCode oszlopban.

Példakövetelmény

A viszonteladói profil jelentésének fejlesztésére van szükség. A jelentést úgy kell megtervezni, hogy egyetlen viszonteladó adatait jelenítse meg. Nem célszerű, ha a jelentés felhasználója viszonteladói kódot adna meg, mivel ritkán jegyezi fel őket.

Nagy elemek szűrése

Vessünk egy pillantást három példára, amelyek segítenek korlátozni a nagy mennyiségű elérhető tételt, például a viszonteladókat. Ezek a következők:

Ebben a példában a jelentésfelhasználó öt jelentésparaméterrel kommunikál. Ki kell választaniuk az ország-régiót, az állam-tartományt, a várost, majd az irányítószámot. A végső paraméter ezután felsorolja az adott földrajzi helyen található viszonteladókat.

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

A kaszkádolt paraméterek a következőképpen fejleszthetők:

  1. Hozza létre az öt jelentésparamétert a megfelelő sorrendben.

  2. Hozza létre a CountryRegion adatkészletet, amely különböző országrégiós értékeket kér le a következő lekérdezési utasítással:

    SELECT DISTINCT
      [Country-Region]
    FROM
      [Reseller]
    ORDER BY
      [Country-Region]
    
  3. Hozza létre a StateProvince adatkészletet, amely a kiválasztott ország-régió különböző állam-tartomány értékeit kéri le a következő lekérdezési utasítással:

    SELECT DISTINCT
      [State-Province]
    FROM
      [Reseller]
    WHERE
      [Country-Region] = @CountryRegion
    ORDER BY
      [State-Province]
    
  4. Hozza létre a City adatkészletet, amely a kiválasztott ország-régió és államtartomány eltérő városértékeit kéri le a következő lekérdezési utasítással:

    SELECT DISTINCT
      [City]
    FROM
      [Reseller]
    WHERE
      [Country-Region] = @CountryRegion
      AND [State-Province] = @StateProvince
    ORDER BY
      [City]
    
  5. Folytassa ezt a mintát a PostalCode-adatkészlet létrehozásához.

  6. Hozza létre a Reseller adatkészletet a kiválasztott földrajzi értékek összes viszonteladójának lekéréséhez a következő lekérdezési utasítás használatával:

    SELECT
      [ResellerCode],
      [ResellerName]
    FROM
      [Reseller]
    WHERE
      [Country-Region] = @CountryRegion
      AND [State-Province] = @StateProvince
      AND [City] = @City
      AND [PostalCode] = @PostalCode
    ORDER BY
      [ResellerName]
    
  7. Az első kivételével minden adatkészlethez rendelje le a lekérdezési paramétereket a megfelelő jelentésparaméterekhez.

Feljegyzés

Az ezekben a példákban szereplő összes lekérdezési paraméter (a @szimbólummal előtaggal) beágyazható Standard kiadás LECT utasításokba, vagy átadható a tárolt eljárásoknak.

A tárolt eljárások általában jobb tervezési megközelítést jelentenek. Ennek az az oka, hogy a lekérdezési tervek gyorsítótárazva vannak a gyorsabb végrehajtás érdekében, és lehetővé teszik, hogy igény szerint kifinomultabb logikát fejlesszen ki. Az átjáró relációs adatforrásai azonban jelenleg nem támogatottak, ami az SQL Servert, az Oracle-t és a Teradata-t jelenti.

Végül mindig győződjön meg arról, hogy megfelelő indexek léteznek a hatékony adatlekérés támogatására. Ellenkező esetben a jelentésparaméterek lassan tölthetők fel, és az adatbázis túlterheltté válhat. Az SQL Server-indexelésről további információt az SQL Server indexelési architektúrájában és tervezési útmutatójában talál.

Szűrés csoportosítási oszlop alapján

Ebben a példában a jelentésfelhasználó egy jelentésparaméterrel lép kapcsolatba a viszonteladó első betűjének kiválasztásához. A második paraméter ezután felsorolja a viszonteladókat, amikor a név a kijelölt betűvel kezdődik.

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

A kaszkádolt paraméterek a következőképpen fejleszthetők:

  1. Hozza létre a ReportGroup és a Reseller jelentésparamétereket a megfelelő sorrendben rendezve.

  2. Hozza létre a ReportGroup adatkészletet az összes viszonteladó által használt első betűk lekéréséhez a következő lekérdezési utasítás használatával:

    SELECT DISTINCT
      LEFT([ResellerName], 1) AS [ReportGroup]
    FROM
      [Reseller]
    ORDER BY
      [ReportGroup]
    
  3. Hozza létre a Reseller adatkészletet a kiválasztott betűvel kezdődő összes viszonteladó lekéréséhez a következő lekérdezési utasítás használatával:

    SELECT
      [ResellerCode],
      [ResellerName]
    FROM
      [Reseller]
    WHERE
      LEFT([ResellerName], 1) = @ReportGroup
    ORDER BY
      [ResellerName]
    
  4. A Reseller adatkészlet lekérdezési paraméterének leképezése a megfelelő jelentésparaméterre.

Hatékonyabb a csoportosítási oszlop hozzáadása a Reseller táblához. Ha megőrzve és indexelve van, az a legjobb eredményt adja. További információ: Számított oszlopok megadása egy táblában.

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

Ez a technika még nagyobb potenciált képes biztosítani. Fontolja meg a következő szkriptet, amely új csoportosítási oszlopot ad hozzá a viszonteladók szűréséhez előre definiált betűsávok alapján. Emellett létrehoz egy indexet a jelentésparaméterek által igényelt adatok hatékony lekéréséhez.

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

Szűrés keresési minta szerint

Ebben a példában a jelentés felhasználója egy jelentésparaméterrel lép kapcsolatba egy keresési minta megadásához. A második paraméter ezután felsorolja a viszonteladókat, ha a név tartalmazza a mintát.

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

A kaszkádolt paraméterek a következőképpen fejleszthetők:

  1. Hozza létre a Keresési és viszonteladói jelentés paramétereit a megfelelő sorrendben rendezve.

  2. Hozza létre a Reseller adatkészletet a keresési szöveget tartalmazó összes viszonteladó lekéréséhez a következő lekérdezési utasítás használatával:

    SELECT
      [ResellerCode],
      [ResellerName]
    FROM
      [Reseller]
    WHERE
      [ResellerName] LIKE '%' + @Search + '%'
    ORDER BY
      [ResellerName]
    
  3. A Reseller adatkészlet lekérdezési paraméterének leképezése a megfelelő jelentésparaméterre.

Tipp.

Ennek a kialakításnak a továbbfejlesztése nagyobb ellenőrzést biztosít a jelentés felhasználói számára. Ez lehetővé teszi számukra, hogy meghatározzák a saját mintájuknak megfelelő értéket. A "red%" keresési érték például a "piros" karakterekkel kezdődő névvel rendelkező viszonteladókra szűr.

További információ: LIKE (Transact-SQL).

Az alábbiakban bemutatjuk, hogyan engedélyezheti a jelentés felhasználóinak a saját mintájuk meghatározását.

WHERE
  [ResellerName] LIKE @Search

Sok nem adatbázis-szakember azonban nem tud a helyettesítő karakterek százalékos (%) értékéről. Ehelyett a csillag (*) karaktert ismerik. A WHERE záradék módosításával engedélyezheti számukra ezt a karaktert.

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

Releváns elemek megjelenítése

Ebben a forgatókönyvben tényadatokkal korlátozhatja a rendelkezésre álló értékeket. A jelentés felhasználói olyan elemeket fognak bemutatni, amelyekben a tevékenység rögzítésre került.

Ebben a példában a jelentésfelhasználó három jelentésparaméterrel kommunikál. Az első kettő az értékesítési rendelés dátumtartományát állítja be. A harmadik paraméter ezután felsorolja azokat a viszonteladókat, amelyekben az adott időszakban megrendelések jöttek létre.

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

A kaszkádolt paraméterek a következőképpen fejleszthetők:

  1. Hozza létre az OrderDateStart, az OrderDateEnd és a Reseller jelentésparamétereket a megfelelő sorrendben rendezve.

  2. Hozza létre a Reseller adatkészletet a dátumidőszakban rendeléseket létrehozó összes viszonteladó lekéréséhez a következő lekérdezési utasítás használatával:

    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]
    

Ajánlások

Javasoljuk, hogy amikor csak lehetséges, kaszkádolt paraméterekkel tervezzen jelentéseket. Ennek az az oka, hogy:

  • Intuitív és hasznos élmények biztosítása a jelentés felhasználói számára
  • Hatékonyak, mert kisebb elérhető értékkészleteket kérnek le

Ügyeljen arra, hogy az adatforrásokat az alábbiak szerint optimalizálja:

  • Tárolt eljárások használata, amikor csak lehetséges
  • Megfelelő indexek hozzáadása a hatékony adatlekéréshez
  • Oszlopértékek és akár sorok materializálása a költséges lekérdezési idő kiértékelésének elkerülése érdekében

A cikkhez kapcsolódó további információkért tekintse meg a következő forrásokat: