Funcțiile AsType și IsType
Se aplică pentru: planșă de lucru apps
Aplicații bazate pe model
Power Pages
Power Platform CLI
Verifică dacă o referință de înregistrare se referă la un anumit tip de tabel (IsType) și tratează referința ca pe un tip specific (AsType).
Notă
Comenzile PAC CLI pac power-fx nu acceptă IsType.
Descriere
Citiți Înțelegerea referințelor la înregistrări și a căutărilor polimorfe pentru o introducere mai largă și mai multe detalii.
Un câmp de căutare se referă de obicei la înregistrările dintr-un anumit tabel. Deoarece tipul tabelului este bine stabilit, puteți accesa câmpurile căutării utilizând o notație simplă cu puncte. De exemplu, Primul (Conturi).„Contact principal”.„Nume complet” trece de la tabelul Conturi la înregistrarea Contact primar în tabelul Contacte și extrage câmpul Nume complet.
Microsoft Dataverse acceptă, de asemenea, câmpuri de căutare polimorfe, care se pot referi la înregistrări dintr-un set de tabele, ca în aceste exemple.
Câmp de căutare | Pot face refere la |
---|---|
Proprietarul | Utilizatori sau Echipe |
Client | Conturi sau Contacte |
Referitor la | Conturi, Contacte, Articole din baza de cunoștințe etc. |
În formulele cu aplicații pe pânză, utilizați referințe de înregistrare pentru a lucra cu căutări polimorfe. Deoarece o referință de înregistrare se poate referi la diferite tabele, nu știți ce câmpuri vor fi disponibile atunci când scrieți o formulă. Notarea Record.Field nu este disponibilă. Aceste formule trebuie să se adapteze la înregistrările pe care aplicația le întâlnește atunci când rulează.
Funcția IsType verifică dacă o referință de înregistrare se referă la un anumit tip de tabel. Funcția returnează un Boolean TRUE sau FALSE.
Funcția AsType tratează o referință de înregistrare ca un tip de tabel specific, uneori denumit modelare. Puteți utiliza rezultatul ca și cum ar fi o înregistrare a tabelului și puteți utiliza și notația Record.Field pentru a accesa toate câmpurile acelei înregistrări. O eroare apare dacă referința nu este de tipul specific.
Utilizați aceste funcții împreună pentru a testa mai întâi tipul de tabel al unei înregistrări și apoi tratați-l ca o înregistrare de acel tip, astfel încât câmpurile să fie disponibile:
If( IsType( First( Accounts ).Owner, Users ),
AsType( First( Accounts ).Owner, Users ).'Full Name',
AsType( First( Accounts ).Owner, Teams ).'Team Name'
)
Aveți nevoie de aceste funcții numai dacă accesați câmpurile unei referințe de înregistrare. De exemplu, puteți utiliza referințe de înregistrare în funcția Filter fără IsType sau AsType:
Filter( Accounts, Owner = First( Users ) )
În mod similar, puteți utiliza referințe de înregistrare cu funcţia Patch:
Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )
Dacă este utilizat într-un context de înregistrare, cum ar fi în cadrul unui control Galerie sau Editați formularul, s-ar putea să fie nevoie să utilizați operator global de dezambiguizare pentru a face referire la tipul de tabel. De exemplu, această formulă ar fi eficientă pentru o galerie care afișează o listă de contacte unde Numele companie este o căutare de Client:
If( IsType( ThisItem.'Company Name', Accounts ),
AsType( ThisItem.'Company Name', Accounts ).'Account Name',
AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)
Pentru ambele funcții, specificați tipul prin numele sursă de date conectat la tabel. Pentru ca formula să funcționeze, trebuie să adăugați, de asemenea, o aplicație sursă de date pentru orice tipuri pe care doriți să le testați sau să le alocați. De exemplu, trebuie să adăugați tabelul Utilizatori ca sursă de date dacă doriți să utilizați IsType și AsType cu un Proprietar căutare și înregistrări din tabelul respectiv. Puteți adăuga numai sursele de date pe care le utilizați efectiv în aplicația dvs.; nu este nevoie să adăugați toate tabelele la care ar putea face referire o căutare.
Dacă referința înregistrării este necompletată, IsType returnează FALSE și AsType returnează necompletat. Toate câmpurile unei înregistrări necompletate vor fi necompletate.
Sintaxă
AsType( RecordReference, TableType )
- RecordReference - Obligatoriu. O referință de înregistrare, adesea un câmp de căutare care se poate referi la o înregistrare în oricare dintre tabelele multiple.
- TableType - Necesar. Tabelul specific în care ar trebui convertită înregistrarea.
IsType( RecordReference, TableType )
- RecordReference - Obligatoriu. O referință de înregistrare, adesea un câmp de căutare care se poate referi la o înregistrare în oricare dintre tabelele multiple.
- TableType - Necesar. Tabelul specific pentru care să testați.
Exemplu
Înțelegerea referințelor la înregistrări și a căutărilor polimorfe conține exemple ample.
Creați o aplicație proiectată pe pânză necompletată pentru tablete.
În panoul din stânga, selectați Date>Adăugați date. Și apoi, adăugați tabele Conturi și Contacte.
În panoul din stânga, selectați + (Insert) >Aspect>Galerie verticală necompletată.
Selectați Conectați-vă la date, apoi selectați Contacte ca sursă de date.
Setați aspectul galeriei la Titlu și subtitlu.
În panoul Date, deschideți lista Title1, apoi selectați Nume complet.
Selectați controlul etichetelor Subtitle1.
Setați proprietatea Text a Subtitle1 la această formulă:
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' )
Subtitlul din galerie arată aceste valori:
- "--” dacă "Numele Companiei” este necompletat.
- Câmpul „Cont:” și apoi Nume de cont din tabelul Conturi dacă câmpul Numele companiei se referă la un cont.
- Câmpul „Contact:” și apoi Nume complet din tabelul Persoane de contact dacă câmpul Numele companiei se referă la o persoane de contact.
Rezultatele dvs. ar putea diferi de cele din acest subiect, deoarece acesta folosește date eșantion care au fost modificate pentru a afișa tipuri suplimentare de rezultate.
Feedback
https://aka.ms/ContentUserFeedback.
În curând: Pe parcursul anului 2024, vom elimina treptat Probleme legate de GitHub ca mecanism de feedback pentru conținut și îl vom înlocui cu un nou sistem de feedback. Pentru mai multe informații, consultați:Trimiteți și vizualizați feedback pentru