Χειρισμός περιήγησης
Οι Πίνακες περιήγησης (ή οι πίνακες περιήγησης) αποτελούν βασικό μέρος της παροχής μιας εμπειρίας φιλικής προς τον χρήστη για τη σύνδεσή σας. Η εμπειρία Power Query τις εμφανίζει στον χρήστη αφού καταχωρήσει τις απαιτούμενες παραμέτρους για τη συνάρτηση προέλευσης δεδομένων και έχει περάσει τον έλεγχο ταυτότητας με την προέλευση δεδομένων.
Στο παρασκήνιο, ένας πίνακας περιήγησης είναι απλώς μια κανονική τιμή πίνακα M με συγκεκριμένα πεδία μετα-δεδομένων που έχουν οριστεί στον τύπο του. Όταν η συνάρτηση προέλευσης δεδομένων επιστρέψει έναν πίνακα όπου έχουν οριστεί αυτά τα πεδία, το Power Query θα εμφανίσει το παράθυρο διαλόγου περιήγησης. Στην πραγματικότητα, μπορείτε να δείτε τα υποκείμενα δεδομένα ως τιμή πίνακα, κάνοντας δεξί κλικ στον ριζικό κόμβο και επιλέγοντας Επεξεργασία.
Table.ToNavigationTable
Μπορείτε να χρησιμοποιήσετε τη Table.ToNavigationTable
συνάρτηση για να προσθέσετε τα μετα-δεδομένα τύπου πίνακα που απαιτούνται για τη δημιουργία ενός πίνακα περιήγησης.
Σημείωμα
Προς το παρόν, πρέπει να αντιγράψετε και να επικολλήσετε αυτήν τη συνάρτηση στην επέκταση M. Στο μέλλον, πιθανότατα θα μετακινηθεί στην τυπική βιβλιοθήκη M.
Ο παρακάτω πίνακας περιγράφει τις παραμέτρους για αυτή τη συνάρτηση:
Παράμετρος | Λεπτομέρειες |
---|---|
πίνακας | Ο πίνακας περιήγησης. |
keyColumns | Λίστα ονομάτων στηλών που λειτουργούν ως πρωτεύον κλειδί για τον πίνακα περιήγησης. |
nameColumn | Το όνομα της στήλης που θα πρέπει να χρησιμοποιηθεί ως το εμφανιζόμενο όνομα στην περιήγηση. |
dataColumn | Το όνομα της στήλης που περιέχει τον Πίνακα ή τη Συνάρτηση που θα εμφανιστεί. |
itemKindColumn | Το όνομα της στήλης που θα χρησιμοποιηθεί για τον προσδιορισμό του τύπου εικονιδίου που θα εμφανίζεται. Δείτε παρακάτω για τη λίστα έγκυρων τιμών για τη στήλη. |
itemNameColumn | Το όνομα της στήλης που θα χρησιμοποιηθεί για τον προσδιορισμό της συμπεριφοράς προεπισκόπησης. Αυτό συνήθως ορίζεται στην ίδια τιμή με την itemKind. |
isLeafColumn | Το όνομα της στήλης που χρησιμοποιείται για να προσδιοριστεί εάν πρόκειται για έναν κόμβο φύλλου ή εάν ο κόμβος μπορεί να αναπτυχθεί για να περιέχει έναν άλλο πίνακα περιήγησης. |
Η συνάρτηση προσθέτει τα παρακάτω μετα-δεδομένα στον τύπο πίνακα:
Πεδίο | Παράμετρος |
---|---|
NavigationTable.NameColumn | nameColumn |
NavigationTable.DataColumn | dataColumn |
NavigationTable.ItemKindColumn | itemKindColumn |
NavigationTable.IsLeafColumn | isLeafColumn |
Preview.DelayColumn | itemNameColumn |
Τιμές για ItemKind
Κάθε μία από τις παρακάτω τιμές είδους στοιχείου παρέχει ένα διαφορετικό εικονίδιο στον πίνακα περιήγησης.
- Τροφοδοσία
- Βάση δεδομένων
- DatabaseServer
- Διάσταση
- Table
- Φάκελος
- Function
- Προβολή
- Φύλλο
- DefinedName
- Εγγραφή
Παραδείγματα
Πίνακας επίπεδης περιήγησης
Το ακόλουθο δείγμα κώδικα εμφανίζει έναν επίπεδο πίνακα περιήγησης με τρεις πίνακες και μια συνάρτηση.
shared NavigationTable.Simple = () =>
let
objects = #table(
{"Name", "Key", "Data", "ItemKind", "ItemName", "IsLeaf"},{
{"Item1", "item1", #table({"Column1"}, {{"Item1"}}), "Table", "Table", true},
{"Item2", "item2", #table({"Column1"}, {{"Item2"}}), "Table", "Table", true},
{"Item3", "item3", FunctionCallThatReturnsATable(), "Table", "Table", true},
{"MyFunction", "myfunction", AnotherFunction.Contents, "Function", "Function", true}
}),
NavTable = Table.ToNavigationTable(objects, {"Key"}, "Name", "Data", "ItemKind", "ItemName", "IsLeaf")
in
NavTable;
shared FunctionCallThatReturnsATable = () =>
#table({"DynamicColumn"}, {{"Dynamic Value"}});
Αυτός ο κώδικας θα έχει ως αποτέλεσμα την εμφάνιση της παρακάτω περιήγησης στο Power BI Desktop:
Πίνακας περιήγησης πολλών επιπέδων
Μπορείτε να χρησιμοποιήσετε ένθετες πίνακες περιήγησης για να δημιουργήσετε μια ιεραρχική προβολή πάνω από το σύνολο δεδομένων σας. Αυτό το κάνετε ορίζοντας την IsLeaf
τιμή για αυτήν τη γραμμή σε false
(η οποία την επισημαίνει ως κόμβο που μπορεί να αναπτυχθεί) και μορφοποιήστε τη Data
στήλη ώστε να είναι επίσης ένας άλλος πίνακας περιήγησης.
shared NavigationTable.Nested = () as table =>
let
objects = #table(
{"Name", "Key", "Data", "ItemKind", "ItemName", "IsLeaf"},{
{"Nested A", "n1", CreateNavTable("AAA"), "Table", "Table", false},
{"Nested B", "n2", CreateNavTable("BBB"), "Table", "Table", false},
{"Nested C", "n3", CreateNavTable("CCC"), "Table", "Table", false}
}),
NavTable = Table.ToNavigationTable(objects, {"Key"}, "Name", "Data", "ItemKind", "ItemName", "IsLeaf")
in
NavTable;
CreateNavTable = (message as text) as table =>
let
objects = #table(
{"Name", "Key", "Data", "ItemKind", "ItemName", "IsLeaf"},{
{"Item1", "item1", #table({"Column1"}, {{message}}), "Table", "Table", true},
{"Item2", "item2", #table({"Column1"}, {{message}}), "Table", "Table", true}
}),
NavTable = Table.ToNavigationTable(objects, {"Key"}, "Name", "Data", "ItemKind", "ItemName", "IsLeaf")
in
NavTable;
Αυτός ο κώδικας θα έχει ως αποτέλεσμα την εμφάνιση της παρακάτω περιήγησης στο Power BI Desktop:
Δυναμικοί πίνακες περιήγησης
Πιο σύνθετη λειτουργικότητα μπορεί να δημιουργηθεί από αυτά τα βασικά στοιχεία. Παρόλο που όλα τα παραπάνω παραδείγματα εμφανίζουν οντότητες ενσωματωμένες στον πίνακα περιήγησης, είναι εύκολο να δείτε πώς ένας πίνακας περιήγησης θα μπορούσε να δημιουργηθεί δυναμικά με βάση οντότητες που είναι διαθέσιμες σε έναν συγκεκριμένο χρήστη. Ορισμένα βασικά ζητήματα που πρέπει να ληφθούν υπόψη για τους δυναμικούς πίνακες περιήγησης είναι τα εξής:
- Χειρισμός σφαλμάτων για να εξασφαλιστεί μια καλή εμπειρία για τους χρήστες που δεν έχουν πρόσβαση σε συγκεκριμένα τελικά σημεία.
- Η αξιολόγηση κόμβου είναι αργή από προεπιλογή. Οι κόμβοι φύλλων δεν αξιολογούνται μέχρι να επεκταθεί ο γονικός κόμβος. Ορισμένες υλοποιήσεις δυναμικών πινάκων περιήγησης πολλών επιπέδων μπορεί να οδηγήσουν σε γρήγορη αξιολόγηση ολόκληρου του δέντρου. Βεβαιωθείτε ότι παρακολουθείτε τον αριθμό των κλήσεων που πραγματοποιεί το Power Query καθώς αποδίδει αρχικά τον πίνακα περιήγησης. Για παράδειγμα, η Table.InsertRows είναι "πιο τεμπέλα" από την Table.FromRecords, καθώς δεν χρειάζεται να αξιολογήσει τα ορίσματά της.