Używanie Power Fx z komendami
W tym artykule omówiono aspekty Power Fx, które są specyficzne dla dowodzenia. Można również korzystać z wielu innych funkcji, które są obecnie używane w aplikacjach kanwy. Pamiętaj, że istnieją różnice, ponieważ dowodzenie jest dla aplikacji opartych na modelu.
- Obsługiwane są wszystkie istniejące funkcje przepływu danych. Co to są przepływy danych?
- Obsługiwane są funkcje imperatywne, które pracują z danymi.
- Obsługiwane są funkcje imperatywne dla prostych
Confirm
iNotify
. - Aby uzyskać listę nieobsługiwanych funkcji, przejdź do Funkcje nieobsługiwane.
Uwaga
Opublikowanie poleceń Power Fx może potrwać kilka minut. Może nie być oczywiste, że operacje w tle są nadal uruchomione, nawet po tym, jak wydaje się, że operacja publikowania została zakończona. Po opublikowaniu możesz zaczekać kilka minut, a następnie odświeżyć aplikację, aby zobaczyć wprowadzone zmiany. Zwykle trwa to dłużej, gdy polecenie oparte na Power Fx jest publikowane dla aplikacji.
OnSelect
Określa logikę, która jest wykonywana po wybraniu przycisku w aplikacji.
Widoczne
Określa logikę ukrywania lub wyświetlania przycisku podczas uruchamiania aplikacji.
Aby zdefiniować logikę widoczności, wybierz polecenie. Następnie wybierz Widoczność w prawym okienku właściwości polecenia i wybierz Pokaż pod warunkiem ze wzoru. Teraz można wybrać opcję Widoczne po lewej stronie paska formuł, a następnie napisać wyrażenie Power Fx przy użyciu paska formuł.
Wybrana właściwość
Pole | Typ | Opis |
---|---|---|
Produkt | Rekord DataSource | Jeden z rekordów wybranych w DataSource. |
AllItems | Tabela rekordów ze DataSource | Wszystkie rekordy wybrane w DataSource. |
Stan | Wyliczenie | Stan wybranej kontrolki. Edytuj (=0), Nowy (=1), Widok (=2) |
Nie zapisano | Wartość logiczna | Zwraca true, jeśli Selected lub SelectedItems mają niezapisane zmiany. W przeciwnym razie zwraca false. Zawsze zwraca wartość false, jeśli AutoSave jest ustawione na true (opcja domyślna) w bibliotece komponentów poleceń. |
- Właściwość Wybrane jest dostarczana przez hosta polecenia.
- Nazwy Item i AllItems są w pewnym sensie spójne z kontrolkami ComboBox i Galerii, ale jest to nowy wzorzec.
- Jeśli nie ma wybranego żadnego rekordu, Item zwraca puste miejsce (IsBlank zwraca true), a AllItems zwraca pustą tabelę (IsEmpty zwraca true).
- Null DataSource dla odniesień do rekordów (polimorficzne typy rekordów). Można wywoływać funkcje generyczne, takie jak Save lub IsType/AsType.
- Pole Item jest zawsze puste, jeśli SelectionMax <> 1. Zapobiega to pisaniu formuł tylko do jednego elementu i nie skalowaniu do więcej niż jednego.
AutoSave
- Wiele poleceń JavaScript rozpoczyna się od zapisania bufora formularza. Jest tak dlatego, że ułatwia pracę z pozostałą część kodu.
- Domyślnie bufor formularza jest zapisywany w imieniu twórcy aplikacji.
- Formularz jest zapisywany przed zainicjowaniem polecenia.
- Wszelkie problemy, które wystąpią podczas zapisu są rozwiązywane w UI formularza.
Funkcja Patch
Poprawka (aktualizacja) bieżącego zaznaczonego rekordu
Patch(Accounts, Self.Selected.Item, {'Account Name': "Changed Account name"})
Tworzenie powiązanego rekordu
Uwaga
Jeśli powiązanej tabeli nie ma jeszcze w bibliotece komponentów poleceń, musisz otworzyć ją w canvas studio i dodać tam źródło danych.
Patch(Tasks,Defaults(Tasks),{Regarding:Self.Selected.Item},{Subject:"Subject of the Task"})
Sprawdzanie i edytowanie właściwości daty
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)}))
Właściwość Visible: Polecenie jest wyświetlane tylko wtedy, gdy jeden lub więcej rekordów jest zaznaczonych w widoku siatki
CountRows(Self.Selected.AllItems) > 0
Kontrola widoczności w oparciu o zapisane dane
//Button will be visible for accounts with Account Rating > 20
Self.Selected.Item.'Account Rating'>20
Nawiguj
Uwaga
Aby uzyskać dodatkowe opcje, zobacz odwołanie interfejsu API klienta do korzystania z języka JavaScript. Więcej informacji: navigateTo (odwołanie do interfejsu API klienta)
Przechodzenie do strony niestandardowej
Aby przejść do niestandardowej strony kanwy w aplikacji opartej na modelu, przekaż nazwę strony jako pierwszy argument.
Navigate( myCustomPage )
Przechodzenie do domyślnego widoku tabeli
Aby przejść do domyślnego widoku tabeli, przekaż nazwę tabeli jako pierwszy argument.
Navigate( Accounts )
Przejdź do widoku systemowego tabeli
Aby przejść do określonego widoku systemowego tabeli, przekaż wyliczenie tabeli Views
.
Navigate( 'Accounts (Views)'.'My Active Accounts' )
Przechodzenie do domyślnego widoku formularza
Aby przejść do domyślnego formularza tabeli, podaj rekord jako pierwszy argument.
Navigate( Gallery1.Selected )
Przejdź do domyślnego formularza tabeli w trybie tworzenia
Aby przejść do domyślnego formularza tabeli, przekaż rekord Dataverse utworzony z funkcji Defaults. Spowoduje to otwarcie domyślnego formularza z rekordem jako nowym rekordem. Funkcja Defaults pobiera nazwę tabeli, w której ma zostać utworzony rekord.
Navigate( Defaults( Accounts ) )
Optymalizacja doświadczenia użytkownika dzięki źródłom danych i informacjom o zapisie
Użyj funkcji DataSourceInfo i funkcji RecordInfo , aby zoptymalizować działanie interfejsu użytkownika przy użyciu informacji o wyświetlanych i modyfikowanych danych.
Na przykład użyj RecordInfo, aby określić, czy bieżący użytkownik ma uprawnienia do modyfikowania rekordu i odpowiednio pokazywać lub ukrywać element "Edytuj" przy użyciu jego właściwości Visible :
EditButton.Visible =
RecordInfo( Gallery1.Selected, RecordInfo.EditPermission )
Na przykład użyj DataSourceInfo, aby określić, czy bieżący użytkownik ma uprawnienia do tworzenia rekordu i odpowiednio pokazywać lub ukrywać element "Utwórz" przy użyciu jego właściwości Visible :
CreateButton.Visible =
DataSourceInfo( Accounts, DataSourceInfo.CreatePermission )
Prośba o potwierdzenie przed podjęciem działania
Funkcja Confirm powoduje wyświetlenie okna dialogowego u góry bieżącego ekranu.
Notify( Confirm( "Are you sure?",
{ ConfirmButton: "Yes", CancelButton: "No" }
)
)
Wyświetla powiadomienie true, jeśli zostanie wciśnięty przycisk Tak, oraz powiadomienie false, jeśli zostanie wciśnięty przycisk Nie.
Powiadomienie użytkownika
Powiadomienie może zostać wyświetlone użytkownikom aplikacji, wywołując funkcję Notify.
Uwaga
NotificationType.Success
nie jest obecnie obsługiwany i pojawi się powiadomienie o typie powiadomienia.
Notify( "Model-driven app notification message" )
Inne przykłady
Uruchomienie URL
Launch("https://www.bing.com");
Dostęp do właściwości 1:N
Self.Selected.Item.'Recurring Appointments'
Sprawdzanie właściwości rekordu pokrewnego
Self.Selected.Item.'Parent Account'.'Account Name'="parent"
Funkcje nieobsługiwane
Następujące funkcje Power Fx nie są obecnie obsługiwane z poleceniami w aplikacjach opartych na modelach.
- Back()
- Clear()
- Collect()
- Copy()
- Disable()
- Enable()
- Exit()
- InvokeControl()
- Language()
- LoadData()
- Param()
- Drukuj()
- ReadNFC()
- RequestHide()
- ResetForm()
- Revert()
- SaveData()
- ScanBarcode()
- Set()
- SubmitForm()
- UpdateContext()
- User()
- ViewForm()
Wyliczenia nie są obsługiwane
- Align
- AlignInContainer
- BarcodeType
- BorderStyle
- Color
- Direction
- DisplayMode
- Font
- FontWeight
- FormPattern
- GridStyle
- ImagePosition
- ImageRotation
- LabelPosition
- Układ
- LayoutAlignItems
- LayoutDirection
- LayoutJustifyContent
- LayoutMode
- LayoutOverflow
- ListItemTemplate
- MapStyle
- Przepełnienie
- PDFPasswordState
- PenMode
- RemoveFlags
- ScreenTransition
- TeamsTheme
- TextFormat
- TextMode
- TextPosition
- Motywy
- Przejście
- VerticalAlign
- VirtualKeyboardMode
- Powiększ
Inne nieobsługiwane obszary
- Acceleration
- App
- Kompas
- Connection
- Kolumny typów plików Dataverse
- Environment
- Gospodarz
- Układ
- Lokalizacja
- ScreenSize