Beste 4D-skjemaer: Toppvalg sammenlignet (2026)
4D Forms er brukergrensesnittlaget til en 4D-applikasjon, og plattformen tilbyr tre forskjellige skjematyper: detaljer, liste og utdataskjema, hver egnet for en annen oppgave. Å få det riktig i 2026 betyr å matche skjematypen til oppgaven, og deretter legge lister over verdier, underskjemaer og dynamiske egenskaper. Denne sammenligningen dekker praktiske alternativer, deres avveininger og hvordan du bestemmer deg.
Viktige takeaways
- 4D tilbyr tre typer 4D-skjemaer: detalj (en post om gangen), liste (flere poster i et rutenett) og output (utskrift/rapportoppsett). Å velge feil type er den vanligste feilen nybegynnere gjør.
- Prosjektskjemaer (lagret som
.4DFormJSON-filer) er moderne standard; Tabellskjemaer er eldre og koblet til én enkelt tabell. Nye arbeider bør bruke prosjektskjemaer. - Dynamiske skjemaer (
DIALOG,FORM LOAD,FORM GOTO PAGE) lar deg opprette og utveksle grensesnitt under kjøring - avgjørende for flyter i veiviserstil og rollebaserte brukergrensesnitt. - Verdilister (statiske, hierarkiske eller fra et felt/array) driver rullegardinlister, kombinasjonsbokser og popup-menyer; å binde dem til et felt er en enkeltlinjes egenskapsendring.
- Underskjemaer bygger inn ett skjema i et annet og er standardmåten for å lage master-detaljoppsett uten å duplisere widgets.
- Ytelse på listeskjemaer er svært avhengig av enhetsvalg kontra klassisk utvalg og om lazy loading er aktivert for store rekordsett.
Hva “4D Forms” egentlig betyr
4D-skjemaer er deklarative brukergrensesnittdefinisjoner lagret enten i strukturen (tabellskjemaer) eller som frittstående prosjektfiler (prosjektskjemaer). Et skjema inneholder objekter (inndatafelt, knapper, listebokser, underskjemaer, nettområder og statisk tekst) arrangert på et lerret med en definert sidestørrelse og eventuelt flere sider. Hvert objekt har egenskaper (datakilde, skrivbar tilstand, font, koordinater) som 4D evaluerer under kjøring.
Det skillet som betyr mest for en sammenligning: et skjema er ikke et vindu. Et skjema er en layout; et vindu er beholderen som 4D åpner for å vise den. Det samme skjemaet kan vises i en modal dialogboks, et palettvindu, et dokumentvindu som kan endre størrelse, eller innebygd som et underskjema. Ved å forstå denne separasjonen kan erfarne utviklere gjenbruke ett skjema i flere sammenhenger i stedet for å gjenoppbygge det.
De tre skjematypene sammenlignet
| Skjematype | Poster vist | Typisk bruk | Nøkkeladvarsel |
|---|---|---|---|
| Detaljskjema | En | Datainntasting, postredigering, dialogbokser | Trenger eksplisitt navigering (knapper, NEXT RECORD) |
| Listeskjema | Mange | Surfing, utvalg, dashbord | Store utvalg trenger lazy loading eller paginering |
| Utdataskjema | Mange | Utskrift, PDF-eksport, rapporter | Ikke interaktiv; layout er utskriftsorientert |
Detaljskjemaer er arbeidshesten for dataregistrering. De viser gjeldende oppføring av en tabell og lar brukere redigere felt direkte. Et detaljskjema er også det naturlige valget for en innstillingsdialog eller påloggingsskjerm, fordi du kan binde den til ingen tabell i det hele tatt og bare kjøre den med prosessvariabler.
Listeskjemaer viser et rullbart rutenett med poster. I moderne 4D er listeskjemaer vanligvis bygget rundt et listeboks-objekt i stedet for den gamle “listeformen med kolonner”-tilnærmingen. Listebokser kan være matrisebaserte eller utvalgsbaserte, og utvalgsbaserte listebokser binder seg direkte til et enhetsutvalg – som er den foretrukne modellen når du arbeider med ORDA.
Utdataskjemaer finnes for utskrift. De gjengir poster i et sideoppsett med topptekster, bunntekster og pausenivåer. Utdataskjemaer er ikke ment for interaksjon på skjermen, og 4D vil ikke tillate brukere å tabbe seg inn i felt slik de ville gjort på et detaljskjema.
Relatert: — Den langvarige relasjonsdatabaseplattformen for team som trenger tilpassede apper på skrivebord, nett og mobil fra én enkelt fil..
Dette er de tre primære 4D-skjemaene.
Prosjektskjemaer kontra tabellskjemaer
Prosjektskjemaer lagres som individuelle “.4DForm”-filer i prosjektets “Forms”-mappe og er versjonskontrollaktiverte: hvert skjema er et eget JSON-dokument, så to utviklere som redigerer forskjellige skjemaer kolliderer sjelden under en sammenslåing. Tabellskjemaer ligger i strukturfilen og redigeres gjennom samme skjemaredigering, men er konseptuelt knyttet til en enkelt tabell.
De praktiske tipsene for 2026: Start hvert nytt skjema som et prosjektskjema. Tabellskjemaer forblir fullt støttet og du vil møte dem i eldre databaser, men prosjektskjemaer gir deg klarere forskjeller, enklere gjenbruk mellom tabeller og en klarere mental modell. Konvertering av et tabellskjema til et prosjektskjema innebærer å flytte det ut av tabellens skjemaliste og inn i prosjektets skjemaliste; objektdefinisjoner er bevart.
Vårt valg: — Et regneark-enkelt grensesnitt som sitter på toppen av en ekte relasjonsdatabase, med automatiseringer, visninger og delbare grensesnitt..
Bygge et skjema: kjernetrinnene
- Opprett skjemaet i skjemaredigering (Utforsker → Skjemaer → Ny), og velg detalj, liste eller utdata.
- Angi sidestørrelsen og legg om nødvendig til sider for flertrinnsoppsett.
- Plasser objekter: Dra felt fra Utforsker til lerretet eller legg til knapper, listebokser og underskjemaer fra objektbiblioteket.
- Koble til datakilder: Tilordne hvert inndataobjekt til et felt, en variabel eller et uttrykk.
- Konfigurer lister med verdier for en rullegardinliste, kombinasjonsboks eller popup-meny.
- Koble hendelser — legg ved metoder for å skjemahendelser (
On Load,On Clicked,On Data Change) og objekthendelser. - Test i skjemaredigering ved å bruke den innebygde forhåndsvisningen, deretter i et vindu som kjører.
Trinn 6 er der det meste av det virkelige arbeidet skjer når du lager 4d-skjemaer. Et skjema uten hendelsesmetoder er et statisk bilde; «On Load»-skjemahendelsen er vanligvis der du fyller ut arrays, laster inn en liste med verdier eller setter skrivbare tilstander basert på gjeldende brukers rolle.
Verdilister: Detaljen som folk snubler i
Verdilister er mekanismen bak hver rullegardin, kombinasjonsboks og popup-meny i 4D-former. Det er tre typer:
- Statiske lister — du skriver inn verdier én gang i listeredigering. Ideell for faste oppregninger som statuskoder.
- Hierarkiske lister — støtter nestede elementer med en
|-separatorkonvensjon, nyttig for kategoritrær. - Dynamiske lister - fylt ut fra et felt, en matrise eller en formel under kjøring. Disse gjenspeiler live data, så en liste over aktive kunder forblir oppdatert uten omdistribuering.
En vanlig fallgruve: å binde en liste med dynamiske verdier til et felt som lagrer en referanse (en ID) mens den viser en etikett. 4D klarer dette med konseptet “assosiert verdi”: listen lagrer en verdi og viser en annen. Å få det riktig er forskjellen mellom en rullegardinliste som registrerer “42” og en som registrerer “Acme Corp.”
Underskjemaer og hoveddetaljoppsett
Underskjemaer integrerer ett skjema i et annet. Det overordnede skjemaet er vert for et underskjemaobjekt; barneskjemaet vises på innsiden. Data flyter gjennom underskjemaets “tabell”-egenskap og, i moderne 4D, gjennom “Form”-objektet som sendes til barnet.
Hoveddetaljen er den kanoniske bruken for 4D-skjemaer: et detaljskjema for en faktura øverst, et listeskjema for fakturalinjer i et underskjema nedenfor. Når den overordnede posten endres, oppdateres underskjemautvalget - forutsatt at du oppdaterer det i den overordnede ‘On Data Change’ eller ved å binde utvalget på nytt. Underskjemaer lar deg også lage gjenbrukbare komponenter: et “kundevelger”-skjema kan slippes til alle foreldre som trenger det.
Dynamiske skjemaer og kjøretidsgrensesnitt
Dynamiske 4d-skjemaer endrer grensesnittet mens applikasjonen kjører. Nøkkelkommandoene er DIALOG (åpne et skjema som en modal eller ikke-modal dialog), FORM LOAD (last et skjema inn i minnet uten å vise det), FORM GOTO PAGE (endre sider) og OBJECT SET... som endrer objektets egenskaper i farten.
Dynamiske former er viktige for to scenarier. Først, Wizard Flows: et enkelt skjema med flere sider, videreført med “FORM GOTO PAGE” når brukeren fullfører trinnene. For det andre, rollebaserte grensesnitt — skjul eller deaktiver objekter ved On Load basert på brukerprivilegier, slik at et skjema tjener både en administrator og en skrivebeskyttet seer. Avveiningen er kompleksitet: dynamisk atferd er vanskeligere å feilsøke enn en statisk layout, så reserver den for tilfeller der en annen form ellers ville være nødvendig.
Ytelseshensyn
Ytelsen til 4D-skjemalisteskjemaer domineres av antall poster som 4D må materialisere. En utvalgsbasert listeboks koblet til et enhetsvalg laster bare inn radene den viser, noe som holder minnet flatt når tabellen vokser. Klassiske array-baserte listebokser laster inn alt på forhånd og vil bremse merkbart på store tabeller.
To andre spaker: lat lasting på listebokser (henter rader når du ruller) og serversidespørringer som returnerer et avgrenset utvalg i stedet for hele tabellen. For klient-tjener-distribusjoner dverger tur-retur-kostnaden for å hente poster på tvers av nettverket vanligvis gjengivelsestiden, så en innsnevring av utvalget er optimaliseringen med høyest verdi.
Hvordan bestemme
- Dataregistrering for én post? Detaljert skjema.
- Bla gjennom eller velg fra mange poster? Listeskjema med en listeboks basert på valg.
- Utskrift eller PDF-utdata? Utdataskjema.
- Gjenbrukbar på flere tabeller? Prosjektskjema, ikke tabellskjema.
- Multi-trinns prosess? Et skjema med flere sider, dynamisk avansert.
- Hoved-detalj forhold? Detaljskjema som er vert for et underskjema for listeskjema.
- Fast valgsett? Liste over statiske verdier. Live data? Dynamisk liste over verdier.
Disse alternativene hjelper deg å velge de riktige 4d-skjemaene for dine behov.
Læringsressurser
Den offisielle 4D-dokumentasjonen er den autoritative referansen for 4D-skjemaer, objekter, hendelser og kommandoer. Start der for å finne ut de nøyaktige egenskapsnavnene og kommandosignaturene. For bakgrunn om de underliggende databasekonseptene, gir Wikipedia-artikkelen om 4D (programvare) en nyttig historie om plattformen. Formatsiden JSON er verdt å lese hvis du planlegger å redigere .4DForm-filene for hånd eller sammenligne dem i versjonskontroll. For generelle relasjonsdesignprinsipper som informerer om hvordan du strukturerer tabellene bak skjemaene dine, kan du se oversikten over databasenormalisering.
Vanlige spørsmål
Hva er et 4D-skjema?
Et 4D-skjema er en deklarativ brukergrensesnittpresentasjon sammensatt av objekter (inndatafelt, knapper, listebokser, underskjemaer) knyttet til datakilder. 4D evaluerer skjemaets egenskaper under kjøring og viser det i et vindu, en dialogboks eller som et innebygd underskjema. Skjemaer er av tre typer: detalj, liste og utdata.
Hva er forskjellen mellom et detaljskjema og et listeskjema i 4D?
Et detaljskjema viser én post om gangen og brukes til datainntasting og redigering. Et listeskjema viser mange poster, vanligvis i en listeboks, og brukes til å surfe og velge. De to er ofte kombinert: et listeskjema for å velge en post, deretter et detaljskjema for å redigere den.
Bør jeg bruke prosjektskjemaer eller tabellskjemaer?
Prosjektskjemaer er moderne standard som standard og lagres som separate “.4DForm”-filer, noe som gjør dem enklere å gjenbruke og administrere i versjonskontroll. Tabellskjemaer er eldre og koblet til én enkelt tabell. Ny utbygging bør bruke prosjektskjemaer; Tabellskjemaer støttes fortsatt for eksisterende databaser.
Hvordan fungerer verdilister i 4D-former?
Verdilister fyller ut rullegardinlister, kombinasjonsbokser og popup-menyer. De kan være statiske (bare angis én gang), hierarkiske (nestede elementer) eller dynamiske (opprettet fra et felt, en matrise eller en formel under kjøring). En verdiliste kan lagre én verdi mens den viser en annen, som er hvordan du viser en kundes navn mens du lagrer ID-en deres.
Kan jeg endre et 4D-skjema under kjøring?
Ja. Dynamiske skjemaer bruker kommandoer som “DIALOG”, “FORM LOAD” og “FORM GOTO PAGE” for å laste skjemaer, bytte sider og endre objektegenskaper mens applikasjonen kjører. Dette støtter veiviserstilflyter og rollebaserte grensesnitt der ett skjema betjener forskjellige brukere.
Hvorfor er 4D-listeskjemaet min treg med store tabeller?
Langsomheten til listeformen kommer vanligvis fra materialisering av for mange poster. Utvalgsbaserte listebokser koblet til enhetsvalg laster bare de viste radene, mens matrisebaserte listebokser laster alt. Aktivering av lat lasting og innsnevring av søket til et avgrenset utvalg er de to rettelsene med størst innvirkning.
Ofte stilte spørsmål
Hva er et 4D-skjema?
Et 4D-skjema er en deklarativ brukergrensesnittpresentasjon sammensatt av objekter (inndatafelt, knapper, listebokser, underskjemaer) knyttet til datakilder. 4D evaluerer skjemaets egenskaper under kjøring og viser det i et vindu, en dialogboks eller som et innebygd underskjema. Skjemaer er av tre typer: detalj, liste og utdata.
Hva er forskjellen mellom et detaljskjema og et listeskjema i 4D?
Et detaljskjema viser én post om gangen og brukes til datainntasting og redigering. Et listeskjema viser mange poster, vanligvis i en listeboks, og brukes til å surfe og velge. De to er ofte kombinert: et listeskjema for å velge en post, deretter et detaljskjema for å redigere den.
Bør jeg bruke prosjektskjemaer eller tabellskjemaer?
Prosjektskjemaer er moderne standard som standard og lagres som separate '.4DForm'-filer, noe som gjør dem enklere å gjenbruke og administrere i versjonskontroll. Tabellskjemaer er eldre og koblet til én enkelt tabell. Ny utbygging bør bruke prosjektformer; Tabellskjemaer støttes fortsatt for eksisterende databaser.
Hvordan fungerer verdilister i 4D-former?
Verdilister fyller ut rullegardinlister, kombinasjonsbokser og popup-menyer. De kan være statiske (bare angis én gang), hierarkiske (nestede elementer) eller dynamiske (opprettet fra et felt, en matrise eller en formel under kjøring). En verdiliste kan lagre én verdi mens den viser en annen, som er hvordan du viser en kundes navn mens du lagrer ID-en deres.
Kan jeg endre et 4D-skjema under kjøring?
Ja. Dynamiske skjemaer bruker kommandoer som DIALOG, FORM LOAD og FORM GOTO PAGE for å laste skjemaer, bytte sider og endre objektegenskaper mens applikasjonen kjører. Dette støtter veiviserstilflyter og rollebaserte grensesnitt der ett skjema betjener forskjellige brukere.
Hvorfor er 4D-listeformen min treg med store tabeller?
Langsomheten til listeformen kommer vanligvis fra materialisering av for mange poster. Utvalgsbaserte listebokser koblet til enhetsvalg laster bare de viste radene, mens matrisebaserte listebokser laster alt. Aktivering av lat lasting og innsnevring av søket til et avgrenset utvalg er de to rettelsene med størst innvirkning.
Bygg en tilpasset app gratis i 15 dager
En lavkode-appbygger som kobles til den bredere Zoho-pakken og priser per bruker i stedet for per app.