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 i Notify.
  • 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"})

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

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)

Aby przejść do niestandardowej strony kanwy w aplikacji opartej na modelu, przekaż nazwę strony jako pierwszy argument.

Navigate( myCustomPage )

Aby przejść do domyślnego widoku tabeli, przekaż nazwę tabeli jako pierwszy argument.

Navigate( Accounts )

Aby przejść do określonego widoku systemowego tabeli, przekaż wyliczenie tabeli Views.

Navigate( 'Accounts (Views)'.'My Active Accounts' )

Aby przejść do domyślnego formularza tabeli, podaj rekord jako pierwszy argument.

Navigate( Gallery1.Selected )

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'
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()
  • 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

Zobacz też

Opis formuł zachowania

Informacje dotyczące formuł

Omówienie Power Fx