Vstavané kolekcie – odkazy na kolekciu polí množiny údajov v stránkovanej zostave (Zostavovač zostáv Power BI).
VZŤAHUJE SA NA: Power BI Zostavovač zostáv Power BI Desktop
Každá množina údajov v stránkovanej zostave obsahuje jednu kolekciu Polia. Kolekcia Polia je množina polí zadaných dotazom množiny údajov plus všetky ďalšie vypočítavané polia, ktoré vytvoríte. Po vytvorení množiny údajov sa kolekcia polí zobrazí na table Údaje zostavy.
Jednoduchý odkaz na pole vo výraze sa v oblasti návrhu zobrazí ako jednoduchý výraz. Keď napríklad presuniete pole Sales
z tably Údaje zostavy do bunky tabuľky v oblasti návrhu, [Sales]
zobrazí sa. Predstavuje základný výraz =Fields!Sales.Value
, ktorý je nastavený vo vlastnosti textového poľa Hodnota. Po spustení zostavy procesor zostavy vyhodnotí tento výraz a zobrazí skutočné údaje zo zdroja údajov v textovom poli v bunke tabuľky. Ďalšie informácie nájdete v téme Výrazy (Power BI Zostavovač zostáv) a Kolekcia polí množiny údajov (Power BI Zostavovač zostáv).
Zobrazenie kolekcie polí pre množinu údajov
Ak chcete zobraziť jednotlivé hodnoty pre kolekciu polí, presuňte jednotlivé polia do riadka podrobností tabuľky a spustite zostavu. Odkazy z riadka podrobností tabuľky alebo oblasti údajov zoznamu zobrazujú hodnotu pre každý riadok v množine údajov.
Ak chcete zobraziť súhrnné hodnoty pre pole, presuňte každé číselné pole do oblasti údajov matice. Predvolená agreganá funkcia pre riadok súčtu je napríklad =Sum(Fields!Sales.Value)
Súčet. Ak chcete vypočítať rôzne súčty, môžete zmeniť predvolenú funkciu. Ďalšie informácie nájdete v téme Referenčné informácie o agregačných funkciách (Zostavovač zostáv).
Ak chcete zobraziť súhrnné hodnoty pre kolekciu polí v textovom poli priamo na povrchu návrhu (nie je súčasťou oblasti údajov), musíte zadať názov množiny údajov ako rozsah pre agregovanú funkciu. Napríklad pre množinu údajov s názvom SalesData
určuje nasledujúci výraz súčet všetkých hodnôt pre pole Sales
: =Sum(Fields!Sales,"SalesData")
.
Keď na definovanie jednoduchého odkazu na pole použijete dialógové okno Výraz , môžete vybrať kolekciu Polia na table Kategória a zobraziť zoznam dostupných polí na table Pole . Každé pole má niekoľko vlastností vrátane value a IsMissing. Zostávajúce vlastnosti sú preddefinované rozšírené vlastnosti poľa, ktoré môžu byť k dispozícii pre množinu údajov v závislosti od typu zdroja údajov.
Zisťovanie hodnôt Null pre pole množiny údajov
Ak chcete zistiť hodnotu poľa s hodnotou null (nič v jazyku Visual Basic), môžete použiť funkciu IsNothing. Po umiestnení do textového poľa v riadku podrobností tabuľky otestuje nasledujúci výraz pole MiddleName
a pri hodnote null nahradí text "Nie stredné meno" a samotnú hodnotu poľa, keď hodnota nie je null:
=IIF(IsNothing(Fields!MiddleName.Value),"No Middle Name",Fields!MiddleName.Value)
Zisťovanie chýbajúcich polí pre dynamické dotazy v čase spustenia
Položky v kolekcii Polia majú predvolene dve vlastnosti: Value a IsMissing. Vlastnosť IsMissing udáva, či pole, ktoré je definované pre množinu údajov v čase návrhu, obsahuje polia načítané v čase spustenia. Dotaz môže napríklad volať uloženú procedúru, v ktorej sa množina výsledkov líši so vstupným parametrom, alebo dotaz môže byť tabuľka>, v ktorej sa SELECT * FROM
<definícia tabuľky zmenila.
Poznámka
Funkcia IsMissing zisťuje zmeny v schéme množiny údajov medzi časom návrhu a časom spustenia pre akýkoľvek typ zdroja údajov. Funkciu IsMissing nemožno použiť na zisťovanie prázdnych členov v multidimenzionálnej kocke a nesúvisí s konceptmi jazyka dotazov MDX s hodnotami EMPTY a NON EMPTY.
Vlastnosť IsMissing môžete otestovať vo vlastnom kóde a určiť, či sa v množine výsledkov nachádza pole. Na jeho prítomnosť nemožno otestovať výraz s vyvolaním funkcie Visual Basic, ako je napríklad IIF alebo SWITCH, pretože Visual Basic vyhodnotí všetky parametre vo volaní na funkciu, čo má za následok chybu pri vyhodnotení odkazu na chýbajúcu funkciu.
Príklad kontroly viditeľnosti dynamického stĺpca pre chýbajúce pole
Ak chcete nastaviť výraz, ktorý kontroluje viditeľnosť stĺpca, ktorý zobrazuje pole v množine údajov, musíte najprv definovať funkciu vlastného kódu, ktorá vráti booleovskú hodnotu na základe toho, či pole chýba. Napríklad nasledujúca funkcia vlastného kódu vráti hodnotu true, ak pole chýba a v prípade, že pole existuje, vráti hodnotu false.
Public Function IsFieldMissing(field as Field) as Boolean
If (field.IsMissing) Then
Return True
Else
Return False
End If
End Function
Ak chcete použiť túto funkciu na riadenie viditeľnosti stĺpca, nastavte vlastnosť Hidden stĺpca na nasledujúci výraz:
=Code.IsFieldMissing(Fields!FieldName)
Stĺpec je skrytý, keď pole neexistuje.
Príklad ovládania hodnoty textového poľa pre chýbajúce pole
Ak chcete nahradiť text, ktorý napíšete namiesto hodnoty chýbajúceho poľa, musíte zapísať vlastný kód, ktorý vráti text, ktorý môžete použiť namiesto hodnoty poľa, ak pole chýba. Napríklad nasledujúca funkcia vlastného kódu vráti hodnotu poľa, ak pole existuje, a správu, ktorú zadáte ako druhý parameter, ak pole neexistuje:
Public Function IsFieldMissingThenString(field as Field, strMessage as String) as String
If (field.IsMissing) Then
Return strMessage
Else
Return field.Value
End If
End Function
Ak chcete použiť túto funkciu v textovom poli, pridajte nasledujúci výraz do vlastnosti Value:
=Code.IsFieldMissingThenString(Fields!FieldName,"Missing")
Textové pole zobrazuje hodnotu poľa alebo text, ktorý ste zadali.
Používanie rozšírených vlastností poľa
Rozšírené vlastnosti poľa sú ďalšie vlastnosti definované v poli rozšírením na spracovanie údajov, ktoré je určené typom zdroja údajov pre množinu údajov. Rozšírené vlastnosti poľa sú preddefinované alebo špecifické pre typ zdroja údajov. Ďalšie informácie nájdete v téme Rozšírené vlastnosti poľa pre databázu Analysis Services (stránkované zostavy).
Ak zadáte vlastnosť, ktorá nie je podporovaná pre toto pole, výraz sa vyhodnotí ako null (nič v jazyku Visual Basic). Ak poskytovateľ údajov nepodporuje rozšírené vlastnosti poľa, alebo ak sa pole nenájde pri spustení dotazu, hodnota vlastnosti je null (nič v jazyku Visual Basic) pre vlastnosti typu String a Object a nula (0) pre vlastnosti typu Celé číslo. Rozšírenie na spracovanie údajov môže využiť preddefinované vlastnosti optimalizáciou dotazov, ktoré obsahujú túto syntax.