Share via


Συναρτήσεις AsType και IsType functions

Ισχύει σε: Εφαρμογές καμβά Εφαρμογές βάσει μοντέλου Power Platform CLI

Ελέγχει μια αναφορά καρτέλας για έναν συγκεκριμένο τύπο πίνακα (IsType) και αντιμετωπίζει την αναφορά ως συγκεκριμένο τύπο (AsType).

Σημείωμα

Οι εντολές PAC CLI pac power-fx δεν υποστηρίζουν το IsType.

Description

Διαβάστε Κατανοήστε τις αναφορές καρτελών και τις πολυμορφικές αναζητήσεις για μια ευρύτερη εισαγωγή και περισσότερες λεπτομέρειες.

Ένα πεδίο αναζήτησης αναφέρεται συνήθως σε καρτέλες σε ένα συγκεκριμένο πίνακα. Επειδή ο τύπος πίνακα είναι ήδη καθορισμένος, μπορείτε να αποκτήσετε πρόσβαση στα πεδία της αναζήτησης χρησιμοποιώντας μια απλή σήμανση κουκκίδας. Για παράδειγμα, το First( Accounts ).'Primary Contact'.'Full Name' μετακινείται από τον πίνακα Λογαριασμοί στην καρτέλα Κύρια επαφή στον πίνακα Επαφές και εξάγει το πεδίο Πλήρες όνομα.

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

Πεδίο αναζήτησης Μπορεί να αναφέρεται σε
Κάτοχος Χρήστες ή Ομάδες
Πελάτης Λογαριασμοί ή Επαφές
Σχετικά με Λογαριασμοί, Επαφές, Άρθρα γνώσεων κ.λπ.

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

Η συνάρτηση IsType ελέγχει αν μια αναφορά καρτέλας αναφέρεται σε έναν συγκεκριμένο τύπο πίνακα. Η συνάρτηση αποδίδει μια δυαδική τιμή TRUE ή FALSE.

Η συνάρτηση AsType αντιμετωπίζει μια αναφορά καρτέλας ως συγκεκριμένο τύπο πίνακα, που μερικές φορές αναφέρεται ως επιλογή για ρόλο. Μπορείτε να χρησιμοποιήσετε το αποτέλεσμα σαν να ήταν μια καρτέλα του πίνακα και να χρησιμοποιήσετε ξανά τη σήμανση Record.Field για να αποκτήσετε πρόσβαση σε όλα τα πεδία αυτής της καρτέλας. Παρουσιάζεται σφάλμα εάν η αναφορά δεν είναι του συγκεκριμένου τύπου.

Χρησιμοποιήστε αυτές τις λειτουργίες μαζί για να δοκιμάσετε πρώτα τον τύπο πίνακα μιας καρτέλας και, στη συνέχεια, να την αντιμετωπίσετε ως καρτέλα αυτού του τύπου, ώστε να είναι διαθέσιμα τα πεδία:

If( IsType( First( Accounts ).Owner, Users ),
    AsType( First( Accounts ).Owner, Users ).'Full Name',
    AsType( First( Accounts ).Owner, Teams ).'Team Name'
)

Χρειάζεστε αυτές τις συναρτήσεις μόνο εάν αποκτάτε πρόσβαση στα πεδία μιας αναφοράς καρτέλας. Για παράδειγμα, μπορείτε να χρησιμοποιήσετε αναφορές καρτέλας στη συνάρτηση Filter χωρίς IsType ή AsType:

Filter( Accounts, Owner = First( Users ) )

Επίσης, μπορείτε να χρησιμοποιήσετε αναφορές καρτέλας με τη συνάρτηση Patch:

Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )

Εάν χρησιμοποιείται σε ένα περιβάλλον καρτέλας, όπως μέσα σε ένα στοιχείο ελέγχου Gallery ή Edit form, μπορεί να χρειαστεί να χρησιμοποιήσετε τον καθολικό τελεστή αποσαφήνισης για την αναφορά στον τύπο πίνακα. Για παράδειγμα, αυτός ο τύπος θα ήταν αποτελεσματικός για μια συλλογή που εμφανίζει μια λίστα επαφών όπου το Όνομα εταιρείας είναι μια αναζήτηση Πελάτη:

If( IsType( ThisItem.'Company Name', Accounts ),
    AsType( ThisItem.'Company Name', Accounts ).'Account Name',
    AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)

Και για τις δύο συναρτήσεις, καθορίζετε τον τύπο μέσω του ονόματος της προέλευσης δεδομένων που συνδέεται με τον πίνακα. Για να λειτουργήσει ο τύπος, πρέπει επίσης να προσθέσετε μια προέλευση δεδομένων στην εφαρμογή για οποιονδήποτε τύπο που θέλετε να δοκιμάσετε ή να εκτελέσετε. Για παράδειγμα, πρέπει να προσθέσετε τον πίνακα Χρήστες ως προέλευση δεδομένων εάν θέλετε να χρησιμοποιήσετε τα στοιχεία IsType και AsType με μια αναζήτηση Κατόχου και καρτέλες από αυτόν τον πίνακα. Μπορείτε να προσθέσετε μόνο τις προελεύσεις δεδομένων που χρησιμοποιείτε πραγματικά στην εφαρμογή σας. Δεν χρειάζεται να προσθέσετε όλους τους πίνακες στους οποίο θα μπορούσε να αναφέρεται μια αναζήτηση.

Εάν η αναφορά καρτέλας είναι κενή, το IsTypeεπιστρέφει την τιμή "ψευδής" και το AsType επιστρέφει κενό. Όλα τα πεδία μιας κενής καρτέλας θα είναι κενά.

Σύνταξη

AsType( RecordReference, TableType )

  • RecordReference - Υποχρεωτικό. Μια αναφορά καρτέλας, συχνά ένα πεδίο αναζήτησης που μπορεί να αναφέρεται σε μια καρτέλα σε οποιονδήποτε από πολλούς πίνακες.
  • TableType - Απαιτείται. Ο συγκεκριμένος πίνακας στον οποίο θα πρέπει να ανατεθεί η καρτέλα.

IsType( RecordReference, TableType )

  • RecordReference - Υποχρεωτικό. Μια αναφορά καρτέλας, συχνά ένα πεδίο αναζήτησης που μπορεί να αναφέρεται σε μια καρτέλα σε οποιονδήποτε από πολλούς πίνακες.
  • TableType - Απαιτείται. Ο συγκεκριμένος πίνακας για τον οποίο θα γίνει η δοκιμή.

Παράδειγμα

Κατανόηση των αναφορών καρτέλας και των πολυμορφικών αναζητήσεων περιέχει εκτενή παραδείγματα.

  1. Δημιουργήστε μια κενή εφαρμογή καμβά για tablet.

  2. Στο αριστερό τμήμα παραθύρου επιλέξτε Δεδομένα>Προσθήκη δεδομένων. Στη συνέχεια, προσθέστε τους πίνακες Λογαριασμοί και Επαφές.

    Κενή εφαρμογή με δύο προελεύσεις δεδομένων: λογαριασμοί και επαφές.

  3. Στο αριστερό τμήμα παραθύρου, επιλέξτε + (Εισαγωγή) >Διάταξη>Κατακόρυφη κενή συλλογή.

    Εισαγάγετε ένα Στοιχείο ελέγχου Gallery με κενή κατακόρυφη διάταξη.

  4. Επιλέξτε Σύνδεση σε δεδομένα και, στη συνέχεια, επιλέξτε Επαφές ως προέλευση δεδομένων.

  5. Ορίστε τη διάταξη της συλλογής σε Τίτλος και υπότιτλος.

    Άνοιγμα του επιλογέα διάταξης από το τμήμα παραθύρου

    Ορισμός διάταξης σε τίτλο και υπότιτλο.

  6. Στο τμήμα παραθύρου Δεδομένα, ανοίξτε τη λίστα Title1 κι, έπειτα, επιλέξτε Ονοματεπώνυμο.

    Ορισμός τιμής τίτλου.

  7. Επιλέξτε το Στοιχείο ελέγχου Label Subtitle1.

    Ορισμός τιμής υποτίτλου.

  8. Ορίστε την ιδιότητα Text του Subtitle1 σε αυτόν τον τύπο:

    If( IsBlank( ThisItem.'Company Name' ), "--",
        IsType( ThisItem.'Company Name', Accounts ),
            "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name',
        "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name'
    )
    

    Η οθόνη ολοκληρώνεται πλέον με την εμφάνιση λογαριασμών και επαφών που αναμειγνύονται στη συλλογή.

    Ο υπότιτλος στη συλλογή δείχνει αυτές τις τιμές:

    • "--" εάν το "Όνομα εταιρείας" είναι κενό.
    • "Λογαριασμός: " και στη συνέχεια το πεδίο Όνομα λογαριασμού από τον πίνακα Λογαριασμοί εάν το πεδίο Όνομα εταιρείας αναφέρεται σε λογαριασμό.
    • "Επαφή: " και στη συνέχεια το πεδίο Πλήρες όνομα από τον πίνακα Επαφές εάν το πεδίο Όνομα εταιρείας αναφέρεται σε επαφή.

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