Κατανόηση πινάκων και καρτελών σε εφαρμογές καμβά
Στο Power Apps, μπορείτε να δημιουργήσετε μια εφαρμογή καμβά που έχει πρόσβαση σε πληροφορίες στο Microsoft Excel, το SharePoint, τον SQL Server και πολλές άλλες προελεύσεις που αποθηκεύουν δεδομένα σε εγγραφές και πίνακες. Για να εργαστείτε πιο αποτελεσματικά με αυτό το είδος δεδομένων, εξετάστε τις έννοιες που αποτελούν αυτές τις δομές.
- Μια εγγραφή περιέχει μία ή περισσότερες κατηγορίες πληροφοριών σχετικά με ένα άτομο, μια θέση ή ένα πράγμα. Για παράδειγμα, μια εγγραφή μπορεί να περιέχει το όνομα, τη διεύθυνση ηλεκτρονικού ταχυδρομείου και τον αριθμό τηλεφώνου ενός πελάτη. Άλλα εργαλεία αναφέρονται σε μια εγγραφή ως "γραμμή" ή "στοιχείο".
- Ένας πίνακας περιέχει μία ή περισσότερες εγγραφές που περιέχουν τις ίδιες κατηγορίες πληροφοριών. Για παράδειγμα, ένας πίνακας μπορεί να περιέχει τα ονόματα, τις διευθύνσεις ηλεκτρονικού ταχυδρομείου και τους αριθμούς τηλεφώνου 50 πελατών.
Στην εφαρμογή σας, θα χρησιμοποιήσετε τύπους για να δημιουργήσετε, να ενημερώσετε και να χειριστείτε εγγραφές και πίνακες. Πιθανότατα θα πραγματοποιήσετε ανάγνωση και εγγραφή δεδομένων σε μια εξωτερική προέλευση δεδομένων, η οποία είναι ένας εκτεταμένος πίνακας. Επιπλέον, μπορείτε να δημιουργήσετε έναν ή περισσότερους εσωτερικούς πίνακες, που ονομάζονται συλλογές.
Μπορείτε να δημιουργήσετε μια ποικιλία τύπων που λαμβάνουν το όνομα ενός πίνακα ως όρισμα, όπως ένας τύπος στο Excel λαμβάνει μία ή περισσότερες αναφορές κελιών ως ορίσματα. Ορισμένοι τύποι στο Power Apps επιστρέφουν έναν πίνακα που απεικονίζει τα άλλα ορίσματα που καθορίζετε. Για παράδειγμα, μπορείτε να δημιουργήσετε έναν τύπο:
- για να ενημερώσετε μια εγγραφή σε έναν πίνακα, καθορίζοντας αυτόν τον πίνακα ως ένα από τα πολλά ορίσματα για τη συνάρτηση Patch
- για να προσθέσετε, να καταργήσετε και να μετονομάσετε στήλες σε έναν πίνακα, καθορίζοντας αυτόν τον πίνακα ως όρισμα για τη συνάρτηση AddColumns, DropColumns ή RenameColumns. Καμία από αυτές τις συναρτήσεις δεν τροποποιεί τον αρχικό πίνακα. Αντί για αυτό, η συνάρτηση επιστρέφει έναν άλλο πίνακα με βάση τα άλλα ορίσματα που καθορίζετε.
Στοιχεία ενός πίνακα
Καρτέλες
Κάθε εγγραφή περιέχει τουλάχιστον μία κατηγορία πληροφοριών για ένα άτομο, μια θέση ή ένα πράγμα. Το παραπάνω παράδειγμα δείχνει μια εγγραφή για κάθε προϊόν (Chocolate, Bread, και Water) και μια στήλη για κάθε κατηγορία πληροφοριών (Price, Quantity on Hand και Quantity on Order).
Σε έναν τύπο, μπορείτε να αναφερθείτε στην ίδια την εγγραφή, έξω από το περιβάλλον ενός πίνακα, χρησιμοποιώντας άγκιστρα. Για παράδειγμα, η εγγραφή { Name: "Strawberries", Price: 7.99 } δεν έχει συσχετιστεί με έναν πίνακα. Να σημειωθεί ότι τα ονόματα πεδίων, όπως Όνομα και Τιμή σε αυτό το παράδειγμα δεν περικλείονται σε διπλά εισαγωγικά.
Πεδία
Το πεδίο είναι ένα μεμονωμένο τμήμα πληροφοριών σε μια εγγραφή. Μπορείτε να οπτικοποιήσετε αυτό το είδος πεδίου ως τιμή σε μια στήλη για μια συγκεκριμένη εγγραφή.
Όπως ακριβώς με ένα στοιχείο ελέγχου, αναφέρεστε σε ένα πεδίο μιας εγγραφής, χρησιμοποιώντας τον τελεστή . στην εγγραφή. Για παράδειγμα, το First(Products). Name επιστρέφει το πεδίο Name για την πρώτη εγγραφή στον πίνακα Products.
Ένα πεδίο μπορεί να περιέχει μια άλλη εγγραφή ή πίνακα, όπως δείχνει το παράδειγμα για τη συνάρτηση GroupBy. Μπορείτε να ενθέσετε όσα επίπεδα εγγραφών και πινάκων θέλετε.
Στήλες
Μια στήλη αναφέρεται στο ίδιο πεδίο για μία ή περισσότερες εγγραφές σε έναν πίνακα. Στο παραπάνω παράδειγμα, κάθε προϊόν έχει ένα πεδίο τιμής και η τιμή αυτή βρίσκεται στην ίδια στήλη για όλα τα προϊόντα. Ο παραπάνω πίνακας έχει τέσσερις στήλες, που εμφανίζονται οριζόντια στο επάνω μέρος:
- Όνομα.
- Τιμή
- Διαθέσιμη ποσότητα
- Ποσότητα στην παραγγελία
Το όνομα της στήλης απεικονίζει τα πεδία σε αυτή τη στήλη.
Όλες οι τιμές σε μια στήλη έχουν τον ίδιο τύπο δεδομένων. Στο παραπάνω παράδειγμα, η στήλη "Quantity on Hand" περιέχει πάντα έναν αριθμό και δεν μπορεί να περιέχει μια συμβολοσειρά, όπως "12 μονάδες", για μια εγγραφή. Η τιμή ενός πεδίου μπορεί επίσης να είναι κενό.
Ενδέχεται να έχετε αναφερθεί σε στήλες ως "πεδία" σε άλλα εργαλεία.
Σημείωση
Για τις προελεύσεις δεδομένων όπως SharePoint, Excel ή τα πλακίδια Power BI που περιέχουν ονόματα στηλών με κενά διαστήματα, το Power Apps αντικαθιστά τα κενά διαστήματα με "_x0020_". Για παράδειγμα, το "Όνομα στήλης" στο SharePoint, το Excel ή το πλακίδιο Power BI θα εμφανίζεται ως "Column_x0020_Name" στο Power Apps όταν εμφανίζεται στη διάταξη δεδομένων ή χρησιμοποιείται σε έναν τύπο.
Table
Ένας πίνακας περιλαμβάνει μία ή περισσότερες εγγραφές, καθεμία με πολλαπλά πεδία που έχουν συνεπή ονόματα σε όλες τις εγγραφές.
Κάθε πίνακας που είναι αποθηκευμένος σε ένα αρχείο προέλευσης δεδομένων ή μια συλλογή έχει ένα όνομα, το οποίο χρησιμοποιείτε για παραπομπή στον πίνακα και για να το μεταβιβάσετε σε συναρτήσεις που λαμβάνουν πίνακες ως ορίσματα. Οι πίνακες μπορεί επίσης να είναι το αποτέλεσμα μιας συνάρτησης ή ενός τύπου.
Όπως στο ακόλουθο παράδειγμα, μπορείτε να εκφράσετε έναν πίνακα σε έναν τύπο, χρησιμοποιώντας τη συνάρτηση Table με ένα σύνολο εγγραφών, που μπορείτε να εκφράσετε μέσα σε άγκιστρα:
Table( { Value: "Strawberry" }, { Value: "Vanilla" } )
Μπορείτε επίσης να καθορίσετε έναν πίνακα μίας στήλης με αγκύλες. Ένας ισοδύναμος τρόπος για να γράψετε τα παραπάνω είναι ο εξής:
[ "Strawberry", "Vanilla" ]
Τύποι πίνακα
Στο Excel και το Power Apps, μπορείτε να χρησιμοποιήσετε τύπους για να χειριστείτε αριθμούς και συμβολοσειρές κειμένου με παρόμοιους τρόπους:
- Στο Excel, πληκτρολογήστε μια τιμή, όπως 42, στο κελί A1 και, στη συνέχεια, πληκτρολογήστε έναν τύπο, όπως A1+2, σε ένα άλλο κελί για να εμφανίσετε την τιμή 44.
- Στο Power Apps, ορίστε την ιδιότητα Default του Slider1 σε 42 και ορίστε την ιδιότητα Text μιας ετικέτας σε Slider1.Value + 2 για να εμφανίσετε την τιμή 44.
Και στις δύο περιπτώσεις, η υπολογιζόμενη τιμή αλλάζει αυτόματα εάν αλλάξετε τις τιμές των ορισμάτων (για παράδειγμα, τον αριθμό στο κελί A1 ή την τιμή του Slider1).
Παρομοίως, μπορείτε να χρησιμοποιήσετε τύπους για την πρόσβαση και τον χειρισμό δεδομένων σε πίνακες και εγγραφές. Μπορείτε να χρησιμοποιήσετε τα ονόματα των πινάκων ως ορίσματα σε μερικούς τύπους, όπως Min(Catalog, Price), για να εμφανίσετε τη χαμηλότερη τιμή στη στήλη Price του πίνακα Catalog. Άλλοι τύποι παρέχουν ολόκληρους πίνακες ως επιστρεφόμενες τιμές, όπως ο τύπος RenameColumns(Catalog, "Price", "Cost"), που επιστρέφει όλες τις εγγραφές από τον πίνακα Catalog αλλά αλλάζει το όνομα της στήλης Price σε Cost.
Όπως ακριβώς και με τους αριθμούς, οι τύποι που αφορούν πίνακες και εγγραφές υπολογίζονται αυτόματα καθώς αλλάζει ο υποκείμενος πίνακας ή εγγραφή. Εάν το κόστος ενός προϊόντος στον πίνακα Catalog μειωθεί κάτω από το προηγούμενο ελάχιστο, η τιμή επιστροφής του τύπου Min θα αλλάξει αυτόματα ώστε να ταιριάζει με αυτό.
Ας δούμε ορισμένα απλά παραδείγματα.
Προσθέστε μια κενή εφαρμογή για ένα τηλέφωνο και μετά ένα κατακόρυφο στοιχείου ελέγχου Συλλογή που περιέχει άλλα στοιχεία ελέγχου.
Από προεπιλογή, η οθόνη εμφανίζει κείμενο κράτησης θέσης από έναν πίνακα με το όνομα CustomGallerySample. Η ιδιότητα Items του στοιχείου ελέγχου Συλλογή της οθόνης ορίζεται αυτόματα σε αυτόν τον πίνακα.
Σημείωση
Ορισμένα χειριστήρια έχουν αναδιαταχθεί και διευρυνθεί για λόγους απεικόνισης.
Αντί να ρυθμίσετε την ιδιότητα Items με το όνομα ενός πίνακα, ορίστε την σε έναν τύπο που περιλαμβάνει το όνομα του πίνακα ως όρισμα, όπως σε αυτό το παράδειγμα:
Sort(CustomGallerySample, SampleHeading, SortOrder.Descending)
Αυτός ο τύπος ενσωματώνει τη συνάρτηση Sort, η οποία λαμβάνει το όνομα του πίνακα ως πρώτο όρισμα και το όνομα μιας στήλης σε αυτόν τον πίνακα ως δεύτερο όρισμα. Η συνάρτηση υποστηρίζει επίσης ένα προαιρετικό τρίτο όρισμα, το οποίο ορίζει ότι θέλετε να ταξινομήσετε τα δεδομένα με φθίνουσα σειρά.
Ορίστε την ιδιότητα Items σε έναν τύπο που λαμβάνει τον τύπο από το προηγούμενο βήμα ως όρισμα και επιστρέφει έναν πίνακα, όπως στο παρακάτω παράδειγμα:
FirstN(Sort(CustomGallerySample, SampleHeading, SortOrder.Descending), 2)
Σε αυτόν τον τύπο, μπορείτε να χρησιμοποιήσετε τη συνάρτηση FirstN για να εμφανίσετε ένα συγκεκριμένο πλήθος εγγραφών σε έναν πίνακα. Μπορείτε να χρησιμοποιήσετε τη συνάρτηση Sort ως πρώτο όρισμα στο FirstN και έναν αριθμό (στην περίπτωση αυτή, το 2 ) ως δεύτερο όρισμα, που καθορίζει τον αριθμό των εγγραφών που θα εμφανιστούν.
Ολόκληρος ο τύπος επιστρέφει έναν πίνακα που περιέχει τις δύο πρώτες εγγραφές του πίνακα CustomGallerySample, ταξινομημένες βάσει της στήλης SampleHeading κατά φθίνουσα σειρά.
Συναρτήσεις πίνακα και ιδιότητες στοιχείων ελέγχου
Εξετάστε τη χαμηλότερη συνάρτηση. Εάν η μεταβλητή καλώς ήρθατε περιέχει τη συμβολοσειρά "Hello, World", ο τύπος Χαμηλότερος (Καλώς ορίσατε) επιστρέφει την τιμή "Hello, World". Αυτή η συνάρτηση δεν αλλάζει με κανέναν τρόπο την τιμή σε αυτήν τη μεταβλητή. Το Lower είναι μια αμιγής συνάρτηση ως προς το ότι επεξεργάζεται μόνο την είσοδο και παράγει έξοδο. Αυτό είναι όλο. Δεν έχει παρενέργειες. Όλες οι συναρτήσεις στο Excel και οι περισσότερες συναρτήσεις στο Power Apps είναι αμιγείς συναρτήσεις, οι οποίες επιτρέπουν την αυτόματη επανάληψη του υπολογισμού του βιβλίου εργασίας ή της εφαρμογής.
Το Power Apps προσφέρει ένα σύνολο συναρτήσεων που λειτουργούν σε πίνακες με τον ίδιο τρόπο. Αυτές οι συναρτήσεις λαμβάνουν πίνακες ως εισάγουν και φιλτράρουν, ταξινομούν, μετασχηματίζουν, μειώνουν και συνοψίζουν ολόκληρους πίνακες δεδομένων. Μάλιστα, το Lower και πολλές άλλες συναρτήσεις που συνήθως λαμβάνουν μια μεμονωμένη τιμή μπορούν επίσης να λάβουν έναν πίνακα μίας στήλης ως είσοδο.
- Sort, Filter - Ταξινομεί και φιλτράρει εγγραφές.
- FirstN, LastN - Επιστρέφει τις πρώτες N ή τις τελευταίες N εγγραφές του πίνακα.
- Abs, Sqrt, Round, RoundUp, RoundDown - Αριθμητικές πράξεις σε κάθε εγγραφή ενός πίνακα μίας στήλης, που αποδίδουν έναν πίνακα αποτελεσμάτων μίας στήλης.
- Left, Mid, Right, Replace, Substitute, Trim, Lower, Upper, Proper - Χειρισμοί συμβολοσειράς σε κάθε εγγραφή ενός πίνακα μίας στήλης, που αποδίδουν έναν πίνακα συμβολοσειρών μίας στήλης.
- Len - Για μια στήλη συμβολοσειρών, επιστρέφει έναν πίνακα μίας στήλης που περιέχει το μήκος κάθε συμβολοσειράς.
- Concatenate - Συνενώνει πολλές στήλες συμβολοσειρών, αποδίδοντας έναν πίνακα συμβολοσειρών μίας στήλης.
- AddColumns, DropColumns, RenameColumns, ShowColumns - Χειρισμός στήλης του πίνακα, που αποδίδει ένα νέο πίνακα με διαφορετικές στήλες.
- Distinct - Καταργεί τις διπλές εγγραφές.
- Shuffle - Αναδιατάσσει τις εγγραφές με τυχαία σειρά.
- HashTags - Αναζητά hashtag σε μια συμβολοσειρά.
- Errors – Παρέχει πληροφορίες σφάλματος όταν εργάζεστε με μια προέλευση δεδομένων.
Πολλές από αυτές τις συναρτήσεις λαμβάνουν έναν πίνακα μίας στήλης ως εισαγωγή τους. Εάν ένας ολόκληρος πίνακας έχει μόνο μία στήλη, μπορείτε να την καθορίσετε με βάση το όνομα. Εάν ένας πίνακας έχει πολλές στήλες, μπορείτε να καθορίσετε μία από αυτές τις στήλες χρησιμοποιώντας τη σύνταξη Table.Column. Για παράδειγμα, το Products.Name επιστρέφει τον πίνακα μίας στήλης με μόνο τιμές Name από τον πίνακα Προϊόντα.
Μπορείτε να αναδιαμορφώσετε πλήρως έναν πίνακα, όπως θέλετε, χρησιμοποιώντας τη συνάρτηση AddColumns, RenameColumns, ShowColumns ή DropColumns. Και πάλι, αυτές οι συναρτήσεις αλλάζουν μόνο την έξοδο τους και όχι την προέλευσή τους.
Οι ιδιότητες των στοιχείων ελέγχου μπορούν επίσης να είναι πίνακες:
- Items - Ισχύει για συλλογές, πλαίσιο λίστας και σύνθετα πλαίσια. Αυτή η ιδιότητα καθορίζει τον πίνακα που εμφανίζεται στη συλλογή ή τη λίστα.
- SelectedItems - Ισχύει για πλαίσια λίστας και σύνθετα πλαίσια. Αυτή η ιδιότητα καθορίζει τον πίνακα στοιχείων που έχει επιλέξει ο χρήστης εάν είναι ενεργοποιημένο το SelectMultiple.
Τύποι συμπεριφοράς
Άλλες συναρτήσεις έχουν σχεδιαστεί ειδικά για την τροποποίηση δεδομένων και έχουν παρενέργειες. Επειδή αυτές οι συναρτήσεις δεν είναι καθαρές, πρέπει να τις δημιουργήσετε προσεκτικά και δεν μπορούν να συμμετάσχουν στον αυτόματο εκ νέου υπολογισμό τιμών στην εφαρμογή. Μπορείτε να χρησιμοποιήσετε αυτές τις συναρτήσεις εντός τύπων συμπεριφοράς.
- Collect, Clear, ClearCollect - Δημιουργεί συλλογές, τις διαγράφει και προσθέτει δεδομένα σε αυτές.
- Patch - Τροποποιεί ένα ή περισσότερα πεδία σε μια εγγραφή.
- Update, UpdateIf - Ενημερώνει τις εγγραφές που ταιριάζουν με ένα ή περισσότερα κριτήρια που καθορίζετε.
- Remove, RemoveIf - Διαγράφει τις εγγραφές που ταιριάζουν με ένα ή περισσότερα κριτήρια που καθορίζετε.
Τύποι εγγραφής
Μπορείτε επίσης να δημιουργήσετε έναν τύπο που υπολογίζει δεδομένα για μια μεμονωμένη εγγραφή, λαμβάνει μια μεμονωμένη εγγραφή ως όρισμα και παρέχει μια μεμονωμένη εγγραφή ως επιστρεφόμενη τιμή. Επιστρέφοντας στο παραπάνω παράδειγμα συλλογής, ας χρησιμοποιήσουμε την ιδιότητα Gallery1.Selected για να εμφανίσουμε πληροφορίες από όποια εγγραφή επιλέγει ο χρήστης σε αυτή τη συλλογή.
Προσθέσετε ένα Κουμπί και ορίστε την ιδιότητα OnSelect σε αυτόν τον τύπο:
Collect( SelectedRecord, Gallery1.Selected )Ενώ κρατάτε πατημένο το πλήκτρο Alt, επιλέξτε το κουμπί.
Στο μενού Αρχείο, επιλέξτε Συλλογές.
Αυτός ο τύπος επιστρέφει μια εγγραφή που περιλαμβάνει όχι μόνο τα δεδομένα από την εγγραφή που είναι επιλεγμένη τη συγκεκριμένη στιγμή στη συλλογή αλλά και κάθε στοιχείο ελέγχου σε αυτή τη συλλογή. Για παράδειγμα, η εγγραφή περιέχει μια στήλη SampleText, η οποία ταιριάζει με τη στήλη SampleText στον αρχικό πίνακα και μια στήλη Subtitle1, η οποία αντιπροσωπεύει την ετικέτα που εμφανίζει τα δεδομένα από αυτήν τη στήλη. Επιλέξτε το εικονίδιο του πίνακα στη στήλη Subtitle1 για να αναλύσετε αυτά τα δεδομένα.
Σημείωση
Η στήλη Subtitle1 μπορεί να ονομάζεται Subtitle2 ή παρόμοια εάν έχετε προσθέσει στοιχεία διαφορετικά από εκείνα που καθορίζει αυτό το θέμα.
Τώρα που έχετε την επιλεγμένη εγγραφή, μπορείτε να εξαγάγετε μεμονωμένα πεδία από αυτή με τον τελεστή . τελεστής.
Προσθέστε ένα στοιχείο ελέγχου Ετικέτα και μετακινήστε το κάτω από τη συλλογή και το κουμπί.
Ορίστε την ιδιότητα Text της ετικέτας σε αυτή την παράσταση:
"Selected: " & Gallery1.Selected.SampleHeading
Πήρατε την ιδιότητα Selected, η οποία είναι μια εγγραφή και εξαγάγατε την ιδιότητα SampleHeading από αυτή.
Μπορείτε επίσης να χρησιμοποιήσετε μια εγγραφή ως κοντέινερ γενικής χρήσης για τις σχετικές καθορισμένες τιμές.
- Εάν δημιουργείτε έναν τύπο για τις συναρτήσεις UpdateContext και Navigate, χρησιμοποιήστε μια εγγραφή για να συγκεντρώσετε τις μεταβλητές περιβάλλοντος που θέλετε να ενημερώσετε.
- Χρησιμοποιήστε την ιδιότητα Updates σε ένα στοιχείο ελέγχου Επεξεργασία φόρμας για να συγκεντρώσετε τις αλλαγές που έχουν γίνει από το χρήστη σε μια φόρμα.
- Χρησιμοποιήστε τη συνάρτηση Patch για να ενημερώσετε μια προέλευση δεδομένων αλλά και για να συγχωνεύσετε εγγραφές.
Σε αυτές τις περιπτώσεις, η εγγραφή δεν ήταν ποτέ μέρος ενός πίνακα.
Συναρτήσεις εγγραφής και ιδιότητες στοιχείων ελέγχου
Συναρτήσεις που επιστρέφουν εγγραφές:
- FirstN, LastN - Επιστρέφει την πρώτη ή την τελευταία εγγραφή ή εγγραφές του πίνακα.
- Lookup - Επιστρέφει την πρώτη εγγραφή από έναν πίνακα που συμφωνεί με ένα ή περισσότερα κριτήρια.
- Patch - Ενημερώνει μια προέλευση δεδομένων ή συγχωνεύει εγγραφές.
- Defaults – Επιστρέφει προεπιλεγμένες τιμές μιας προέλευσης δεδομένων.
Ιδιότητες που επιστρέφουν εγγραφές:
- Selected - Ισχύει για συλλογές και πλαίσια λίστας. Επιστρέφει την τρέχουσα επιλεγμένη εγγραφή.
- Updates - Ισχύει για συλλογές. Συγκεντρώνει μαζί όλες τις αλλαγές που κάνει ένας χρήστης σε μια φόρμα καταχώρησης δεδομένων.
- Update - Ισχύει για στοιχεία ελέγχου εισαγωγής, όπως τα στοιχεία ελέγχου εισαγωγής κειμένου και τα ρυθμιστικά. Ρυθμίζει μεμονωμένες ιδιότητες για τη συλλογή για να τις συγκεντρώσει.
Πεδίο εφαρμογής εγγραφής
Ορισμένες συναρτήσεις λειτουργούν με την αξιολόγηση ενός τύπου σε όλες τις εγγραφές ενός πίνακα ξεχωριστά. Το αποτέλεσμα του τύπου χρησιμοποιείται με διάφορους τρόπους:
- AddColumns - Ο τύπος παρέχει την τιμή του πεδίου που προστέθηκε.
- Average, Max, Min, Sum, StdevP, VarP - Ο τύπος παρέχει την τιμή συνάθροισης.
- Filter, Lookup - Ο τύπος καθορίζει εάν η εγγραφή θα πρέπει να συμπεριληφθεί στο αποτέλεσμα.
- Concat - Ο τύπος προσδιορίζει τις συμβολοσειρές που θα συνενωθούν.
- Distinct - Ο τύπος επιστρέφει μια τιμή, που χρησιμοποιείται για τον προσδιορισμό των διπλότυπων εγγραφών.
- ForAll - Ο τύπος μπορεί να επιστρέψει οποιαδήποτε τιμή, ενδεχομένως με παρενέργειες.
- Sort - Ο τύπος παρέχει την τιμή για την ταξινόμηση των εγγραφών.
- With - Ο τύπος μπορεί να επιστρέψει οποιαδήποτε τιμή, ενδεχομένως με παρενέργειες.
Μέσα σε αυτούς τους τύπους, μπορείτε να αναφερθείτε στα πεδία της εγγραφής που βρίσκεται σε επεξεργασία. Κάθε μία από αυτές τις λειτουργίες δημιουργεί μια "εμβέλεια εγγραφής" μέσα στην οποία υπολογίζεται ο τύπος και όπου τα πεδία της εγγραφής είναι διαθέσιμα ως αναγνωριστικά ανώτατου επιπέδου. Μπορείτε επίσης να κάνετε αναφορά σε ιδιότητες στοιχείων ελέγχου και σε άλλες τιμές από οποιοδήποτε σημείο της εφαρμογής σας.
Για παράδειγμα, ας πάρουμε τον πίνακα Products:
Για να δημιουργήσετε αυτόν τον πίνακα παράδειγμα στην εφαρμογή σας, εισαγάγετε ένα κουμπί, ορίστε την ιδιότητα OnSelect σε αυτόν τον τύπο και, στη συνέχεια, επιλέξτε το κουμπί (κάντε κλικ σε αυτό όσο κρατάτε πατημένο το πλήκτρο ALT στο Power Apps Studio):
Set( Products,
Table(
{ Product: "Widget", 'Quantity Requested': 6, 'Quantity Available': 3 },
{ Product: "Gadget", 'Quantity Requested': 10, 'Quantity Available': 20 },
{ Product: "Gizmo", 'Quantity Requested': 4, 'Quantity Available': 11 },
{ Product: "Apparatus", 'Quantity Requested': 7, 'Quantity Available': 6 }
)
)
Για να προσδιορίσετε εάν οποιοδήποτε από αυτά τα προϊόντα είχε μεγαλύτερη ζήτηση σε σχέση με τα διαθέσιμα αποθέματά του:
Filter( Products, 'Quantity Requested' > 'Quantity Available' )
Το πρώτο όρισμα Filter είναι ο πίνακας των εγγραφών οι οποίες χρησιμοποιούνται για τη λειτουργία και το δεύτερο όρισμα είναι ένας τύπος. Η συνάρτηση Filter δημιουργεί μια εμβέλεια εγγραφών για την αξιολόγηση αυτού του τύπου στην οποία είναι διαθέσιμα τα πεδία κάθε εγγραφής, που σε αυτή την περίπτωση είναι τα πεδία Product, Quantity Requested και Quantity Available. Το αποτέλεσμα της σύγκρισης προσδιορίζει εάν κάθε εγγραφή θα πρέπει να συμπεριληφθεί στο αποτέλεσμα της συνάρτησης:
Εμπλουτίζοντας αυτό το παράδειγμα, μπορούμε να υπολογίσουμε την ποσότητα που πρέπει να παραγγείλουμε για κάθε προϊόν:
AddColumns(
Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
"Quantity To Order", 'Quantity Requested' - 'Quantity Available'
)
Εδώ προσθέτουμε μια υπολογιζόμενη στήλη στο αποτέλεσμα. Η συνάρτηση AddColumns έχει τη δική της εμβέλεια που χρησιμοποιείται για να υπολογιστεί η διαφορά μεταξύ της ποσότητας που ζητήθηκε και της ποσότητας που είναι διαθέσιμη.
Τέλος, μπορούμε να μειώσουμε τον πίνακα αποτελεσμάτων μόνο στις στήλες που επιθυμούμε:
ShowColumns(
AddColumns(
Filter( Products, 'Quantity Requested' > 'Quantity Available' ),
"Quantity To Order", 'Quantity Requested' - 'Quantity Available'
),
"Product",
"Quantity To Order"
)
Σημειώστε ότι στα παραπάνω χρησιμοποιήσαμε διπλά εισαγωγικά (") σε ορισμένες θέσεις και μονά εισαγωγικά (') σε άλλες θέσεις. Τα μονά εισαγωγικά απαιτούνται κατά την αναφορά της τιμής ενός αντικειμένου, όπως ένα πεδίο ή ένας πίνακας, όπου το όνομα του αντικειμένου περιέχει ένα κενό διάστημα. Τα διπλά εισαγωγικά χρησιμοποιούνται όταν δεν αναφέρουμε την τιμή ενός αντικειμένου αλλά αναφερόμαστε σε αυτό, ειδικά σε περιπτώσεις στις οποίες το αντικείμενο δεν υπάρχει ακόμα, όπως στην περίπτωση της AddColumns.
Αποσαφήνιση
Ονόματα πεδίων που προστίθενται με την εμβέλεια εγγραφών παρακάμπτουν τα ίδια ονόματα πεδίων από κάποιο άλλο σημείο στην εφαρμογή. Όταν συμβαίνει αυτό, εξακολουθείτε να έχετε πρόσβαση σε τιμές εκτός της εμβέλειας εγγραφών με τον τελεστή @ αποσαφήνισης:
- Για πρόσβαση σε τιμές από ένθετες εμβέλειες εγγραφών, χρησιμοποιήστε τον τελεστή @ με το όνομα του πίνακα που χρησιμοποιείται με το εξής μοτίβο:
Table[@FieldName] - Για πρόσβαση σε καθολικές τιμές, όπως προελεύσεις δεδομένων, συλλογές και μεταβλητές περιβάλλοντος, χρησιμοποιήστε το μοτίβο [@ObjectName] (χωρίς ονομασία πίνακα).
Εάν ο πίνακας που χρησιμοποιείται για τη λειτουργία είναι μια παράσταση, όπως Filter( Table, ... ), τότε δεν μπορεί να χρησιμοποιηθεί ο τελεστής αποσαφήνισης. Μόνο η εσωτερική εμβέλεια εγγραφής μπορείτε να αποκτήσει πρόσβαση σε πεδία από αυτή την παράσταση πίνακα, χωρίς να χρησιμοποιήσει τον τελεστή αποσαφήνισης.
Για παράδειγμα, φανταστείτε τη συλλογή X:
Μπορείτε να δημιουργήσετε αυτή τη συλλογή με τον τύπο ClearCollect( X, [1, 2] ).
Και μια άλλη συλλογή Y:
Μπορείτε να δημιουργήσετε αυτή τη συλλογή με τον τύπο ClearCollect( Y, ["A", "B"] ).
Επίσης, ορίστε μια μεταβλητή περιβάλλοντος με το όνομα Value με αυτόν τον τύπο: UpdateContext( {Value: "!"} )
Ας τα συνδυάσουμε όλα. Σε αυτό το περιβάλλον, ο παρακάτω τύπος:
Ungroup(
ForAll( X,
ForAll( Y,
Y[@Value] & Text( X[@Value] ) & [@Value]
)
),
"Value"
)
παράγει αυτόν τον πίνακα:
Τι γίνεται εδώ; Η εξωτερική συνάρτηση ForAll ορίζει μια εμβέλεια εγγραφής για το X, επιτρέποντας την πρόσβαση στο πεδίο Value κάθε εγγραφής κατά την επεξεργασία. Μπορείτε να αποκτήσετε πρόσβαση σε αυτή χρησιμοποιώντας απλώς τη λέξη Value ή με τη χρήση του X[@Value].
Η πιο εσωτερική συνάρτηση ForAll προσδιορίζει ένα άλλο πεδίο εγγραφής για το Y . Επειδή αυτός ο πίνακας έχει ένα καθορισμένο ένα πεδίο Τιμή, η χρήση της Τιμής εδώ αναφέρεται στο πεδίο της εγγραφής Y και όχι πλέον σε ένα από το X. Εδώ, για να αποκτήσετε πρόσβαση στο πεδίο Τιμή του Χ, πρέπει να χρησιμοποιήσετε τη μεγαλύτερη έκδοση με τον τελεστή αποσαφήνισης.
Εφόσον το Y είναι η εσωτερική εμβέλεια εγγραφής, η πρόσβαση στα πεδία αυτού του πίνακα δεν απαιτούν αποσαφήνιση, επιτρέποντάς μας να χρησιμοποιήσουμε αυτόν τον τύπο με το ίδιο αποτέλεσμα:
Ungroup(
ForAll( X,
ForAll( Y,
Value & Text( X[@Value] ) & [@Value]
)
),
"Value"
)
Όλες οι εμβέλειες της εγγραφής ForAll παρακάμπτουν την καθολική εμβέλεια. Η μεταβλητή περιβάλλοντος Value που καθορίσαμε δεν είναι διαθέσιμη με βάση το όνομα χωρίς τον τελεστή αποσαφήνισης. Για να αποκτήσετε πρόσβαση σε αυτήν την τιμή, χρησιμοποιήστε το [@Value].
Η συνάρτηση Ungroup εξομαλύνει το αποτέλεσμα, επειδή ότι οι ένθετες συναρτήσεις ForAll έχουν ως αποτέλεσμα έναν ένθετο πίνακα αποτελεσμάτων.
Πίνακες μίας στήλης
Για να λειτουργείτε σε μία μόνο στήλη από έναν πίνακα, χρησιμοποιήστε τη συνάρτηση ShowColumns όπως σε αυτό το παράδειγμα:
ShowColumns( Products, "Product" )
Αυτός ο τύπος παράγει αυτόν τον πίνακα μονής στήλης:
Για μια πιο σύντομη εναλλακτική λύση, καθορίστε τον Table.Column, που εξάγει τον πίνακα μίας στήλης μόνο Στήλης από τον Πίνακα. Για παράδειγμα, αυτός ο τύπος παράγει ακριβώς το ίδιο αποτέλεσμα με τη χρήση του ShowColumns.
Products.Product
Ενσωματωμένες εγγραφές
Μπορείτε να εκφράσετε εγγραφές χρησιμοποιώντας τα άγκιστρα που περιέχουν τιμές πεδίου με όνομα. Για παράδειγμα, μπορείτε να εκφράσετε την πρώτη εγγραφή του πίνακα στην αρχή αυτού του θέματος, χρησιμοποιώντας αυτόν τον τύπο:
{ Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 }
Μπορείτε επίσης να ενσωματώσετε τύπους μέσα σε άλλους τύπους, όπως φαίνεται σε αυτό το παράδειγμα:
{ Name: First(Products).Name, Price: First(Products).Price * 1.095 }
Μπορείτε να κάνετε ένθεση εγγραφών ενθέτοντας άγκιστρα, όπως φαίνεται σε αυτό το παράδειγμα:
{ 'Quantity': { 'OnHand': ThisItem.QuantOnHand, 'OnOrder': ThisItem.QuantOnOrder } }
Περικλείστε το όνομα κάθε στήλης που περιέχει έναν ειδικό χαρακτήρα, όπως ένα κενό διάστημα ή η άνω κάτω τελεία, σε μονά εισαγωγικά. Για να χρησιμοποιήσετε ένα μονό εισαγωγικό μέσα σε ένα όνομα στήλης, γράψτε το δύο φορές.
Σημειώστε ότι η τιμή της στήλης Price δεν περιλαμβάνει ένα σύμβολο νομίσματος, όπως το σύμβολο του δολαρίου. Η μορφοποίηση αυτή θα εφαρμοστεί όταν εμφανίζεται η τιμή.
Ενσωματωμένοι πίνακες
Μπορείτε να δημιουργήσετε έναν πίνακα χρησιμοποιώντας τη συνάρτηση Table και ένα σύνολο εγγραφών. Μπορείτε να εκφράσετε τον πίνακα στην αρχή αυτού του θέματος, χρησιμοποιώντας τον εξής τύπο:
Table(
{ Name: "Chocolate", Price: 3.95, 'Quantity on Hand': 12, 'Quantity on Order': 10 },
{ Name: "Bread", Price: 4.95, 'Quantity on Hand': 34, 'Quantity on Order': 0 },
{ Name: "Water", Price: 4.95, 'Quantity on Hand': 10, 'Quantity on Order': 0 }
)
Μπορείτε επίσης να κάνετε ένθεση πινάκων:
Table(
{ Name: "Chocolate",
'Quantity History': Table( { Quarter: "Q1", OnHand: 10, OnOrder: 10 },
{ Quarter: "Q2", OnHand: 18, OnOrder: 0 } )
}
)
Πίνακες ενσωματωμένης τιμής
Μπορείτε να δημιουργήσετε πίνακες μίας στήλης, καθορίζοντας τις τιμές σε αγκύλες. Ο πίνακας που προκύπτει έχει μία μόνο στήλη, με το όνομα Value.
Για παράδειγμα, το [ 1, 2, 3, 4 ]
είναι ισοδύναμο με το Table( { Value: 1 }, { Value: 2 }, { Value: 3 }, { Value: 4 } )
και επιστρέφει αυτόν τον πίνακα:
Σημείωση
Μπορείτε να μας πείτε ποια γλώσσα προτιμάτε για την τεκμηρίωση; Πάρτε μέρος σε μια σύντομη έρευνα. (σημειώνεται ότι αυτή η έρευνα είναι στα Αγγλικά)
Η έρευνα θα διαρκέσει περίπου επτά λεπτά. Δεν συλλέγονται προσωπικά δεδομένα (δήλωση προστασίας προσωπικών δεδομένων).