Overslaan naar hoofdinhoud
HPO Software Stapsgewijze handleidingen voor het bouwen van 4D-databases en low-code apps — van je eerste tabel tot een complete zakelijke applicatie.

Sommige links op deze site zijn affiliate-links: als u via deze links koopt, kunnen wij een commissie verdienen zonder dat dit extra kosten voor u met zich meebrengt. Dit heeft nooit invloed op onze aanbevelingen. Zie onze affiliate-verklaring voor meer details. Affiliate-verklaring.

De basis van 4th Dimension Learning

Belangrijkste punten

  • Gegevensinvoer in 4D gebeurt uitsluitend via het Invoer/Detailformulier — het Uitvoer/Lijstformulier is alleen-lezen en leidt u eenvoudigweg terug naar het Invoerformulier wanneer u ermee communiceert.
  • Schakelen tussen formulieren is een kernvaardigheid voor navigatie: druk op Enter om het Invoerformulier te verlaten en dubbelklik ergens op het Uitvoerformulier om terug te keren.
  • Waardelijsten (keuzelijsten) zijn het mechanisme dat gegevens schoon houdt op het punt van invoer — ze beperken wat een gebruiker kan typen in plaats van te vertrouwen op validatie achteraf.
  • Op het moment dat u uw eerste records opslaat, maakt 4D de fysieke databasemap en de bijbehorende bestanden op schijf aan — dit is de structuur waarvan u een back-up maakt, die u verplaatst en uiteindelijk implementeert.
  • Het invoeren van voorbeeldgegevens is geen zinloos werk: het is de manier waarop u verifieert dat uw tabellen, velden, formulieren en waardelijsten daadwerkelijk samenwerken voordat u er iets bovenop bouwt.

Waarom gegevensinvoer de echte test van uw ontwerp is

Tot nu toe in de leercyclus hebt u een database gemaakt, de eigenschappen ervan ingesteld, tabellen en gegevensvelden gedefinieerd, formulieren gebouwd en waardelijsten gekoppeld. Bij het invoeren van voorbeeldgegevens komen al deze beslissingen overeen met de realiteit.

Een veld dat er in de Structuureditor redelijk uitzag, kan van het verkeerde type blijken te zijn zodra u er een echte waarde in probeert te typen. Een waardelijst die compleet leek, kan de enige optie blijken te missen die een gebruiker daadwerkelijk nodig heeft. Een formulierindeling die er in de Formuliereditor evenwichtig uitzag, kan onhandig blijken wanneer u er met een toetsenbord doorheen tabt.

Dit is de reden waarom ervaren 4D-ontwikkelaars de eerste gegevensinvoerpas beschouwen als een ontwerpbeoordeling, en niet als een klusje voor het laden van gegevens. U vult niet alleen een tabel — u test tegelijkertijd het schema, het formulier en de keuzelijsten. Als iets nu onhandig aanvoelt, zal het nog veel erger aanvoelen als u eenmaal honderden records heeft en downstream-rapporten hiervan afhankelijk zijn.

Gegevens invoeren: de mechanica

Zorg ervoor dat u zich in de Gebruikersmodus bevindt voordat u begint. In de klassieke architectuur van 4D maakt de omgeving onderscheid tussen de Ontwerpmodus (waarin u structuur, formulieren en code bewerkt) en de Gebruikersmodus (waar u feitelijk met records werkt). Gegevens moeten worden ingevoerd via het Invoer/Detailformulier. U kunt geen gegevens invoeren op het Uitvoer/Lijstformulier — dat formulier is bedoeld voor het bladeren en oplijsten, niet voor het bewerken.

Als u het probeert, is 4D vergevingsgezind: dubbelklikken op een gegevensveld of ergens anders in het Uitvoerformulier schakelt u eenvoudigweg naar het Invoerformulier. Dat gedrag is opzettelijk en de moeite waard om te internaliseren, omdat het betekent dat het Uitvoerformulier ook dienst doet als navigatieoppervlak.

Als u eenmaal in het Invoerformulier bent, werkt het invoeren van gegevens net als bij elke andere databasetoepassing:

Gerelateerd: — Het langlopende relationele databaseplatform voor teams die aangepaste apps nodig hebben op desktop, internet en mobiel vanuit één bestand..

  • Klik rechtstreeks op een veld om uw cursor daar te plaatsen.
  • Tab door de velden in volgorde — dit is meestal sneller dan klikken, en het respecteert de veldvolgorde die u in het formulier hebt gedefinieerd.
  • Pop-uplijsten verschijnen wanneer een veld aan een waardelijst is gekoppeld; u klikt op het item dat u wilt selecteren, en 4D schrijft die waarde in het veld.

Dat laatste punt is de beloning voor het werk aan de waardelijsten dat u eerder heeft gedaan. Een goed opgebouwde keuzelijst betekent dat de gebruiker nooit de exacte spelling van een categorie, een status of een regio hoeft te onthouden — men kiest uit een gecontroleerde woordenschat.

Dit is hetzelfde principe dat de relationele databasetheorie een domeinbeperking noemt, en het is een van de goedkoopste en meest waardevolle vormen van gegevensintegriteit die u kunt bouwen. Als u de formele achtergrond wilt, legt het Wikipedia-artikel over databasenormalisatie uit waarom gecontroleerde waarden in opzoekvelden redundantie en update-anomalieën verminderen.

Schakelen tussen invoer- en uitvoerformulieren

De navigatie tussen de twee formuliertypes is bewust minimaal, en het is de moeite waard om dit in het spiergeheugen te leggen:

Onze keuze: — Een spreadsheet-eenvoudige interface bovenop een echte relationele database, met automatiseringen, weergaven en deelbare interfaces..

  • Vanuit het Invoerformulier: druk op Enter om terug te schakelen naar het Uitvoerformulier.
  • Vanuit het Uitvoerformulier: dubbelklik ergens op het formulier om naar het Invoerformulier te gaan.

Er is hier een subtiliteit die nieuwkomers in de war brengt. Het drukken op Enter in het Invoerformulier heeft een dubbele functie — het valideert/accepteert het huidige record én brengt u terug naar de lijst.

Dat betekent dat als u iets ongeldigs heeft getypt (een waarde die niet overeenkomt met het veldtype, of een verplicht veld dat leeg is gelaten), 4D u mogelijk op het formulier houdt in plaats van u te laten vertrekken. Beschouw dat als een functie: het is de database die weigert slechte gegevens te accepteren, en dat is precies wat u wilt.

Een praktische gewoonte: kijk na het invoeren van elk record naar het Uitvoerformulier om te bevestigen dat het record daadwerkelijk verschijnt en dat de waarden in de verwachte kolommen terechtkomen. Het Uitvoerformulier is uw snelste visuele audit van wat u zojuist heeft opgeslagen.

Een uitgewerkt voorbeeld: uw eerste records invoeren

Stel dat uw voorbeelddatabase contacten bijhoudt, met velden voor een naam, een categorie en een regio, en waardelijsten die aan de categorie- en regiovelden zijn gekoppeld. Zo ziet een schone invoerpas eruit:

  1. Schakel over naar Gebruikersmodus.
  2. Dubbelklik op het uitvoerformulier om het invoerformulier te openen.
  3. Klik in het naamveld en typ een waarde.
  4. Gebruik Tab om naar het categorieveld te gaan. Omdat dit is gekoppeld aan een waardenlijst, verschijnt er een pop-up: selecteer een optie in plaats van te typen.
  5. Gebruik Tab om naar het regioveld te gaan en selecteer op dezelfde manier uit de lijst.
  6. Druk op Enter om het record te accepteren en terug te keren naar het uitvoerformulier.
  7. Bevestig dat de nieuwe rij verschijnt met de waarden die u hebt geselecteerd.
  8. Herhaal dit voor nog een aantal records, waarbij u opzettelijk de waarden varieert, zodat u verschillende lijstopties oefent.

Stap 8 is belangrijker dan het klinkt. Als u slechts één categorie invoert, ontdekt u nooit dat er een tweede categorie ontbreekt in de lijst, of dat een veld te smal is om een langere waarde weer te geven. Door uw voorbeeldgegevens te variëren, vindt u die hiaten terwijl ze nog goedkoop te repareren zijn.

Wat 4D op schijf maakt

Wanneer u records opslaat, materialiseert 4D de database als een map op schijf met daarin het structuurbestand, het gegevensbestand en ondersteunende bronnen. Dit is het artefact dat u uiteindelijk gaat kopiëren, back-uppen en implementeren. Het is om een aantal praktische redenen belangrijk om te begrijpen dat de database een map is — en niet een enkel ondoorzichtig bestand:

Gerelateerd: — Low-code app-ontwikkeling op bedrijfsniveau, aangesloten op Microsoft 365, Dataverse en Power Automate..

  • Back-ups moeten de hele map vastleggen, niet slechts één bestand, anders riskeert u een mismatch tussen structuur en gegevens.
  • Het verplaatsen van een database tussen machines betekent dat de map intact wordt verplaatst en de interne relatieve paden behouden blijven.
  • Versiebeheer van de structuur is mogelijk, maar het gegevensbestand zelf is niet iets dat u normaal gesproken commit.

Als u een achtergrond heeft met desktopdatabases in één enkel bestand, is dit op mappen gebaseerde model een van de eerste echt andere dingen aan het werken in 4D, en het is de moeite waard om dit vroegtijdig te begrijpen. Het bredere concept van hoe databasebeheersystemen structuur van gegevens scheiden, wordt behandeld in het Wikipedia-overzicht van database management systems.

Hoe u beslist wat u als voorbeeldgegevens invoert

Niet alle voorbeeldgegevens zijn even nuttig. Een korte, doelbewuste set is beter dan een grote, willekeurige set. Gebruik deze criteria bij het beslissen wat u typt:

  • Behandel elke optie uit de waardenlijst minstens één keer. Dit bewijst dat elke keuze bereikbaar is en correct wordt weergegeven.
  • Neem één randgeval per veld op. Een zeer lange naam, een waarde op de grens van een numeriek bereik, een leeg optioneel veld.
  • Voer ten minste één record in dat u van plan bent te verwijderen. U wilt bevestigen dat het verwijderen zich gedraagt zoals verwacht voordat er echte gegevens zijn.
  • Varieer de records zodat het uitvoerformulier iets heeft om te sorteren en te scannen. Een lijst met vrijwel identieke rijen zegt niets over kolombreedtes of leesbaarheid.
  • Houd de set klein. Vijf tot tien goedgekozen records zijn meestal voldoende om een ontwerp te valideren; u test het schema, u vult de productieomgeving niet.

Dit weerspiegelt de praktijk die softwaretesten grenswaardeanalyse (boundary value analysis) noemt — testen aan de randen van acceptabele invoer, waar defecten zich ophopen. Het Wikipedia-artikel over software testing behandelt de familie van technieken waartoe dit behoort.

Lezersfavoriet: — Een databasebouwer zonder code, gericht op portals, directory's en interne tools, met vaste prijzen in plaats van kosten per gebruiker..

Veelvoorkomende valkuilen in dit stadium

Een aantal problemen duiken keer op keer op als mensen voor het eerst gegevens in 4D invoeren:

  • Proberen te typen op het uitvoerformulier. Het accepteert geen invoer; het stuurt u gewoon terug naar het invoerformulier. Dit is zo ontworpen, het is geen bug.
  • Typen in een waardenlijstveld in plaats van selecteren. Afhankelijk van hoe de lijst is geconfigureerd, kan vrij typen worden afgewezen of een onbedoelde waarde creëren. Geef de voorkeur aan selecteren uit de pop-up.
  • Vergeten op Enter te drukken. Als u weg navigeert zonder te accepteren, wordt het record mogelijk niet opgeslagen. Maak van Enter een gewoonte.
  • Ervan uitgaan dat het record is opgeslagen omdat het formulier sloot. Controleer altijd op het uitvoerformulier.
  • Tientallen records invoeren voordat het ontwerp is gecontroleerd. Pas eerst het schema en het formulier aan, en voer daarna pas in bulk in.

Waar dit past in het leertraject

Deze stap — het invoeren van voorbeeldgegevens — is de laatste in de fundamentele reeks: een database maken, eigenschappen instellen, tabellen definiëren, gegevensvelden definiëren, formulieren bouwen, waardenlijsten koppelen en ten slotte gegevens invoeren. Zodra u op betrouwbare wijze records kunt invoeren, bekijken en navigeren, heeft u een werkende 4D-database en een mentaal model waarop u kunt voortbouwen. Alles wat volgt — query’s, rapporten, methoden en uiteindelijk implementatie — gaat ervan uit dat u vertrouwd bent met deze cyclus.

Voor ontwikkelaars die van andere platforms komen, helpt het om te weten dat de aanpak van 4D voortkomt uit dezelfde relationele traditie als producten als Microsoft Access en FileMaker, maar met een eigen taal en een eigen formuliergerichte workflow. Het Wikipedia-artikel over 4D (programming language) geeft nuttige context over waar het platform zich in het bredere landschap bevindt.

Veelgestelde vragen

Waarom kan ik gegevens niet rechtstreeks in het uitvoerformulier typen?

Het uitvoerformulier is ontworpen voor het bladeren en opsommen van records, niet voor het bewerken ervan. Wanneer u dubbelklikt op een veld of ergens op het formulier, schakelt 4D u automatisch over naar het invoer-/detailformulier, waar alle gegevensinvoer plaatsvindt. Deze scheiding houdt de lijstweergave snel en voorkomt onbedoelde bewerkingen terwijl u records scant.

Hoe schakel ik heen en weer tussen de invoer- en uitvoerformulieren?

Vanuit het invoerformulier drukt u op Enter om terug te keren naar het uitvoerformulier. Dubbelklik vanuit het uitvoerformulier ergens om het invoerformulier te openen. Deze twee handelingen vormen de kern van de navigatielus in de gebruikersmodus, en het is de moeite waard om ze te oefenen totdat ze automatisch gaan.

Wat gebeurt er als ik op Enter druk terwijl er een ongeldige waarde in een veld staat?

Het kan zijn dat 4D u op het formulier houdt in plaats van het record te accepteren, omdat de waarde niet overeenkomt met het veldtype of omdat een verplicht veld leeg is. Dit is de database die zijn eigen integriteit beschermt. Corrigeer de waarde en druk nogmaals op Enter om op te slaan.

Moet ik veel voorbeeldgegevens invoeren?

Nee. Een kleine, doelbewuste set van vijf tot tien records die elke optie in de waardenlijst omvat en een paar randgevallen bevat, is veel nuttiger dan een grote willekeurige batch. U valideert het ontwerp, u vult geen productiedatabase.

Wat creëert 4D op schijf als ik records opsla?

4D maakt een database-map aan die het structuurbestand, het gegevensbestand en ondersteunende bronnen bevat. Omdat de database een map is en geen enkel bestand, moeten back-ups en verplaatsingen de hele map omvatten om een mismatch tussen structuur en gegevens te voorkomen.

Is het invoeren van voorbeeldgegevens echt nodig voordat er meer wordt gebouwd?

Ja — het is de snelste manier om te bevestigen dat uw tabellen, velden, formulieren en waardenlijsten samenwerken. Problemen die nu triviaal op te lossen zijn, worden kostbaar zodra query’s, rapporten en methoden afhankelijk zijn van het schema. Beschouw deze stap als een ontwerpbeoordeling, niet als een klusje.


Bouw in één dag een klantenportaal

Een databasebouwer zonder code, gericht op portals, directory's en interne tools, met vaste prijzen in plaats van kosten per gebruiker.