Visa, redigera och skapa en post i en datakälla.

Beskrivning

Om du lägger till en kontroll för att visa formulär kan användaren visa alla fält för en post eller endast de fält som du anger. Om du lägger till en kontroll för att redigera formulär kan användaren redigera dessa fält, skapa en post och spara ändringarna i en datakälla.

Exempelformulär och formulärvisningskontroller

Om du lägger till en gallerikontroll kan du konfigurera den för att visa en tabell i en datakälla och sedan konfigurera ett formulär för att visa valfri post som användaren väljer i galleriet. Du kan också lägga till en eller flera knappkontroller som användaren kan välja för att spara redigeringar, avbryta redigeringar och skapa en post. Genom att kombinera kontrollerna kan du skapa en komplett lösning.

Välja poster

För båda formulärtyperna ställer du in dess DataSource-egenskap till en tabell med poster och ställer in formulärets Item-egenskap för att visa en viss post i tabellen. Du kan till exempel ställa in Item-egenskapen för ett formulär till en gallerikontrolls SelectedItem-egenskap. När användaren väljer en post i galleriet, visas samma post i formuläret, men det kan visas fler fält i formuläret. Om användaren återgår till galleriet och väljer en annan post, ändras galleriets SelectedItem-egenskap. Denna ändring uppdaterar formulärets Item-egenskap, som sedan visar den nyligen valda posten.

Varje formulärkontroll innehåller en eller flera kortkontroller. Genom att ställa in ett korts DataField-egenskap, anger du vilket fält som kortet visar och annan information.

Skapa en post

När en kontroll för att redigera formulär befinner sig i redigeringsläget, kan användaren uppdatera den post som specificeras i formulärets Item-egenskap. Om du ser efter returnerar Mode-egenskapen Redigera.

När en kontroll för att redigera formulär är i läget Ny ignoreras dock Item-egenskapen. Formuläret visar inte en befintlig post. Värdena i varje fält matchar i stället standardvärdena för datakällan som du har konfigurerat formuläret med. NewForm-funktionen medför att ett formulär växlar till det här läget.

Du kan till exempel ställa in Text-egenskapen för en knapp för att visa Ny och dess OnSelect-egenskap till en formel som omfattar NewForm-funktionen. Om användaren väljer den knappen, växlar formuläret till läget Ny så att användaren kan skapa en post som börjar med kända värden.

Ett formulär växlar tillbaka till redigeringsläget om antingen ResetForm-funktionen körs eller om SubmitForm-funktion körs.

  • Du kan ställa in Text-egenskapen för en knapp för att visa Avbryt och dess OnSelect-egenskap till en formel som omfattar ResetForm-funktionen. Om användaren väljer den knappen, ignoreras alla pågående ändringar och värdena i formuläret matchar återigen datakällans standardvärden.
  • Du kan ställa in egenskapen Text för en knapp för att visa Spara ändringar och dess egenskap OnSelect till en formel som omfattar funktionen SubmitForm. Om användaren väljer den knappen och datakällan uppdateras, återställs värdena i formuläret till datakällans standardvärden.

Spara ändringar

Om du skapar en Spara ändringar-knapp enligt beskrivningen i föregående avsnitt, kan användaren skapa eller uppdatera en post och sedan välja knappen för att spara de ändringarna av datakällan. Som alternativ kan man konfigurera en bildkontroll eller någon annan kontroll för att utföra samma uppgift, förutsatt att man konfigurerar kontrollen med SubmitForm-funktionen. I båda fallen ger egenskaperna Error, ErrorKind, OnSuccess och OnFailure feedback på resultatet.

När SubmitForm-funktionen körs, validerar den först de data som användaren vill skicka. Om ett obligatoriskt fält inte innehåller något värde eller om ett annat värde inte stämmer överens med någon annan begränsning, ställs ErrorKind-egenskaperna in och OnFailure-formeln körs. Du kan konfigurera knappen Spara ändringar eller någon annan kontroll så att användaren kan välja den endast om aktuella data är giltiga (det vill säga om formulärets Valid-egenskap är true). Observera att användaren inte bara måste åtgärda problemet utan även välja knappen Spara ändringar igen (eller ignorera ändringarna genom att välja en Avbryt-knapp, som beskrivits tidigare) för att återställa egenskaperna Error och ErrorKind.

Om aktuella data klarar valideringen, skickar SubmitForm dem till datakällan, vilket kan ta lite tid beroende på nätverkets svarstid.

  • Om överföringen lyckas, rensas Error-egenskapen, ErrorKind-egenskapen ställs in på ErrorKind.None och OnSuccess-formeln körs. Om användaren skapade en post (det vill säga om formuläret tidigare var i läget Ny), växlas formuläret över till redigeringsläget så att användaren kan redigera den nyligen skapade posten eller en annan.
  • Om överföringen misslyckas, innehåller Error-egenskapen ett användarvänligt felmeddelande från datakällan som förklarar problemet. ErrorKind-egenskapen ställs in på ett lämpligt sätt, beroende på problem, och OnFailure-formeln körs.

Vissa datakällor kan identifiera när två personer försöker uppdatera samma post samtidigt. I det fallet ställs ErrorKind in på ErrorKind.Conflict och lösningen är att uppdatera datakällan med den andra användarens ändringar och på nytt tillämpa ändringen som gjordes av den här användaren.

Tips: Om du tillhandahåller en Avbryt-knapp på ditt formulär så att användaren kan avbryta pågående ändringar, ska du lägga till ResetForm-funktionen till knappens OnSelect-egenskap, även om den egenskapen även innehåller en Navigate-funktion för att ändra skärmar. I annat fall behålls användarens ändringar i formuläret.

Nyckelegenskaper

DataSource – Den datakälla som innehåller den post som användaren kommer att visa, redigera eller skapa.

  • Om du inte ställer in den här egenskapen, kan användaren inte visa, redigera eller skapa en post och inga ytterligare metadata eller och ingen validering tillhandahålls.

Error – Ett användarvänligt felmeddelande som kan visas för formuläret när SubmitForm-funktionen misslyckas.

  • Denna egenskap gäller endast kontrollen Edit form.
  • Den här egenskapen ändras endast när SubmitForm-, EditForm-, eller ResetForm-funktionen körs.
  • Om inga fel inträffar är den här egenskapen tom och ErrorKind har ställs in på ErrorKind.None.
  • När så är möjligt anges det felmeddelande som returneras på användarens språk. Vissa felmeddelanden kommer direkt från datakällan och är av den anledningen kanske inte på användarens språk.

ErrorKind – Anger vilken typ av fel som inträffat om ett fel uppstår när SubmitForm körs.

  • Gäller endast en kontroll för att redigera formulär.
  • Den här egenskapen har samma uppräkning som Errors-funktionen. En kontroll för att redigera formulär kan returnera dessa värden:
ErrorKind Beskrivning
ErrorKind.Conflict En annan användare ändrade samma post, vilket resulterade i en ändringskonflikt. Kör funktionen Refresh för att läsa in posten på nytt och prova att göra ändringen igen.
ErrorKind.None Felet är av en okänd typ.
ErrorKind.Sync Datakällan rapporterade ett fel. Kontrollera Error-egenskapen för mer information.
ErrorKind.Validation Ett allmänt verifieringsproblem upptäcktes.

Item – Den post i aktuell DataSource som användaren vill visa eller redigera.

LastSubmit – Den senast skickade posten, inklusive eventuella servergenererade fält.

  • Denna egenskap gäller endast kontrollen Edit form.
  • Om datakällan automatiskt genererar eller beräknar ett fält, som ett ID-fält med ett unikt nummer, kommer LastSubmit-egenskapen att ha detta nya värde efter att SubmitForm körs.
  • Värdet för den här egenskapen är tillgängligt i OnSuccess-formeln.

Läge – Kontrollen är i läget Redigera eller Ny.

Läge Beskrivning
FormMode.Edit Användaren kan redigera en post med hjälp av formuläret. Värdena i formulärets kort är ifyllda på förhand med den befintliga posten som användaren kan ändra. Om SubmitForm-funktionen körs ändras en befintlig post.
FormMode.New Användaren kan skapa en post med hjälp av formuläret. Värdena i formulärets kontroller är förifyllda med standardinställningarna för en av datakällans poster. Om SubmitForm-funktionen körs, skapas en post.
  • Som standard är formulärkontrollen i redigeringsläge men växlar till läget Ny när NewForm-funktionen körs.

Formuläret växlar från läget Ny till läget Redigera när någon av de här ändringarna inträffar: - Formuläret skickas och en post skapas. Om galleriet är inställt på att automatiskt flytta val till denna nya post, är formuläret i redigeringsläget för den skapade posten så att användaren kan göra ytterligare ändringar. - EditForm-funktionen körs. - ResetForm-funktionen körs. Som exempel kan användaren välja en Avbryt-knapp som har konfigurerats med den här funktionen.

OnFailure – Hur en app svarar när en dataåtgärd har misslyckats.

  • Denna egenskap gäller endast kontrollen Edit form.

OnReset – Hur en app svarar när en kontroll för att redigera formulär återställs.

  • Denna egenskap gäller endast kontrollen Edit form.

OnSuccess – Hur en app svarar när en dataåtgärd har lyckats.

  • Denna egenskap gäller endast kontrollen Edit form.

Unsaved – True om kontrollen för att redigera formulär innehåller användarändringar som inte har sparats.

  • Denna egenskap gäller endast kontrollen Edit form.
  • Använd den här egenskapen för att varna användaren innan denne förlorar ändringar som kanske inte har sparats. För att hindra användaren från att välja en annan post i en gallerikontroll innan ändringarna har sparats i den aktuella posten, ställer du in galleriets egenskap DisabledForm.Unsaved och inaktiverar på så sätt uppdateringsåtgärderna.

Updates – De värden som skrivs tillbaka till datakällan för en post som lästs in i en formulärkontroll.

  • Denna egenskap gäller endast kontrollen Edit form.
  • Använd den här egenskapen för att extrahera fältvärdena från korten i kontrollen. Du kan sedan använda dessa värden för att manuellt uppdatera datakällan med ett Patch-funktionsanrop eller någon annan metod som exponeras av en anslutning. Du behöver inte använda den här egenskapen om du använder SubmitForm-funktionen.
  • Den här egenskapen returnerar en post med värden. Om formulärkontrollen till exempel innehåller kortkontroller för fälten Name och Quantity och värdena för Update-egenskaperna för de korten returnerar ”Widget” respektive 10, kommer Updates-egenskapen för formulärkontrollen att returnera {Name: "Widget", Quantity: 10}.

Valid – Om en kortkontroll eller en kontroll för att redigera formulär innehåller giltiga poster som är redo att skickas till datakällan.

  • Denna egenskap gäller endast kontrollen Edit form.
  • En formulärkontrollsValid- egenskap aggregerar Valid-egenskaperna för alla kortkontrollerna i formuläret. Ett formulärs Valid-egenskap är true endast om aktuella data i alla kort i formuläret är giltiga, i annat fall är formulärets Valid-egenskap false.
  • Ställ in knappens Enabled enligt nedanstående formel om du vill aktivera en knapp för att spara ändringar bara när data i ett formulär är giltiga men ännu inte har skickats:

    SubmitButton.Enabled = IsBlank( Form.Error ) || Form.Valid

Ytterligare egenskaper

BorderColor – En kontrolls kantlinjefärg.

BorderStyle – Om en kontrolls kantlinje är solid, streckad, prickad eller ingen.

BorderThickness – Tjockleken på en kontrolls kantlinje.

Fill – Bakgrundsfärgen i en kontroll.

Height – Avståndet mellan kontrollens övre och nedre kanter.

Visible – Om en kontroll visas eller är dold.

Width – Avståndet mellan kontrollens högra och vänstra kanter.

X – Avståndet mellan kontrollens vänstra kant och skärmens vänstra kant.

Y – Avståndet mellan kontrollens övre kant och skärmens övre kant.