Megosztás a következőn keresztül:


Adattípusok többoldalas jelentések kifejezéseiben (Power BI Jelentéskészítő)

A következőkre vonatkozik: Power BI Jelentéskészítő Power BI Desktop

Az adattípusok különböző típusú adatokat jelölnek a többoldalas jelentésekben, így azok hatékonyan tárolhatók és feldolgozhatók. A tipikus adattípusok közé tartozik a szöveg (más néven sztringek), a tizedesjegyeket tartalmazó és anélküli számok, a dátumok és időpontok, valamint a képek. A jelentés értékeinek jelentésdefiníciós nyelv (RDL) adattípusnak kell lenniük. Az értékeket tetszése szerint formázhatja, amikor egy jelentésben jeleníti meg. A pénznemet képviselő mező például lebegőpontos számként van tárolva a jelentésdefinícióban, de a választott formátumtulajdonságtól függően többféle formátumban is megjeleníthető.

A megjelenítési formátumokról további információt a Jelentéselemek formázása (Power BI Jelentéskészítő) című témakörben talál.

Jelentésdefiníciós nyelv (RDL) adattípusai és a common language runtime (CLR) adattípusok

Az RDL-fájlban megadott értékeknek RDL-adattípusnak kell lenniük. A jelentés lefordításakor és feldolgozásakor az RDL-adattípusok CLR-adattípusokká lesznek konvertálva. Az alábbi táblázat az alapértelmezettként megjelölt átalakítást jeleníti meg:

RDL-típus CLR-típusok
Sztring Alapértelmezett: Sztring

Diagram, GUID, Időbélyeg
Logikai Alapértelmezett: Logikai
Egész Alapértelmezett: Int64

Int16, Int32, Uint16, Uint64, Byte, Sbyte
Dátum/idő Alapértelmezett: DateTime

DateTimeOffset
Lebegőpontos értékek Alapértelmezett: Dupla

Egy, Tizedes
Bináris Alapértelmezett: Bájt[]
Változat A fentiek bármelyike, kivéve Byte[]
VariantArray A Variant tömbje
Szerializálható Szerializálható vagy ISerializable-t implementáló változat vagy típusok.

Adattípusok és kifejezések írása

Fontos megérteni az adattípusokat, amikor kifejezéseket ír az értékek összehasonlítása vagy egyesítése céljából, például csoport- vagy szűrőkifejezések definiálásakor vagy összesítések kiszámításakor. Az összehasonlítások és számítások csak az azonos adattípusú elemek között érvényesek. Ha az adattípusok nem egyeznek, explicit módon konvertálnia kell a jelentéselem adattípusát egy kifejezés használatával.

Az alábbi lista azokat az eseteket ismerteti, amikor előfordulhat, hogy az adatokat más adattípusra kell konvertálnia:

  • Egy adattípus jelentésparaméterének összehasonlítása egy másik adattípusú adathalmazmezővel.

  • Olyan szűrőkifejezések írása, amelyek különböző adattípusok értékeit hasonlítják össze.

  • Rendezési kifejezések írása, amelyek különböző adattípusú mezőket egyesítenek.

  • Olyan csoportkifejezések írása, amelyek különböző adattípusú mezőket egyesítenek.

  • Az adatforrásból lekért érték átalakítása egy adattípusból egy másik adattípusba.

A jelentésadatok adattípusának meghatározása

Egy jelentéselem adattípusának meghatározásához írhat egy kifejezést, amely visszaadja az adattípusát. A mező MyFieldadattípusának megjelenítéséhez például adja hozzá a következő kifejezést egy táblázatcellához: =Fields!MyField.Value.GetType().ToString(). Az eredmény megjeleníti a CLR adattípust, amely például a System.String vagy a System.DateTime értéket jelöliMyField.

Adathalmazmezők konvertálása másik adattípusra

Adathalmazmezőket is átalakíthat, mielőtt egy jelentésben használnuk őket. Az alábbi lista a meglévő adathalmazmezők átalakításának módjait ismerteti:

  • Módosítsa az adathalmaz-lekérdezést úgy, hogy új lekérdezésmezőt adjon hozzá a konvertált adatokkal. A relációs vagy többdimenziós adatforrások esetében ez adatforrás-erőforrásokat használ az átalakítás végrehajtásához.

  • Hozzon létre egy számított mezőt egy meglévő jelentésadatkészlet-mező alapján egy olyan kifejezés megírásával, amely egy eredményhalmaz-oszlop összes adatát egy másik adattípusú új oszlopmá alakítja. Az alábbi kifejezés például az Év mezőt egész számból sztringértékké alakítja: =CStr(Fields!Year.Value). További információ: Mezők hozzáadása, szerkesztése, frissítése a jelentés adatpanelén (Power BI Jelentéskészítő).

  • Ellenőrizze, hogy a használt adatfeldolgozási bővítmény tartalmaz-e metaadatokat az előre formázott adatok lekéréséhez. Egy SQL Server Analysis Services MDX-lekérdezés például tartalmaz egy FORMATTED_VALUE kiterjesztett tulajdonságot a kocka feldolgozásakor már formázott kockaértékekhez. További információkért tekintse meg az Analysis Services-adatbázis (SSRS) kiterjesztett mezőtulajdonságait.

A paraméter adattípusának ismertetése

A jelentésparamétereknek öt adattípus egyikének kell lenniük: Logikai, DateTime, Egész szám, Lebegőpontos vagy Szöveg (más néven Sztring). Ha egy adathalmaz-lekérdezés lekérdezési paramétereket tartalmaz, a rendszer automatikusan létrehozza és összekapcsolja a jelentésparamétereket a lekérdezési paraméterekkel. A jelentésparaméter alapértelmezett adattípusa a Sztring. A jelentésparaméter alapértelmezett adattípusának módosításához válassza ki a megfelelő értéket a Jelentésparaméter tulajdonságai párbeszédpanel Általános lapján található Adattípus legördülő listából.

Feljegyzés

A DateTime adattípusok jelentésparaméterei nem támogatják az ezredmásodperceket. Bár ezredmásodpercet tartalmazó értékek alapján is létrehozhat paramétert, az elérhető értékek legördülő listájából nem választhat olyan értéket, amely ezredmásodpercet tartalmazó dátum- vagy időértékeket tartalmaz.

Adattípusokat konvertáló vagy adatrészeket kinyerő kifejezések írása

Ha szöveg- és adathalmazmezőket egyesít az összefűzési operátorral (>), a közös nyelvi futtatókörnyezet (CLR) általában alapértelmezett formátumokat biztosít. Ha egy adathalmazmezőt vagy paramétert explicit módon egy adott adattípusra kell konvertálnia, az adatok konvertálásához CLR-metódust vagy Visual Basic futtatókörnyezeti függvényt kell használnia.

Az alábbi táblázat példákat mutat be az adattípusok konvertálására.

Az átalakítás típusa Példa
DateTime–Sztring =CStr(Fields!Date.Value)
Sztring–DateTime =DateTime.Parse(Fields!DateTimeinStringFormat.Value)
String to DateTimeOffset =DateTimeOffset.Parse(Fields!DateTimeOffsetinStringFormat.Value)
Az év kinyerése =Year(Fields!TimeinStringFormat.Value)

-- or --

=Year(Fields!TimeinDateTimeFormat.Value)
Logikai érték egész számra =CInt(Parameters!BooleanField.Value)

-1 igaz, a 0 pedig hamis.
Logikai érték egész számra =System.Convert.ToInt32(Fields!BooleanFormat.Value)

Az 1 igaz, a 0 pedig hamis.
Csak a DateTimeOffset érték DateTime része =Fields!MyDatetimeOffset.Value.DateTime
Csak a DateTimeOffset érték eltolás része =Fields!MyDatetimeOffset.Value.Offset

A Formátum függvénnyel az érték megjelenítési formátumát is szabályozhatja. További információ: Functions (Visual Basic).

Speciális példák

Ha olyan adatforráshoz csatlakozik egy olyan adatszolgáltatóval, amely nem nyújt konverziós támogatást az adatforrás összes adattípusához, a nem támogatott adatforrástípusok alapértelmezett adattípusa a Sztring. Az alábbi példák olyan konkrét adattípusokra nyújtanak megoldást, amelyeket sztringként adnak vissza.

Sztring és CLR DateTimeOffset adattípus összefűzve

A legtöbb adattípus esetében a CLR alapértelmezett átalakításokat biztosít, így a &operátor használatával egyetlen sztringbe fűzheti a különböző adattípusú értékeket. A következő kifejezés például összefűzi a "Dátum és idő: " szöveget egy StartDate adathalmazmezővel, amely egy DateTime érték: ="The date and time are: " & Fields!StartDate.Value.

Egyes adattípusok esetében előfordulhat, hogy a ToString függvényt is tartalmaznia kell. Az alábbi kifejezés például ugyanazt a példát mutatja be a CLR-adattípussal DateTimeOffset, amely tartalmazza a dátumot, az időt és az időzóna eltolódását az UTC időzónához képest: ="The time is: " & Fields!StartDate.Value.ToString().

Sztring adattípus konvertálása CLR DateTime-adattípussá

Ha egy adatfeldolgozási bővítmény nem támogatja az adatforráson definiált összes adattípust, az adatok lekérhetők szövegként. A datetimeoffset(7) adattípus értéke például sztring típusú adattípusként kérhető le. Az ausztráliai Perthben a 2008. július 1-jén 6:05:07.999999999 időpontban megadott sztringérték a következőhöz hasonló:

2008-07-01 06:05:07.9999999 +08:00

Ez a példa a dátumot (2008. július 1.), majd a hétjegyű pontosságot (6:05:07.999999999) mutatja, majd az UTC időzóna-eltolása órákban és percekben (plusz 8 óra, 0 perc). Az alábbi példákban ez az érték egy Sztring nevű mezőbeMyDateTime.Valuelett helyezve.

Az alábbi stratégiák egyikével konvertálhatja ezeket az adatokat egy vagy több CLR-értékre:

  • Egy szövegmezőben kifejezéssel nyerje ki a sztring egyes részeit. Példa:

    • Az alábbi kifejezés kinyeri az UTC időzóna eltolásának csak az óra részét, és percekké alakítja: =CInt(Fields!MyDateTime.Value.Substring(Fields!MyDateTime.Value.Length-5,2)) * 60

      Az eredmény: 480.

    • A következő kifejezés dátum- és időértékké alakítja a sztringet: =DateTime.Parse(Fields!MyDateTime.Value)

      Ha a sztring MyDateTime.Value UTC-eltolással rendelkezik, a DateTime.Parse függvény először az UTC eltoláshoz (7 óra – [+08:00] az előző este 11 óra UTC-időponthoz igazodik). A DateTime.Parse függvény ezután alkalmazza a helyi jelentéskészítő kiszolgáló UTC eltolását, és szükség esetén ismét módosítja a nyári időszámításhoz szükséges időt. A washingtoni Redmondban például a nyári időszámításhoz [-07:00]igazított helyi időeltolás 7 órával korábbi, mint 11 óra. Az eredmény a következő DateTime érték: 2007-07-06 04:07:07 PM (2007. július 6., 16:07).

A sztringek DateTime-adattípusokká alakításáról további információt a Dátum- és idősztringek elemzése, az adott kultúra dátumának és időpontjának formázása, valamint a DateTime, a DateTimeOffset és a TimeZoneInfo közötti választás című témakörben talál.

  • Adjon hozzá egy új számított mezőt a jelentés adatkészletéhez, amely kifejezéssel kinyeri a sztring részeit. További információ: Mezők hozzáadása, szerkesztése, frissítése a jelentés adatpanelén (Power BI Jelentéskészítő).

  • Módosítsa a jelentés adatkészlet-lekérdezését úgy, hogy a Transact-SQL függvényekkel egymástól függetlenül nyerje ki a dátum- és időértékeket, hogy külön oszlopokat hozzon létre. Az alábbi példa bemutatja, hogy a DatePart függvénnyel hogyan adhat hozzá egy oszlopot az évhez és egy oszlopot az UTC időzónához, amelyet percekké alakítottak át:

    SELECT

    MyDateTime,

    DATEPART(year, MyDateTime) AS Year,

    DATEPART(tz, MyDateTime) AS OffsetinMinutes

    FROM MyDates

    Az eredményhalmaz három oszlopból áll. Az első oszlop a dátum és az idő, a második oszlop az év, a harmadik pedig az UTC-eltolás percben. Az alábbi sor példaadatokat mutat be:

    2008-07-01 06:05:07 2008 480

Az SQL Server-adatbázis adattípusairól további információt az Adattípusok (Transact-SQL) és a Dátum és idő adattípusok és függvények (Transact-SQL) című témakörben talál.

További információ az SQL Server Analysis Services adattípusairól: Adattípusok az Analysis Servicesben.