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é
ConfirmaNotify. - 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"})
Vytvoření souvisejícího záznamu
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
Navigate
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)
Přechod na vlastní stránku
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 )
Přechod do výchozího zobrazení tabulky
Chcete-li přejít do výchozího zobrazení tabulky, předejte název tabulky jako první argument.
Navigate( Accounts )
Přechod do specifického systémového zobrazení tabulky
Chcete-li přejít na specifické systémové zobrazení tabulky, předejte výčet Views tabulky.
Navigate( 'Accounts (Views)'.'My Active Accounts' )
Přechod do výchozího formuláře tabulky
Chcete-li přejít na výchozí formulář tabulky, jako první argument předejte záznam.
Navigate( Gallery1.Selected )
Přechod do výchozího formuláře tabulky v režimu vytvoření
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'
Kontrola vlastnosti souvisejícího záznamu
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é
Váš názor
Odeslat a zobrazit názory pro