Κοινή χρήση μέσω


Τύποι δεδομένων σε παραστάσεις σε μια σελιδοποιημένη αναφορά (Εργαλείο δόμησης αναφορών του Power BI)

ΙΣΧΎΕΙ ΓΙΑ: Power BI Report Builder Power BI Desktop

Οι τύποι δεδομένων αντιπροσωπεύουν διαφορετικά είδη δεδομένων σε μια σελιδοποιημένη αναφορά, ώστε να είναι δυνατή η αποτελεσματική αποθήκευση και επεξεργασία τους. Οι τυπικοί τύποι δεδομένων περιλαμβάνουν κείμενο (γνωστό και ως συμβολοσειρές), αριθμούς με και χωρίς δεκαδικά ψηφία, ημερομηνίες και ώρες και εικόνες. Οι τιμές σε μια αναφορά πρέπει να είναι ένας τύπος δεδομένων Γλώσσας ορισμού αναφοράς (RDL). Μπορείτε να μορφοποιήσετε μια τιμή σύμφωνα με τις προτιμήσεις σας όταν την εμφανίζετε σε μια αναφορά. Για παράδειγμα, ένα πεδίο που αντιπροσωπεύει τη νομισματική μονάδα αποθηκεύεται στον ορισμό αναφοράς ως αριθμός κινητής υποδιαστολής, αλλά μπορεί να εμφανίζεται σε διάφορες μορφές ανάλογα με την ιδιότητα μορφής που επιλέγετε.

Για περισσότερες πληροφορίες σχετικά με τις μορφές εμφάνισης, ανατρέξτε στο θέμα Μορφοποίηση στοιχείων αναφοράς (Εργαλείο δόμησης αναφορών του Power BI).

Τύποι δεδομένων γλώσσας ορισμού αναφοράς (RDL) και τύποι δεδομένων κοινού χρόνου εκτέλεσης γλώσσας (CLR)

Οι τιμές που καθορίζονται σε ένα αρχείο RDL πρέπει να είναι τύπου δεδομένων RDL. Κατά τη μεταγλώττιση και την επεξεργασία της αναφοράς, οι τύποι δεδομένων RDL μετατρέπονται σε τύπους δεδομένων CLR. Ο παρακάτω πίνακας εμφανίζει τη μετατροπή, η οποία έχει επισημανθεί ως Προεπιλογή:

Τύπος RDL Τύποι CLR
Συμβολοσειρά Προεπιλογή: Συμβολοσειρά

Γράφημα, GUID, Χρονικό διάστημα
Boolean Προεπιλογή: Δυαδική τιμή
Integer Προεπιλογή: Int64

Int16, Int32, Uint16, Uint64, Byte, Sbyte
DateTime Προεπιλογή: Ημερομηνία/ώρα

DateTimeOffset
Επιπλέω Προεπιλογή: Διπλή

Μονό, δεκαδικό
Δυαδικό Προεπιλογή: Byte[]
Παραλλαγή Οποιοδήποτε από τα παραπάνω εκτός από byte[]
VariantArray Πίνακας παραλλαγών
Με δυνατότητα σειριοποιήσιμης Παραλλαγές ή τύποι που επισημαίνονται με Serializable ή που υλοποιούν το ISerializable.

Κατανόηση τύπων δεδομένων και εγγραφής παραστάσεων

Είναι σημαντικό να κατανοήσετε τους τύπους δεδομένων κατά τη σύνταξη παραστάσεων για τη σύγκριση ή τον συνδυασμό τιμών, για παράδειγμα, όταν ορίζετε παραστάσεις ομάδας ή φίλτρου ή υπολογίζετε συγκεντρωτικές τιμές. Οι συγκρίσεις και οι υπολογισμοί είναι έγκυρες μόνο μεταξύ στοιχείων του ίδιου τύπου δεδομένων. Εάν οι τύποι δεδομένων δεν συμφωνούν, πρέπει να μετατρέψετε ρητά τον τύπο δεδομένων στο στοιχείο αναφοράς χρησιμοποιώντας μια παράσταση.

Η παρακάτω λίστα περιγράφει περιπτώσεις όπου μπορεί να χρειαστεί να μετατρέψετε δεδομένα σε διαφορετικό τύπο δεδομένων:

  • Σύγκριση της τιμής μιας παραμέτρου αναφοράς ενός τύπου δεδομένων με ένα πεδίο συνόλου δεδομένων διαφορετικού τύπου δεδομένων.

  • Σύνταξη παραστάσεων φίλτρου που συγκρίνουν τιμές διαφορετικών τύπων δεδομένων.

  • Σύνταξη παραστάσεων ταξινόμησης που συνδυάζουν πεδία διαφορετικών τύπων δεδομένων.

  • Σύνταξη παραστάσεων ομάδας που συνδυάζουν πεδία διαφορετικών τύπων δεδομένων.

  • Μετατροπή μιας τιμής που ανακτώνται από την προέλευση δεδομένων από έναν τύπο δεδομένων σε διαφορετικό τύπο δεδομένων.

Προσδιορισμός του τύπου δεδομένων των δεδομένων αναφοράς

Για να προσδιορίσετε τον τύπο δεδομένων ενός στοιχείου αναφοράς, μπορείτε να συντάξετε μια παράσταση που επιστρέφει τον τύπο δεδομένων της. Για παράδειγμα, για να εμφανίσετε τον τύπο δεδομένων για το πεδίο MyField, προσθέστε την παρακάτω παράσταση σε ένα κελί πίνακα: =Fields!MyField.Value.GetType().ToString(). Το αποτέλεσμα εμφανίζει τον τύπο δεδομένων CLR που χρησιμοποιείται για την αναπαράσταση MyField, για παράδειγμα, System.String ή System.DateTime.

Μετατροπή πεδίων συνόλου δεδομένων σε διαφορετικό τύπο δεδομένων

Μπορείτε επίσης να μετατρέψετε πεδία συνόλου δεδομένων πριν τα χρησιμοποιήσετε σε μια αναφορά. Η παρακάτω λίστα περιγράφει τους τρόπους με τους οποίους μπορείτε να μετατρέψετε ένα υπάρχον πεδίο συνόλου δεδομένων:

  • Τροποποιήστε το ερώτημα συνόλου δεδομένων για να προσθέσετε ένα νέο πεδίο ερωτήματος με τα δεδομένα που έχουν μετατραπεί. Για σχεσιακές ή πολυδιάστατες προελεύσεις δεδομένων, αυτό χρησιμοποιεί πόρους προέλευσης δεδομένων για την εκτέλεση της μετατροπής.

  • Δημιουργήστε ένα υπολογιζόμενο πεδίο με βάση ένα υπάρχον πεδίο συνόλου δεδομένων αναφοράς γράφοντας μια παράσταση που μετατρέπει όλα τα δεδομένα σε ένα σύνολο αποτελεσμάτων σε μια νέα στήλη με διαφορετικό τύπο δεδομένων. Για παράδειγμα, η παρακάτω παράσταση μετατρέπει το πεδίο Year από μια ακέραια τιμή σε μια τιμή συμβολοσειράς: =CStr(Fields!Year.Value). Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Προσθήκη, Επεξεργασία, Ανανέωση πεδίων στο τμήμα παραθύρου Δεδομένα αναφοράς (Εργαλείο δόμησης αναφορών του Power BI).

  • Ελέγξτε εάν η επέκταση επεξεργασίας δεδομένων που χρησιμοποιείτε περιλαμβάνει μετα-δεδομένα για την ανάκτηση προμορφοποιημένων δεδομένων. Για παράδειγμα, ένα ερώτημα MDX των Υπηρεσιών ανάλυσης του SQL Server περιλαμβάνει μια FORMATTED_VALUE εκτεταμένη ιδιότητα για τιμές κύβων που έχουν ήδη μορφοποιηθεί κατά την επεξεργασία του κύβου. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Εκτεταμένες ιδιότητες πεδίου για μια βάση δεδομένων υπηρεσιών ανάλυσης (SSRS).

Κατανόηση των τύπων δεδομένων παραμέτρου

Οι παράμετροι αναφοράς πρέπει να είναι ένας από τους πέντε τύπους δεδομένων: Δυαδική τιμή, Ημερομηνία/Ώρα, Ακέραιος, Κινητή υποδιαστολή ή Κείμενο (γνωστό και ως Συμβολοσειρά). Όταν ένα ερώτημα συνόλου δεδομένων περιλαμβάνει παραμέτρους ερωτήματος, οι παράμετροι αναφοράς δημιουργούνται αυτόματα και συνδέονται με τις παραμέτρους ερωτήματος. Ο προεπιλεγμένος τύπος δεδομένων για μια παράμετρο αναφοράς είναι Συμβολοσειρά. Για να αλλάξετε τον προεπιλεγμένο τύπο δεδομένων μιας παραμέτρου αναφοράς, επιλέξτε τη σωστή τιμή από την αναπτυσσόμενη λίστα Τύπος δεδομένων στη σελίδα Γενικά του παραθύρου διαλόγου Ιδιότητες παραμέτρου αναφοράς.

Σημείωμα

Οι παράμετροι αναφοράς που είναι τύποι δεδομένων ημερομηνίας/ώρας δεν υποστηρίζουν χιλιοστά του δευτερολέπτου. Παρόλο που μπορείτε να δημιουργήσετε μια παράμετρο βάσει τιμών που περιλαμβάνουν χιλιοστά του δευτερολέπτου, δεν μπορείτε να επιλέξετε μια τιμή από μια αναπτυσσόμενη λίστα διαθέσιμων τιμών που περιλαμβάνει τιμές ημερομηνίας ή ώρας που περιλαμβάνουν χιλιοστά του δευτερολέπτου.

Εγγραφή παραστάσεων που μετατρέπουν τύπους δεδομένων ή εξάγουν τμήματα δεδομένων

Όταν συνδυάζετε πεδία κειμένου και συνόλου δεδομένων χρησιμοποιώντας τον τελεστή συνένωσης (&) ο χρόνος εκτέλεσης κοινής γλώσσας (CLR) παρέχει γενικά προεπιλεγμένες μορφές. Όταν χρειάζεται να μετατρέψετε ρητά ένα πεδίο ή μια παράμετρο συνόλου δεδομένων σε έναν συγκεκριμένο τύπο δεδομένων, πρέπει να χρησιμοποιήσετε μια μέθοδο CLR ή μια συνάρτηση βιβλιοθήκης χρόνου εκτέλεσης Visual Basic για να μετατρέψετε τα δεδομένα.

Ο παρακάτω πίνακας εμφανίζει παραδείγματα μετατροπής τύπων δεδομένων.

Τύπος μετατροπής Παράδειγμα
Ημερομηνία/ώρα σε Συμβολοσειρά =CStr(Fields!Date.Value)
Συμβολοσειρά σε ημερομηνία/ώρα =DateTime.Parse(Fields!DateTimeinStringFormat.Value)
Συμβολοσειρά σε DateTimeOffset =DateTimeOffset.Parse(Fields!DateTimeOffsetinStringFormat.Value)
Εξαγωγή του έτους =Year(Fields!TimeinStringFormat.Value)

-- or --

=Year(Fields!TimeinDateTimeFormat.Value)
Δυαδική τιμή έως ακέραιος =CInt(Parameters!BooleanField.Value)

-1 είναι True και 0 είναι False.
Δυαδική τιμή έως ακέραιος =System.Convert.ToInt32(Fields!BooleanFormat.Value)

Το 1 είναι True και το 0 είναι False.
Μόνο το τμήμα ημερομηνίας/ώρας μιας τιμής DateTimeOffset =Fields!MyDatetimeOffset.Value.DateTime
Μόνο το τμήμα Μετατόπιση μιας τιμής DateTimeOffset =Fields!MyDatetimeOffset.Value.Offset

Μπορείτε επίσης να χρησιμοποιήσετε τη συνάρτηση Format για να ελέγξετε τη μορφή εμφάνισης για την τιμή. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Συναρτήσεις (Visual Basic).

Παραδείγματα για προχωρημένους

Όταν συνδέεστε σε μια προέλευση δεδομένων με μια υπηρεσία παροχής δεδομένων που δεν παρέχει υποστήριξη μετατροπής για όλους τους τύπους δεδομένων στην προέλευση δεδομένων, ο προεπιλεγμένος τύπος δεδομένων για μη υποστηριζόμενους τύπους προέλευσης δεδομένων είναι Συμβολοσειρά. Τα παρακάτω παραδείγματα παρέχουν λύσεις για συγκεκριμένους τύπους δεδομένων που επιστρέφονται ως συμβολοσειρά.

Συνένωση συμβολοσειράς και τύπου δεδομένων CLR DateTimeOffset

Για τους περισσότερους τύπους δεδομένων, το CLR παρέχει προεπιλεγμένες μετατροπές, ώστε να μπορείτε να συνενώσετε τιμές που είναι διαφορετικοί τύποι δεδομένων σε μία συμβολοσειρά, χρησιμοποιώντας τον τελεστή & . Για παράδειγμα, η ακόλουθη παράσταση συνενώνει το κείμενο "Η ημερομηνία και ώρα είναι: " με ένα πεδίο συνόλου δεδομένων StartDate, το οποίο είναι μια DateTime τιμή: ="The date and time are: " & Fields!StartDate.Value.

Για ορισμένους τύπους δεδομένων, ίσως χρειαστεί να συμπεριλάβετε τη συνάρτηση ToString. Για παράδειγμα, η παρακάτω παράσταση εμφανίζει το ίδιο παράδειγμα χρησιμοποιώντας τον τύπο DateTimeOffsetδεδομένων CLR , ο οποίος περιλαμβάνει την ημερομηνία, την ώρα και μια μετατόπιση ζώνης ώρας σε σχέση με τη ζώνη ώρας UTC: ="The time is: " & Fields!StartDate.Value.ToString().

Μετατροπή ενός τύπου δεδομένων συμβολοσειράς σε τύπο δεδομένων ημερομηνίας/ώρας CLR

Εάν μια επέκταση επεξεργασίας δεδομένων δεν υποστηρίζει όλους τους τύπους δεδομένων που ορίζονται σε μια προέλευση δεδομένων, τα δεδομένα μπορούν να ανακτηθούν ως κείμενο. Για παράδειγμα, μια τιμή τύπου δεδομένων datetimeoffset(7) μπορεί να ανακτηθεί ως τύπος δεδομένων Συμβολοσειρά. Στο Περθ της Αυστραλίας, η τιμή συμβολοσειράς για την 1η Ιουλίου 2008, στις 6:05:07.999999 Π.Μ. θα έμοιαζε:

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

Αυτό το παράδειγμα εμφανίζει την ημερομηνία (1 Ιουλίου, 2008), ακολουθούμενη από την ώρα σε 7 ψηφία ακρίβειας (6:05:07.9999999 Π.Μ.), ακολουθούμενη από μετατόπιση ζώνης ώρας UTC σε ώρες και λεπτά (συν 8 ώρες, 0 λεπτά). Για τα παρακάτω παραδείγματα, αυτή η τιμή έχει τοποθετηθεί σε ένα πεδίο Συμβολοσειρά που ονομάζεται MyDateTime.Value.

Μπορείτε να χρησιμοποιήσετε μία από τις παρακάτω στρατηγικές για να μετατρέψετε αυτά τα δεδομένα σε μία ή περισσότερες τιμές CLR:

  • Σε ένα πλαίσιο κειμένου, χρησιμοποιήστε μια παράσταση για να εξαγάγετε τμήματα της συμβολοσειράς. Για παράδειγμα:

    • Η ακόλουθη παράσταση εξάγει μόνο το τμήμα ώρας της μετατόπισης ζώνης ώρας UTC και το μετατρέπει σε λεπτά: =CInt(Fields!MyDateTime.Value.Substring(Fields!MyDateTime.Value.Length-5,2)) * 60

      Το αποτέλεσμα είναι 480.

    • Η ακόλουθη παράσταση μετατρέπει τη συμβολοσειρά σε μια τιμή ημερομηνίας και ώρας: =DateTime.Parse(Fields!MyDateTime.Value)

      Εάν η MyDateTime.Value συμβολοσειρά έχει μετατόπιση UTC, η DateTime.Parse συνάρτηση προσαρμόζεται πρώτα για την απόκλιση UTC (7 π.μ. - [+08:00] στην ώρα UTC των 11 Μ.Μ. τη νύχτα πριν). Στη συνέχεια, η DateTime.Parse συνάρτηση εφαρμόζει την απόκλιση UTC του τοπικού διακομιστή αναφορών και, εάν είναι απαραίτητο, προσαρμόζει ξανά την ώρα για τη θερινή ώρα. Για παράδειγμα, στο Ρέντμοντ της Ουάσινγκτον, η τοπική μετατόπιση ώρας που έχει προσαρμοστεί για τη θερινή ώρα είναι [-07:00]ή 7 ώρες νωρίτερα από τις 11 μ.μ. Το αποτέλεσμα είναι η ακόλουθη τιμή ημερομηνίας /ώρας: 2007-07-06 04:07:07 PM (6 Ιουλίου 2007 στις 4:07 μ.μ.).

Για περισσότερες πληροφορίες σχετικά με τη μετατροπή συμβολοσειρών σε τύπους δεδομένων ημερομηνίας /ώρας, ανατρέξτε στο θέμα Ανάλυση συμβολοσειρών ημερομηνίας και ώρας, Ημερομηνία και ώρα για μια συγκεκριμένη κουλτούρα και Επιλογή μεταξύ ημερομηνίας/ώρας, DateTimeOffset και TimeZoneInfo.

  • Προσθέστε ένα νέο υπολογιζόμενο πεδίο στο σύνολο δεδομένων αναφοράς που χρησιμοποιεί μια παράσταση για την εξαγωγή τμημάτων της συμβολοσειράς. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Προσθήκη, Επεξεργασία, Ανανέωση πεδίων στο τμήμα παραθύρου Δεδομένα αναφοράς (Εργαλείο δόμησης αναφορών του Power BI).

  • Αλλάξτε το ερώτημα συνόλου δεδομένων αναφοράς ώστε να χρησιμοποιεί συναρτήσεις Transact-SQL για την ανεξάρτητη εξαγωγή των τιμών ημερομηνίας και ώρας για τη δημιουργία ξεχωριστών στηλών. Το παρακάτω παράδειγμα δείχνει πώς μπορείτε να χρησιμοποιήσετε τη συνάρτηση DatePart για να προσθέσετε μια στήλη για το έτος και μια στήλη για τη ζώνη ώρας UTC που μετατρέπεται σε λεπτά:

    SELECT

    MyDateTime,

    DATEPART(year, MyDateTime) AS Year,

    DATEPART(tz, MyDateTime) AS OffsetinMinutes

    FROM MyDates

    Το σύνολο αποτελεσμάτων έχει τρεις στήλες. Η πρώτη στήλη είναι η ημερομηνία και ώρα, η δεύτερη στήλη είναι το έτος και η τρίτη στήλη είναι η μετατόπιση UTC σε λεπτά. Η παρακάτω γραμμή εμφανίζει παραδείγματα δεδομένων:

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

Για περισσότερες πληροφορίες σχετικά με τους τύπους δεδομένων βάσης δεδομένων SQL Server, ανατρέξτε στα θέματα Τύποι δεδομένων (Transact-SQL) και Τύποι και συναρτήσεις δεδομένων ημερομηνίας και ώρας (Transact-SQL).

Για περισσότερες πληροφορίες σχετικά με τους τύπους δεδομένων των Υπηρεσιών ανάλυσης του SQL Server, ανατρέξτε στο θέμα Τύποι δεδομένων στις Υπηρεσίες ανάλυσης.