Bästa 4D-formulär: Toppval jämfört (2026)
4D Forms är användargränssnittsskiktet i en 4D-applikation och plattformen erbjuder tre distinkta formulärtyper: detalj, lista och utdataformulär, var och en lämpad för en annan uppgift. Att få det rätt 2026 innebär att matcha formulärtypen med uppgiften och sedan lägga upp listor med värden, underformulär och dynamiska egenskaper. Den här jämförelsen täcker praktiska alternativ, deras avvägningar och hur man bestämmer sig.
Viktiga punkter
- 4D erbjuder tre typer av 4D-former: detalj (en post i taget), lista (flera poster i ett rutnät) och output (skriv ut/rapportlayout). Att välja fel typ är det vanligaste misstaget nybörjare gör.
- Project Forms (lagrade som
.4DFormJSON-filer) är den moderna standarden; Tabellformulär är äldre och länkade till en enda tabell. Nytt arbete bör använda projektformulär. - Dynamiska formulär (
DIALOG,FORM LOAD,FORM GOTO PAGE) låter dig skapa och utbyta gränssnitt vid körning - väsentligt för flöden i guidestil och rollbaserade användargränssnitt. - Värdelistor (statiska, hierarkiska eller från ett fält/array) driver rullgardinslistor, kombinationsrutor och popup-menyer; att binda dem till ett fält är en egenskapsändring på en rad.
- Underformulär bäddar in ett formulär i ett annat och är standardsättet att skapa master-detaljlayouter utan att duplicera widgets.
- Prestanda på listformulär är starkt beroende av val av enhet kontra klassiskt urval och om lat laddning är aktiverat för stora rekorduppsättningar.
Vad “4D Forms” egentligen betyder
4D-formulär är deklarativa användargränssnittsdefinitioner som lagras antingen i strukturen (tabellformulär) eller som fristående projektfiler (projektformulär). Ett formulär innehåller objekt (inmatningsfält, knappar, listrutor, underformulär, webbområden och statisk text) arrangerade på en duk med en definierad sidstorlek och, valfritt, flera sidor. Varje objekt har egenskaper (datakälla, skrivbart tillstånd, teckensnitt, koordinater) som 4D utvärderar vid körning.
Den distinktion som betyder mest för en jämförelse: en form är inte ett fönster. Ett formulär är en layout; ett fönster är behållaren som 4D öppnar för att visa den. Samma formulär kan visas i en modal dialogruta, ett palettfönster, ett dokumentfönster som kan ändras storlek eller inbäddat som ett underformulär. Genom att förstå denna separation kan erfarna utvecklare återanvända ett formulär i flera sammanhang istället för att bygga om det.
De tre formulärtyperna som jämförs
| Formulärtyp | Poster som visas | Typisk användning | Viktig anmärkning |
|---|---|---|---|
| Detaljformulär | En | Datainmatning, postredigering, dialogrutor | Behöver explicit navigering (knappar, NEXT RECORD) |
| Listaformulär | Många | Bläddring, urval, instrumentpaneler | Stort urval kräver lat laddning eller sidnumrering |
| Utdataformulär | Många | Utskrift, PDF-export, rapporter | Inte interaktiv; layouten är utskriftsorienterad |
Detaljformulär är arbetshästen för datainmatning. De visar den aktuella posten för en tabell och tillåter användare att redigera fält direkt. Ett detaljformulär är också det naturliga valet för en inställningsdialog eller inloggningsskärm, eftersom du kan binda den till ingen tabell alls och bara driva den med processvariabler.
Listformulär presenterar ett rullningsbart rutnät med poster. I modern 4D är listformulär vanligtvis uppbyggda kring ett listbox-objekt snarare än den gamla “listformen med kolumner”-metoden. Listboxar kan vara arraybaserade eller urvalsbaserade, och urvalsbaserade listboxar binder direkt till ett entitetsval – vilket är den föredragna modellen när man arbetar med ORDA.
Utmatningsformulär finns för utskrift. De återger poster i en sidlayout med sidhuvuden, sidfötter och brytnivåer. Utdataformulär är inte avsedda för interaktion på skärmen och 4D tillåter inte användare att tabba till fält som de skulle göra på ett detaljformulär.
Relaterat: — Den långvariga relationsdatabasplattformen för team som behöver anpassade appar på skrivbordet, webben och mobilen från en enda fil..
Dessa är de tre primära 4D-formulär.
Projektformulär kontra tabellformulär
Projektformulär lagras som individuella “.4DForm”-filer i projektets “Forms”-mapp och är versionskontrollaktiverade: varje formulär är ett separat JSON-dokument, så två utvecklare som redigerar olika formulär kolliderar sällan under en sammanslagning. Tabellformulär finns i strukturfilen och redigeras genom samma formulärredigerare, men är begreppsmässigt länkade till en enda tabell.
De praktiska tipsen för 2026: Starta varje nytt formulär som ett projektformulär. Tabellformulär förblir fullt stödda och du kommer att stöta på dem i äldre databaser, men projektformulär ger dig tydligare skillnader, enklare återanvändning mellan tabeller och en tydligare mental modell. Att konvertera ett tabellformulär till ett projektformulär innebär att det flyttas ut från tabellens formulärlista och till projektets formulärlista; objektdefinitioner bevaras.
Om du handlar: — En appbyggare med låg kod som ansluts till den bredare Zoho-sviten och priser per användare snarare än per app..
Bygga en form: kärnstegen
- Skapa formuläret i formulärredigeraren (Utforskaren → Formulär → Nytt), välj detalj, lista eller utdata.
- Ställ in sidstorleken och lägg vid behov till sidor för flerstegslayouter.
- Placera objekt: Dra fält från Utforskaren till arbetsytan eller lägg till knappar, listrutor och underformulär från objektbiblioteket.
- Länka datakällor: Tilldela varje indataobjekt till ett fält, en variabel eller ett uttryck.
- Konfigurera värdelistor för valfri rullgardinslista, kombinationsruta eller popup-meny.
- Koppla händelser — bifoga metoder till formulärhändelser (
On Load,On Clicked,On Data Change) och objekthändelser. - Testa i formulärredigeraren med den inbyggda förhandsgranskningen, sedan i ett löpande fönster.
Steg 6 är där det mesta av det verkliga arbetet sker när man skapar 4D-formulär. En form utan händelsemetoder är en statisk bild; formulärhändelsen On Load är vanligtvis där du fyller i arrayer, laddar en lista med värden eller ställer in skrivbara tillstånd baserat på den aktuella användarens roll.
Värdelistor: Detaljen som får folk att fånga upp
Värdelistor är mekanismen bakom varje rullgardinsmeny, kombinationsruta och popup-meny i 4D-former. Det finns tre typer:
- Statiska listor — du anger värden en gång i listeditorn. Idealisk för fasta uppräkningar som statuskoder.
- Hierarkiska listor — stöder kapslade element med en
|-separatorkonvention, användbar för kategoriträd. - Dynamiska listor — fylls i från ett fält, en array eller en formel vid körning. Dessa återspeglar livedata, så en lista över aktiva kunder förblir uppdaterad utan omdistribuering.
En vanlig fallgrop: binda en lista med dynamiska värden till ett fält som lagrar en referens (ett ID) samtidigt som en etikett visas. 4D klarar detta med konceptet “associerat värde”: listan lagrar ett värde och visar ett annat. Att få det rätt är skillnaden mellan en rullgardinslista som registrerar “42” och en som registrerar “Acme Corp.”
Underformulär och Master-Detail Layouts
Underformulär integrerar en form i en annan. Det överordnade formuläret är värd för ett underformulärsobjekt; barnformuläret visas inuti. Data flödar genom underformulärets “tabell”-egenskap och, i modern 4D, genom “Form”-objektet som skickas till barnet.
Huvuddetaljen är den kanoniska användningen för 4D-formulär: ett detaljformulär för en faktura överst, ett listformulär för fakturarader i ett underformulär nedan. När den överordnade posten ändras, uppdateras urvalet av underformuläret - förutsatt att du uppdaterar det i förälderns “On Data Change” eller genom att binda om urvalet. Underformulär låter dig också skapa återanvändbara komponenter: ett “kundväljare”-formulär kan släppas till vilken förälder som helst som behöver det.
Dynamiska formulär och Runtime UI
Dynamiska 4d-formulär ändrar gränssnittet medan programmet körs. Nyckelkommandona är DIALOG (öppna ett formulär som en modal eller icke-modal dialogruta), FORM LOAD (ladda in ett formulär i minnet utan att visa det), FORM GOTO PAGE (ändra sidor) och OBJECT SET... som ändrar objektets egenskaper i farten.
Dynamiska former är viktiga för två scenarier. Först, Wizard Flows: ett enstaka formulär med flera sidor, avancerat med FORM GOTO PAGE när användaren slutför stegen. För det andra, rollbaserade gränssnitt — dölj eller inaktivera objekt vid On Load baserat på användarrättigheter, så att ett formulär tjänar både en administratör och en skrivskyddad läsare. Avvägningen är komplexitet: dynamiskt beteende är svårare att felsöka än en statisk layout, så reservera den för fall där en andra form annars skulle vara nödvändig.
Prestandaöverväganden
Prestandan för formulär för 4D-formulär domineras av antalet poster som 4D måste realisera. En urvalsbaserad listruta kopplad till en entitetsval läser bara in de rader som den visar, vilket håller minnet platt när tabellen växer. Klassiska array-baserade listboxar laddar allt i förväg och saktar ner märkbart på stora tabeller.
Två andra spakar: lat laddning på listrutor (hämtar rader när du rullar) och frågor på serversidan som returnerar ett avgränsat urval snarare än hela tabellen. För klient-server-distributioner överstiger kostnaden tur och retur för att hämta poster över nätverket vanligtvis renderingstiden, så att begränsa urvalet är den högsta optimeringen.
Hur man bestämmer sig
- Datainmatning för en post? Detaljerat formulär.
- Bläddra eller välj bland många poster? Listformulär med en listruta baserad på urval.
- Utskrift eller PDF-utdata? Utdataformulär.
- Återanvändbar på flera tabeller? Projektform, inte tabellform.
- Flerstegsprocess? Ett formulär med flera sidor, dynamiskt avancerat.
- Master-detail relation? Detaljformulär som innehåller ett underformulär för listformulär.
- Fast valuppsättning? Lista över statiska värden. Livedata? Dynamisk värdelista.
Dessa alternativ hjälper dig att välja rätt 4D-formulär för dina behov.
Lärresurser
Den officiella 4D-dokumentationen är den auktoritativa referensen för 4D-formulär, objekt, händelser och kommandon. Börja där för att ta reda på de exakta egenskapsnamnen och kommandosignaturerna. För bakgrund om de underliggande databaskoncepten ger Wikipedia-artikeln om 4D (programvara) en användbar historik över plattformen. Formatsidan JSON är värd att läsa om du planerar att redigera .4DForm-filerna för hand eller jämföra dem i versionskontroll. För allmänna relationsdesignprinciper som informerar om hur du strukturerar tabellerna bakom dina formulär, kolla in översikten databasnormalisering.
Vanliga frågor
Vad är en 4D-form?
Ett 4D-formulär är en deklarativ presentation av användargränssnittet som består av objekt (inmatningsfält, knappar, listrutor, underformulär) kopplade till datakällor. 4D utvärderar formulärets egenskaper vid körning och visar det i ett fönster, en dialogruta eller som ett inbäddat underformulär. Formulär är av tre typer: detalj, lista och utdata.
Vad är skillnaden mellan ett detaljformulär och ett listformulär i 4D?
Ett detaljformulär visar en post i taget och används för datainmatning och redigering. Ett listformulär visar många poster, vanligtvis i en listruta, och används för att bläddra och välja. De två kombineras ofta: ett listformulär för att välja en post, sedan ett detaljformulär för att redigera den.
Ska jag använda projektformulär eller tabellformulär?
Projektformulär är den moderna standarden som standard och lagras som separata “.4DForm”-filer, vilket gör dem lättare att återanvända och hantera i versionskontroll. Tabellformulär är äldre och länkade till en enda tabell. Ny utveckling bör använda projektformer; tabellformulär stöds fortfarande för befintliga databaser.
Hur fungerar värdelistor i 4D-former?
Värdelistor fyller i rullgardinslistor, kombinationsrutor och popup-menyer. De kan vara statiska (endast angivna en gång), hierarkiska (kapslade objekt) eller dynamiska (skapade från ett fält, en matris eller en formel vid körning). En värdelista kan lagra ett värde samtidigt som ett annat visas, vilket är hur du visar en kunds namn samtidigt som du sparar deras ID.
Kan jag ändra ett 4D-formulär under körning?
Ja. Dynamiska formulär använder kommandon som DIALOG, FORM LOAD och FORM GOTO PAGE för att ladda formulär, byta sida och ändra objektegenskaper medan programmet körs. Detta stöder flöden i guidestil och rollbaserade gränssnitt där ett formulär betjänar olika användare.
Varför är min 4D-listform långsam med stora tabeller?
Långsamheten i listformen kommer i allmänhet från att materialiseras för många poster. Urvalsbaserade listrutor kopplade till entitetsval laddar bara de visade raderna, medan arraybaserade listrutor laddar allt. Att aktivera lat inläsning och begränsa frågan till ett begränsat urval är de två korrigeringarna som har störst effekt.
Vanliga frågor
Vad är en 4D-form?
Ett 4D-formulär är en deklarativ presentation av användargränssnittet som består av objekt (inmatningsfält, knappar, listrutor, underformulär) kopplade till datakällor. 4D utvärderar formulärets egenskaper vid körning och visar det i ett fönster, en dialogruta eller som ett inbäddat underformulär. Formulär är av tre typer: detalj, lista och utdata.
Vad är skillnaden mellan ett detaljformulär och ett listformulär i 4D?
Ett detaljformulär visar en post i taget och används för datainmatning och redigering. Ett listformulär visar många poster, vanligtvis i en listruta, och används för att bläddra och välja. De två kombineras ofta: ett listformulär för att välja en post, sedan ett detaljformulär för att redigera den.
Ska jag använda projektformulär eller tabellformulär?
Projektformulär är den moderna standarden som standard och lagras som separata '.4DForm'-filer, vilket gör dem lättare att återanvända och hantera i versionskontroll. Tabellformulär är äldre och länkade till en enda tabell. Ny utveckling bör använda projektformer; tabellformulär stöds fortfarande för befintliga databaser.
Hur fungerar värdelistor i 4D-former?
Värdelistor fyller i rullgardinslistor, kombinationsrutor och popup-menyer. De kan vara statiska (endast angivna en gång), hierarkiska (kapslade objekt) eller dynamiska (skapade från ett fält, en matris eller en formel vid körning). En värdelista kan lagra ett värde samtidigt som ett annat visas, vilket är hur du visar en kunds namn samtidigt som du sparar deras ID.
Kan jag ändra ett 4D-formulär under körning?
Ja. Dynamiska formulär använder kommandon som DIALOG, FORM LOAD och FORM GOTO PAGE för att ladda formulär, byta sida och ändra objektegenskaper medan programmet körs. Detta stöder flöden i guidestil och rollbaserade gränssnitt där ett formulär betjänar olika användare.
Varför är min 4D-listform långsam med stora tabeller?
Långsamheten i listformen kommer i allmänhet från att materialiseras för många poster. Urvalsbaserade listrutor kopplade till entitetsval laddar bara de visade raderna, medan arraybaserade listrutor laddar allt. Att aktivera lat inläsning och begränsa frågan till ett begränsat urval är de två korrigeringarna som har störst effekt.
Bygg din första bas på några minuter
Ett enkelt kalkylarksgränssnitt som sitter ovanpå en riktig relationsdatabas, med automatiseringar, vyer och delbara gränssnitt.