Folosirea Power Fx cu comenzi
Acest articol acoperă aspecte ale Power Fx care sunt specifice comenzilor. Multe alte funcții care sunt utilizate astăzi în aplicațiile proiectate pe pânză pot fi, de asemenea, utilizate. Rețineți că există diferențe, deoarece comanda este pentru aplicațiile proiectate pe bază de model.
- Sunt acceptate toate funcțiile de flux de date existente. Ce sunt fluxurile de date?
- Funcțiile imperative care funcționează cu date sunt acceptate.
- Sunt acceptate funcțiile imperative pentru
Confirm
șiNotify
simple. - Pentru o listă de funcții care nu sunt acceptate, accesați Funcții care nu sunt acceptate.
Notă
Publicarea comenzilor Power Fx poate dura câteva minute. S-ar putea să nu fie evident că operațiunile din fundal încă mai rulează chiar și după ce operațiunea de publicare pare să se fi finalizat. Poate fi necesar să așteptați câteva minute după publicare, apoi să reîmprospătați aplicația pentru a vedea modificările reflectate. Acest lucru durează de obicei mai mult prima dată când este publicată o comandă Power Fx pentru o aplicație.
OnSelect
Definește logica care se execută atunci când butonul este selectat în aplicație.
Vizibilă
Definește logica pentru ascunderea sau afișarea butonului atunci când aplicația rulează.
Pentru a defini logica vizibilității, selectați comanda. Apoi selectați Vizibilitate în panoul de proprietăți ale comenzii din dreapta și alegeți Afișați cu condiția din formulă. Puteți selecta Vizibil în partea stângă a barei de formule, apoi puteți scrie o expresie Power Fx folosind bara de formule.
Proprietate selectată
Câmp | Tipul | Descriere |
---|---|---|
Element | Înregistrare a DataSource | Una dintre înregistrările selectate din DataSource. |
AllItems | Tabel de înregistrări din DataSource | Toate înregistrările selectate din DataSource. |
Stat/Județ/Provincie | Enum | Starea controlului selectat. Editați (=0), Nou (=1), Vizualizați (=2) |
Nesalvat | Boolean | Returnează true dacă Selected sau SelectedItems au modificări nesalvate. În caz contrar, returnează false. Returnează întotdeauna false dacă AutoSave este setat la true (opțiunea implicită) în biblioteca de componente a comenzii. |
- Proprietatea Selectat este furnizată de gazda comenzii.
- Numele Element și AllItems sunt oarecum compatibile cu controlul ComboBox și controlul Galerie, dar acesta este un nou model.
- Dacă nu este selectată nicio înregistrare, Element returnează Blank (IsBlank returnează adevărat) și AllItems returnează un tabel gol (IsEmpty returnează adevărat).
- Null DataSource pentru referințe la înregistrări (tipuri de înregistrări polimorfe). Pot fi apelate funcții generice, cum ar fi Salvare sau IsType/AsType pot fi utilizate.
- Elementul este întotdeauna gol dacă SelectionMax <> 1. Acest lucru împiedică scrierea formulelor la un singur articol și nu scalează la mai mult de unul.
Salvare automată
- Multe comenzi JavaScript încep prin salvarea bufferului formularului. Acest lucru se datorează faptului că face restul codului mai ușor de utilizat.
- În mod implicit, zona tampon de formular este salvată în numele producătorului de aplicații.
- Formularul este salvat înainte de inițierea comenzii.
- Orice probleme care apar în timpul operației de salvare sunt tratate în interfața de utilizare a formularului.
Funcția Patch
Faceți o corecție (actualizare) la înregistrarea selectată curentă
Patch(Accounts, Self.Selected.Item, {'Account Name': "Changed Account name"})
Creați o înregistrare corelată
Notă
Dacă tabelul aferent nu se află deja în biblioteca de componente de comandă, va trebui să îl deschideți în studioul de proiectare pe planșă și să adăugați acolo sursa de date.
Patch(Tasks,Defaults(Tasks),{Regarding:Self.Selected.Item},{Subject:"Subject of the Task"})
Verificați și editați o proprietate de dată
If(Self.Selected.Item.'Last Date Included in Campaign'>DateAdd(Now(),-3), Patch(Accounts,Self.Selected.Item,{'Last Date Included in Campaign':Date(2021,10,19)}))
Proprietate vizibilă: Afișați comanda numai dacă una sau mai multe înregistrări sunt selectate într-o vizualizare grilă
CountRows(Self.Selected.AllItems) > 0
Controlați vizibilitatea pe baza datelor înregistrate
//Button will be visible for accounts with Account Rating > 20
Self.Selected.Item.'Account Rating'>20
Navigați
Notă
Pentru opțiuni suplimentare, consultați referința API client pentru a utiliza JavaScript. Mai multe informații: navigateTo (referință API client)
Navigați la o pagină particularizată
Pentru a naviga la o pagină pe planșă particularizată într-o aplicație bazată pe model, transmiteți numele paginii ca prim argument.
Navigate( myCustomPage )
Navigați la vizualizarea implicită a tabelului
Pentru a naviga la vizualizarea implicită a tabelului, transmiteți numele tabelului ca prim argument.
Navigate( Accounts )
Navigați la vizualizarea specifică de sistem a tabelului
Pentru a naviga la o anumită vizualizare de sistem a tabelului, transmiteți enumerarea Views
a tabelului.
Navigate( 'Accounts (Views)'.'My Active Accounts' )
Navigați la formularul implicit al tabelului
Pentru a naviga la formularul implicit al tabelului, treceți înregistrarea ca primul argument.
Navigate( Gallery1.Selected )
Navigați la formularul implicit al tabelului în modul creare
Pentru a naviga la formularul implicit al tabelului, treceți o înregistrare Dataverse creată din funcția Valori implicite. Aceasta deschide formularul implicit cu înregistrarea ca o înregistrare nouă. Funcția Valori implicite preia numele tabelului pentru a crea înregistrarea.
Navigate( Defaults( Accounts ) )
Optimizați experiența utilizatorului cu sursă de date și înregistrați informații
Utilizați funcția DataSourceInfo și RecordInfo funcția pentru optimizați experiența utilizatorului cu informații despre datele afișate și manipulate.
De exemplu, utilizați RecordInfo pentru a determina dacă utilizatorul actual are permisiunea de a modifica o înregistrare și de a afișa sau ascunde în mod corespunzător un buton „Editați” folosind Proprietate vizibilă:
EditButton.Visible =
RecordInfo( Gallery1.Selected, RecordInfo.EditPermission )
De exemplu, utilizați DataSourceInfo pentru a determina dacă utilizatorul actual are permisiunea de a crea o înregistrare și de a afișa sau ascunde în mod corespunzător un buton „Creați” folosind Proprietate vizibilă:
CreateButton.Visible =
DataSourceInfo( Accounts, DataSourceInfo.CreatePermission )
Cereți confirmarea înainte de a lua măsuri
Utilizați funcția Confirmare pentru a afișa o casetă de dialog în partea de sus a ecranului curent.
Notify( Confirm( "Are you sure?",
{ ConfirmButton: "Yes", CancelButton: "No" }
)
)
Afișează o notificare true dacă se apasă butonul Da și o notificare false dacă este apăsat butonul Nu .
Anunțați utilizatorul
O notificare poate fi afișată utilizatorilor aplicației apelând Funcția notificare.
Notă
NotificationType.Success
nu este acceptată în prezent și va avea ca rezultat un tip de notificare informațională.
Notify( "Model-driven app notification message" )
Alte exemple
Lansați un URL
Launch("https://www.bing.com");
Acces 1: proprietate N
Self.Selected.Item.'Recurring Appointments'
Verificați proprietatea unei înregistrări conexe
Self.Selected.Item.'Parent Account'.'Account Name'="parent"
Funcții disponibile cu comandă
Pentru informații despre formulele acceptate cu comanda în aplicațiile bazate pe model, accesați Referință formule - aplicații bazate pe model.
Funcții care nu sunt acceptate
Următoarele Power Fx funcții sunt nu sunt acceptate în prezent cu comanda în aplicațiile bazate pe model.
- Back()
- Clear()
- Collect()
- Copie()
- Disable()
- Enable()
- Exit()
- InvokeControl()
- Language()
- LoadData()
- Param()
- Imprimare()
- ReadNFC()
- RequestHide()
- ResetForm()
- Revert()
- SaveData()
- ScanBarcode()
- Set()
- SubmitForm()
- UpdateContext()
- User()
- ViewForm()
Enums nu este acceptată
- Aliniere
- AlignInContainer
- BarcodeType
- BorderStyle
- Culoare
- Direcție
- DisplayMode
- Font
- FontWeight
- FormPattern
- GridStyle
- ImagePosition
- ImageRotation
- LabelPosition
- Aspect
- LayoutAlignItems
- LayoutDirection
- LayoutJustifyContent
- LayoutMode
- LayoutOverflow
- ListItemTemplate
- MapStyle
- Depășire
- PDFPasswordState
- PenMode
- RemoveFlags
- ScreenTransition
- TeamsTheme
- TextFormat
- TextMode
- TextPosition
- Teme
- Tranziție
- VerticalAlign
- VirtualKeyboardMode
- Zoom
Alte zone neacceptate
- Accelerare
- App
- Compass
- Connection
- Dataverse coloane de tip fișier
- Mediu
- Gazdă
- Aspect
- Locație
- ScreenSize