Redigere relaterede tabelposter direkte fra hovedformularen i en anden tabel
Du kan arbejde med relaterede tabelposter i en tabelformular på flere måder i Power Apps. Du kan f.eks. medtage relaterede tabeller i skrivebeskyttet tilstand med en formular til hurtig visning og oprette eller redigere en post ved hjælp af en hovedformular i en dialogboks.
Du kan også arbejde med relaterede tabelposter ved at føje et kontrolelement for formularkomponenter til hovedformularen i en anden tabel. Med kontrolelementet for formularkomponenter kan brugere redigere oplysninger i en relateret tabelpost direkte fra formularen i en anden tabel.
Her kan du f.eks. se formularkomponenten under en separat fane i hovedkontoformularen, hvor brugeren kan redigere en kontaktpost uden at forlade firmaformularen.
Her er f.eks. formularkomponenten under en eksisterende fane i hovedfirmaformularen, som også giver brugeren mulighed for at redigere en kontaktpost uden at forlade fanen Oversigt for firmaformularen .
Føje formularkomponenten til hovedformularen i en tabel
- Vælg Komponenter i venstre navigationsrude. Hvis elementet ikke er i ruden i sidepanelet, skal du vælge ... Mere og derefter vælge det ønskede element.
- Udvid enten Input eller Vis, og vælg derefter Formular .
På konfigurationssiden for kontrolelementet for formularkomponenten skal du vælge egenskaberne for kontrolelementet:
- Vælg kolonnen Opslag for formularen.
- Vælg formen Relateret. Afhængigt af den relaterede tabelkonfiguration for kolonnen:
- Hvis kolonnen er forbundet med en enkelt tabel (f.eks. kolonnen Oprettet af), skal du vælge den relaterede formular , der skal bruges.
- Hvis kolonnen er forbundet med flere tabeller (polymorfe, f.eks. kolonnen ejer), skal du vælge + Relateret formular og derefter vælge Tilføj for at tilføje den relaterede formular. Fortsæt med at vælge + Relateret formular>Tilføj for at tilføje en relateret formular for hver relateret tabel.
- Som standard er alle klientapptyper Web, Telefon og Tablet aktiveret til at vise formularen. Ryd de klienttyper, hvor formularen ikke skal vises.
- Vælg Udført.
- Gem og udgiv derefter formularen.
Tilføjelse af formularkomponenten ved hjælp af den klassiske oplevelse
I dette eksempel er standardformularen Kontaktperson konfigureret til det kontrolelement af typen formularkomponent , der føjes til hovedformularen for firmaet.
Vigtigt!
Den måde, du tilføjer et kontrolelement for en formularkomponent på, er ændret. Det anbefales, at du bruger den nyeste erfaring. Flere oplysninger: Føje formularkomponenten til en hovedformular til en tabel
Log på Power Apps.
Vælg Tabeller i venstre rude. Du kan også åbne en løsning og derefter vælge en tabel, f.eks. . Firma. Hvis elementet ikke er i ruden i sidepanelet, skal du vælge ... Mere og derefter vælge det ønskede element.
Vælg Formularer i komponentmenuen.
Vælg en formular med formulartypen Hoved blandt de tilgængelige formularer.
Vælg Skift til klassisk. Den klassiske formulareditor åbnes som en fane i browseren.
Vælg fanen Indsæt . Opret derefter en ny fane og tilføj en ny sektion eller tilføj en ny sektion til en eksisterende fane.
I den nye sektion skal du tilføje en opslagskolonne, f.eks. . opslagskolonnen Primær kontakt .
Vælg opslagskolonnen, og vælg derefter Skift egenskaber under fanen Startside .
Under fanen Kontrolelementer skal du vælge Tilføj kontrolelement , på listen over kontrolelementtyper skal du vælgeKontrolelement for formularkomponent og derefter vælgeTilføj .
Vælg Web, Tablet og Telefon for komponenten.
Vælg Rediger (blyantsikon), og vælg Bind til en statisk værdi i dialogboksen Konfigurer egenskab , og tilføj derefter en XML-post, der ligner denne, hvor Tabelnavn er tabellens entydige navn, og FormID er formular-id'et for hovedformularen:
<QuickForms><QuickFormIds><QuickFormId entityname="TableName">FormID</QuickFormId></QuickFormIds></QuickForms>
- Hvis du f.eks. vil gengive hovedformularen Kontakt i firmaformularen, skal du bruge:
<QuickForms><QuickFormIds><QuickFormId entityname="contact">1fed44d1-ae68-4a41-bd2b-f13acac4acfa</QuickFormId></QuickFormIds></QuickForms>
- Hvis du f.eks. vil gengive hovedformularen Kontakt i firmaformularen, skal du bruge:
Vælg OK, og vælg derefter OK igen.
Gem og udgiv derefter din formular.
Tip
Hvis du vil finde det entydige navn til en tabel, skal du vælge tabellen i Power Apps og derefter vælge Indstillinger. Navnet vises i ruden Rediger tabel. Formular-id'et findes i browserens URL-adresse, når du redigerer en formular. Id'et følger / edit/ del af URL'en.
I den klassiske formulardesigner følger formular-id'et formId d-delen%3 af URL-adressen.
Formularkomponentens funktionsmåde
I dette afsnit beskrives funktionsmåden for formularkomponenter, når de bruges i en modelbaseret app.
Valg af post
Hvis kontrolelementet for formularkomponenten skal vise en formular, skal den opslagskolonne, den er bundet til, have en værdi. Ellers viser kontrolelementet meddelelsen Kildepost ikke markeret. Du kan f.eks. angive værdien ved at føje et opslagskontrolelement til formularen, der er bundet til den samme opslagskolonne som kontrolelementet for formularkomponenten. Når du bruger opslagskontrolelementet til at ændre værdien i opslagskolonnen, vises der en formular med dataene til den nye værdi i opslagskolonnen i formularkomponenten.
Kolonnevalidering
Alle kolonner, både i hovedformularen og i kontrolelementer for formularkomponenter, skal være gyldige, for at der kan sendes data til Microsoft Dataverse. Det gælder både for kolonnevalideringsfejl, manglende påkrævede kolonner osv.
OnSave
Handlere køres for hovedformularen og dens formularkomponentkontrolelementer. Alle handlere kan annullere lagringen af hovedformularen og kontrolelementerne for formularkomponenten ved hjælp af preventDefault. Det betyder, at ingen gemmehandling kan kræve preventDefault
, at data sendes til Dataverse. Rækkefølgen for, hvornår handlerne OnSave
kaldes, er ikke defineret. Flere oplysninger: Formular OnSave-hændelse (klient-API-reference) i modelbaserede apps
Lagring af post
Når valideringsfasen er gennemført, sendes der data til Dataverse for hver post. I øjeblikket opdateres hver post uafhængigt med forskellige forespørgsler. Lagringerne er ikke transaktionsbaserede, og rækkefølgen af lagringerne er ikke defineret. En fejl, der gemmer én formularkomponent, annullerer ikke ændringer af hovedformularen eller andre formularkomponenter. Når hver lagring er fuldført, opdateres dataene for alle poster i formularen.
Beskeder
Meddelelser på formularkomponenten samles i meddelelserne i hovedformularen. Hvis der f.eks. er ugyldige kolonner i formularkomponenten, og du forsøger at gemme, vises meddelelsen om den ugyldige kolonne øverst i hovedformularen og ikke i formularkomponenten.
Fejlhåndtering
Hvis der opstår flere fejl under lagringen, vises der kun én fejl til brugeren. Hvis brugeren kan foretage ændringer for at rette den første fejl og gemme det, bliver den næste fejl synlig. Brugeren skal fortsætte med at gemme, indtil alle fejl er blevet løst.
Ændring af poster med ændringer, der ikke er gemt
Hvis der er ændringer, der ikke er gemt i en formular for en formularkomponent, og en bruger forsøger at ændre den opslagskolonne, formularkomponenten er bundet til, får brugeren besked om denne ændring.
Klient-API
Der findes en formularkontekst for formularkomponentkontrolelementet. Du kan få adgang til den via hovedformularens formularkontekst ved at få adgang til kontrolelementet via en API, f.eks. . getControl. Før du får adgang til data for den relaterede tabel i formularkomponentkontrolelementet, skal hændelseshandlere vente på, at isLoaded-API'en returnerer true.
Begrænsninger
Bemærk følgende begrænsninger, når du føjer kontrolelementet for formularkomponenter til en tabelformular:
Kontrolelementet for formularkomponenten understøtter kun visning af hovedformularer. På samme måde understøttes tilføjelse af et kontrolelement for formularkomponenter kun med hovedformularer. Andre formulartyper, f.eks. hurtig oprettelse, hurtig visning og kort, understøttes ikke.
Formularer med et forretningsprocesforløb understøttes i øjeblikket hverken i hovedtabelformularen eller i den relaterede tabelformular. Hvis du har en formular med et forretningsprocesforløb, kan der opstå en uventet funktionsmåde. Det anbefales, at du ikke bruger en formularkomponent sammen med en formular, der bruger et forretningsprocesforløb.
Kontrolelementet for formularkomponenter understøtter ikke integrerede kontrolelementer for formularkomponenter, f.eks. tilføjelse af et kontrolelement for en formularkomponent til en formular, der bruges af et kontrolelement for en formularkomponent.
Kontrolelementet til formularkomponenten understøtter ikke integrerede lærredapps. Du kan støde på uventet funktionsmåde med disse lærredapps.
Kontrolelementet for formularkomponenter viser kun den første fane i den formular, den bruger, hvis der er flere faner i den pågældende formular.
Brug af den samme formular til forskellige kontrolelementer i formularkomponenter i en enkelt formular understøttes ikke.
Den formular, du bruger sammen med en formularkomponent, skal være inkluderet i din app. Hvis det ikke er det, eller hvis den aktuelle bruger ikke har adgang til formularen, bliver den den mest primære formular, der findes i appen, og som er tilgængelig for brugeren (baseret på formularordre).
Alle komponenter, der bruges af formularen i en formularkomponent, skal medtages i din app. Disse komponenter omfatter relaterede tabeller, visninger og forretningsprocesforløb. Hvis de ikke er det, er de ikke tilgængelige i formularen, eller der kan opstå uventede funktionsmåder.
Form component-kontrolelementer har visse begrænsninger, når de gengives i apps til flere sessioner. Specifikt dynamisk tilføjede handlere i formularkomponentformularen, f.eks.
addOnSave
. elleraddOnChange
muligvis ikke, når du har skiftet faner med flere sessioner.Du vil måske se, at tidslinjevæggen ikke opdateres, når en kolonne, der bruges til at angive tidslinjevæggen, er ændret i formularkomponenten. Når siden opdateres, opdateres tidslinjevæggen som forventet.
På mobil vises tidsstyringen i øjeblikket ikke i kontrolelementet for formularkomponenter.
I forbindelse med undergitre er kommandoknapperne Se alle poster og Se tilknyttede poster ikke tilgængelige, hvis de gengives i en formularkomponent.
Kontrolelementer for formularkomponenter understøttes ikke i dialogbokse til masseredigering. De vises som standard ikke i formularen i dialogboksen til masseredigering, og eventuelle ændringer, der foretages af relaterede tabelposter, gemmes ikke.
Når der registreres dubletposter, når et kontrolelement af typen formularkomponent gemmes, kan brugerne muligvis ikke få vist dubletterne for at løse konflikter.
Se også
Brug brugerdefinerede kontrolelementer til modelbaserede appdatavisualiseringer