Bedste 4D-formularer: Topvalg sammenlignet (2026)
4D Forms er brugergrænsefladelaget i en 4D-applikation, og platformen tilbyder tre forskellige formulartyper: detalje-, liste- og outputformularer, som hver er egnet til en anden opgave. At få det rigtigt i 2026 betyder, at man matcher formulartypen til opgaven og derefter lægger lister over værdier, underformularer og dynamiske egenskaber. Denne sammenligning dækker praktiske muligheder, deres afvejninger og hvordan man beslutter sig.
Key Takeaways
- 4D tilbyder tre typer 4D-formularer: detaljer (én post ad gangen), liste (flere poster i et gitter) og output (print/rapportlayout). At vælge den forkerte type er den mest almindelige fejl, begyndere begår.
- Projektformularer (gemt som
.4DFormJSON-filer) er den moderne standard; Tabelformularer er ældre og knyttet til en enkelt tabel. Nyt arbejde bør bruge projektformularer. - Dynamiske formularer (
DIALOG,FORM LOAD,FORM GOTO PAGE) giver dig mulighed for at oprette og udveksle grænseflader under kørsel - afgørende for flows i guidestil og rollebaserede brugergrænseflader. - Værdilister (statiske, hierarkiske eller fra et felt/array) driver rullelister, kombinationsbokse og pop-up menuer; at binde dem til et felt er en egenskabsændring på en enkelt linje.
- Underformularer indlejrer en formular i en anden og er standardmetoden til at skabe master-detaljelayouts uden at duplikere widgets.
- Ydeevne på listeformularer er meget afhængig af entitetsvalg versus klassisk valg og om doven indlæsning er aktiveret for store rekordsæt.
Hvad “4D Forms” faktisk betyder
4D-formularer er deklarative brugergrænsefladedefinitioner gemt enten i strukturen (tabelformularer) eller som selvstændige projektfiler (projektformularer). En formular indeholder objekter (inputfelter, knapper, listebokse, underformularer, webområder og statisk tekst) arrangeret på et lærred med en defineret sidestørrelse og eventuelt flere sider. Hvert objekt bærer egenskaber (datakilde, indtastbar tilstand, skrifttype, koordinater), som 4D evaluerer under kørsel.
Den sondring, der betyder mest for en sammenligning: en formular er ikke et vindue. En formular er et layout; et vindue er den beholder, som 4D åbner for at vise den. Den samme formular kan vises i en modal dialogboks, et paletvindue, et dokumentvindue, der kan ændres størrelse, eller indlejret som en underformular. Forståelse af denne adskillelse giver erfarne udviklere mulighed for at genbruge én formular i flere sammenhænge i stedet for at genopbygge den.
De tre formulartyper sammenlignet
| Formulartype | Optegnelser vist | Typisk brug | Nøgleadvarsel |
|---|---|---|---|
| Detaljeformular | En | Dataindtastning, registreringsredigering, dialogbokse | Kræver eksplicit navigation (knapper, NEXT RECORD) |
| Listeformular | Mange | Browsing, valg, dashboards | Store udvalg kræver doven indlæsning eller paging |
| Outputform | Mange | Udskrivning, PDF-eksport, rapporter | Ikke interaktiv; layout er printorienteret |
Detaljeformularer er arbejdshesten ved dataindtastning. De viser den aktuelle post for en tabel og giver brugerne mulighed for at redigere felter direkte. En detaljeformular er også det naturlige valg for en indstillingsdialog eller loginskærm, fordi du kan binde den til ingen tabel overhovedet og kun køre den med procesvariabler.
Listeformularer præsenterer et rulbart gitter af poster. I moderne 4D er listeformularer typisk bygget op omkring et listeboks-objekt frem for den gamle “listeformular med kolonner”-tilgang. Listebokse kan være array-baserede eller selektionsbaserede, og selektionsbaserede listebokse binder direkte til en enhedsudvælgelse - hvilket er den foretrukne model, når man arbejder med ORDA.
Outputformularer findes til udskrivning. De gengiver poster i et sidelayout med sidehoveder, sidefødder og pauseniveauer. Outputformularer er ikke beregnet til interaktion på skærmen, og 4D tillader ikke brugere at tabulere ind i felter, som de ville på en detaljeformular.
Relateret: — Den langvarige relationsdatabaseplatform til teams, der har brug for tilpassede apps på desktop, web og mobil fra en enkelt fil..
Disse er de tre primære 4D-formularer.
Projektformularer vs. tabelformularer
Projektformularer gemmes som individuelle “.4DForm”-filer i projektets “Formularer”-mappe og er versionskontrolaktiverede: hver formular er et separat JSON-dokument, så to udviklere, der redigerer forskellige formularer, støder sjældent sammen under en fletning. Tabelformularer er placeret i strukturfilen og redigeres gennem den samme formulareditor, men er konceptuelt knyttet til en enkelt tabel.
De praktiske tips til 2026: Start hver ny formular som en projektformular. Tabelformularer er fortsat fuldt understøttede, og du vil støde på dem i ældre databaser, men projektformularer giver dig klarere forskelle, lettere genbrug mellem tabeller og en klarere mental model. Konvertering af en tabelformular til en projektformular involverer at flytte den ud af tabellens formularliste og ind i projektets formularliste; objektdefinitioner bevares.
Vores valg: — En regneark-simpel grænseflade, der sidder oven på en rigtig relationel database, med automatiseringer, visninger og delbare grænseflader..
Opbygning af en formular: Kernetrinene
- Opret formularen i formulareditoren (Explorer → Forms → New), vælg detalje, liste eller output.
- Indstil sidestørrelsen og tilføj om nødvendigt sider til flertrinslayout.
- Placer objekter: Træk felter fra Stifinder til lærredet eller tilføj knapper, listebokse og underformularer fra objektbiblioteket.
- Link datakilder: Tildel hvert inputobjekt til et felt, en variabel eller et udtryk.
- Konfigurer lister med værdier for enhver rulleliste, kombinationsboks eller pop op-menu.
- Forbind hændelser — vedhæft metoder til at danne hændelser (‘On Load’, ‘On Clicked’, ‘On Data Change’) og objekthændelser.
- Test i formulareditoren ved hjælp af den indbyggede forhåndsvisning og derefter i et kørende vindue.
Trin 6 er, hvor det meste af det virkelige arbejde sker, når du opretter 4d-formularer. En form uden hændelsesmetoder er et statisk billede; formularhændelsen “On Load” er typisk, hvor du udfylder arrays, indlæser en liste med værdier eller indstiller indtastbare tilstande baseret på den aktuelle brugers rolle.
Værdilister: Den detalje, der rejser folk op
Værdilister er mekanismen bag hver dropdown, kombinationsboks og pop op-menu i 4D-former. Der er tre typer:
- Statiske lister — du indtaster værdier én gang i listeeditoren. Ideel til faste opregninger som statuskoder.
- Hierarkiske lister — understøtter indlejrede elementer med en
|-separatorkonvention, nyttig til kategoritræer. - Dynamiske lister — udfyldt fra et felt, en matrix eller en formel under kørsel. Disse afspejler live-data, så en liste over aktive kunder forbliver opdateret uden omfordeling.
En almindelig faldgrube: binding af en liste med dynamiske værdier til et felt, der gemmer en reference (et ID), mens der vises en label. 4D klarer dette med konceptet “associeret værdi”: listen gemmer en værdi og viser en anden. At få det rigtigt er forskellen mellem en rulleliste, der registrerer “42” og en, der registrerer “Acme Corp.”
Underformularer og Master-Detail Layouts
Underformularer integrerer en formular i en anden. Den overordnede formular er vært for et underformularobjekt; underordnet formular vises indeni. Data flyder gennem underformularens “tabel”-egenskab og, i moderne 4D, gennem “Form”-objektet videregivet til barnet.
Hoveddetaljen er den kanoniske brug for 4D-formularer: en detaljeformular for en faktura øverst, en listeformular for fakturalinjer i en underformular nedenfor. Når den overordnede post ændres, opdateres underformularvalget - forudsat at du opdaterer det i forælderens ‘On Data Change’ eller ved at genbinde valget. Underformularer giver dig også mulighed for at oprette genbrugelige komponenter: en “kundevælger”-formular kan slippes ind i enhver forælder, der har brug for den.
Dynamiske formularer og Runtime UI
Dynamiske 4d-formularer ændrer grænsefladen, mens applikationen kører. Nøglekommandoerne er DIALOG (åbn en formular som en modal eller ikke-modal dialog), FORM LOAD (indlæs en formular i hukommelsen uden at vise den), FORM GOTO PAGE (skift sider) og OBJECT SET..., som ændrer objektets egenskaber med det samme.
Dynamiske former er vigtige for to scenarier. For det første Wizard Flows: en enkelt formular med flere sider, avanceret med FORM GOTO PAGE, efterhånden som brugeren fuldfører trinnene. For det andet, rollebaserede grænseflader — skjul eller deaktiver objekter ved ‘On Load’ baseret på brugerrettigheder, så en formular betjener både en administrator og en skrivebeskyttet fremviser. Afvejningen er kompleksitet: dynamisk adfærd er sværere at fejlfinde end et statisk layout, så reserver det til tilfælde, hvor en anden form ellers ville være nødvendig.
Ydelsesovervejelser
Udførelsen af 4D-formularlisteformularer er domineret af antallet af poster, som 4D skal materialisere. En udvælgelsesbaseret liste, der er knyttet til en enhedsudvælgelse, indlæser kun de rækker, den viser, hvilket holder hukommelsen flad, efterhånden som tabellen vokser. Klassiske array-baserede listebokse indlæser alt på forhånd og vil bremse mærkbart på store tabeller.
To andre håndtag: doven indlæsning på listebokse (henter rækker, når du ruller) og forespørgsler på serversiden, som returnerer et afgrænset valg i stedet for hele tabellen. For klient-server-implementeringer er returomkostningerne ved at hente poster på tværs af netværket typisk overskydende gengivelsestiden, så en indsnævring af valget er den højeste værdi-optimering.
Hvordan man beslutter sig
- Indtastning af data for én post? Detaljeret formular.
- Gennemse eller vælg blandt mange poster? Listeformular med en listeboks baseret på valg.
- Udskrivning eller PDF-output? Outputformular.
- Genbrugelig på flere tabeller? Projektformular, ikke tabelform.
- Flertrinsproces? En formular med flere sider, dynamisk avanceret.
- Master-detalje forhold? Detaljeformular, der hoster en listeformularunderformular.
- Fast valgsæt? Liste over statiske værdier. Live data? Dynamisk liste over værdier.
Disse muligheder hjælper dig med at vælge de rigtige 4d-formularer til dine behov.
Læringsressourcer
Den officielle 4D-dokumentation er den autoritative reference for 4D-formularer, objekter, hændelser og kommandoer. Start der for at finde ud af de nøjagtige egenskabsnavne og kommandosignaturer. Som baggrund for de underliggende databasekoncepter giver Wikipedia-artiklen om 4D (software) en nyttig historie om platformen. Formatsiden JSON er værd at læse, hvis du planlægger at redigere .4DForm-filerne manuelt eller sammenligne dem i versionskontrol. For generelle relationelle designprincipper, der informerer om, hvordan du strukturerer tabellerne bag dine formularer, kan du se oversigten over databasenormalisering.
Ofte stillede spørgsmål
Hvad er en 4D-form?
En 4D-formular er en deklarativ brugergrænsefladepræsentation sammensat af objekter (inputfelter, knapper, listebokse, underformularer) knyttet til datakilder. 4D evaluerer formularens egenskaber under kørsel og viser den i et vindue, en dialogboks eller som en indlejret underformular. Formularer er af tre typer: detaljer, liste og output.
Hvad er forskellen mellem en detaljeformular og en listeformular i 4D?
En detaljeformular viser én post ad gangen og bruges til dataindtastning og redigering. En listeformular viser mange poster, normalt i en listeboks, og bruges til at gennemse og vælge. De to kombineres ofte: en listeformular til at vælge en post, derefter en detaljeformular til at redigere den.
Skal jeg bruge projektformularer eller tabelformularer?
Projektformularer er som standard den moderne standard og gemmes som separate “.4DForm”-filer, hvilket gør dem nemmere at genbruge og administrere i versionskontrol. Tabelformularer er legacy og knyttet til en enkelt tabel. Ny udvikling bør bruge projektformer; tabelformularer forbliver understøttede for eksisterende databaser.
Hvordan fungerer værdilister i 4D-former?
Værdilister udfylder rullelister, kombinationsbokse og pop op-menuer. De kan være statiske (kun indtastet én gang), hierarkiske (indlejrede elementer) eller dynamiske (oprettet ud fra et felt, matrix eller formel under kørsel). En værdiliste kan gemme én værdi, mens den viser en anden, hvilket er, hvordan du viser en kundes navn, mens du gemmer deres id.
Kan jeg ændre en 4D-formular under kørsel?
Ja. Dynamiske formularer bruger kommandoer såsom DIALOG, FORM LOAD og FORM GOTO PAGE til at indlæse formularer, skifte sider og ændre objektegenskaber, mens applikationen kører. Dette understøtter guide-stil flows og rollebaserede grænseflader, hvor en formular betjener forskellige brugere.
Hvorfor er min 4D-listeform langsom med store tabeller?
Langsomheden i listeformen kommer generelt fra at materialisere for mange poster. Udvalgsbaserede listebokse, der er knyttet til enhedsvalg, indlæser kun de viste rækker, mens matrixbaserede listebokse indlæser alt. Aktivering af doven indlæsning og indsnævring af forespørgslen til et afgrænset udvalg er de to rettelser med den største effekt.
Ofte stillede spørgsmål
Hvad er en 4D-form?
En 4D-formular er en deklarativ brugergrænsefladepræsentation sammensat af objekter (inputfelter, knapper, listebokse, underformularer) knyttet til datakilder. 4D evaluerer formularens egenskaber under kørsel og viser den i et vindue, en dialogboks eller som en indlejret underformular. Formularer er af tre typer: detaljer, liste og output.
Hvad er forskellen mellem en detaljeformular og en listeformular i 4D?
En detaljeformular viser én post ad gangen og bruges til dataindtastning og redigering. En listeformular viser mange poster, normalt i en listeboks, og bruges til at gennemse og vælge. De to kombineres ofte: en listeformular til at vælge en post, derefter en detaljeformular til at redigere den.
Skal jeg bruge projektformularer eller tabelformularer?
Projektformularer er som standard den moderne standard og gemmes som separate '.4DForm'-filer, hvilket gør dem nemmere at genbruge og administrere i versionskontrol. Tabelformularer er legacy og knyttet til en enkelt tabel. Ny udvikling bør bruge projektformer; tabelformularer forbliver understøttede for eksisterende databaser.
Hvordan fungerer værdilister i 4D-former?
Værdilister udfylder rullelister, kombinationsbokse og pop op-menuer. De kan være statiske (kun indtastet én gang), hierarkiske (indlejrede elementer) eller dynamiske (oprettet ud fra et felt, matrix eller formel under kørsel). En værdiliste kan gemme én værdi, mens den viser en anden, hvilket er, hvordan du viser en kundes navn, mens du gemmer deres id.
Kan jeg ændre en 4D-formular under kørsel?
Ja. Dynamiske formularer bruger kommandoer såsom DIALOG, FORM LOAD og FORM GOTO PAGE til at indlæse formularer, skifte sider og ændre objektegenskaber, mens applikationen kører. Dette understøtter guide-stil flows og rollebaserede grænseflader, hvor en formular betjener forskellige brugere.
Hvorfor er min 4D-listeform langsom med store tabeller?
Langsomheden i listeformen kommer generelt fra at materialisere for mange poster. Udvalgsbaserede listebokse, der er knyttet til enhedsvalg, indlæser kun de viste rækker, mens matrixbaserede listebokse indlæser alt. Aktivering af doven indlæsning og indsnævring af forespørgslen til et afgrænset udvalg er de to rettelser med den største effekt.
Byg en brugerdefineret app gratis i 15 dage
En lavkode-appbygger, der tilsluttes den bredere Zoho-suite og priser pr. bruger i stedet for pr. app.