Principy datových formulářů v Microsoft PowerAppsUnderstand data forms in Microsoft PowerApps

Přidejte tři typy ovládacích prvků, aby uživatel mohl vyhledat záznam, zobrazit jeho podrobnosti a upravit nebo vytvořit záznam:Add three types of controls so that the user can browse for a record, display details about that record, and edit or create a record:

AktivitaActivity Ovládací prvekControl PopisDescription
Vyhledání záznamuBrowse for a record Ovládací prvek GalerieGallery control Umožňuje filtrovat, řadit, vyhledávat a procházet záznamy ve zdroji dat a vybrat konkrétní záznam.Filter, sort, search, and scroll through records in a data source, and select a specific record. Z každého záznamu zobrazí jenom několik polí, aby bylo možné prohlédnout si několik záznamů současně i na malé obrazovce.Display only a few fields from each record to show several records at a time, even on a small screen.
Zobrazení podrobností záznamuShow details of a record Ovládací prvek Formulář pro zobrazeníDisplay form control Pro jeden záznam zobrazí mnoho nebo všechna pole v daném záznamu.For a single record, display many or all fields in that record.
Úprava nebo vytvoření záznamuEdit or create a record Ovládací prvek Formulář pro úpravyEdit form control Umožňuje aktualizovat jedno nebo více polí v jednom záznamu (případně vytvořit záznam začínající výchozími hodnotami) a tyto změny uložit zpět do podkladového zdroje dat.Update one or more fields in a single record (or create a record starting with default values), and save those changes back to the underlying data source.

Každý ovládací prvek zobrazte na samostatné obrazovce, aby bylo snadnější je rozlišit:Put each control on a different screen to make them easier to distinguish:

Procházení, zobrazení a úpravy záznamů na třech obrazovkách

Toto téma popisuje, jak můžete tyto ovládací prvky zkombinovat se vzorci a vytvořit tak ucelené uživatelské prostředí.As this topic describes, combine these controls with formulas to create the overall user experience.

PožadavkyPrerequisites

Prozkoumání vygenerované aplikaceExplore a generated app

PowerApps umožňuje automaticky vygenerovat aplikaci ze zdroje dat, který zadáte.PowerApps can automatically generate an app based on a data source that you specify. Každá aplikace obsahuje tři obrazovky s ovládacími prvky popsanými výše a vzorce, které je propojují.Each app contains three screens with the controls described earlier and formulas that connect them. Tyto aplikace můžete používat tak, jak jsou, přizpůsobit si je pro konkrétní účely nebo je prozkoumat, abyste se seznámili s užitečnými koncepty, které platí i pro vaše vlastní aplikace.Run these apps "out of the box," customize them for your specific goals, or examine how they work so that you can learn useful concepts that apply to your own apps. V následujících oddílech si přiblížíme obrazovky, ovládací prvky a formuláře, které řídí vygenerovanou aplikaci.In the following sections, inspect the screens, controls, and formulas that drive a generated app.

Obrazovka pro procházení záznamůBrowse screen

Ovládací prvky obrazovky pro procházení záznamů

Tato obrazovka obsahuje tyto klíčové vzorce:This screen features these key formulas:

Ovládací prvekControl Podporované chováníSupported behavior VzorecFormula
BrowseGallery1BrowseGallery1 Zobrazí záznamy ze zdroje dat Assets (Majetek).Display records from the Assets data source. Vlastnost Items galerie je nastavená na vzorec, který je založený na zdroji dat Assets.The Items property of the gallery is set to a formula that's based on the Assets data source.
ImageNewItem1ImageNewItem1 Zobrazí obrazovku Edit and Create (Upravit a vytvořit), jejíž jednotlivá pole jsou nastavená na výchozí hodnotu, aby si uživatel mohl snadno vytvořit záznam.Display the Edit and Create screen with each field set to a default value, so that the user can easily create a record. Vlastnost OnSelect obrázku je nastavena na tento vzorec:The OnSelect property of the image is set to this formula:
NewForm( EditForm1 );
Navigate( EditScreen1; None )
NewForm( EditForm1 );
Navigate( EditScreen1, None )
NextArrow1 (v galerii)NextArrow1 (in the gallery) Zobrazí obrazovku Details (Podrobnosti), která umožňuje zobrazit mnoho nebo všechna pole aktuálně vybraného záznamu.Display the Details screen to view many or all fields of the currently selected record. Vlastnost OnSelect šipky je nastavena na tento vzorec:The OnSelect property of the arrow is set to this formula:
Navigate( DetailScreen1; None )Navigate( DetailScreen1, None )

Primární ovládací prvek na této obrazovce, BrowseGallery1, zabírá většinu plochy obrazovky.The primary control on this screen, BrowseGallery1, covers most of the area of the screen. Uživatel může procházet galerii a vyhledat konkrétní záznam a zobrazit tak další pole nebo záznam aktualizovat.The user can scroll through the gallery to find a specific record to display more fields or to update.

Vlastnost Items galerie nastavte tak, aby se v ní zobrazovaly záznamy ze zdroje dat.Set the Items property of a gallery to show records from a data source in it. Vlastnost nastavte například na Assets, aby se zobrazily záznamy ze zdroje dat s tímto názvem.For example, set that property to Assets to show records from a data source of that name.

Poznámka

Ve vygenerované aplikaci je vlastnost Items standardně nastavená na složitější vzorec, aby uživatel mohl třídit a hledat záznamy.In a generated app, Items is set to a significantly more complicated formula by default so that the user can sort and search for records. Později v tomto tématu se naučíte, jak takový vzorec vytvořit. Pro tuto chvíli je jednodušší verze dostačující.You'll learn how to build that formula later in this topic; the simpler version is enough for now.

Místo vyhledání záznamu pro zobrazení a úpravy může uživatel záznam vytvořit tak, že vybere symbol plus (+) nad galerií.Instead of finding a record to display or edit, the user can create a record by selecting the "+" symbol above the gallery. Tohoto výsledku dosáhnete tak, že přidáte ovládací prvek Obrázek, zobrazíte v něm symbol plus (+) a nastavíte jeho vlastnost OnSelect na tento vzorec:Create this effect by adding an Image control, showing a "+" symbol in it, and setting its OnSelect property to this formula:
NewForm( EditForm1 ); Navigate( EditScreen1; None )NewForm( EditForm1 ); Navigate( EditScreen1, None )

Tento vzorec otevře obrazovku Edit and Create, která obsahuje ovládací prvek Formulář pro úpravy s názvem EditForm1.This formula opens the Edit and Create screen, which features an Edit form control named EditForm1. Vzorec také přepne tento formulář do režimu New (Nový), ve kterém se ve formuláři zobrazují výchozí hodnoty ze zdroje dat, aby si uživatel snadno mohl vytvořit úplně nový záznam.The formula also switches that form into New mode, in which the form shows default values from the data source so that the user can easily create a record from scratch.

Pokud se chcete blíže podívat na některý ovládací prvek zobrazený v BrowseGallery1, vyberte ho v prvním oddílu dané galerie, která slouží jako šablona pro všechny ostatní oddíly.To examine any control that appears in BrowseGallery1, select that control in the first section of that gallery, which serves as a template for all other sections. Vyberte například prostřední ovládací prvek Popisek na levé straně:For example, select the middle Label control on the left edge:

Ovládací prvky obrazovky pro procházení záznamů

V tomto příkladu je vlastnost Text ovládacího prvku nastavená na ThisItem.AssignedTo, což je pole ve zdroji dat Assets.In this example, the control's Text property is set to ThisItem.AssignedTo, which is a field in the Assets data source. Vlastnost Text ostatních tří ovládacích prvků Popisek v galerii je nastavená na obdobné vzorce a každý ovládací prvek zobrazuje ve zdroji dat jiné pole.The Text property of the other three Label controls in the gallery are set to similar formulas, and each control shows a different field in the data source.

Vyberte ovládací prvek Tvar (šipka) a zkontrolujte, že je jeho vlastnost OnSelect nastavená na tento vzorec:Select the Shape control (the arrow), and confirm that its OnSelect property is set to this formula:
Navigate( DetailScreen1; None )Navigate( DetailScreen1, None )

Pokud uživatel vyhledá záznam v BrowseGallery1, může pak pomocí šipky pro daný záznam zobrazit o daném záznamu další informace na obrazovce DetailScreen1.If the user finds a record in BrowseGallery1, the user can select the arrow for that record to show more information about it in DetailScreen1. Výběrem šipky uživatel změní hodnotu vlastnosti Selected v ovládacím prvku BrowseGallery1.By selecting an arrow, the user changes the value of the Selected property of BrowseGallery1. V této aplikaci daná vlastnost určuje, který záznam se zobrazí nejen na obrazovce DetailsScreen1, ale také na obrazovce Edit and Create v případě, že se uživatel rozhodne záznam aktualizovat.In this app, that property determines which record appears in not only DetailScreen1 but also, if the user decides to update the record, the Edit and Create screen.

Obrazovka podrobnostíDetail screen

Ovládací prvky obrazovky podrobností

Tato obrazovka obsahuje tyto klíčové vzorce:This screen features these key formulas:

Ovládací prvekControl Podporované chováníSupported behavior VzorecFormula
DetailForm1DetailForm1 Zobrazí záznam ve zdroji dat Assets.Displays a record in the Assets data source Nastavte vlastnost DataSource na Assets.Set the DataSource property to Assets.
DetailForm1DetailForm1 Určuje, který záznam se má zobrazit.Determines which record to display. Ve vygenerované aplikaci zobrazí záznam, který uživatel vybral v galerii.In a generated app, displays the record that the user selected in the gallery. Nastavte vlastnost Item tohoto ovládacího prvku na tuto hodnotu:Set the Item property of this control to this value:
BrowseGallery1.SelectedBrowseGallery1.Selected
Ovládací prvky KartaCard controls V ovládacím prvku Formulář pro zobrazení zobrazí jedno pole v záznamu.In a Display form control, displays a single field in a record. Nastavte vlastnost DataField na název pole a uzavřete ho do dvojitých uvozovek (například "Name").Set the DataField property to the name of a field, enclosed in double quotation marks (for example, "Name").
ImageBackArrow1ImageBackArrow1 Když uživatel vybere tento ovládací prvek, otevře se BrowseScreen1.When the user selects this control, opens BrowseScreen1. Nastavte vlastnost OnSelect na tento vzorec:Set the OnSelect property to this formula:
Back()Back()
ImageDelete1ImageDelete1 Výběrem tohoto ovládacího prvku uživatel odstraní záznam.When the user selects this control, deletes a record. Nastavte vlastnost OnSelect na tento vzorec:Set the OnSelect property to this formula:
Remove( Assets; BrowseGallery1.Selected )Remove( Assets, BrowseGallery1.Selected )
ImageEdit1ImageEdit1 Výběrem tohoto ovládacího prvku uživatel otevře obrazovku Edit and Create pro aktuální záznam.When the user selects this control, opens the Edit and Create screen to the current record. Nastavte vlastnost OnSelect na tento vzorec:Set the OnSelect property to this formula:
Navigate( EditScreen1; None )Navigate( EditScreen1, None )

Nahoře na obrazovce jsou vedle DetailForm1 tři obrázky, které slouží jako tlačítka a provádějí orchestraci mezi třemi obrazovkami aplikace.At the top of the screen, three images sit outside of DetailForm1 and act as buttons, orchestrating between the three screens of the app.

DetailForm1 je dominantou této obrazovky a zobrazuje záznam, který uživatel vybral v galerii (protože vlastnost Item formuláře je nastavená na BrowseGallery1.Selected).DetailForm1 dominates this screen and displays the record that the user selected in the gallery (because the form's Item property is set to BrowseGallery1.Selected). Vlastnost DataSource formuláře také poskytuje metadata o zdroji dat, například výstižný zobrazovaný název jednotlivých polí.The DataSource property of the form also provides metadata about the data source, such as a user-friendly display name for each field.

DetailForm1 obsahuje několik ovládacích prvků Karta.DetailForm1 contains several Card controls. Můžete buď vybrat samotný ovládací prvek Karta, nebo ovládací prvek, který ho obsahuje, a zobrazit tak další informace.You can select either the Card control itself or the control that it contains to discover additional information.

Ovládací prvky karty a podrobností karty vybrané v prostředí pro vytváření

Vlastnost DataField ovládacího prvku Karta určuje, které pole karta zobrazí.The DataField property of a Card control determines which field the card displays. V tomto případě je tato vlastnost nastavena na AssetID (ID majetku).In this case, that property is set to AssetID. Karta obsahuje ovládací prvek Popisek, pro kterou je vlastnost Text nastavena na Parent.Default.The card contains a Label control for which the Text property is set to Parent.Default. Tento ovládací prvek zobrazuje pro kartu hodnotu Default, která je nastavena prostřednictvím vlastnosti DataField.This control shows the Default value for the card, which is set through the DataField property.

Ve vygenerované aplikaci jsou ovládací prvky Karta standardně zamknuty.In a generated app, Card controls are locked by default. Když je karta zamknutá, nemůžete upravovat některé vlastnosti, jako je DataField, a řádek vzorců je pro tyto vlastnosti nedostupný.When a card is locked, you can't modify some properties, such as DataField, and the formula bar is unavailable for those properties. Toto omezení pomáhá zajistit, že vaše přizpůsobení neovlivní základní funkčnost vygenerované aplikace.This restriction helps ensure that your customizations don't break the basic functionality of the generated app. V podokně napravo ale můžete změnit některé vlastnosti karty a jejích ovládacích prvků:However, you can change some properties of a card and its controls in the right-hand pane:

Obrazovka podrobností s otevřeným podoknem možností

V podokně napravo můžete vybrat, která pole chcete zobrazit a v jakém typu ovládacího prvku se jednotlivá pole zobrazí.In the right-hand pane, you can select which fields to display and in which kind of control each field displays.

Obrazovka pro úpravy nebo vytvořeníEdit/Create screen

Ovládací prvky obrazovky pro úpravy nebo vytvoření

Tato obrazovka obsahuje tyto klíčové vzorce:This screen features these key formulas:

Ovládací prvekControl Podporované chováníSupported behavior VzorecFormula
EditForm1EditForm1 Zobrazí záznam ve zdroji dat Assets.Displays a record in the Assets data source. Nastavte vlastnost DataSource na Assets.Set the DataSource property to Assets.
EditForm1EditForm1 Určuje, který záznam se má zobrazit.Determines which record to display. Ve vygenerované aplikaci zobrazí záznam, který uživatel vybral na obrazovce BrowseScreen1.In a generated app, displays the record that the user selected in BrowseScreen1. Nastavte vlastnost Item na tuto hodnotu:Set the Item property to this value:
BrowseGallery1.SelectedBrowseGallery1.Selected
Ovládací prvky KartaCard controls V ovládacím prvku Formulář pro úpravy poskytuje ovládací prvky, aby uživatel mohl upravit jedno nebo více polí v záznamu.In a Edit form control, provides controls so that the user can edit one or more fields in a record. Nastavte vlastnost DataField na název pole a uzavřete ho do dvojitých uvozovek (například "Name").Set the DataField property to the name of a field, enclosed in double quotation marks (for example, "Name").
ImageCancel1ImageCancel1 Při výběru tohoto ovládacího prvku uživatel zahodí všechny aktuální změny a otevře obrazovku Details (Podrobnosti).When the user selects this control, discards any changes in progress, and opens the Details screen. Nastavte vlastnost OnSelect na tento vzorec:Set the OnSelect property to this formula:
ResetForm( EditForm1 ); Back()ResetForm( EditForm1 ); Back()
ImageAccept1ImageAccept1 Při výběru tohoto ovládacího prvku uživatel odešle změny do zdroje dat.When the user selects this control, submits changes to the data source. Nastavte vlastnost OnSelect na tento vzorec:Set the OnSelect property to this formula:
SubmitForm( EditForm1 )SubmitForm( EditForm1 )
EditForm1EditForm1 Pokud se změny přijmou, vrátí se zobrazení na předchozí obrazovku.If changes are accepted, returns to the previous screen. Nastavte vlastnost OnSuccess na tento vzorec:Set the OnSuccess property to this formula:
Back()Back()
EditForm1EditForm1 Pokud se změny nepřijmou, zůstane zobrazená aktuální obrazovka, aby uživatel mohl opravit všechny problémy a odeslat změny znovu.If changes aren't accepted, remain on the current screen so that the user can fix any issues and try to submit again. Vlastnost OnFailure ponechejte prázdnou.Leave the OnFailure property blank.
LblFormError1LblFormError1 Pokud se změny nepřijmou, zobrazí se chybová zpráva.If changes aren't accepted, shows an error message. Nastavte vlastnost Text na tuto hodnotu:Set the Text property to this value:
EditForm1.ErrorEditForm1.Error

Stejně jako v případě obrazovky Details i obrazovce Edit and Create dominuje ovládací prvek formuláře s názvem EditForm1.As in the Details screen, a form control, named EditForm1, dominates the Edit and Create screen. Kromě toho je vlastnost Item ovládacího prvku EditForm1 nastavená na BrowseGallery1.Selected, aby se ve formuláři zobrazoval záznam, který uživatel vybral na obrazovce BrowseScreen1.In addition, the Item property of EditForm1 is set to BrowseGallery1.Selected, so the form displays the record that the user selected in BrowseScreen1. I když obrazovka Details zobrazuje jednotlivá pole jako jen pro čtení, může uživatel aktualizovat hodnotu jednoho nebo více polí pomocí ovládacích prvků v ovládacím prvku EditForm1.While the Details screen shows each field as read-only, the user can update the value of one or more fields by using the controls in EditForm1. Pomocí vlastnosti DataSource přistupuje k metadatům o tomto zdroji dat, například k výstižnému zobrazovanému názvu jednotlivých polí a umístění pro ukládání změn.It also uses the DataSource property to access metadata about this data source, such as the user-friendly display name for each field and the location where changes should be saved.

Při výběru ikony X uživatel zruší aktualizaci, funkce ResetForm zahodí všechny neuložené změny a funkce Back otevře obrazovku Details.If the user selects the "X" icon to cancel an update, the ResetForm function discards any unsaved changes, and the Back function opens the Details screen. Jak obrazovka Details, tak i Edit and Create zobrazují stejný záznam, dokud uživatel nevybere na obrazovce BrowseScreen1 jiný.Both the Details screen and the Edit and Create screen show the same record until the user selects a different one on BrowseScreen1. Pole v daném záznamu zůstanou nastavená na hodnoty, které byly naposledy uloženy; změny, které uživatel provedl a pak opustil, se nijak neprojeví.The fields in that record remain set to the values that were most recently saved, not any changes that the user made and then abandoned.

Pokud uživatel změní jednu nebo více hodnot ve formuláři a potom vybere ikonu zaškrtnutí, funkce SubmitForm odešle provedené změny do zdroje dat.If the user changes one or more values in the form and then selects the "checkmark" icon, the SubmitForm function sends the user's changes to the data source.

  • Pokud se změny úspěšně uloží, spustí se vzorec OnSuccess formuláře a funkce Back() otevře obrazovku podrobností, na které se zobrazí aktualizovaný záznam.If the changes are successfully saved, the form's OnSuccess formula runs, and the Back() function opens the detail screen to show the updated record.
  • Pokud se změny úspěšně neuloží, spustí se vzorec OnFailure formuláře, ale nic se nezmění, protože je prázdný.If the changes aren't successfully saved, the form's OnFailure formula runs, but it doesn't change anything because it's blank. Obrazovka Edit and Create zůstane otevřená, aby uživatel mohl zrušit změny nebo opravit chybu.The Edit and Create screen remains open so that the user can either cancel the changes or fix the error. LblFormError1 zobrazí výstižnou chybovou zprávu, na kterou je vlastnost Error formuláře nastavena.LblFormError1 shows a user-friendly error message, to which the form's Error property is set.

Stejně jako ovládací prvek Formulář pro zobrazení i ovládací prvek Formulář pro úpravy obsahuje ovládací prvky Karta, které obsahují další ovládací prvky zobrazující různá pole v záznamu:As with a Display form control, an Edit form control contains Card controls, which contain other controls that show different fields in a record:

Ovládací prvky pro kartu a úpravu karty v prostředí pro vytváření

Na předchozím obrázku vybraná karta zobrazuje pole AssetID a obsahuje ovládací prvek Textové zadání, aby uživatel mohl upravit hodnotu daného pole.In the previous image, the selected card shows the AssetID field and contains a Text input control so that the user can edit the value of that field. (Oproti tomu obrazovka podrobností zobrazuje stejné pole v ovládacím prvku Popisek, které je jen pro čtení.) Ovládací prvek Textové zadání má vlastnost Default, která je nastavena na Parent.Default.(In contrast, the detail screen shows the same field in a Label control, which is read-only.) The Text input control has a Default property, which is set to Parent.Default. Pokud uživatel záznam vytvářel a neupravoval, tento ovládací prvek zobrazí počáteční hodnotu, kterou uživatel může u nového záznamu změnit.If the user were creating a record instead of editing one, that control would show an initial value that the user can change for the new record.

V podokně napravo můžete jednotlivé karty zobrazit nebo skrýt, změnit jejich pořadí nebo je nakonfigurovat tak, aby zobrazovaly pole v různých typech ovládacích prvků.In the right-hand pane, you can show or hide each card, rearrange them, or configure them to show fields in different types of controls.

Obrazovka pro úpravy s otevřeným podoknem možností

Sestavení zcela nové aplikaceBuild an app from scratch

Když porozumíte tomu, jak PowerApps generuje aplikaci, můžete si vytvořit vlastní, která používá stejné stavební bloky a vzorce popsané dříve v tomto tématu.By understanding how PowerApps generates an app, you can build one yourself that uses the same building blocks and formulas discussed earlier in this topic.

Identifikace testovacích datIdentify test data

Abyste toto téma využili na maximum, začněte se zdrojem dat, se kterým můžete experimentovat.To get the most from this topic, start with a data source with which you can experiment. Měl by obsahovat testovací data, která můžete bez obav číst a aktualizovat.It should contain test data that you can read and update without concern.

Poznámka

Pokud používáte sharepointový seznam nebo excelovou tabulku, které jako zdroj dat obsahují názvy sloupců s mezerami, PowerApps mezery nahradí řetězcem „_x0020_“.If you use a SharePoint list or an Excel table that contains column names with spaces as your data source, PowerApps will replace the spaces with "_x0020_". Například Název sloupce v Excelu nebo SharePointu se v PowerApps zobrazí jako Název_x0020_sloupce v případě, že se vyskytuje v rozložení dat nebo používá ve vzorci.For example, "Column Name" in SharePoint or Excel will appear as "Column_x0020_Name" in PowerApps when displayed in the data layout or used in a formula.

Abyste ve zbývající části tohoto tématu mohli postupovat úplně stejně, vytvořte sharepointový seznam s názvem Ice Cream, který obsahuje tato data:To follow the rest of this topic exactly, create a SharePoint list named "Ice Cream" that contains this data:

Sharepointový seznam Ice Cream

  • Vytvořte aplikaci od začátku pro telefony a připojte ji ke zdroji dat.Create an app from blank, for phones, and connect it to your data source.

    Poznámka

    Aplikace pro tablety jsou velmi podobné, ale z důvodu maximálního využití místa na větší obrazovce můžete chtít použít jiné rozložení obrazovky.Tablet apps are very similar, but you may want a different screen layout to make the most of the extra screen space.

    Příklady ve zbývající části tohoto tématu vycházejí ze zdroje dat s názvem Ice Cream.The examples in the rest of the topic are based on a data source named Ice Cream.

Procházení záznamůBrowse records

Vyhledejte záznam v galerii na obrazovce pro procházení a rychle tak zjistěte potřebné informace.Get a quick piece of information from a record by finding it in a gallery on a browse screen.

  1. Přidejte svislou galerii a změňte její rozložení pouze na Title.Add a Vertical gallery, and change the layout to Title only.

    Galerie připojená ke zdroji dat Ice Cream

  2. Nastavte vlastnost Items galerie na Ice Cream.Set the gallery's Items property to Ice Cream.
  3. Nastavte vlastnost Text prvního popisku v galerii na ThisItem.Title, pokud není nastavena na jinou hodnotu.Set the Text property of the first label in the gallery to ThisItem.Title if it's set to something else.

    Popisek teď pro každý záznam zobrazuje hodnotu v poli Title.The label now shows the value in the Title field for each record.

    Galerie připojená ke zdroji dat Ice Cream

  4. Změňte velikost galerie tak, aby vyplňovala obrazovku, a nastavte její vlastnost TemplateSize na 60.Resize the gallery to fill the screen, and set its TemplateSize property to 60.

    Obrazovka vypadá podobně jako v tomto příkladu, který zobrazuje všechny záznamy ve zdroji dat:The screen resembles this example, which shows all records in the data source:

    Galerie připojená ke zdroji dat Ice Cream

Zobrazit podrobnostiView details

Pokud se v galerii nezobrazují požadované informace, vyberte u záznamu šipku a otevřete obrazovku podrobností.If the gallery doesn't show the information that you want, select the arrow for a record to open the details screen. Ovládací prvek Formulář pro zobrazení na této obrazovce zobrazuje pro vybraný záznam další (možná i všechna) pole.A Display form control on that screen shows more, possibly all, fields for the record that you selected.

Ovládací prvek Formulář pro zobrazení používá k zobrazení záznamu dvě vlastnosti:The Display form control uses two properties to display the record:

  • Vlastnost DataSource:DataSource property. Název zdroje dat, ve kterém se nachází záznam.The name of the data source that holds the record. Tato vlastnost naplní panel napravo poli a určuje zobrazovaný název a datový typ (řetězec, číslo, datum atd.) jednotlivých polí.This property populates the right-hand panel with fields and determines the display name and data type (string, number, date, etc.) of each field.
  • Vlastnost Item:Item property. Záznam, který se má zobrazit.The record to display. Tato vlastnost je často spojená s vlastností Selected ovládacího prvku Galerie, aby uživatel mohl vybrat záznam v ovládacím prvku Galerie a potom přejít k podrobnostem daného záznamu.This property is often connected to the Selected property of the Gallery control so that the user can select a record in the Gallery control and then drill into that record.

Když je vlastnost DataSource nastavená, můžete v panelu napravo přidávat a odebírat pole a změnit způsob jejich zobrazení.When the DataSource property is set, you can add and remove fields through the right-hand pane and change how they're displayed.

Na této obrazovce uživatelé nemohou úmyslně ani náhodně změnit žádnou hodnotu záznamu.On this screen, users can't intentionally or accidentally change any values of the record. Ovládací prvek Formulář pro zobrazení je jen pro čtení, takže záznam se nezmění.The Display form control is a read-only control, so it won't modify a record.

Přidání ovládacího prvku Formulář pro zobrazení:To add a Display form control:

  1. Přidejte obrazovku a potom na ni přidejte ovládací prvek Formulář pro zobrazení.Add a screen, and then add a Display form control to it
  2. Nastavte vlastnost DataSource ovládacího prvku formuláře na Ice Cream.Set the DataSource property of the form control to 'Ice Cream'.

V podokně napravo můžete vybrat pole, která se mají zobrazit na obrazovce, a typ karty, který se má zobrazit pro jednotlivá pole.In the right-hand pane, you can select the fields to display on your screen and which type of card to display for each field. Při provádění změn v podokně napravo se vlastnost DataField u jednotlivých ovládacích prvků Karta nastaví na pole, se kterým uživatel pracuje.As you make changes in the right-hand pane, the DataField property on each Card control is set to the field that the user will interact with. Obrazovka by měla připomínat tento příklad:Your screen should resemble this example:

Formulář pro zobrazení pro zdroj dat Ice Cream

Nakonec musíme propojit ovládací prvek Formulář pro zobrazení s ovládacím prvkem Galerie, abychom se mohli podívat na podrobnosti konkrétního záznamu.Finally, we need to connect the Display form control to the Gallery control so that we can look at details for a specific record. Jakmile dokončíme nastavení vlastnosti Item, zobrazí se v našem formuláři první záznam z galerie.As soon as we complete setting the Item property, the first record from the gallery will appear in our form.

  • Nastavte vlastnost Item ovládacího prvku Formulář pro zobrazení na Gallery1.Selected.Set the Item property of the Display form control to Gallery1.Selected.

    Ve formuláři se zobrazí podrobnosti vybrané položky.The details for the selected item appear in the form.

    Formulář pro zobrazení pro zdroj dat Ice Cream připojený k ovládacímu prvku Galerie

Výborně.Great! Teď svoji pozornost obrátíme k navigaci: jak uživatel otevře obrazovku podrobností z obrazovky galerie a obrazovku galerie z obrazovky podrobností.We now turn to navigation: how a user opens the details screen from the gallery screen and opens the gallery screen from the details screen.

  • Na obrazovku přidejte ovládací prvek Tlačítko, nastavte jeho vlastnost Text na Back a nastavte jeho vlastnost OnSelect na Back().Add a Button control to the screen, set its Text property to show Back, and set its OnSelect property to Back().

    Až uživatel skončí s prohlížením podrobností, vrátí ho tento vzorec zpět do galerie.This formula returns the user back to the gallery when they finish viewing details.

    Formulář pro zobrazení pro zdroj dat Ice Cream s tlačítkem pro návrat zpět

Teď se vraťme k ovládacímu prvku Galerie a přidejme na obrazovku podrobností nějakou navigaci.Now, let's return to the Gallery control and add some navigation to our detail screen.

  1. Přepněte na první obrazovku, která je hostitelem našeho ovládacího prvku Galerie, a vyberte šipku v první položce v galerii.Switch to the first screen, which is hosting our Gallery control, and select the arrow in the first item in the gallery.

  2. Vlastnost OnSelect tvaru nastavte na tento vzorec:Set the OnSelect property of the shape to this formula:
    Navigate( Screen2; None )Navigate( Screen2, None )

    Formulář pro zobrazení pro zdroj dat Ice Cream s tlačítkem pro návrat zpět

  3. Stiskněte F5 a potom výběrem šipky v galerii zobrazte podrobnosti položky.Press F5, and then select an arrow in the gallery to show the details for an item.

  4. Výběrem tlačítka Back se vraťte do galerie produktů a potom stiskněte Esc.Select the Back button to return to the gallery of products, and then press Esc.

Úpravy podrobnostíEditing details

Nakonec musíme ještě změnit obsah záznamu, což uživatelé budou dělat v ovládacím prvku Formulář pro úpravy.Finally, our last core activity is changing the contents of a record, which users accomplish in an Edit form control.

Ovládací prvek Formulář pro úpravy používá dvě vlastnosti k zobrazení a úpravě záznamu:The Edit form control uses two properties to display and edit the record:

  • Vlastnost DataSource:DataSource property. Název zdroje dat, ve kterém se nachází záznam.The name of the data source that holds the record. Stejně jako u ovládacího prvku Formulář pro zobrazení i tato vlastnost naplní panel napravo poli a určuje zobrazovaný název a datový typ (řetězec, číslo, datum atd.) jednotlivých polí.Just as with the Display form control, this property populates the right-hand panel with fields and determines the display name and data type (string, number, date, etc.) for each field. Tato vlastnost také určuje, zda je hodnota jednotlivých polí platná před odesláním do podkladového zdroje dat.This property also determines whether each field's value is valid before submitting it to the underlying data source.
  • Vlastnost Item:Item property. Záznam, který se má upravit. Často bývá spojen s vlastností Selected ovládacího prvku Galerie.The record to edit, which is often connected to the Selected property of the Gallery control. To vám umožní vybrat záznam v ovládacím prvku Galerie, zobrazit ho na obrazovce podrobností a upravit ho na obrazovce Edit and Create.That way, you can select a record in the Gallery control, show it in the details screen, and edit it in the Edit and Create screen.

Přidání ovládacího prvku Formulář pro úpravy:To add an Edit form control:

  1. Přidejte obrazovku, přidejte ovládací prvek Formulář pro úpravy a potom nastavte vlastnost DataSource formuláře na Ice Cream.Add a screen, add an Edit form control, and then set the form's DataSource property to 'Ice Cream'.
  2. Vlastnost Item nastavte na Gallery1.Selected.Set the Item property to Gallery1.Selected.

Teď můžete vybrat pole, která se mají zobrazit na vaší obrazovce.You can now select the fields to display on your screen. Můžete také vybrat typ karty, která se bude zobrazovat pro jednotlivá pole.You can also select which type of card to display for each field. Při provádění změn v podokně napravo se vlastnost DataField u jednotlivých ovládacích prvků Karta nastaví na pole, se kterým uživatel pracuje.As you make changes in the right-hand pane, the DataField property on each Card control is set to the field your user will interact with. Obrazovka by měla připomínat tento příklad:Your screen should resemble this example:

Formulář pro zobrazení pro zdroj dat Ice Cream

Tyto dvě vlastnosti jsou stejné jako vlastnosti u ovládacího prvku Formulář pro zobrazení.These two properties are the same as the properties on the Display form control. Pomocí jenom těchto dvou vlastností můžeme zobrazit také podrobnosti záznamu.And with these alone, we can display the details of a record.

Ovládací prvek Formulář pro úpravy nabízí navíc funkci SubmitForm, která umožňuje zapsat změny do zdroje dat.The Edit form control goes further by offering the SubmitForm function to write back changes to the data source. Pokud chcete uložit uživatelovy změny, použijte tuto funkci s ovládacím prvkem Tlačítko nebo Obrázek.You use this with a button or image control to save a user's changes.

  • Přidejte ovládací prvek Tlačítko, nastavte jeho vlastnost Text na Save a nastavte jeho vlastnost OnSelect na tento vzorec:Add a Button control, set its Text property to show Save, and set its OnSelect property to this formula:
    SubmitForm( Form1 )SubmitForm( Form1 )

Formulář pro úpravy pro zdroj dat Ice Cream

Přidání navigace pro přechod na obrazovku a odchod z ní:To add navigation to and from this screen:

  1. Přidejte další ovládací prvek Tlačítko, nastavte jeho vlastnost Text na Cancel a nastavte jeho vlastnost OnSelect na tento vzorec:Add another Button control, set its Text property to show Cancel, and set its OnSelect property to this formula:
    ResetForm( Form1 ); Back()ResetForm( Form1 ); Back()

    Tento vzorec zahodí všechny neuložené úpravy a otevře předchozí obrazovku.This formula discards any unsaved edits and opens the previous screen.

    Formulář pro zobrazení pro zdroj dat Ice Cream

  2. Nastavte vlastnost OnSuccess formuláře na Back().Set the OnSuccess property of the form to Back().

    Když se aktualizace úspěšně uloží, automaticky se otevře předchozí obrazovka (v tomto případě obrazovka podrobností).When updates are successfully saved, the previous screen (in this case, the details screen) opens automatically.

    Formulář pro úpravy s přidaným pravidlem OnSuccess

  3. Na obrazovku Display přidejte tlačítko, nastavte jeho vlastnost Text na Edit a nastavte jeho vlastnost OnSelect na tento vzorec:On the Display screen, add a button, set its Text property to show Edit, and set its OnSelect property to this formula:
    Navigate( Screen3; None )Navigate( Screen3, None )

    Formulář pro zobrazení s přidaným tlačítkem pro úpravy

Vytvořili jste základní aplikaci se třemi obrazovkami pro zobrazení a zadávání dat.You've built a basic app with three screens for viewing and entering data. Pokud si ji chcete vyzkoušet, zobrazte obrazovku galerie a potom stiskněte F5 (nebo v levém horním rohu obrazovky vyberte šipku vpřed tlačítka pro zobrazení náhledu).To try it out, show the gallery screen, and then press F5 (or select the forward arrow "Preview" button near the upper-left corner of the screen). Růžové tečky označují, kam uživatel v jednotlivých krocích klikl nebo klepl na obrazovku.The pink dot indicates where the user clicks or taps the screen at each step.

Otestování aplikace Ice Cream

Vytvoření záznamuCreate a record

Při aktualizaci i vytváření záznamů uživatel pracuje se stejným formulářem Edit.The user interacts with the same Edit form to both update and create records. Pokud chce uživatel vytvořit záznam, funkce NewForm přepne formulář do režimu New.When the user wants to create a record, the NewForm function switches the form to New mode.

Když je formulář v režimu New, jednotlivá pole se nastaví na výchozí hodnotu zdroje dat.When the form is in New mode, the value of each field is set to the defaults of the data source. Záznam, který se poskytuje vlastnosti Item formuláře, se ignoruje.The record that's provided to the form's Item property is ignored.

Když chce uživatel nový záznam uložit, spustí se funkce SubmitForm.When the user is ready to save the new record, SubmitForm runs. Po úspěšném odeslání se formulář přepne zpět do režimu EditMode.After the form is successfully submitted, the form is switched back to EditMode.

Na první obrazovku přidáte tlačítko New:On the first screen, you'll add a New button:

  1. Na obrazovku s galerií přidejte ovládací prvek Tlačítko.On the screen with the gallery, add a Button control.
  2. Vlastnost Text tlačítka nastavte na New a jeho vlastnost OnSelect na tento vzorec:Set the button's Text property to New and its OnSelect property to this formula:
    NewForm( Form1 ); Navigate( Screen3; None )NewForm( Form1 ); Navigate( Screen3, None )

    Tento vzorec přepne ovládací prvek Formulář pro úpravy na obrazovce Screen3 do režimu New a otevře danou obrazovku, aby uživatel mohl formulář vyplnit.This formula switches the Edit form control on Screen3 to New mode and opens that screen so that the user can fill it in.

Formulář pro zobrazení s přidaným tlačítkem pro úpravy

Když se otevře obrazovka Edit and Create, je formulář prázdný a uživatel může přidat položku.When the Edit and Create screen opens, the form is empty, ready for the user to add an item. Když uživatel vybere tlačítko Save, funkce SubmitForm zkontroluje, že se záznam vytvořil, a nikoli aktualizoval.When the user selects the Save button, the SubmitForm function ensures that a record is created instead of being updated. Když uživatel vybere tlačítko Cancel, funkce ResetForm přepne formulář zpět do režimu Edit a funkce Back otevře obrazovku pro procházení galerie.If the user selects the Cancel button, the ResetForm function switches the form back to Edit mode, and the Back function opens the screen for browsing the gallery.

Odstranění záznamuDelete a record

  1. Na obrazovku Display přidejte tlačítko a nastavte jeho vlastnost Text na Delete.On the Display screen, add a button, and set its Text property to show Delete..
  2. Vlastnost OnSelect tlačítka nastavte na tento vzorec:Set the button's OnSelect property to this formula:
    Remove( 'Ice Cream'; Gallery1.Selected ); Back()Remove( 'Ice Cream', Gallery1.Selected ); Back()

    Formulář pro zobrazení s přidaným tlačítkem pro úpravy

Zpracování chybHandling errors

V této aplikaci k chybě dojde, když hodnota pole není platná, povinné pole je prázdné, odpojíte se od sítě nebo v případě, že vyvstane nějaký jiný problém.In this app, an error occurs when the value of a field is not valid, a required field is blank, you're disconnected from the network, or any number of other problems pop up.

Pokud funkce SubmitForm z jakéhokoli důvodu selže, vlastnost Error ovládacího prvku Formulář pro úpravy obsahuje chybovou zprávu, která se zobrazí uživateli.If SubmitForm fails for any reason, the Error property of the Edit form control contains an error message to show the user. Pomocí těchto informací by měl uživatel být schopen opravit problém a znovu změnu odeslat. Může také aktualizaci zrušit.With this information, the user should be able to correct the issue and resubmit the change, or they can cancel the update.

  1. Na obrazovku Edit and Create přidejte ovládací prvek Popisek a přesuňte ho hned pod tlačítko Save.On the Edit and Create screen, add a Label control, and move it just below the Save button. Když uživatele vybere tento ovládací prvek, aby uložil změny, budou všechny chyby snadno viditelné.Any error will be easy to see after the user selects this control to save changes.

  2. Nastavte vlastnost Text ovládacího prvku Popisek na Form1.Error.Set the Text property of the Label control to show Form1.Error.

    Formulář pro zobrazení s přidaným tlačítkem pro úpravy

V aplikaci, kterou PowerApps vygeneruje z dat, je vlastnost AutoHeight u tohoto ovládacího prvku nastavena na true, aby prvek nezabíral žádné místo v případě, že nedojde k žádným chybám.In an app that PowerApps generates from data, the AutoHeight property on this control is set to true so that no space is consumed if no error occurs. Vlastnosti Height a Y ovládacího prvku Formulář pro úpravy se také dynamicky přizpůsobí tak, aby se ovládací prvek mohl zvětšit, když dojde k chybě.The Height and Y properties of the Edit form control are also adjusted dynamically to account for this control growing when an error occurs. Další podrobnosti získáte, když z existujících dat vygenerujete aplikaci a podíváte se blíže na tyto vlastnosti.For more details, generate an app from existing data, and inspect these properties. Když nedojde k žádné chybě, je tento ovládací prvek velmi krátký. Pokud ho budete chtít vybrat, budete možná muset otevřít zobrazení Advanced (dostupné na kartě View).The text-box control for errors is very short when no error has occurred, you may need to open the Advanced view (available on the View tab) to select this control.

Aplikace z formuláře pro úpravy dat s vybraným ovládacím prvkem chybového textu

Aplikace z formuláře pro úpravy dat s vybraným ovládacím prvkem

Aktualizace datRefresh data

Zdroj dat se sice aktualizuje při každém otevření aplikace, ale uživatel může chtít záznamy v galerii aktualizovat, aniž by aplikaci zavřel.The data source is refreshed whenever the user opens the app, but the user might want to refresh the records in the gallery without closing the app. Přidejte tlačítko Refresh (Aktualizovat), aby ho uživatel mohl vybrat a aktualizovat data ručně:Add a Refresh button so that the user can select it to manually refresh the data:

  1. Na obrazovku s ovládacím prvkem Galerie přidejte ovládací prvek Tlačítko a nastavte jeho vlastnost Text na Refresh.On the screen with the Gallery control, add a Button control and set its Text property to show Refresh.

  2. Nastavte vlastnost OnSelect tohoto ovládacího prvku na tento vzorec:Set the OnSelect property of this control to this formula:
    Refresh( 'Ice Cream' )Refresh( 'Ice Cream' )

    Aktualizace zdroje dat

V aplikaci vygenerované službou PowerApps z dat jsme se zapomněli zmínit o dvou ovládacích prvcích, které se nachází nahoře na obrazovce pro procházení záznamů.In the app that PowerApps generated from data, we neglected to discuss two controls at the top of the Browse screen. Pomocí těchto dvou ovládacích prvků může uživatel vyhledat jeden nebo více záznamů, seřadit seznam záznamů vzestupně nebo sestupně, případně udělat obojí.By using these controls, the user can search for one or more records, sort the list of records in ascending or descending order, or both.

Seřazení a hledání ovládacích prvků na obrazovce pro procházení

Když uživatel vybere tlačítko pro seřazení, pořadí řazení galerie se otočí.When the user selects the sort button, the sort order of the gallery reverses. K dosažení tohoto chování použijeme kontextovou proměnnou, která bude sledovat směr, ve kterém je galerie seřazena.To create this behavior, we use a context variable to track the direction in which the gallery is sorted. Když uživatele vybere tlačítko, proměnná se aktualizuje a směr se otočí.When the user selects the button, the variable is updated, and the direction reverses. Vlastnost OnSelect tlačítka pro seřazení je nastavena na tento vzorec: UpdateContext( {SortDescending1: !SortDescending1} ).The OnSelect property of the sort button is set to this formula: UpdateContext( {SortDescending1: !SortDescending1} )

Funkce UpdateContext vytvoří kontextovou proměnnou SortDescending1, pokud ještě neexistuje.The UpdateContext function creates the SortDescending1 context variable if it doesn't already exist. Funkce přečte hodnotu proměnné a nastaví ji na logický protějšek pomocí operátoru !The function will read the value of the variable and set it to the logical opposite by using the ! .operator. Pokud je hodnota true, změní se na false.If the value is true, it becomes false. Pokud je hodnota false, změní se na true.If the value is false, it becomes true.

Vzorec pro vlastnost Items ovládacího prvku Galerie používá tuto kontextovou proměnnou spolu s textem v ovládacím prvku TextSearchBox1:The formula for the Items property of the Gallery control uses this context variable, along with the text in the TextSearchBox1 control:

Gallery1.Items = Sort( If( IsBlank(TextSearchBox1.Text),
                           Assets,
                           Filter( Assets,
                                   TextSearchBox1.Text in Text(ApproverEmail) ) ),
                        ApproverEmail,
                        If(SortDescending1, Descending, Ascending) )

Podívejme se na to podrobněji:Let's break this down:

  • Na povrchu máme funkci Sort, která má tři argumenty: tabulku, pole, podle kterého se má seřadit, a směr řazení.On the outside, we have the Sort function, which takes three arguments: a table, a field on which to sort, and the direction in which to sort.

    • Směr řazení se určuje z kontextové proměnné, která se přepne, když uživatel vybere ovládací prvek ImageSortUpDown1.The sort direction is taken from the context variable that toggles when the user selects the ImageSortUpDown1 control. Hodnota true/false se přeloží na konstanty Descending (Sestupně) a Ascending (Vzestupně).The true/false value is translated to the constants Descending and Ascending.
    • Pole, podle kterého se má řadit, je pevně nastaveno na ApproverEmail.The field to sort on is fixed to ApproverEmail. Pokud změníte pole, které se v galerii nachází, budete muset změnit i tento argument.If you change the fields that appear in the gallery, you'll need to change this argument too.
  • Uvnitř máme funkci Filter, která vezme tabulku jako argument a výraz pro vyhodnocení každého záznamu.On the inside, we have the Filter function, which takes a table as an argument and an expression to evaluate for each record.

    • Tabulka je nezpracovaný zdroj dat Assets, který představuje počáteční bod před filtrováním nebo řazením.The table is the raw Assets data source, which is the starting point before filtering or sorting.
    • Výraz vyhledá instanci řetězce v ovládacím prvku TextSearchBox1 v rámci pole ApproverEmail.The expression searches for an instance of the string in TextSearchBox1 within the ApproverEmail field. Stejně jako v předchozím případě budete muset tento argument aktualizovat, pokud změníte pole zobrazená v galerii.Again, if you change the fields that appear in the gallery, you'll also need to update this argument.
    • Pokud je ovládací prvek TextSearchBox1 prázdný, chce uživatel zobrazit všechny záznamy a funkce Filter se vynechá.If TextSearchBox1 is empty, the user wants to show all records, and the Filter function is bypassed.

Toto je jenom jeden příklad. Můžete si vytvořit vlastní vzorec pro vlastnost Items podle potřeb aplikace tak, že zkombinujete funkce Filter, Sort a další funkce a operátory dohromady.This is but one example; you can craft your own formula for the Items property, depending on the needs of your app, by composing Filter, Sort, and other functions and operators together.

Návrh obrazovkyScreen design

Až dosud jsme se nezabývali jinými způsoby distribuce ovládacích prvků na obrazovkách.So far, we haven't discussed other ways to distribute controls across screens. Možností je totiž příliš mnoho a nejlepší výběr závisí na tom, co vaše aplikace konkrétně potřebuje.That's because you have many options, and the best selection depends on your specific app's needs.

Vzhledem k tomu, že místo na obrazovce telefonu je omezené, budete zřejmě chtít k procházení, zobrazení, úpravám a vytváření využívat různé obrazovky.Because real estate on phone screens is so limited, you probably want to browse, display, and edit/create on different screens. V tomto tématu funkce Navigate a Back otevírají jednotlivé obrazovky.In this topic, the Navigate and Back functions open each screen.

Na tabletu můžete k procházení, zobrazení a úpravám nebo vytváření využít dvě nebo i jenom jednu obrazovku.On a tablet, you can browse, display, and edit/create on two or even one screen. V takovém případě nebudete funkci Navigate nebo Back potřebovat.For the latter, no Navigate or Back function would be required.

Pokud uživatel pracuje na jedné obrazovce, musíte mít na paměti, že nemůže změnit výběr v Galerii a případně může přijít o úpravy v ovládacím prvku Formulář pro úpravy.If the user is working on the same screen, you need to be careful that the user can't change the selection in the Gallery and potentially lose edits in the Edit form control. Pokud chcete uživateli zabránit v tom, aby vybral jiný záznam při změně na jiný záznam, který ještě není uložen, nastavte vlastnost Disabled galerie na tento vzorec:To keep the user from selecting a different record when changes to another record haven't been saved yet, set the Disabled property of the gallery to this formula:
EditForm.UnsavedEditForm.Unsaved