Χρήση επικαλυπτομένων παραμέτρων σε σελιδοποιημένες αναφορές
Αυτό το άρθρο απευθύνεται σε εσάς ως συντάκτης αναφορών που σχεδιάζει power BI σελιδοποιημένες αναφορές. Παρέχει σενάρια για τη σχεδίαση επικαλυπτών παραμέτρων. Οι επικαλυπτικές παράμετροι είναι παράμετροι αναφοράς με εξαρτήσεις. Όταν ένας χρήστης αναφοράς επιλέγει μια τιμή (ή τιμές) παραμέτρου, χρησιμοποιείται για να ορίσει τις διαθέσιμες τιμές για μια άλλη παράμετρο.
Σημείωση
Μια εισαγωγή στις επικαλυπτόμενες παραμέτρους και ο τρόπος ρυθμοποίησής τους δεν καλύπτονται σε αυτό το άρθρο. Εάν δεν είστε πλήρως εξοικειωμένοι με τις επικαλυπτόμενες παραμέτρους, συνιστούμε να διαβάσετε πρώτα Προσθήκη επικαλυπτήριων παραμέτρων σε μια αναφορά στο Εργαλείο δόμησης αναφορών του Power BI.
Σενάρια σχεδίασης
Υπάρχουν δύο σενάρια σχεδίασης για τη χρήση επικαλυπτών παραμέτρων. Μπορούν να χρησιμοποιηθούν αποτελεσματικά για:
- Φιλτράρισμα μεγάλα σύνολα στοιχείων
- Παρουσίαση σχετικών στοιχείων
Παράδειγμα βάσης δεδομένων
Τα παραδείγματα που παρουσιάζονται σε αυτό το άρθρο βασίζονται σε μια βάση δεδομένων SQL Azure. Η βάση δεδομένων καταγράφει τις λειτουργίες πωλήσεων και περιέχει διάφορους πίνακες που αποθηκεύουν μεταπωλητές, προϊόντα και παραγγελίες πωλήσεων.
Ένας πίνακας με την ονομασία Reseller
αποθηκεύει μία εγγραφή για κάθε μεταπωλητή και περιέχει πολλές χιλιάδες εγγραφές. Ο Reseller
πίνακας έχει τις εξής στήλες:
- Κωδικός μεταπωλητή (ακέραιος)
- ResellerName
- Country-Region
- State-Province
- Πόλη
- Ταχυδρομικός κώδικας
Υπάρχει επίσης ένας πίνακας με το όνομα Sales
. Αποθηκεύει εγγραφές παραγγελιών πωλήσεων και έχει μια σχέση εξωτερικού κλειδιού με τον πίνακα Reseller
, στη στήλη ResellerCode
.
Απαίτηση παραδείγματος
Υπάρχει μια απαίτηση για την ανάπτυξη μιας αναφοράς προφίλ μεταπωλητή. Η αναφορά πρέπει να έχει σχεδιαστεί για την εμφάνιση πληροφοριών για έναν μόνο μεταπωλητή. Δεν συνιστάται ο χρήστης αναφοράς να εισαγάγει έναν κωδικό μεταπωλητή, καθώς τον απομνημονεύει σπάνια.
Φιλτράρισμα μεγάλων συνόλων στοιχείων
Ας ρίξουμε μια ματιά σε τρία παραδείγματα για να σας βοηθήσουμε να περιορίσετε τα μεγάλα σύνολα διαθέσιμων στοιχείων, όπως οι μεταπωλητές. Αυτά είναι τα εξής:
- Φιλτράρισμα κατά σχετικές στήλες
- Φιλτράρισμα με βάση μια στήλη ομαδοποίησης
- Φιλτράρισμα κατά μοτίβου αναζήτησης
Φιλτράρισμα κατά σχετικές στήλες
Σε αυτό το παράδειγμα, ο χρήστης αναφοράς αλληλεπιδρά με πέντε παραμέτρους αναφοράς. Πρέπει να επιλέξουν χώρα/περιοχή, πολιτεία-επαρχία, πόλη και, στη συνέχεια, ταχυδρομικό κώδικα. Στη συνέχεια, μια τελική παράμετρος εμφανίζει τους μεταπωλητές που βρίσκονται σε αυτή τη γεωγραφική θέση.
Δείτε πώς μπορείτε να αναπτύξετε τις επικαλυπτικές παραμέτρους:
Δημιουργήστε τις πέντε παραμέτρους αναφοράς, ταξινομημένες με τη σωστή σειρά.
Δημιουργήστε το countryregion σύνολο δεδομένων που ανακτά διακριτές τιμές χώρας/περιοχής, χρησιμοποιώντας την ακόλουθη πρόταση ερωτήματος:
SELECT DISTINCT [Country-Region] FROM [Reseller] ORDER BY [Country-Region]
Δημιουργήστε το StateProvince σύνολο δεδομένων που ανακτά διακριτές τιμές πολιτείας-επαρχίας για την επιλεγμένη χώρα-περιοχή, χρησιμοποιώντας την ακόλουθη πρόταση ερωτήματος:
SELECT DISTINCT [State-Province] FROM [Reseller] WHERE [Country-Region] = @CountryRegion ORDER BY [State-Province]
Δημιουργήστε το σύνολο δεδομένων "City" που ανακτά διακριτές τιμές πόλης για την επιλεγμένη χώρα-περιοχή και πολιτεία-επαρχία, χρησιμοποιώντας την ακόλουθη πρόταση ερωτήματος:
SELECT DISTINCT [City] FROM [Reseller] WHERE [Country-Region] = @CountryRegion AND [State-Province] = @StateProvince ORDER BY [City]
Συνεχίστε αυτό το μοτίβο για να δημιουργήσετε το σύνολο δεδομένων
PostalCode. Δημιουργήστε τον μεταπωλητή σύνολο δεδομένων για την ανάκτηση όλων των μεταπωλητών για τις επιλεγμένες γεωγραφικές τιμές, χρησιμοποιώντας την ακόλουθη πρόταση ερωτήματος:
SELECT [ResellerCode], [ResellerName] FROM [Reseller] WHERE [Country-Region] = @CountryRegion AND [State-Province] = @StateProvince AND [City] = @City AND [PostalCode] = @PostalCode ORDER BY [ResellerName]
Για κάθε σύνολο δεδομένων εκτός από το πρώτο, αντιστοιχίστε τις παραμέτρους ερωτήματος στις αντίστοιχες παραμέτρους αναφοράς.
Σημείωση
Όλες οι παράμετροι ερωτήματος (με πρόθεμα το σύμβολο @) που εμφανίζονται σε αυτά τα παραδείγματα μπορούν να ενσωματωθούν σε SELECT
προτάσεις ή να διαβιβαστούν σε αποθηκευμένες διαδικασίες.
Γενικά, οι αποθηκευμένες διαδικασίες είναι μια καλύτερη προσέγγιση σχεδίασης. Αυτό συμβαίνει επειδή τα σχέδια ερωτημάτων τους αποθηκεύονται προσωρινά για ταχύτερη εκτέλεση και σας επιτρέπουν να αναπτύξετε πιο εξελιγμένη λογική, όταν χρειάζεται. Ωστόσο, δεν υποστηρίζονται προς το παρόν για σχεσιακές προελεύσεις δεδομένων πύλης, το οποίο σημαίνει SQL Server, Oracle και Teradata.
Τέλος, θα πρέπει πάντα να βεβαιώνεστε ότι υπάρχουν κατάλληλα ευρετήρια για την υποστήριξη της αποτελεσματικής ανάκτησης δεδομένων. Διαφορετικά, οι παράμετροι της αναφοράς σας μπορεί να είναι αργές στη συμπλήρωση και η βάση δεδομένων μπορεί να υπερφορτωθεί. Για περισσότερες πληροφορίες σχετικά με τη δημιουργία ευρετηρίου SQL Server, ανατρέξτε στο θέμα Οδηγός αρχιτεκτονικής και σχεδίασης ευρετηρίου του SQL Server.
Φιλτράρισμα κατά στήλη ομαδοποίησης
Σε αυτό το παράδειγμα, ο χρήστης αναφοράς αλληλεπιδρά με μια παράμετρο αναφοράς για να επιλέξει το πρώτο γράμμα του μεταπωλητή. Στη συνέχεια, μια δεύτερη παράμετρος εμφανίζει τους μεταπωλητές όταν το όνομα αρχίζει με το επιλεγμένο γράμμα.
Δείτε πώς μπορείτε να αναπτύξετε τις επικαλυπτικές παραμέτρους:
Δημιουργήστε τις παραμέτρους αναφοράς
ReportGroup και reseller , ταξινομημένες με τη σωστή σειρά.Δημιουργήστε το ReportGroup σύνολο δεδομένων για να ανακτήσετε τα πρώτα γράμματα που χρησιμοποιούνται από όλους τους μεταπωλητές, χρησιμοποιώντας την ακόλουθη πρόταση ερωτήματος:
SELECT DISTINCT LEFT([ResellerName], 1) AS [ReportGroup] FROM [Reseller] ORDER BY [ReportGroup]
Δημιουργήστε το σύνολο δεδομένων μεταπωλητή
για την ανάκτηση όλων των μεταπωλητών που ξεκινούν με το επιλεγμένο γράμμα, χρησιμοποιώντας την ακόλουθη πρόταση ερωτήματος: SELECT [ResellerCode], [ResellerName] FROM [Reseller] WHERE LEFT([ResellerName], 1) = @ReportGroup ORDER BY [ResellerName]
Αντιστοιχίστε την παράμετρο ερωτήματος του Reseller σύνολο δεδομένων στην αντίστοιχη παράμετρο αναφοράς.
Είναι πιο αποτελεσματικό να προσθέσετε τη στήλη ομαδοποίησης στον πίνακα Reseller
. Όταν διατηρείται και καταχωρείται στο ευρετήριο, παρέχει το καλύτερο αποτέλεσμα. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Καθορισμός υπολογιζόμενων στηλών σε έναν πίνακα.
ALTER TABLE [Reseller]
ADD [ReportGroup] AS LEFT([ResellerName], 1) PERSISTED
Αυτή η τεχνική μπορεί να προσφέρει ακόμα μεγαλύτερες δυνατότητες. Εξετάστε την ακόλουθη δέσμη ενεργειών που προσθέτει μια νέα στήλη ομαδοποίησης για το φιλτράρισμα μεταπωλητών κατά προκαθορισμένες ζώνες γραμμάτων. Δημιουργεί επίσης ένα ευρετήριο για την αποτελεσματική ανάκτηση των δεδομένων που απαιτούνται από τις παραμέτρους της αναφοράς.
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
Φιλτράρισμα κατά μοτίβο αναζήτησης
Σε αυτό το παράδειγμα, ο χρήστης αναφοράς αλληλεπιδρά με μια παράμετρο αναφοράς για την εισαγωγή ενός μοτίβου αναζήτησης. Στη συνέχεια, μια δεύτερη παράμετρος εμφανίζει τους μεταπωλητές όταν το όνομα περιέχει το μοτίβο.
Δείτε πώς μπορείτε να αναπτύξετε τις επικαλυπτικές παραμέτρους:
Δημιουργήστε τις παραμέτρους αναφοράς Search και Reseller, ταξινομημένες με τη σωστή σειρά.
Δημιουργήστε τον μεταπωλητή σύνολο δεδομένων για την ανάκτηση όλων των μεταπωλητών που περιέχουν το κείμενο αναζήτησης, χρησιμοποιώντας την ακόλουθη πρόταση ερωτήματος:
SELECT [ResellerCode], [ResellerName] FROM [Reseller] WHERE [ResellerName] LIKE '%' + @Search + '%' ORDER BY [ResellerName]
Αντιστοιχίστε την παράμετρο ερωτήματος του Reseller σύνολο δεδομένων στην αντίστοιχη παράμετρο αναφοράς.
Φιλοδώρημα
Μπορείτε να βελτιώσετε αυτήν τη σχεδίαση για να παρέχετε περισσότερο έλεγχο στους χρήστες της αναφοράς σας. Τους επιτρέπει να ορίσουν τη δική τους αντίστοιχη τιμή μοτίβου. Για παράδειγμα, η τιμή αναζήτησης "red%" θα φιλτράρει τους μεταπωλητές με ονόματα που αρχίζουν με τους χαρακτήρες "κόκκινο".
Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα LIKE (Transact-SQL).
Δείτε πώς μπορείτε να επιτρέψετε στους χρήστες αναφοράς να ορίζουν το δικό τους μοτίβο.
WHERE
[ResellerName] LIKE @Search
Ωστόσο, πολλές επαγγελματίες που δεν ανήκουν στη βάση δεδομένων δεν γνωρίζουν τον χαρακτήρα μπαλαντέρ ποσοστού (%). Αντίθετα, είναι εξοικειωμένοι με τον χαρακτήρα αστερίσκου (*). Τροποποιώντας τον όρο WHERE
, μπορείτε να τους επιτρέψετε να χρησιμοποιήσουν αυτόν τον χαρακτήρα.
WHERE
[ResellerName] LIKE SUBSTITUTE(@Search, '%', '*')
Παρουσίαση σχετικών στοιχείων
Σε αυτό το σενάριο, μπορείτε να χρησιμοποιήσετε δεδομένα στοιχείων για να περιορίσετε τις διαθέσιμες τιμές. Στους χρήστες της αναφοράς θα εμφανίζονται στοιχεία στα οποία έχει καταγραφεί δραστηριότητα.
Σε αυτό το παράδειγμα, ο χρήστης αναφοράς αλληλεπιδρά με τρεις παραμέτρους αναφοράς. Οι δύο πρώτες ορίζουν μια περιοχή ημερομηνιών των ημερομηνιών παραγγελίας πωλήσεων. Η τρίτη παράμετρος, στη συνέχεια, εμφανίζει τους μεταπωλητές όπου έχουν δημιουργηθεί παραγγελίες κατά τη διάρκεια αυτής της χρονικής περιόδου.
Δείτε πώς μπορείτε να αναπτύξετε τις επικαλυπτικές παραμέτρους:
Δημιουργήστε το OrderDateStart, OrderDateEndκαι παραμέτρους αναφοράς μεταπωλητή, ταξινομημένες με τη σωστή σειρά.
Δημιουργήστε το σύνολο δεδομένων μεταπωλητή για την ανάκτηση όλων των μεταπωλητών που δημιούργησαν παραγγελίες κατά την περίοδο ημερομηνίας, χρησιμοποιώντας την ακόλουθη πρόταση ερωτήματος:
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]
Συστάσεις
Συνιστούμε να σχεδιάζετε τις αναφορές σας με επικαλυπτόμενες παραμέτρους, όποτε αυτό είναι εφικτό. Επειδή:
- Παροχή έξυπνων και χρήσιμων εμπειριών για τους χρήστες της αναφοράς σας
- Είναι αποτελεσματικές, επειδή ανακτούν μικρότερα σύνολα διαθέσιμων τιμών
Βεβαιωθείτε ότι έχετε βελτιστοποιήσει τις προελεύσεις δεδομένων σας ως εξής:
- Με τη χρήση αποθηκευμένων διαδικασιών, όποτε αυτό είναι εφικτό
- Προσθήκη κατάλληλων ευρετηρίων για αποτελεσματική ανάκτηση δεδομένων
- Υλοποιώντας τιμές στηλών — ακόμη και γραμμών — για την αποφυγή δαπανηρών αξιολογήσεων χρόνου ερωτήματος
Σχετικό περιεχόμενο
Για περισσότερες πληροφορίες σχετικά με αυτό το άρθρο, ανατρέξτε στους παρακάτω πόρους:
- παραμέτρων αναφοράς στο Εργαλείο δόμησης αναφορών του Power BI
- προσθήκη επικαλυπτικών παραμέτρων σε μια αναφορά (Εργαλείο δόμησης αναφορών)
- Ερωτήσεις? δοκιμάστε να ρωτήσετε το Κοινότητας Fabric
- Προτάσεις? συνεισφέρετε ιδέες για τη βελτίωση του Fabric