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á bude provedena, když je tlačítko v aplikaci vybráno.

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 Combo Box a ovládacím prvkem Gallery, 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ář se záznamem jako novým záznamem. Funkce Defaults převezme název tabulky k vytvoření záznamu.

Navigate( Defaults( Accounts ) )

Funkce RecordInfo

Poskytuje informace o záznamu zdroje dat.

RecordInfo se používá k získání informací o konkrétním záznamu zdroje dat. V současné době se podporuje pouze Microsoft Dataverse.

Dostupné informace:

Argument informací Popis
RecordInfo.DeletePermission Má aktuální uživatel oprávnění k odebrání tohoto záznamu ze zdroje dat?
RecordInfo.EditPermission Má aktuální uživatel oprávnění k úpravě tohoto záznamu ve zdroji dat?
RecordInfo.ReadPermission Má aktuální uživatel oprávnění k zobrazení tohoto záznamu ze zdroje dat?

RecordInfo vrátí logickou hodnotu:

Vrácená hodnota Popis
pravda Uživatel má oprávnění.
nepravda Uživatel nemá oprávnění. Pokud je záznam prázdný pak RecordInfo také vrátí false.

RecordInfo bere v úvahu také oprávnění účtu na úrovni zdroje dat. Pokud má například uživatel oprávnění na úrovni záznamu upravit záznam, ale uživatel nemá oprávnění na úrovni tabulky, vrátí se false pro ModifyPermission. Použijte funkci DataSourceInfo k získání informací o zdroji dat jako celku.

Syntaxe RecordInfo

RecordInfo( Záznam, Informace )

  • Záznam – povinné. Záznam, který se má testovat.
  • Informace – povinné. Požadované informace pro záznam.

Příklady RecordInfo

RecordInfo(Self.Selected.Item, RecordInfo.EditPermission )

V tomto příkladu se používá pro vlastnost Visible. Zkontroluje, zda má přihlášený uživatel oprávnění pro úpravy vybraného záznamu. Pokud má uživatel oprávnění tento záznam editovat a obecně upravovat zdroj dat Accounts, RecordInfo vrátí true a příkaz bude viditelný. V opačném případě nebude příkaz pro uživatele viditelný.

CountRows(Filter(Self.Selected.AllItems, RecordInfo(ThisRecord,RecordInfo.EditPermission)))>0

V tomto příkladu se používá pro vlastnost Visible umístění Hlavní mřížka. Tlačítko bude viditelné pro uživatele spouštějícího aplikaci, když je vybrán jeden nebo více záznamů v mřížce a uživatel má oprávnění upravovat alespoň jeden z vybraných záznamů.

CountRows(Filter(Self.Selected.AllItems, RecordInfo(ThisRecord,RecordInfo.EditPermission)))=CountRows(Self.Selected.AllItems)

V tomto příkladu se používá pro vlastnost Visible umístění Hlavní mřížka. Tlačítko bude viditelné pro uživatele spouštějícího aplikaci, když je vybrán jeden nebo více záznamů v mřížce a uživatel má oprávnění upravovat všechny vybrané záznamy.

Funkce DataSourceInfo

Zdroje dat mohou poskytovat spoustu informací pro optimalizaci uživatelského prostředí.

Pomocí informací na úrovni sloupce můžete ověřit zadání uživatele a poskytnout mu bezprostřední zpětnou vazbu, než použijete funkci Patch. Tytéž informace používá funkce Validate.

Pomocí informací na úrovni zdroje dat můžete například uživatelům, kteří nemají oprávnění k úpravě nebo vytváření záznamů, zakázat nebo skrýt tlačítka Upravit a Nový.

Informace tabulky zdroje dat

Funkce DataSourceInfo umožňuje získat informace o zdroji dat jako celku. U příkazů se také velmi běžně používá pro Viditelnost. Například chcete-li zobrazit nebo skrýt příkaz v závislosti na tom, zda má uživatel jedno nebo více oprávnění pro tabulku.

Argument informací Typ výsledku Popis
DataSourceInfo.AllowedValues Logická hodnota Jaké typy oprávnění můžou být uživatelům pro tento zdroj dat uděleny? Pokud není zdrojem dat nastaveno, vrátí se prázdná hodnota.
DataSourceInfo.CreatePermission Logická hodnota Má aktuální uživatel oprávnění k vytváření záznamů v tomto zdroji dat? Pokud není zdrojem dat nastaveno, vrátí se true.
DataSourceInfo.DeletePermission Logická hodnota Má aktuální uživatel oprávnění k odstranění záznamů v tomto zdroji dat? Pokud není zdrojem dat nastaveno, vrátí se true.
DataSourceInfo.EditPermission Logická hodnota Má aktuální uživatel oprávnění k úpravě záznamů v tomto zdroji dat? Pokud není zdrojem dat nastaveno, vrátí se true.
DataSourceInfo.ReadPermission Logická hodnota Má aktuální uživatel oprávnění ke čtení záznamů v tomto zdroji dat? Pokud není zdrojem dat nastaveno, vrátí se true.

Poznámka

DataSourceInfo vrací hodnotu pravda, pokud nemůže určit, zda má aktuální uživatel požadované oprávnění. Když bude provedena skutečná operace, server znovu zkontroluje oprávnění a pokud to nebylo povoleno, zobrazí se chyba. Aktuálně je kontrola oprávnění s DataSourceInfo možná pouze při použití Microsoft Dataverse.

Syntaxe DataSourceInfo

DataSourceInfo( ZdrojDat; Informace; NázevSloupce )

  • ZdrojDat – povinné. Zdroj dat, který se má použít.
  • Informace – povinné. Typ informací, které chcete získat.
  • NázevSloupce – povinné. Pro informace na úrovni sloupce má název sloupce formu řetězce. Sloupec Phone by se předal jako "Phone" včetně dvojitých uvozovek. Pro informace na úrovni zdroje dat se argument NázevSloupce nedá použít.

Informace o sloupci zdroje dat

Funkce DataSourceInfo umožňuje získat informace o konkrétním sloupci zdroje dat.

Argument informací Typ výsledku Popis
DataSourceInfo.DisplayName String Zobrazovaný název sloupce. Pokud není zobrazovaný název definovaný, vrátí se název sloupce.
DataSourceInfo.MaxLength Počet Maximální počet znaků, který sloupec může obsahovat. Platí jenom pro sloupce obsahující řetězce. Pokud není maximum nastavené, vrátí se prázdná hodnota.
DataSourceInfo.MaxValue Počet Maximální číselná hodnota, kterou sloupec může obsahovat. Platí jenom pro sloupce obsahující čísla. Pokud není maximum nastavené, vrátí se prázdná hodnota.
DataSourceInfo.MinValue Počet Minimální číselná hodnota, kterou sloupec může obsahovat. Platí jenom pro sloupce obsahující čísla. Pokud není minimum nastavené, vrátí se prázdná hodnota.
DataSourceInfo.Required Logická hodnota Je hodnota v tomto sloupci povinná? Pokud není zdrojem dat nastaveno, vrátí se false.

Příklady DataSourceInfo

DataSourceInfo(Accounts, DataSourceInfo.DeletePermission)

V tomto příkladu se používá pro vlastnost Visible. Zkontroluje, zda má přihlášený uživatel oprávnění k odstranění záznamů v tabulce účtů (určeno bezpečnostními rolemi, které má uživatel). Pokud má uživatel oprávnění odstranit záznamy účtu, pak DataSourceInfo vrátí pravda a příkaz bude viditelný. V opačném případě nebude příkaz pro uživatele viditelný.

Funkce Confirm

Funkce Confirm zobrazí v horní části aktuální obrazovky dialogové okno. K dispozici jsou dvě tlačítka: tlačítko pro potvrzení a tlačítko pro zrušení, které se v lokalizované verzi zobrazí jako „OK“ a „Zrušit“. Uživatel jej musí potvrdit nebo zrušit, než se dialogové okno zavře a funkce vrátí hodnotu. Kromě tlačítka dialogového okna lze tlačítko zrušit vybrat také klávesou Esc nebo jinými gesty, která jsou specifická pro platformu.

Parametr Message se zobrazí v těle dialogového okna. Pokud je zpráva velmi dlouhá, bude buď zkrácena, nebo se zobrazí posuvník.

Pomocí parametruOptionsRecord zadáte možnosti pro dialogové okno. Ne všechny možnosti jsou k dispozici na každé platformě a jsou zpracovány na základě „nejlepšího úsilí“.

Poznámka

Možnosti v níže uvedené tabulce nejsou aktuálně k dispozici v aplikacích plátna.

Pole možnosti Popis
ConfirmButton Text, který se má zobrazit na tlačítku pro potvrzení nahrazující výchozí lokalizovaný text „OK“.
CancelButton Text, který se má zobrazit na tlačítku pro zrušení nahrazující výchozí lokalizovaný text „Zrušit“.
Title Text, který se zobrazuje jako název dialogového okna. K zobrazení tohoto textu lze použít větší, tlustší písmo než písmo zprávy. Pokud je tato hodnota velmi dlouhá, bude zkrácena.
Subtitle Text, který se zobrazuje jako titulek dialogového okna. K zobrazení tohoto textu lze použít větší, tlustší písmo než písmo zprávy. Pokud je tato hodnota velmi dlouhá, bude zkrácena.

Confirm vrátí true, pokud bylo vybráno tlačítko pro potvrzení, v opačném případě vrátí false.

Pomocí funkce Notify zobrazíte banneru v horní části aplikace, který není třeba zavřít.

Poznámka

Funkce Notify aktuálně není k dispozici u aplikací plátna.

Syntaxe

Confirm( Message [, OptionsRecord ] )

  • Message – povinné. Zpráva, která se zobrazí uživateli.
  • OptionsRecord – volitelné. Poskytněte rozšířené možnosti pro dialogové okno. Ne všechny možnosti jsou k dispozici na každé platformě a jsou zpracovány na základě nejlepšího úsilí. V současné době nejsou v aplikacích plátna podporovány žádné z těchto možností.

Příklady

Jednoduché potvrzovací dialogové okno, které uživatele žádá o potvrzení odstranění záznamu před jeho odebráním. Pokud uživatel nezvolí tlačítko OK, záznam nebude odstraněn.

If( Confirm( "Are you sure?" ), Remove( ThisItem ) )

Stejné dialogové okno jako v posledním příkladu, ale přidává text nadpisu.

If( Confirm( "Are you sure?", {Title: "Delete Confirmation"} ), Remove( ThisItem ) )

Zobrazí zprávu podobně jako funkce Notify, ale je modální a vyžaduje, aby uživatel pro pokračování vybral tlačítko. Použijte v situacích, kdy je důležité, aby uživatel zprávu potvrdil, než bude pokračovat. V tomto případě není důležité, které tlačítko bylo vybráno.

Confirm( "There was a problem, please review your order." )

Přidání oznámení do modelem řízené aplikace

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

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é v Power Fx

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()
  • Disable()
  • Enable()
  • Exit()
  • InvokeControl()
  • LoadData()
  • Param()
  • ReadNFC()
  • RequestHide()
  • Revert()
  • SaveData()
  • ResetForm()
  • ScanBarcode()
  • Set()
  • SubmitForm()
  • UpdateContext()
  • ViewForm()

Nepodporované výčty

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

Další nepodporované oblasti

  • Akcelerace
  • Aplikace
  • Kompas
  • Připojení
  • Environment
  • Hostitelský počítač
  • Umístění
  • Layout
  • ScreenSize
  • Uživatelská

Viz také

Pochopení vzorců chování

Odkaz na vzorec

Přehled Power Fx