Контроли Редактиране на формуляр и Показване на формуляр в Power Apps
Показване, редактиране и създаване на запис в източник на данни.
Описание
Ако добавите контрола Display form, потребителят може да показва всички полета на запис или само полетата, които сте посочили. Ако добавите контролата Edit Form, потребителят може да редактира тези полета, да създаде запис и да запише тези промени в източник на данни.
Ако добавите контролата Gallery, можете да го конфигурирате да показва таблица в източник на данни и след това да конфигурирате формуляр, който да показва какъв запис потребителят избира в галерията. Можете също да добавите една или повече контроли Button, че потребителят може да избере да запазва редакции, да анулира редакции и да създаде запис. Като използвате контроли заедно, можете да създайте цялостно решение.
Ограничения
Контролата на формуляр има следните ограничения:
- Не можете да копирате и поставяте формуляри в карти с данни. Това е, за да се предотврати създаването на определени комбинации от контроли, които рискуват стабилността и производителността на приложението.
Избор на запис
И за двата типа формуляр, вие задавате неговото свойство DataSource към таблица със записи и вие задавате свойството Item на формуляра да показва конкретен запис в тази таблица. Например, можете да зададете свойството Item на формуляра към свойството SelectedItem на контрола Gallery. Когато потребителят избира запис в галерията, същият запис се появява във формата, с изключение на това, че формулярът може да показва повече полета. Ако потребителят се върне в галерията и избере различен запис, то свойството SelectedItem на галерията се променя. Тази промяна актуализира свойството Item на формуляра, което след това показва току-що избрания запис.
Можете също да зададете свойството Item на формуляра чрез използване на контрола Drop down, като Показване, редактиране или добавяне на запис описва или функция като Lookup или First. Например можете да зададете свойството Item към която и да е от тези формули, за да покаже записа Fabrikam в Акаунти таблица в Microsoft Dataverse:
First(Accounts)
Lookup(Accounts, "Fabrikam" in name)
Всеки контролен формуляр съдържа една или повече контроли Card. Чрез задаване на свойството DataField на карта, посочвате кое поле показва тази карта и други подробности.
Създаване на запис
Когато контролата Edit Form е в режим редактиране, потребителят може да актуализира записа, посочен в свойството Item на формуляра. Ако се инспектира, свойството Mode връща Редактиране.
Когато контролата Edit form е в режим нов, обаче свойството Item се игнорира. Формулярът не показва съществуващ запис; вместо това стойностите във всяко поле съответстват на стойностите по подразбиране на източник на данни, с които сте конфигурирали формата. Функцията NewForm кара формуляр да премине в този режим.
Например, можете да зададете свойството Text на бутон за показване на нов и неговото свойство OnSelect във формула, която включва функция NewForm. Ако потребителят избере този бутон, формулярът преминава към режим нов, така че потребителят може да създаде запис, започвайки с известни стойности.
Формулярът се връща режим редактиране, ако някоя от функциите ResetForm работи или функцията SubmitForm функцията работи успешно.
- Можете да зададете свойството Text на бутон за показване на Отмяна и неговото свойство OnSelect във формула, която включва функция ResetForm. Ако потребителят избере този бутон, всички промени в хода се отхвърлят и стойностите във формата отново съответстват на стойностите по подразбиране на източник на данни.
- Можете да зададете свойството Text на бутон за показване на Записване на промените и неговото свойство OnSelect във формула, която включва функция SubmitForm. Ако потребителят избере този бутон и източникът на данни се актуализира, стойностите във формуляра се нулират до стойностите по подразбиране на източник на данни.
Записване на промените
Ако създадете бутон Записване на промените, както е описано в предишния раздел, потребителят може да създаде или актуализира запис и след това да избере този бутон, за да запази промените в източник на данни. Вместо това можете да конфигурирате контролата Image или някакъв друг контрол за изпълнение на същата задача, стига да конфигурирате тази контрола с функцията SubmitForm. Във всеки свойствата Error, ErrorKind, OnSuccess и OnFailure предоставят обратна връзка за резултата.
Когато се изпълнява функцията SubmitForm, тя първо потвърждава данните, които потребителят иска да изпрати. Ако задължителното поле не съдържа стойност или друга стойност не съответства на някакво друго ограничение, свойствата ErrorKind са зададени и OnFailure формулата работи. Можете да конфигурирате бутона Записване на промените или друго управление, така че потребителят да може да го избере само ако данните са валидни (тоест, ако свойсвтото Valid на формата е вярно). Обърнете внимание, че потребителят трябва не само да коригира проблема, но и да избере бутона Запазите промените отново (или изхвърлете промените, като изберете бутона Отмяна, както е описано по-горе), за да нулирате свойствата Error и ErrorKind.
Ако данните преминат валидиране, SubmitForm ги изпраща до източник на данни, което може да отнеме известно време в зависимост от латентността на мрежата.
- Ако подаването е успешно, свойството Error се изчиства, свойството ErrorKind е настроено на ErrorKind.None, и OnSuccess формула работи. Ако потребителят е създал запис (т.е. ако формулярът е бил по-рано в режим нов), формулярът се превключва към режим редактиране, така че потребителят да може да редактира новосъздадения запис или друг.
- Ако подаването не успее, свойството Error съдържа удобно за потребителя съобщение за грешка от източник на данни, обясняващо проблема. Свойството ErrorKind е зададено по подходящ начин, в зависимост от проблема и формулата OnFailure работи.
Някои източници на данни могат да открият кога двама души се опитват да актуализират един и същ запис едновременно. В този случай, ErrorKind е зададено на ErrorKind.Conflict и средство за защита е да опресните източник на данни с промените на другия потребител и да приложите отново извършената от този потребител промяна.
Съвет
Ако предлагате бутон Отмяна на вашия формуляр, така че потребителят да може да изостави промените в ход, добавете ResetForm функция към свойството OnSelect на бутона, дори това свойство също да съдържа функция Navigate за смяна на екраните. В противен случай формулярът ще запази промените на потребителя.
Оформление
По подразбиране картите се поставят в една колона за приложения за телефон и три колони за приложения за таблети. Можете да определите колко колони има формуляр и дали картите трябва да щракнат към тях, докато конфигурирате формуляра. Тези настройки не са изложени като свойства, тъй като се използват само за задаване на свойствата X, Y и Width на картите.
За повече информация вижте Разберете оформлението на формуляра за данни.
Ключови свойства
DataSource - Източникът на данни, който съдържа записа, който потребителят ще показва, редактира или създава.
- Ако не зададете това свойство, потребителят не може да показва, редактира или създава запис и не се предоставят допълнителни метаданни или валидиране.
DefaultMode - Първоначалният режим на контрол на формата. Вижте описанието на Mode по-долу за приемливите стойности и техните значения.
DisplayMode - Режимът, който да се използва за карти с данни и контроли в рамките на контрола на формуляра.
Извлича се от базирано на свойството Mode и не може да бъде зададена независимо:
Режим | DisplayMode | Описание |
---|---|---|
FormMode.Edit | DisplayMode.Edit | Картите за данни и контролите са редактируеми, готови да приемат промени в даден запис. |
FormMode.New | DisplayMode.Edit | Картите за данни и контролите са редактируеми, готови да приемат промени в нов запис. |
FormMode.View | DisplayMode.View | Картите и контролите за данни не могат да се редактират и оптимизират за гледане. |
Error - Удобно за потребителя съобщение за грешка, което да се показва за този формуляр, когато функцията SubmitForm се проваля.
- Това свойство се отнася само за контролата Edit form.
- Това свойство се променя само когато се изпълняват функцията SubmitForm, EditForm или ResetForm работи.
- Ако не се появи грешка, това свойство е празно, и ErrorKind е зададено на ErrorKind.None.
- Когато е възможно, върнатото съобщение за грешка ще бъде на езика на потребителя. Някои съобщения за грешка идват директно от източник на данни и може да не са на езика на потребителя.
ErrorKind - Ако възникне грешка, когато SubmitForm работи, вида на грешката, която се е появила.
- Важи само за контролата Edit form.
- Това свойство има същото изброяване като функцията Errors. Контрола Edit form може да върне тези стойности:
ErrorKind | Описание |
---|---|
ErrorKind.Conflict | Друг потребител промени същия запис, което доведе до промяна в конфликта. Изпълнете Refresh функция за презареждане на записа и опитайте промяната отново. |
ErrorKind.None | Грешката е от неизвестен вид. |
ErrorKind.Sync | Източникът на данни съобщи за грешка. Проверете свойството Error за повече информация. |
ErrorKind.Validation | Открит е генерален проблем с валидирането. |
Item - Записът в DataSource, които потребителят ще покаже или редактира.
LastSubmit - Последният успешно изпратен запис, включително всички полета, генерирани от сървъра.
- Това свойство се отнася само за контролата Edit form.
- Ако източник на данни автоматично генерира или изчислява някакви полета, като например поле ИД с уникален номер, LastSubmit ще има тази нова стойност след успешото изпълнение на SubmitForm.
- Стойността на това свойство е налична във формулата OnSuccess.
Mode – Контролата е в режим Редактиране или Нов.
Режим | Описание |
---|---|
FormMode.Edit | Потребителят може да редактира запис, като използва формуляра. Стойностите в картите на формуляра са предварително попълнени със съществуващия запис, за да може потребителят да се промени. Ако функцията SubmitForm работи успешно, съществуващ запис се променя. |
FormMode.New | Потребителят може да създава запис, като използва формуляра. Стойностите в контролите на формуляра са предварително попълнени с данни по подразбиране за запис на новия източник на данни. Ако функцията SubmitForm работи успешно, се създава запис. |
FormMode.View | Потребителят може да преглежда запис, като използва формуляра. Стойностите в контролите на формуляра са предварително попълнени с данни по подразбиране за запис на новия източник на данни. |
Формата се превключва от режим нов до режим редактиране, когато се случи някоя от тези промени:
- Формулярът се изпраща успешно и се създава запис. Ако галерията е настроена автоматично да премества селекцията към този нов запис, формулярът ще бъде в режим редактиране за създадения запис, така че потребителят да може да направи допълнителни промени.
- Функцията EditForm се изпълнява.
- Функцията ResetForm се изпълнява. Например, потребителят може да избере бутона Отмяна, който е конфигуриран с тази функция.
OnFailure – Действия, които ще се извършат, когато операцията с данни е неуспешна.
- Това свойство се отнася само за контролата Edit form.
OnReset – Действия, които ще се извършат, когато контролата Edit form се нулира.
- Това свойство се отнася само за контролата Edit form.
OnSuccess – Действия, които ще се извършат, когато операцията с данни е успешна.
- Това свойство се отнася само за контролата Edit form.
Unsaved - Вярно, ако контролата Edit form съдържа потребителски промени, които не са запазени.
- Това свойство се отнася само за контролата Edit form.
- Използвайте това свойство, за да предупредите потребителя, преди да загуби несъхранени промени. За да попречите на потребителя да избере различен запис в контролата Gallery, преди да запазите промените в текущия запис, задайте свойството Disabled на галерията на Form.Unsaved и по същия начин деактивирайте опреснителните операции.
Updates - Стойностите за записване обратно в източник на данни за запис, зареден в контрола на формата.
- Това свойство се отнася само за контролата Edit form.
- Използвайте това свойство, за да извлечете стойностите на полето от картите в контрола. След това можете да използвате тези стойности, за да актуализирате ръчно източник на данни с извикване на функцията Patch или друг метод, изложен от връзка. Не е необходимо да използвате това свойство, ако използвате функцията SubmitForm.
- Това свойство връща запис на стойности. Например, ако контролът на формуляра съдържа контроли на карти за име и количество полета и стойностите на свойствата Update за тези карти връщат "Widget" и 10 съответно, след това свойството Updates за контрола на формуляр ще върне { Name: "Widget", Quantity: 10 }.
Valid - Дали контрола Card или Edit form контролът съдържа валидни записи, готови за изпращане в източник на данни.
Това свойство се отнася само за контролата Edit form.
Свойството Valid на контролата Form на свойствата Valid на всички контроли Card във формуляра. Свойството Valid на формуляра е вярно само ако данните във всички карти в тази форма са валидни; в противен случай свойството на формата Valid е невярно.
За да активирате бутон за запазване на промените само когато данните във формуляр са валидни, но все още не са изпратени, задайте свойството DisplayMode на бутона на тази формула:
SubmitButton.DisplayMode = If(IsBlank( Form.Error ) || Form.Valid, DisplayMode.Edit, DisplayMode.Disabled)
Допълнителни свойства
BorderColor – Цветът на границата на контролата.
BorderStyle – Дали границата на контрола е солидна, с тирета, с точки или няма.
BorderThickness – Дебелината на границата на контролата.
Fill – Цветът на запълване в контрола.
Height - Разстоянието между горния и долния ръб на контрола.
Visible - Дали се появява контрола, или е скрита.
Width - Разстоянието между левия и десния ръб на контрола.
X - Разстоянието между левия ръб на контрола и левия ръб на неговия родителски контейнер (или екрана, ако няма родителски контейнер).
Y - Разстоянието между горния ръб на контрола и горния ръб на неговия родителски контейнер (или екрана, ако няма родителски контейнер).
Повече информация
- За подробен преглед на това как работят формулярите, вижте Разберете формулярите за данни.
- Вижте препратката към формулата Power Fx за EditForm.
Насоки за достъпност
Поддръжка на екранен четец
- Помислете за добавяне на заглавие към формата с помощта на Label.
Бележка
Можете ли да ни споделите повече за езиковите си предпочитания за документацията? Попълнете кратко проучване. (имайте предвид, че това проучване е на английски език)
Проучването ще отнеме около седем минути. Не се събират лични данни (декларация за поверителност).