Omówienie formularzy danych w usłudze Microsoft PowerAppsUnderstand data forms in Microsoft PowerApps

Dodaj trzy typy kontrolek, aby umożliwić użytkownikom przeglądanie, tworzenie i edytowanie rekordów oraz wyświetlanie szczegółów danego rekordu: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:

DziałanieActivity KontrolkaControl OpisDescription
Przeglądanie w poszukiwaniu rekorduBrowse for a record Kontrolka GaleriaGallery control Umożliwia filtrowanie, sortowanie, wyszukiwanie i przewijanie rekordów ze źródła danych oraz wybieranie konkretnego rekordu.Filter, sort, search, and scroll through records in a data source, and select a specific record. W przypadku konieczności pokazania kilku rekordów naraz — nawet na małym ekranie — pozwala wyświetlać tylko część pól rekordów.Display only a few fields from each record to show several records at a time, even on a small screen.
Wyświetlanie szczegółów rekorduShow details of a record Kontrolka Formularz wyświetlaniaDisplay form control Umożliwia wyświetlanie wszystkich pól rekordu lub tylko wybranych pól.For a single record, display many or all fields in that record.
Edytowanie lub tworzenie rekorduEdit or create a record Kontrolka Formularz edycjiEdit form control Umożliwia aktualizowanie jednego lub kilku pól rekordu (albo utworzenie rekordu przy użyciu wartości domyślnych) i zapisywanie zmian w źródle danych.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.

Poszczególne kontrolki umieść na różnych ekranach, aby ułatwić ich odróżnianie:Put each control on a different screen to make them easier to distinguish:

Trzy ekrany umożliwiające przeglądanie, wyświetlanie i edytowanie rekordów

Połącz te kontrolki z formułami zgodnie z opisem w tym temacie, aby utworzyć kompleksowe środowisko pracy użytkownika.As this topic describes, combine these controls with formulas to create the overall user experience.

Wymagania wstępnePrerequisites

Eksplorowanie wygenerowanej aplikacjiExplore a generated app

Usługa PowerApps może automatycznie wygenerować aplikację na podstawie wskazanego źródła danych.PowerApps can automatically generate an app based on a data source that you specify. Każda aplikacja zawiera trzy ekrany z opisanymi wcześniej kontrolkami i formuły, które łączą te elementy.Each app contains three screens with the controls described earlier and formulas that connect them. Możesz od razu zacząć używać tych aplikacji lub je dostosować do określonych celów. Wnikliwa analiza ich działania pozwoli Ci zapoznać się z przydatnymi pojęciami, które dotyczą również Twoich aplikacji.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. W poniższych sekcjach omówiono ekrany, kontrolki i formuły, które umożliwiają działanie wygenerowanej aplikacji.In the following sections, inspect the screens, controls, and formulas that drive a generated app.

Ekran PrzeglądBrowse screen

Ekran przeglądania z kontrolkami

Ten ekran zawiera następujące kluczowe formuły:This screen features these key formulas:

KontrolkaControl Obsługiwane zachowanieSupported behavior FormułaFormula
BrowseGallery1BrowseGallery1 Wyświetla rekordy ze źródła danych Assets.Display records from the Assets data source. Dla właściwości Items galerii ustawiono formułę, która korzysta ze źródła danych Assets.The Items property of the gallery is set to a formula that's based on the Assets data source.
ImageNewItem1ImageNewItem1 Wyświetla ekran Edit and Create zawierający wartości domyślne poszczególnych pól, co ułatwia użytkownikowi utworzenie rekordu.Display the Edit and Create screen with each field set to a default value, so that the user can easily create a record. Dla właściwości OnSelect obrazu ustawiono następującą formułę:The OnSelect property of the image is set to this formula:
NewForm( EditForm1 );
Navigate( EditScreen1, None )
NewForm( EditForm1 );
Navigate( EditScreen1, None )
NextArrow1 (w galerii)NextArrow1 (in the gallery) Wyświetla ekran Details umożliwiający wyświetlenie wszystkich lub tylko wybranych pól aktualnie zaznaczonego rekordu.Display the Details screen to view many or all fields of the currently selected record. Dla właściwości OnSelect strzałki ustawiono następującą formułę:The OnSelect property of the arrow is set to this formula:
Navigate( DetailScreen1, None )Navigate( DetailScreen1, None )

Główna kontrolka, BrowseGallery1, zajmuje większość obszaru ekranu.The primary control on this screen, BrowseGallery1, covers most of the area of the screen. Użytkownik może przewijać zawartość galerii w poszukiwaniu określonego rekordu, a następnie wyświetlić jego dodatkowe pola lub je zaktualizować.The user can scroll through the gallery to find a specific record to display more fields or to update.

Ustawienie właściwości Items galerii pozwala wyświetlić w niej rekordy ze źródła danych.Set the Items property of a gallery to show records from a data source in it. Na przykład ustawienie tej właściwości na wartość Assets umożliwia wyświetlenie rekordów ze źródła danych o tej nazwie.For example, set that property to Assets to show records from a data source of that name.

Uwaga: W wygenerowanej aplikacji dla właściwości Items domyślnie ustawiono znacznie bardziej skomplikowaną formułę, która pozwala użytkownikowi sortować i wyszukiwać rekordy.Note: 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. Tworzenie takiej formuły omówiono w dalszej części tego tematu, a na razie wystarczy jej prostsza wersja.You'll learn how to build that formula later in this topic; the simpler version is enough for now.

Oprócz wyszukiwania rekordu w celu jego wyświetlenia lub zmodyfikowania użytkownik może utworzyć rekord, wybierając znak „+” wyświetlany nad galerią.Instead of finding a record to display or edit, the user can create a record by selecting the "+" symbol above the gallery. Aby uzyskać ten efekt, dodaj kontrolkę Obraz z wyświetlonym znakiem „+”, a dla jej właściwości OnSelect ustaw tę formułę: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 )

Formuła ta powoduje otwarcie ekranu Edit and Create, który zawiera kontrolkę Formularz edycji o nazwie EditForm1.This formula opens the Edit and Create screen, which features an Edit form control named EditForm1. Umożliwia ona także przełączenie formularza w tryb Nowy, w którym są wyświetlane domyślne wartości ze źródła danych, co pozwala użytkownikowi łatwo utworzyć rekord od początku.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.

Aby zbadać dowolną kontrolkę widoczną w galerii BrowseGallery1, wybierz tę kontrolkę w pierwszej sekcji tej galerii, która służy jako szablon dla wszystkich innych sekcji.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. Na przykład wybierz środkową kontrolkę Etykieta wyświetlaną w lewej części formularza:For example, select the middle Label control on the left edge:

Ekran przeglądania z kontrolkami

W tym przykładzie właściwość Text kontrolki ma wartość ThisItem.AssignedTo, która jest polem w źródle danych Assets.In this example, the control's Text property is set to ThisItem.AssignedTo, which is a field in the Assets data source. Właściwości Text pozostałych trzech kontrolek Etykieta w galerii są ustawione na podobne formuły, a poszczególne kontrolki wyświetlają różne pola ze źródła danych.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.

Wybierz kontrolkę Kształt (strzałkę) i upewnij się, że jej właściwość OnSelect jest ustawiona na następującą formułę:Select the Shape control (the arrow), and confirm that its OnSelect property is set to this formula:
Navigate( DetailScreen1, None )Navigate( DetailScreen1, None )

Gdy użytkownik znajdzie odpowiedni rekord w galerii BrowseGallery1, może wybrać strzałkę, aby wyświetlić więcej informacji dotyczących tego rekordu na ekranie 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. Wybranie strzałki powoduje zmianę wartości właściwości Selected kontrolki BrowseGallery1.By selecting an arrow, the user changes the value of the Selected property of BrowseGallery1. W tej aplikacji ta właściwość określa, który rekord jest wyświetlany na ekranie DetailScreen1 oraz na ekranie Edit and Create — jeśli użytkownik zechce zaktualizować rekord.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.

Ekran szczegółówDetail screen

Ekran szczegółów z kontrolkami

Ten ekran zawiera następujące kluczowe formuły:This screen features these key formulas:

KontrolkaControl Obsługiwane zachowanieSupported behavior FormułaFormula
DetailForm1DetailForm1 Wyświetla rekord ze źródła danych Assets.Displays a record in the Assets data source Ustaw właściwość DataSource na wartość Assets.Set the DataSource property to Assets.
DetailForm1DetailForm1 Określa, który rekord ma zostać wyświetlony.Determines which record to display. W wygenerowanej aplikacji wyświetla rekord, który użytkownik zaznaczył w galerii.In a generated app, displays the record that the user selected in the gallery. Ustaw właściwość Items tej kontrolki na tę wartość:Set the Item property of this control to this value:
BrowseGallery1.SelectedBrowseGallery1.Selected
Kontrolki KartaCard controls Wyświetla jedno pole rekordu w kontrolce Formularz wyświetlania.In a Display form control, displays a single field in a record. Właściwość DataField ustaw na nazwę pola ujętą w znaki podwójnego cudzysłowu (na przykład "Name").Set the DataField property to the name of a field, enclosed in double quotation marks (for example, "Name").
ImageBackArrow1ImageBackArrow1 Gdy użytkownik wybierze tę kontrolkę, otwierany jest ekran BrowseScreen1.When the user selects this control, opens BrowseScreen1. Ustaw właściwość OnSelect na tę formułę:Set the OnSelect property to this formula:
Back()Back()
ImageDelete1ImageDelete1 Gdy użytkownik wybierze tę kontrolkę, rekord jest usuwany.When the user selects this control, deletes a record. Ustaw właściwość OnSelect na tę formułę:Set the OnSelect property to this formula:
Remove( Assets, BrowseGallery1.Selected )Remove( Assets, BrowseGallery1.Selected )
ImageEdit1ImageEdit1 Gdy użytkownik wybierze tę kontrolkę, otwierany jest ekran Edit and Create zawierający dane bieżącego rekordu.When the user selects this control, opens the Edit and Create screen to the current record. Ustaw właściwość OnSelect na tę formułę:Set the OnSelect property to this formula:
Navigate( EditScreen1, None )Navigate( EditScreen1, None )

W górnej części ekranu, nad formularzem DetailForm1 są widoczne trzy obrazy, które działają jako przyciski i koordynują korzystanie z trzech ekranów aplikacji.At the top of the screen, three images sit outside of DetailForm1 and act as buttons, orchestrating between the three screens of the app.

Większą część ekranu zajmuje formularz DetailForm1, który wyświetla rekord wybrany przez użytkownika w galerii (ponieważ właściwość Item formularza ma wartość 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). Właściwość DataSource formularza udostępnia również metadane dotyczące źródła danych, takie jak przyjazna dla użytkownika nazwa wyświetlana każdego pola.The DataSource property of the form also provides metadata about the data source, such as a user-friendly display name for each field.

Formularz DetailForm1 zawiera kilka kontrolek Karta.DetailForm1 contains several Card controls. Aby odnaleźć dodatkowe informacje, można wybrać kontrolkę Karta lub jej kontrolkę podrzędną.You can select either the Card control itself or the control that it contains to discover additional information.

Karta szczegółów z wybranymi kontrolkami karty w środowisku tworzenia

Właściwość DataField kontrolki Karta określa, które pole jest wyświetlane na karcie.The DataField property of a Card control determines which field the card displays. W tym przypadku właściwość ta ma wartość AssetID.In this case, that property is set to AssetID. Karta zawiera kontrolkę Etykieta, której właściwość Text ma wartość Parent.Default.The card contains a Label control for which the Text property is set to Parent.Default. Kontrolka ta wyświetla wartość domyślną karty, ustawianą za pośrednictwem właściwości DataField.This control shows the Default value for the card, which is set through the DataField property.

W wygenerowanej aplikacji kontrolki Karta są domyślnie zablokowane.In a generated app, Card controls are locked by default. Gdy karta jest zablokowana, nie można modyfikować niektórych właściwości, takich jak DataField, a pasek formuły dla tych właściwości jest niedostępny.When a card is locked, you can't modify some properties, such as DataField, and the formula bar is unavailable for those properties. Dzięki temu ewentualne dostosowania nie uniemożliwiają korzystania z podstawowych funkcji wygenerowanej aplikacji.This restriction helps ensure that your customizations don't break the basic functionality of the generated app. W okienku po prawej stronie można jednak zmienić niektóre właściwości karty i jej kontrolek:However, you can change some properties of a card and its controls in the right-hand pane:

Ekran szczegółów z otwartym okienkiem opcji

W okienku po prawej stronie można wybrać, które pola mają być widoczne i w jakich kontrolkach mają być wyświetlane poszczególne pola.In the right-hand pane, you can select which fields to display and in which kind of control each field displays.

Ekran edytowania/tworzeniaEdit/Create screen

Ekran edytowania z kontrolkami

Ten ekran zawiera następujące kluczowe formuły:This screen features these key formulas:

KontrolkaControl Obsługiwane zachowanieSupported behavior FormułaFormula
EditForm1EditForm1 Wyświetla rekord ze źródła danych Assets.Displays a record in the Assets data source. Ustaw właściwość DataSource na wartość Assets.Set the DataSource property to Assets.
EditForm1EditForm1 Określa, który rekord ma zostać wyświetlony.Determines which record to display. W wygenerowanej aplikacji wyświetla rekord, który użytkownik zaznaczył na ekranie BrowseScreen1.In a generated app, displays the record that the user selected in BrowseScreen1. Właściwość Item ustaw na tę wartość:Set the Item property to this value:
BrowseGallery1.SelectedBrowseGallery1.Selected
Kontrolki KartaCard controls Kontrolka Formularz edycji udostępnia kontrolki, które pozwalają użytkownikowi edytować jedno lub więcej pól rekordu.In a Edit form control, provides controls so that the user can edit one or more fields in a record. Właściwość DataField ustaw na nazwę pola ujętą w znaki podwójnego cudzysłowu (na przykład "Name").Set the DataField property to the name of a field, enclosed in double quotation marks (for example, "Name").
ImageCancel1ImageCancel1 Gdy użytkownik wybierze tę kontrolkę, wszystkie wprowadzone zmiany są odrzucane i otwierany jest ekran Details.When the user selects this control, discards any changes in progress, and opens the Details screen. Ustaw właściwość OnSelect na tę formułę:Set the OnSelect property to this formula:
ResetForm( EditForm1 ); Back()ResetForm( EditForm1 ); Back()
ImageAccept1ImageAccept1 Gdy użytkownik wybierze tę kontrolkę, zmiany są przesyłane do źródła danych.When the user selects this control, submits changes to the data source. Ustaw właściwość OnSelect na tę formułę:Set the OnSelect property to this formula:
SubmitForm( EditForm1 )SubmitForm( EditForm1 )
EditForm1EditForm1 Po zaakceptowaniu zmian powraca do poprzedniego ekranu.If changes are accepted, returns to the previous screen. Ustaw właściwość OnSuccess na tę formułę:Set the OnSuccess property to this formula:
Back()Back()
EditForm1EditForm1 Jeśli zmiany nie zostaną zaakceptowane, bieżący ekran nie jest zamykany, co pozwala użytkownikowi rozwiązać problemy i ponownie przesłać zmiany.If changes aren't accepted, remain on the current screen so that the user can fix any issues and try to submit again. Pozostaw właściwość OnFailure pustą.Leave the OnFailure property blank.
LblFormError1LblFormError1 Jeśli zmiany nie zostaną zaakceptowane, wyświetla komunikat o błędzie.If changes aren't accepted, shows an error message. Ustaw właściwość Text na tę wartość:Set the Text property to this value:
EditForm1.ErrorEditForm1.Error

Podobnie jak na ekranie Details, kontrolka formularza o nazwie EditForm1 zajmuje większą część ekranu Edit and Create.As in the Details screen, a form control, named EditForm1, dominates the Edit and Create screen. Ponadto właściwość Item formularza EditForm1 ma wartość BrowseGallery1.Selected, dzięki czemu formularz ten wyświetla rekord wybrany przez użytkownika na ekranie 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. Na ekranie Details wszystkie pola są wyświetlane jako tylko do odczytu, ale użytkownik może zaktualizować wartość jednego lub większej liczby pól za pomocą kontrolek na formularzu 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. Ekran szczegółów korzysta również z właściwości DataSource w celu uzyskania dostępu do metadanych dotyczących tego źródła danych, takich jak przyjazna dla użytkownika nazwa wyświetlana każdego pola i lokalizacja zapisywania zmian.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.

Jeśli użytkownik wybierze ikonę „X” w celu anulowania aktualizacji, funkcja ResetForm odrzuca wszystkie niezapisane zmiany, a funkcja Back otwiera ekran 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. Na obu ekranach — Details i Edit and Create — jest widoczny ten sam rekord, chyba że użytkownik wybierze inny rekord na ekranie BrowseScreen1.Both the Details screen and the Edit and Create screen show the same record until the user selects a different one on BrowseScreen1. Pola tego rekordu mają ostatnio zapisane wartości i nie są ustawiane na zmiany, które zostały wprowadzone, a następnie odrzucone.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.

Jeśli użytkownik zmieni jakieś wartości w formularzu, a następnie wybierze ikonę znacznika wyboru, funkcja SubmitForm prześle wprowadzone zmiany do źródła danych.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.

  • W przypadku pomyślnego zapisania zmian zostaje uruchomiona formuła OnSuccess formularza, a funkcja Back() otwiera ekran szczegółów z wyświetlonym zaktualizowanym rekordem.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.
  • W przeciwnym razie zostaje uruchomiona formuła OnFailure formularza, która nie wprowadza żadnych zmian, ponieważ jest pusta.If the changes aren't successfully saved, the form's OnFailure formula runs, but it doesn't change anything because it's blank. Ekran Edit and Create pozostaje otwarty, co pozwala użytkownikowi anulować zmiany lub naprawić błąd.The Edit and Create screen remains open so that the user can either cancel the changes or fix the error. Etykieta LblFormError1 wyświetla przyjazny dla użytkownika komunikat o błędzie — wartość właściwości Error formularza.LblFormError1 shows a user-friendly error message, to which the form's Error property is set.

Podobnie jak Formularz wyświetlania, Formularz edycji zawiera kontrolki Karta, które udostępniają inne kontrolki, umożliwiające wyświetlanie różnych pól rekordu:As with a Display form control, an Edit form control contains Card controls, which contain other controls that show different fields in a record:

Karta edycji z wybranymi kontrolkami karty w środowisku tworzenia

Na wybranej karcie przedstawionej na poprzedniej ilustracji zostało wyświetlone pole AssetID. Karta ta zawiera kontrolkę Wprowadzanie tekstu, która pozwala użytkownikowi edytować wartość tego pola.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. (Z kolei na ekranie szczegółów pole to jest wyświetlane w kontrolce Etykieta, która jest elementem tylko do odczytu). Kontrolka Wprowadzanie tekstu ma właściwość Default, ustawioną na wartość 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. W przypadku tworzenia nowego rekordu w kontrolce tej wyświetlana jest wartość początkowa, którą użytkownik może zmienić.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.

W okienku po prawej stronie można sterować widocznością poszczególnych kart, przestawiać je lub skonfigurować wyświetlanie pól w różnych typach kontrolek.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.

Ekran edycji z otwartym okienkiem opcji

Kompilowanie aplikacji od podstawBuild an app from scratch

Zrozumienie generowania aplikacji przez usługę PowerApps ułatwia tworzenie własnych aplikacji, w których są używane elementy i formuły omówione wcześniej w tym temacie.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.

Identyfikowanie danych testowychIdentify test data

Aby maksymalnie wykorzystać informacje zawarte w tym temacie, użyjemy źródła danych, z którym można eksperymentować.To get the most from this topic, start with a data source with which you can experiment. Powinno ono zawierać dane testowe, które można dowolnie odczytywać i aktualizować.It should contain test data that you can read and update without concern.

Uwaga: Jeśli jako źródła danych używasz listy programu SharePoint lub tabeli programu Excel, w której w nazwach kolumn występują spacje, usługa PowerApps zastępuje każdą spację wartością „_x0020_”.Note: 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_". Na przykład „Nazwa kolumny” w programie SharePoint lub Excel będzie pojawiać się jako „Nazwa_x0020_kolumny” w usłudze PowerApps w przypadku wyświetlania w układzie danych lub stosowania w formule.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.

Aby dokładnie wykonać instrukcje opisane w pozostałej części tego tematu, utwórz listę programu SharePoint o nazwie „Ice Cream” zawierającą następujące dane:To follow the rest of this topic exactly, create a SharePoint list named "Ice Cream" that contains this data:

Lista programu SharePoint o nazwie „Ice Cream”

  • Utwórz pustą aplikację na telefon i połącz ją ze źródłem danych.Create an app from blank, for phones, and connect it to your data source.

    Uwaga: Aplikacje na tablety są bardzo podobne, ale w ich przypadku warto użyć innego układu ekranu, aby w pełni wykorzystać dodatkowe miejsce.Note: Tablet apps are very similar, but you may want a different screen layout to make the most of the extra screen space.

    Przykłady podane w pozostałej części tego tematu są oparte na źródle danych o nazwie Ice Cream.The examples in the rest of the topic are based on a data source named Ice Cream.

Przeglądanie rekordówBrowse records

Galeria umieszczona na ekranie przeglądania pozwala wyszukiwać rekordy i szybko uzyskiwać zawarte w nich informacje.Get a quick piece of information from a record by finding it in a gallery on a browse screen.

  1. Dodaj pionową galerię, a w jej ustawieniach dotyczących układu wybierz opcję Tytuł.Add a Vertical gallery, and change the layout to Title only.

    Galeria połączona ze źródłem danych Ice Cream

  2. Ustaw właściwość Items galerii na wartość Ice Cream.Set the gallery's Items property to Ice Cream.
  3. Ustaw właściwość Text pierwszej etykiety w galerii na wartość ThisItem.Title.Set the Text property of the first label in the gallery to ThisItem.Title if it's set to something else.

    Umożliwia to wyświetlanie wartości pola Title poszczególnych rekordów za pomocą tej etykiety.The label now shows the value in the Title field for each record.

    Galeria połączona ze źródłem danych Ice Cream

  4. Zmień rozmiar galerii na pełny ekran i ustaw jej właściwości TemplateSize na wartość 60.Resize the gallery to fill the screen, and set its TemplateSize property to 60.

    Zawartość ekranu będzie podobna do poniższego przykładu, w którym wyświetlono wszystkie rekordy ze źródła danych:The screen resembles this example, which shows all records in the data source:

    Galeria połączona ze źródłem danych Ice Cream

Wyświetl szczegółyView details

Jeśli w galerii nie widać wszystkich szukanych informacji, wybierz odpowiednią strzałkę, aby otworzyć ekran szczegółów rekordu.If the gallery doesn't show the information that you want, select the arrow for a record to open the details screen. Zawiera on kontrolkę Formularz wyświetlania, która pozwala wyświetlić więcej pól wybranego rekordu (albo wszystkie pola).A Display form control on that screen shows more, possibly all, fields for the record that you selected.

W procesie wyświetlania rekordu w kontrolce Formularz wyświetlania są używane dwie właściwości:The Display form control uses two properties to display the record:

  • DataSourceDataSource property. nazwa źródła danych, które zawiera rekord.The name of the data source that holds the record. Właściwość ta wypełnia polami prawy panel oraz określa nazwę wyświetlaną i typ danych (ciąg, liczba, data itp.) każdego pola.This property populates the right-hand panel with fields and determines the display name and data type (string, number, date, etc.) of each field.
  • ItemItem property. wyświetlany rekord.The record to display. Właściwość ta jest często połączona z właściwością Selected kontrolki Galeria, co pozwala użytkownikowi wybrać rekord w kontrolce Galeria, a następnie przejść do jego szczegółów.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.

Po ustawieniu właściwości DataSource można za pomocą okienka wyświetlanego po prawej stronie dodawać i usuwać pola oraz zmieniać sposób ich wyświetlania.When the DataSource property is set, you can add and remove fields through the right-hand pane and change how they're displayed.

Użytkownicy nie mogą celowo lub przypadkowo zmienić żadnych wartości rekordu na tym ekranie.On this screen, users can't intentionally or accidentally change any values of the record. Formularz wyświetlania jest kontrolką tylko do odczytu, dlatego nie umożliwia modyfikowania rekordu.The Display form control is a read-only control, so it won't modify a record.

Aby dodać kontrolkę Formularz wyświetlania:To add a Display form control:

  1. Dodaj ekran, a następnie dodaj do niego kontrolkę Formularz wyświetlania.Add a screen, and then add a Display form control to it
  2. Ustaw właściwość DataSource formularza na wartość 'Ice Cream'.Set the DataSource property of the form control to 'Ice Cream'.

W okienku po prawej stronie możesz wybrać pola, które mają być wyświetlane na ekranie, oraz wskazać typy kart dla poszczególnych pól.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. Wprowadzenie zmian w okienku po prawej stronie powoduje przypisanie pól, z których użytkownik będzie interaktywnie korzystać, do właściwości DataField poszczególnych kontrolek Karta.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. Ekran powinien wyglądać mniej więcej tak:Your screen should resemble this example:

Formularz wyświetlania dla źródła danych Ice Cream

Na koniec trzeba połączyć kontrolkę Formularz wyświetlania z kontrolką Galeria, aby umożliwić wyświetlanie szczegółów konkretnego rekordu.Finally, we need to connect the Display form control to the Gallery control so that we can look at details for a specific record. Po ustawieniu właściwości Item na formularzu pojawi się pierwszy rekord z galerii.As soon as we complete setting the Item property, the first record from the gallery will appear in our form.

  1. Ustaw właściwość Item kontrolki Formularz wyświetlania na wartość Gallery1.Selected.Set the Item property of the Display form control to Gallery1.Selected.

    Szczegóły wybranego elementu zostaną wyświetlone na formularzu.The details for the selected item appear in the form.

    Formularz wyświetlania dla źródła danych Ice Cream, połączony z kontrolką galerii

Świetnie.Great! Przejdziemy teraz do nawigacji — pokażemy, jak otwierać ekran szczegółów z poziomu ekranu galerii i ekran galerii z poziomu ekranu szczegółów.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.

  1. Na ekranie dodaj kontrolkę Przycisk, ustaw jej właściwość Text na wartość Back, a właściwość OnSelect na formułę Back().Add a Button control to the screen, set its Text property to show Back, and set its OnSelect property to Back().

    Formuła ta powoduje powrót do galerii, gdy użytkownik zechce zakończyć wyświetlanie szczegółów.This formula returns the user back to the gallery when they finish viewing details.

Formularz wyświetlania dla źródła danych Ice Cream z przyciskiem powrotu

Powrócimy do kontrolki Galeria i dodamy funkcje nawigacji do ekranu szczegółów.Now, let's return to the Gallery control and add some navigation to our detail screen.

  1. Przejdź do pierwszego ekranu, który jest hostem dla kontrolki Galeria, i wybierz strzałkę pierwszego elementu w galerii.Switch to the first screen, which is hosting our Gallery control, and select the arrow in the first item in the gallery.
  2. Dla właściwości OnSelect kształtu ustaw następującą formułę:Set the OnSelect property of the shape to this formula:
    Navigate( Screen2, None )Navigate( Screen2, None )

    Formularz wyświetlania dla źródła danych Ice Cream z przyciskiem powrotu

  3. Naciśnij klawisz F5, a następnie wybierz strzałkę w galerii. aby wyświetlić szczegóły elementu.Press F5, and then select an arrow in the gallery to show the details for an item.
  4. Wybierz przycisk Back, aby powrócić do galerii produktów, a następnie naciśnij klawisz Esc.Select the Back button to return to the gallery of products, and then press Esc.

Edytowanie szczegółówEditing details

Ostatnim podstawowym działaniem jest zmiana zawartości rekordu. Użytkownicy mogą to zrobić w kontrolce Formularz edycji.Finally, our last core activity is changing the contents of a record, which users accomplish in an Edit form control.

W procesie wyświetlania i edytowania rekordu w kontrolce Formularz edycji są używane dwie właściwości:The Edit form control uses two properties to display and edit the record:

  • DataSourceDataSource property. nazwa źródła danych, które zawiera rekord.The name of the data source that holds the record. Podobnie jak w kontrolce Formularz wyświetlania właściwość ta wypełnia polami prawy panel oraz określa nazwę wyświetlaną i typ danych (ciąg, liczba, data itp.) każdego pola.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. Określa ona również poprawność wartości poszczególnych pól przed ich przesłaniem do źródła danych.This property also determines whether each field's value is valid before submitting it to the underlying data source.
  • ItemItem property. edytowany rekord. Często jest ona połączona z właściwością Selected kontrolki Galeria.The record to edit, which is often connected to the Selected property of the Gallery control. Dzięki temu można wybrać rekord w kontrolce Galeria, wyświetlić go na ekranie szczegółów i zmodyfikować na ekranie 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.

Aby dodać kontrolkę Formularz edycji:To add an Edit form control:

  1. Dodaj ekran i kontrolkę Formularz edycji, a następnie ustaw właściwość DataSource formularza na wartość 'Ice Cream'.Add a screen, add an Edit form control, and then set the form's DataSource property to 'Ice Cream'.
  2. Ustaw właściwość Item na wartość Gallery1.Selected.Set the Item property to Gallery1.Selected.

Teraz możesz wybrać pola, które mają być wyświetlane na ekranie.You can now select the fields to display on your screen. Możesz również wybrać typy kart do wyświetlania poszczególnych pól.You can also select which type of card to display for each field. Wprowadzenie zmian w okienku po prawej stronie powoduje przypisanie pól, z których użytkownik będzie interaktywnie korzystać, do właściwości DataField poszczególnych kontrolek Karta.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. Ekran powinien wyglądać mniej więcej tak:Your screen should resemble this example:

Formularz wyświetlania dla źródła danych Ice Cream

Te dwie właściwości są takie same jak właściwości kontrolki Formularz wyświetlania.These two properties are the same as the properties on the Display form control. Za ich pomocą można też wyświetlać szczegóły rekordu.And with these alone, we can display the details of a record.

Kontrolka Formularz edycji oferuje więcej możliwości — udostępnia funkcję SubmitForm, która pozwala zapisać zmiany w źródle danych.The Edit form control goes further by offering the SubmitForm function to write back changes to the data source. Po dodaniu kontrolki przycisku lub obrazu można zapisać zmiany wprowadzone przez użytkownika.You use this with a button or image control to save a user's changes.

  • Dodaj kontrolkę Przycisk, ustaw jej właściwość Text na wartość Save, a właściwość OnSelect na następującą formułę:Add a Button control, set its Text property to show Save, and set its OnSelect property to this formula:
    SubmitForm( Form1 ) SubmitForm( Form1 )

Formularz edycji dla źródła danych Ice Cream

Aby dodać funkcje nawigacji do tego ekranu:To add navigation to and from this screen:

  1. Dodaj drugą kontrolkę Przycisk, ustaw jej właściwość Text na wartość Cancel, a właściwość OnSelect na następującą formułę: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()

    Formuła ta odrzuca niezapisane zmiany i otwiera poprzedni ekran.This formula discards any unsaved edits and opens the previous screen.

    Formularz wyświetlania dla źródła danych Ice Cream

  2. Ustaw właściwość OnSuccess formularza na formułę Back().Set the OnSuccess property of the form to Back().

    Po pomyślnym zapisaniu aktualizacji automatycznie pojawia się poprzedni ekran (w tym przypadku ekran szczegółów).When updates are successfully saved, the previous screen (in this case, the details screen) opens automatically.

    Formularz edycji z dodaną regułą „OnSuccess”

  3. Na ekranie Display dodaj przycisk, ustaw jego właściwość Text na wartość Edit, a właściwość OnSelect na następującą formułę: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 )

    Formularz wyświetlania z dodanym przyciskiem „Edit”

Udało Ci się utworzyć podstawową aplikację z trzema ekranami do wyświetlania i wprowadzania danych.You've built a basic app with three screens for viewing and entering data. Aby ją wypróbować, wyświetl ekran galerii, a następnie naciśnij klawisz F5 (lub wybierz przycisk „Podgląd” ze strzałką w lewym górnym rogu ekranu).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). Za pomocą różowej kropki zaznaczono elementy, które należy kliknąć lub nacisnąć w poszczególnych krokach.The pink dot indicates where the user clicks or taps the screen at each step.

Próbne korzystanie z aplikacji Ice cream

Tworzenie rekorduCreate a record

Za pomocą formularza Edit użytkownik może zarówno aktualizować, jak i tworzyć rekordy.The user interacts with the same Edit form to both update and create records. Gdy użytkownik zechce utworzyć rekord, funkcja NewForm przełącza formularz do trybu Nowy.When the user wants to create a record, the NewForm function switches the form to New mode.

W trybie Nowy wartości poszczególnych pól są ustawiane na wartości domyślne ze źródła danych.When the form is in New mode, the value of each field is set to the defaults of the data source. Rekord wskazany we właściwości Item formularza jest ignorowany.The record that's provided to the form's Item property is ignored.

Gdy użytkownik wybiera opcję zapisania nowego rekordu, zostaje uruchomiona funkcja SubmitForm.When the user is ready to save the new record, SubmitForm runs. Po pomyślnym przesłaniu formularza następuje przełączenie do trybu edycji.After the form is successfully submitted, the form is switched back to EditMode.

Na pierwszym ekranie dodaj przycisk New:On the first screen, you'll add a New button:

  1. Na ekranie z galerią dodaj kontrolkę Przycisk.On the screen with the gallery, add a Button control.
  2. Ustaw właściwość Text przycisku na wartość New, a właściwość OnSelect na następującą formułę: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 )

    Formuła ta przełącza kontrolkę Formularz edycji na ekranie Screen3 do trybu Nowy i otwiera ten ekran, aby użytkownik mógł go wypełnić.This formula switches the Edit form control on Screen3 to New mode and opens that screen so that the user can fill it in.

Formularz wyświetlania z dodanym przyciskiem „Edit”

Na wyświetlonym ekranie Edit and Create użytkownik zobaczy pusty formularz i może zacząć dodawać element.When the Edit and Create screen opens, the form is empty, ready for the user to add an item. Po wybraniu przycisku Save jest wywoływana funkcja SubmitForm. Jej działanie powoduje utworzenie rekordu, a nie jego zaktualizowanie.When the user selects the Save button, the SubmitForm function ensures that a record is created instead of being updated. Jeśli użytkownik wybierze przycisk Cancel, funkcja ResetForm przełącza formularz z powrotem do trybu edycji, a funkcja Back otwiera ekran do przeglądania galerii.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.

Usuwanie rekorduDelete a record

  1. Na ekranie Display dodaj przycisk i ustaw jego właściwość Text na wartość Delete.On the Display screen, add a button, and set its Text property to show Delete..
  2. Dla właściwości OnSelect przycisku ustaw następującą formułę:Set the button's OnSelect property to this formula:
    Remove( 'Ice Cream', Gallery1.Selected ); Back()Remove( 'Ice Cream', Gallery1.Selected ); Back()

    Formularz wyświetlania z dodanym przyciskiem „Edit”

Obsługa błędówHandling errors

Błędy występujące w omawianej aplikacji mogą dotyczyć następujących sytuacji: wartość pola jest nieprawidłowa, wymagane pole jest puste, nastąpiło rozłączenie z siecią lub pojawiły się inne problemy.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.

Jeśli z jakiegoś powodu działanie funkcji SubmitForm nie powiedzie się, komunikat o błędzie, przeznaczony dla użytkownika, będzie dostępny we właściwości Error kontrolki Formularz edycji.If SubmitForm fails for any reason, the Error property of the Edit form control contains an error message to show the user. Te informacje powinny umożliwić użytkownikowi rozwiązanie problemu i ponowne przesłanie zmian. Może on również anulować aktualizację.With this information, the user should be able to correct the issue and resubmit the change, or they can cancel the update.

  1. Na ekranie Edit and Create dodaj kontrolkę Etykieta i przenieś ją bezpośrednio pod przycisk Save.On the Edit and Create screen, add a Label control, and move it just below the Save button.

    Po wybraniu tej kontrolki w celu zapisania zmian można łatwo sprawdzić wszelkie komunikaty o błędach.Any error will be easy to see after the user selects this control to save changes.

  2. Ustaw właściwość Text kontrolki Etykieta na wartość Form1.Error.Set the Text property of the Label control to show Form1.Error.

Formularz wyświetlania z dodanym przyciskiem „Edit”

W aplikacji wygenerowanej na podstawie danych przez usługę PowerApps właściwość AutoHeight tej kontrolki ma wartość true. Dzięki temu w przypadku braku błędów kontrolka ta nie zajmuje miejsca.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. Właściwości Height i Y kontrolki Formularz edycji również są ustawiane dynamicznie, aby dostosować jej rozmiar po wystąpieniu błędu.The Height and Y properties of the Edit form control are also adjusted dynamically to account for this control growing when an error occurs. Aby uzyskać więcej informacji, wygeneruj aplikację na podstawie istniejących danych i zapoznaj się z tymi właściwościami.For more details, generate an app from existing data, and inspect these properties. W przypadku braku błędów rozmiar kontrolki pola tekstowego służącego do ich wyświetlania jest bardzo mały. Aby wybrać tę kontrolkę, może być konieczne otwarcie widoku Zaawansowane (dostępnego na karcie Widok).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.

Formularz edycji aplikacji opartej na danych z wybraną kontrolką służącą do wyświetlania tekstu błędu

Formularz edycji aplikacji opartej na danych z wybraną kontrolką formularza

Odświeżanie danychRefresh data

Źródło danych jest odświeżane przy każdym otwarciu aplikacji, ale użytkownik może chcieć odświeżyć rekordy w galerii bez zamykania aplikacji.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. Aby umożliwić użytkownikowi ręczne odświeżenie danych, dodaj przycisk Refresh:Add a Refresh button so that the user can select it to manually refresh the data:

  1. Na ekranie z kontrolką Galeria dodaj kontrolkę Przycisk i ustaw jej właściwość Text na wartość Refresh.On the screen with the Gallery control, add a Button control and set its Text property to show Refresh.
  2. Ustaw właściwość OnSelect tej kontrolki na następującą formułę:Set the OnSelect property of this control to this formula:
    Refresh( 'Ice Cream' )Refresh( 'Ice Cream' )

Odświeżanie źródła danych

Podczas omawiania aplikacji wygenerowanej na podstawie danych przez usługę PowerApps pominęliśmy dwie kontrolki wyświetlane w górnej części ekranu przeglądania.In the app that PowerApps generated from data, we neglected to discuss two controls at the top of the Browse screen. Pozwalają one użytkownikowi wyszukiwać rekordy, sortować listę rekordów w kolejności rosnącej lub malejącej albo wykonywać obie te czynności.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.

Kontrolki sortowania i wyszukiwania na ekranie przeglądania

Gdy użytkownik wybierze przycisk sortowania, kolejność sortowania galerii zostaje odwrócona.When the user selects the sort button, the sort order of the gallery reverses. Efekt ten zapewnia zmienna kontekstowa, umożliwiająca śledzenie kolejności sortowania galerii.To create this behavior, we use a context variable to track the direction in which the gallery is sorted. Po wybraniu tego przycisku następuje aktualizacja zmiennej, a kolejność jest odwracana.When the user selects the button, the variable is updated, and the direction reverses. Właściwość OnSelect przycisku sortowania jest ustawiona na formułę: UpdateContext( {SortDescending1: !SortDescending1} )The OnSelect property of the sort button is set to this formula: UpdateContext( {SortDescending1: !SortDescending1} )

Jeśli zmienna kontekstowa SortDescending1 nie istnieje, zostaje utworzona przez funkcję UpdateContext.The UpdateContext function creates the SortDescending1 context variable if it doesn't already exist. Funkcja ta odczytuje wartość zmiennej i ustawia ją na przeciwną wartość logiczną przy użyciu elementu !The function will read the value of the variable and set it to the logical opposite by using the ! (operatora).operator. Zmiennej o wartości true jest przypisywana wartość false,If the value is true, it becomes false. a zmiennej o wartości false jest przypisywana wartość true.If the value is false, it becomes true.

Razem z wartością tekstową kontrolki TextSearchBox1 ta zmienna kontekstowa jest używana w formule właściwości Items kontrolki Galeria: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) )

Oto analiza tej formuły:Let's break this down:

  • Na zewnątrz mamy funkcję Sort, która przyjmuje trzy argumenty: tabelę, pole, według którego mają być sortowane dane, oraz kolejność sortowania.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.

    • Kolejność sortowania jest określana na podstawie zmiennej kontekstowej, której wartość zmienia się, gdy użytkownik wybierze kontrolkę ImageSortUpDown1.The sort direction is taken from the context variable that toggles when the user selects the ImageSortUpDown1 control. Wartości true/false są przekształcane na stałe Descending i Ascending.The true/false value is translated to the constants Descending and Ascending.
    • Pole, według którego ma zostać wykonane sortowanie, jest na stałe ustawione na ApproverEmail.The field to sort on is fixed to ApproverEmail. Jeśli zmienisz pola wyświetlane w galerii, musisz również zmienić ten argument.If you change the fields that appear in the gallery, you'll need to change this argument too.
  • Wewnątrz formuły jest wywoływana funkcja Filter, która jako argumenty przyjmuje tabelę oraz wyrażenie oceniane dla każdego rekordu.On the inside, we have the Filter function, which takes a table as an argument and an expression to evaluate for each record.

    • Tabelą jest źródło nieprzetworzonych danych Assets — punkt wyjścia dla operacji filtrowania lub sortowania.The table is the raw Assets data source, which is the starting point before filtering or sorting.
    • Wyrażenie wyszukuje wystąpienie ciągu z kontrolki TextSearchBox1 w polu ApproverEmail.The expression searches for an instance of the string in TextSearchBox1 within the ApproverEmail field. Dla przypomnienia, jeśli zmienisz pola wyświetlane w galerii, musisz również zaktualizować ten argument.Again, if you change the fields that appear in the gallery, you'll also need to update this argument.
    • Jeśli kontrolka TextSearchBox1 jest pusta, funkcja Filter jest pomijana i wyświetlane są wszystkie rekordy.If TextSearchBox1 is empty, the user wants to show all records, and the Filter function is bypassed.

To tylko przykład — korzystając z operatorów i funkcji Filter, Sort oraz innych funkcji, możesz tworzyć własne formuły we właściwości Items, dostosowane do potrzeb swojej aplikacji.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.

Wygląd ekranuScreen design

Nie omówiliśmy innych sposobów rozmieszczania kontrolek na ekranach.So far, we haven't discussed other ways to distribute controls across screens. Wynika to z tego, że dostępnych jest wiele opcji, a wybór zależy od potrzeb konkretnej aplikacji.That's because you have many options, and the best selection depends on your specific app's needs.

Powierzchnia ekranów telefonów jest mocno ograniczona, dlatego pewnie zechcesz przeglądać, wyświetlać oraz edytować i tworzyć dane na różnych ekranach.Because real estate on phone screens is so limited, you probably want to browse, display, and edit/create on different screens. W tym temacie do otwierania poszczególnych ekranów służą funkcje Navigate i Back.In this topic, the Navigate and Back functions open each screen.

Na tablecie przeglądanie, wyświetlanie oraz edytowanie i tworzenie rekordów może odbywać się na dwóch ekranach, a nawet na jednym.On a tablet, you can browse, display, and edit/create on two or even one screen. Aplikacja z jednym ekranem nie wymaga użycia funkcji Navigate ani Back.For the latter, no Navigate or Back function would be required.

Jeśli użytkownik pracuje na jednym ekranie, należy zapewnić brak możliwości wybrania innego rekordu w galerii, co mogłoby spowodować utratę zmian w kontrolce Formularz edycji.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. Aby uniemożliwić użytkownikowi wybranie innego rekordu przed zapisaniem zmian w bieżącym rekordzie, ustaw właściwość Disabled galerii na tę formułę: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.Unsaved EditForm.Unsaved