Zdieľať cez


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 SalesDataurč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.

Ďalšie kroky