Sdílet prostřednictvím


Použití Power Fx s příkazy

Tento článek popisuje aspekty Power Fx, které jsou specifické pro ovládání. Lze také použít mnoho dalších funkcí, které se dnes používají v aplikacích plátna. Mějte na paměti, že existují rozdíly, protože použití příkazů je určené pro modelem řízené aplikace.

  • Jsou podporovány všechny existující funkce toku dat. Co jsou toky dat?
  • Jsou podporovány imperativní funkce, které pracují s daty.
  • Jsou podporovány imperativní funkce pro jednoduché Confirm a Notify.
  • Seznam nepodporovaných funkcí naleznete v části Nepodporované funkce.

Poznámka

Publikování příkazů Power Fx může trvat několik minut. Nemusí být zřejmé, že operace na pozadí stále běží, i když se zdá, že operace publikování byla dokončena. Možná budete muset po publikování několik minut počkat a poté aplikaci obnovit, aby se změny projevily. To obvykle trvá déle, když je poprvé publikován příkaz založený na Power Fx pro aplikaci.

OnSelect

Definuje logiku, která je provedena při výběru tlačítka v aplikaci.

Visible

Definuje logiku pro skrytí nebo zobrazení tlačítka při spuštění aplikace.

Chcete-li definovat logiku viditelnosti, vyberte příkaz. Poté vyberte možnost Viditelnost v pravém podokně vlastností příkazu a vyberte Zobrazit podle podmínky ze vzorce. Nyní můžete vybrat Viditelné na levé straně řádku vzorců, a pak pomocí řádku vzorců napsat výraz Power Fx.

Vlastnost Selected

Pole Typ Popis
Item Záznam zdroje dat Jeden ze záznamů vybraných ze zdroje dat.
AllItems Tabulka záznamů ze zdroje dat Všechny záznamy vybrané ze zdroje dat.
State Výčet Stav vybraného ovládacího prvku. Upravit (=0), Nový (=1), Zobrazit (=2)
Unsaved Logická hodnota Vrátí hodnotu true, pokud položky Selected nebo SelectedItems mají neuložené změny. V opačném případě vrátí hodnotu false. Vždy vrátí hodnotu false, pokud je AutoSave nastaveno na hodnotu true (výchozí možnost) v knihovně součástí příkazu.
  • Vlastnost Selected je poskytována hostitelem příkazu.
  • Názvy Item a AllItems jsou poněkud v souladu s ovládacím prvkem Kombinované pole a ovládacím prvkem Galerie, ale toto je nový vzor.
  • Pokud není vybrán žádný záznam, Item vrátí prázdnou hodnotu (IsBlank vrací true) a AllItems vrátí prázdnou tabulku (IsEmpty vrací true).
  • Prázdný zdroj dat pro odkazy na záznamy (typy polymorfních záznamů). Lze volat běžné funkce, například Save nebo IsType/AsType.
  • Vlastnost Item je vždy prázdná, pokud SelectionMax <> 1. Tím se zabrání psaní vzorců pouze pro jednu položku bez škálování na více než jednu.

AutoSave

  • Mnoho příkazů JavaScript začíná uložením vyrovnávací paměti formuláře. Důvodem je, že pak lze jednodušeji pracovat se zbytkem kódu.
  • Ve výchozím nastavení je vyrovnávací paměť formuláře uložena jménem tvůrce aplikace.
    • Formulář se uloží před spuštěním příkazu.
    • Jakékoli problémy, ke kterým dojde během operace uložení, jsou řešeny v uživatelském rozhraní formuláře.

Funkce Patch

Opraví (aktualizuje) aktuální vybraný záznam

Patch(Accounts, Self.Selected.Item, {'Account Name': "Changed Account name"})

Poznámka

Pokud související tabulka ještě není v knihovně součástí příkazu, budete ji muset otevřít ve studiu plátna a přidat tam zdroj dat.

Patch(Tasks,Defaults(Tasks),{Regarding:Self.Selected.Item},{Subject:"Subject of the Task"})

Zkontrolujte a upravte vlastnost data

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)}))

Viditelná vlastnost: Příkaz zobrazte pouze v případě, že je v zobrazení mřížky vybrán jeden nebo více záznamů

CountRows(Self.Selected.AllItems) > 0

Řízení viditelnosti na základě dat záznamu

//Button will be visible for accounts with Account Rating > 20
Self.Selected.Item.'Account Rating'>20

Poznámka

Další možnosti naleznete v referenční příručce klientského rozhraní API pro použití JavaScriptu. Další informace: navigateTo (reference rozhraní API klienta)

Chcete-li přejít na vlastní stránku plátna v rámci modelem řízené aplikace, předejte název stránky jako první argument.

Navigate( myCustomPage )

Chcete-li přejít do výchozího zobrazení tabulky, předejte název tabulky jako první argument.

Navigate( Accounts )

Chcete-li přejít na specifické systémové zobrazení tabulky, předejte výčet Views tabulky.

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

Chcete-li přejít na výchozí formulář tabulky, jako první argument předejte záznam.

Navigate( Gallery1.Selected )

Chcete-li přejít na výchozí formulář tabulky, předejte záznam Dataverse vytvořený z funkce Defaults. Tím se otevře výchozí formulář s novým záznamem. Funkce Defaults převezme název tabulky k vytvoření záznamu.

Navigate( Defaults( Accounts ) )

Optimalizace uživatelského prostředí pomocí zdroje dat a záznam informací

K optimalizaci uživatelského prostředí s informacemi o zobrazovaných a manipulovaných datech použijte funkci DataSourceInfo a funkci RecordInfo.

Například pomocí RecordInfo zjistíte, zda má aktuální uživatel oprávnění k úpravě záznamu, a podle toho zobrazíte nebo skryjete tlačítko „Upravit“ pomocí jeho vlastnosti Visible:

EditButton.Visible = 
   RecordInfo( Gallery1.Selected, RecordInfo.EditPermission )

Například pomocí DataSourceInfo zjistíte, zda má aktuální uživatel oprávnění k vytvoření záznamu, a pomocí jeho vlastnosti Visible příslušně zobrazit nebo skrýt tlačítko „Vytvořit“:

CreateButton.Visible = 
   DataSourceInfo( Accounts, DataSourceInfo.CreatePermission )

Před provedením akce požádejte o potvrzení

Pomocí funkce Potvrdit zobrazíte v horní části aktuální obrazovky dialogové okno.

Notify( Confirm( "Are you sure?", 
                 { ConfirmButton: "Yes", CancelButton: "No" } 
        ) 
)

Zobrazí oznámení true, pokud je stisknuto tlačítko Ano, a oznámení false, pokud je stisknuto tlačítko Ne.

Oznámení uživateli

Oznámení lze uživatelům aplikací zobrazit zavoláním funkce Notify.

Poznámka

NotificationType.Success není aktuálně podporován a jeho použití skončí informačním typem upozornění.

Notify( "Model-driven app notification message" )

Další příklady

Otevření adresy URL

Launch("https://www.bing.com");

Přístup k vlastnosti 1:N

Self.Selected.Item.'Recurring Appointments'
Self.Selected.Item.'Parent Account'.'Account Name'="parent"

Nepodporované funkce

Následující funkce Power Fx aktuálně nejsou podporovány s příkazy v modelem řízených aplikacích.

  • Back()
  • Clear()
  • Collect()
  • Copy()
  • Disable()
  • Enable()
  • Exit()
  • InvokeControl()
  • Language()
  • LoadData()
  • Param()
  • ReadNFC()
  • RequestHide()
  • ResetForm()
  • Revert()
  • SaveData()
  • ScanBarcode()
  • Set()
  • SubmitForm()
  • UpdateContext()
  • User()
  • ViewForm()

Nepodporované výčty

  • Align
  • AlignInContainer
  • BarcodeType
  • BorderStyle
  • Color
  • Direction
  • DisplayMode
  • Font
  • FontWeight
  • FormPattern
  • GridStyle
  • ImagePosition
  • ImageRotation
  • LabelPosition
  • Layout
  • LayoutAlignItems
  • LayoutDirection
  • LayoutJustifyContent
  • LayoutMode
  • LayoutOverflow
  • ListItemTemplate
  • MapStyle
  • Overflow
  • PDFPasswordState
  • PenMode
  • RemoveFlags
  • ScreenTransition
  • TeamsTheme
  • TextFormat
  • TextMode
  • TextPosition
  • Themes
  • Transition
  • VerticalAlign
  • VirtualKeyboardMode
  • Zoom

Další nepodporované oblasti

  • Acceleration
  • App
  • Kompas
  • Připojení
  • Sloupce typu souboru Dataverse
  • Environment
  • Hostitelský počítač
  • Layout
  • Umístění
  • Velikost obrazovky

Viz také

Pochopení vzorců chování

Referenční informace ke vzorcům

Přehled Power Fx