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.

Basisprincipes van 4th Dimension Learning

Het menu Bestand is het eerste wat een gebruiker aanraakt in elke aangepaste 4D-toepassing, en het is ook het menu dat waarschijnlijk in de standaardstatus wordt gelaten door ontwikkelaars die graag verder willen gaan met formulieren en methoden. Dat is een vergissing.

In het menu Bestand geeft uw toepassing aan waar deze voor dient — of het nu gaat om een tool voor gegevensinvoer, een rapportagetool of een zakelijke toepassing voor algemene doeleinden. Als u het in een vroeg stadium goed doet, bespaart u later herstelwerk, omdat menu-items aan methoden zijn gekoppeld, en methoden aan uw tabelstructuur.

In dit gedeelte wordt het aanbevolen menu Bestand besproken voor een aangepaste 4D-menubalk, hoe u deze kunt bouwen in de Menubalk-editor en welke praktische beperkingen u onderweg tegenkomt.

Belangrijkste punten

  • Een goed ontworpen, aangepast menu Bestand bevat doorgaans vier logische groepen: gegevensverplaatsing (Importeren/Exporteren), afdrukken (Pagina-instelling, Record afdrukken, Gevonden set afdrukken), applicatie-identiteit (Over) en afsluiten (Afsluiten).
  • Menubalken in 4D heten permanent Menu Bar #1, Menu Bar #2, enzovoort — u kunt ze niet hernoemen, dus documenteer welke balk welk doel dient.
  • Scheidingslijnen worden zelf als menu-items gemaakt met behulp van de optie Lijn; ze zijn geen afzonderlijke eigenschap.
  • De namen van menu-items staan vast zodra ze zijn gemaakt. U kunt een item verwijderen en opnieuw maken, maar u kunt het label ervan niet ter plekke bewerken.
  • Het herschikken is asymmetrisch: u kunt items vrij naar boven slepen, maar om een item naar beneden te verplaatsen moet u andere items erboven naar boven slepen.
  • Sneltoetsen en bijbehorende methoden worden per menu-item geconfigureerd, en methoden vormen de brug tussen het menu en uw applicatielogica.

Waarom het menu Bestand een bewust ontwerp verdient

In FileMaker Pro ligt het menu Bestand grotendeels vast: u krijgt wat het platform u biedt, en aanpassingen gebeuren op het niveau van scripts en knoppen in plaats van op de menubalk zelf. 4D keert die relatie om. De menubalk is een eersteklas ontwerpobject, bewerkt in Ontwerpmodus via de Menubalk-editor, en elk item daarin kan zijn eigen sneltoets en zijn eigen methode hebben.

Die macht brengt verantwoordelijkheid met zich mee. Een aangepast menu Bestand dat uit gewoonte de FileMaker-indeling weerspiegelt, zal voor 4D-gebruikers verkeerd aanvoelen, terwijl een menu Bestand dat afdrukken volledig weglaat, iedereen zal frustreren die standaard bureaubladgedrag verwacht. Het doel is een menu dat herkenbaar is — het doet wat van een menu Bestand wordt verwacht — terwijl het specifiek is voor de workflow van uw toepassing.

De aanbevolen structuur voor deze serie is bewust klein:

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

Bestand
  Gegevens importeren
  Gegevens exporteren

Pagina-instelling
  Record afdrukken
  Gevonden set afdrukken

Over A

Afsluiten        Q

Elke groep beantwoordt een andere gebruikersvraag. De eerste groep beantwoordt: “Hoe krijg ik gegevens in en uit?” De tweede beantwoordt: “Hoe krijg ik dit op papier?” De derde beantwoordt: “Wat draai ik?” De vierde beantwoordt: “Hoe verlaat ik de applicatie?” Dat is een samenhangend mentaal model, en gebruikers navigeren er zonder instructie doorheen.

Het menu Bestand bouwen in de Menubalk-editor

De mechanica is eenvoudig, maar zit vol met kleine valkuilen. Open vanuit de Ontwerpmodus het menu Extra en kies Menubalk-editor. U ziet aan de linkerkant een venster “Lijst met menubalken” en aan de rechterkant een venster “Huidige menubalk”.

  1. Klik in het venster “Lijst met menubalken” op Menu Bar #1. Houd er rekening mee dat de namen van de menubalken niet kunnen worden bewerkt — ze zijn altijd Menu Bar #1, Menu Bar #2, enzovoort. Als u meerdere balken bijhoudt (bijvoorbeeld één voor gegevensinvoer en één voor rapportage), houdt u een aparte notitie bij waarin elke genummerde balk aan zijn doel wordt toegewezen. Dit is een van de weinige plaatsen in 4D waar u externe documentatie moet bijhouden omal gezond te blijven.
  2. Klik in het venster “Huidige menubalk” op het menu Bestand om dit als doel te selecteren.
  3. Klik op Item toevoegen om een nieuw item toe te voegen en typ vervolgens de naam ervan.
  4. Om een scheidingslijn in te voegen, voegt u nog een item toe en kiest u de optie Lijn in plaats van een naam te typen.
  5. Herhaal dit totdat het menu overeenkomt met de gewenste structuur.

De beperkingen waar u daadwerkelijk tegenaan loopt

  • Namen zijn onveranderlijk. Zodra een menu-item is gemaakt, kunt u het niet meer hernoemen. Als u “Gegevens exporteren” typeert als “Gegevens exproteren”, is uw enige oplossing het verwijderen van het item en het maken van een nieuw item — wat ook betekent dat u elke methode en sneltoets die u al had geconfigureerd opnieuw moet koppelen. Typ de eerste keer zorgvuldig.
  • Slepen gebeurt in de praktijk in één richting. U kunt items vrij naar boven slepen. Om een item naar beneden te verplaatsen, moet u de items erboven naar boven slepen. Plan uw volgorde voordat u begint met toevoegen, of accepteer wat schuifelen.
  • Scheidingslijnen tellen als items. Een scheidingslijn neemt een plek in de volgorde in beslag en volgt dus dezelfde sleepregels als een benoemd item. Voeg scheidingslijnen in nadat u de benoemde items in ongeveer de juiste volgorde heeft geplaatst.

Figuur 8 in de originele walkthrough toont de workflow “Item toevoegen” voor het menu Bestand, en Figuur 9 toont het resulterende aangepaste menu Bestand zoals de gebruiker het tijdens runtime zal zien. Het is de moeite waard om na elke groep toevoegingen een voorbeeld van het menu te bekijken, in plaats van het geheel blind op te bouwen.

Als u aan het winkelen bent: — Een die aansluit op de bredere Zoho-suite en prijzen per gebruiker in plaats van per app..

Kiezen wat erbij hoort — en wat niet

De verleiding bij een aanpasbare menubalk is om alles te tonen. Weersta dat. Elk item dat je toevoegt is een belofte dat de functie werkt, vindbaar is en een logische sneltoets heeft. Een kort Bestandsmenu dat volledig is aangesloten, is beter dan een lang menu met dode vermeldingen.

Een nuttig besluitvormingskader:

Kandidaat-itemOpnemen wanneer…Overweeg weg te laten wanneer…
Gegevens importerenGebruikers brengen regelmatig externe bestanden binnen (CSV, tab-gescheiden, spreadsheet-exports)Gegevens komen alleen binnen via eigen formulieren of een geautomatiseerde synchronisatie
Gegevens exporterenGebruikers moeten gegevens overdragen naar Excel, een ander systeem of een collegaRapportage wordt volledig afgehandeld via geprinte uitvoer of lijsten op het scherm
Pagina-instellingEr vindt überhaupt wel printen plaatsDe applicatie is alleen voor schermgebruik
Record afdrukkenGebruikers printen het record dat momenteel op het scherm staatPrinten is altijd een gevonden set of een rapport
Gevonden set afdrukkenGebruikers werken met queryresultaten en hebben deze op papier nodigPrinten is altijd een enkel record
OverJe wilt dat versie- en ondersteuningsinformatie met één klik bereikbaar isDe applicatie is intern en versiebeheer wordt elders afgehandeld
AfsluitenAltijd — gebruikers hebben een schone uitgang nodig die opruimcode kan uitvoerenLaat dit nooit weg; een ontbrekende Afsluiten-optie dwingt het sluiten van vensters op OS-niveau af

Het item Afsluiten verdient speciale vermelding. In 4D kan Afsluiten worden gekoppeld aan een methode die een ordelijke afsluiting uitvoert — het sluiten van vensters, het commiten of annuleren van transacties, het vrijgeven van locks, het schrijven van een sessielogboek. Als je Afsluiten uit het menu weglaat, zullen gebruikers in plaats daarvan het applicatievenster sluiten en wordt je opruimmethode nooit uitgevoerd. Dat is een risico voor de data-integriteit, niet een cosmetisch risico.

Evenzo is Over meer dan ijdelheid. Een goed gebouwd Over-item kan de applicatieversie, de 4D-engineversie, het huidige pad van het gegevensbestand en een supportcontact weergeven. Wanneer een gebruiker om hulp belt, lost “klik op Over en lees me de eerste drie regels voor” een verrassend aantal supporttickets op voordat ze escaleren.

Sneltoetsen en de methodeverbinding

Naast de naam zijn er twee eigenschappen aan elk menu-item gekoppeld: een sneltoets en een methode.

Sneltoetsen volgen de desktopconventies zo nauw dat gebruikers ze zullen raden. De conventionele koppelingen zijn Command-Q (macOS) of de gelijkwaardige platform-accelerator voor Afsluiten, en Command-P voor printen. Wanneer je sneltoetsen toewijst, controleer dan op botsingen — twee menu-items die dezelfde accelerator delen, betekent dat één van hen stilletjes nooit wordt geactiveerd, en de gebruiker zal melden dat “het menu-item niets doet”.

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

Methoden zijn het 4D-equivalent van FileMaker-scripts, en zij zorgen ervoor dat een menu-item iets doet. Een menu-item zonder methode is inert: het verschijnt, het wordt gemarkeerd, maar klikken levert niets op. Dit is het meest voorkomende defect in een eerste aangepaste menubalk. Voordat je het Bestandsmenu als voltooid beschouwt, loop je elk item na en bevestig je dat er ofwel een methode aan is gekoppeld, of een bewuste reden is waarom het decoratief is.

De arbeidsverdeling is simpelweg als volgt:

  • Menu-items regelen de ontdekking en aanroeping.
  • Methoden regelen de logica, validatie, foutafhandeling en gebruikersfeedback.
  • Formulieren en lijstvakken regelen de feitelijke gegevenspresentatie.

Het gescheiden houden van deze lagen is wat een 4D-applicatie onderhoudbaar maakt. Een menu-item waarvan de methode een enkele regel is die een goed benoemde projectmethode aanroept, is veel gemakkelijker te debuggen dan een item waarvan de methode vijftig regels inline-logica bevat.

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

Methoden worden in een later deel van deze serie behandeld; voor nu is het belangrijkste om de ‘hook’ op zijn plaats te laten. Door het menu-item vroegtijdig toe te voegen en een stub-methode te koppelen, kun je de echte logica later implementeren zonder de Menu Bar Editor opnieuw te hoeven bezoeken.

Veelgemaakte fouten en hoe ze te vermijden

  • Het menu bouwen vóór het datamodel. Menu-items impliceren mogelijkheden. Als je “Gegevens exporteren” toevoegt voordat je hebt besloten welke tabellen en velden exporteerbaar zijn, lever je ofwel een halfwerkende export op of moet je het menu later herschrijven.
  • De scheidingslijnen vergeten. Zonder scheidingslijnen leest een Bestandsmenu met acht vermeldingen als een ongedifferentieerde lijst. De visuele groepering is wat de structuur leesbaar maakt.
  • Ervan uitgaan dat je later kunt hernoemen. Dat kan niet. Bepaal de labels — inclusief hoofdlettergebruik en meervoudsvormen — voordat je op ‘Item toevoegen’ klikt.
  • Afsluiten niet aansluiten. Zoals vermeld, duwt dit gebruikers naar het sluiten van vensters en wordt je opruimlogica overgeslagen.
  • FileMaker-conventies integraal kopiëren. De menubalk van 4D is flexibeler dan die van FileMaker, dus het exact kopiëren van het FileMaker Bestandsmenu verspilt het voordeel van het platform. Ontwerp voor je gebruikers, niet voor een ander product.

Waar dit in de serie past

Deze sectie behandelt specifiek het Bestandsmenu. De omliggende delen van de serie behandelen hoe 4D-menu’s zich verhouden tot FileMaker-menu’s, hoe je een aangepaste menubalk vanaf nul bouwt en hoe je het Records-menu afhandelt — waar gevonden sets, recordnavigatie en verwijdering staan. Samen vormen ze een compleet beeld van de menulaag.

Als je je eerste 4D-applicatie bouwt, is een redelijke volgorde van bewerkingen: definieer je tabellen, bouw je formulieren en ontwerp als laatste de menubalk, zodra je weet welke bewerkingen gebruikers daadwerkelijk nodig hebben. Het menu is de kaart; deze moet worden getekend nadat je het terrein kent.

Veelgestelde vragen

Waarom kan ik een menubalk of een menu-item in 4D niet hernoemen?

Menubalken krijgen permanent de naam Menu Bar #1, Menu Bar #2, enzovoort, en de labels van menu-items worden vastgelegd op het moment van aanmaak. Dit is een opzettelijke beperking in de Menu Bar Editor en geen bug. De praktische oplossing is om uw eigen mappingdocument bij te houden — een eenvoudige lijst waarin elke genummerde menubalk wordt gekoppeld aan het doel ervan — en om de itemnamen te controleren voordat u op Add Item klikt, aangezien de enige manier om correcties aan te brengen het verwijderen en opnieuw aanmaken is.

Heb ik een methode nodig die aan elk menu-item is gekoppeld?

Functioneel gezien ja, als u wilt dat het item iets doet. Een menu-item zonder methode verschijnt in het menu en kan worden geselecteerd, maar er gebeurt niets. De uitzondering vormen scheidingslijnen, die structureel zijn in plaats van actiegericht. Voor items waarvan de logica nog niet is geschreven, koppelt u een stub-methode die een placeholder-bericht weergeeft, zodat het item tenminste eerlijk is over de status ervan.

Moet het menu Bestand in elke toepassing Importeren en Exporteren bevatten?

Nee. Neem ze op wanneer gebruikers daadwerkelijk gegevens in en uit het systeem verplaatsen — bijvoorbeeld bij het ontvangen van spreadsheet-exports van een partner of het overhandigen van queryresultaten aan een analist.

Als alle gegevens via uw eigen formulieren worden ingevoerd en alle uitvoer wordt afgedrukt of op het scherm wordt bekeken, voegen Import en Export complexiteit toe zonder waarde toe te voegen. Beslis op basis van de waargenomen workflow, niet op basis van wat andere applicaties doen.

Hoe verplaats ik een menu-item naar beneden in de lijst?

U kunt een item niet rechtstreeks naar beneden slepen. De Menu Bar Editor staat alleen toe dat items naar boven worden gesleept. Om een item naar beneden te verplaatsen, sleept u de items erboven naar boven langs het betreffende item, waardoor dit effectief naar beneden verschuift. Omdat scheidingslijnen ook items zijn, volgen zij dezelfde regel. Dit is het gemakkelijkst te beheren als u items toevoegt in de beoogde definitieve volgorde en daarna slechts kleine correcties aanbrengt.

Wat is het verschil tussen “Print Record” en “Print Found Set”?

“Print Record” print het enkele record dat momenteel wordt weergegeven, wat geschikt is voor uitvoer in formulierstijl, zoals een factuur of een klantprofiel. “Print Found Set” print elk record in de huidige selectie, wat geschikt is voor uitvoer in lijststijl, zoals een gefilterd rapport. Veel applicaties bevatten beide, omdat gebruikers tussen deze twee modi wisselen afhankelijk van of ze één item of een batch beoordelen.

Kan een menu-item opschooncode uitvoeren wanneer de gebruiker afsluit?

Ja — dit is een van de sterkste redenen om een Quit-item op te nemen in plaats van erop te vertrouwen dat gebruikers het applicatievenster sluiten. Koppel een methode aan Quit die openstaande transacties commit of annuleert, recordvergrendelingen opheft, vensters in de juiste volgorde sluit en optioneel een sessielogboek schrijft. Als Quit afwezig is in het menu, wordt die methode nooit uitgevoerd en wordt de applicatie afgesloten in de staat waarin de gebruiker deze heeft achtergelaten.

Veelgestelde vragen

Waarom kan ik de naam van een menubalk of menu-item in 4D niet wijzigen?

Menubalken heten permanent Menubalk 1, Menubalk 2, enzovoort, en de labels van menu-items worden vastgesteld op het moment dat ze worden gemaakt. Dit is eerder een opzettelijke beperking in de Menubalk-editor dan een bug. De praktische oplossing is om uw eigen kaartdocument te behouden (een eenvoudige lijst waarin elke genummerde menubalk aan het doel ervan wordt gekoppeld) en om de itemnamen te proeflezen voordat u op Item toevoegen klikt, aangezien het enige correctiepad verwijderen en opnieuw maken is.

Moet ik aan elk menu-item een ​​methode koppelen?

Functioneel, ja, als je wilt dat het item iets doet. Een menu-item zonder methode verschijnt in het menu en kan worden geselecteerd, maar er gebeurt niets. De uitzondering vormen de scheidslijnen, die eerder structureel dan uitvoerbaar zijn. Voor items waarvan de logica nog niet is geschreven, voegt u een stub-methode toe die een plaatsaanduidingsbericht weergeeft, zodat het item op zijn minst eerlijk is over de staat ervan.

Moet het menu Bestand in elke toepassing Import en Export bevatten?

Nee. Neem ze op wanneer gebruikers daadwerkelijk gegevens in en uit het systeem verplaatsen, bijvoorbeeld wanneer ze spreadsheet-exports van een partner ontvangen of de resultaten van zoekopdrachten aan een analist overhandigen. Als alle gegevens via uw eigen formulieren worden ingevoerd en alle uitvoer wordt afgedrukt of op het scherm wordt bekeken, voegt Import en Export oppervlakte toe zonder waarde toe te voegen. Beslis op basis van de waargenomen workflow, niet op basis van wat andere applicaties doen.

Hoe verplaats ik een menu-item naar beneden in de lijst?

U kunt een item niet rechtstreeks naar beneden slepen. Met de Menubalk-editor kunt u alleen items naar boven slepen. Om een ​​item naar beneden te verplaatsen, sleept u de items erboven naar boven, waardoor het item feitelijk naar beneden wordt verschoven. Omdat scheidingslijnen ook items zijn, volgen ze dezelfde regel. Dit is het gemakkelijkst te beheren als u artikelen toevoegt aan uw beoogde definitieve bestelling en daarna slechts kleine correcties aanbrengt.

Wat is het verschil tussen 'Print Record' en 'Print Gevonden Set'?

'Record afdrukken' drukt het enkele record af dat momenteel wordt weergegeven, wat geschikt is voor uitvoer in formulierstijl, zoals een factuur of een klantprofiel. Met 'Print Gevonden Set' wordt elk record in de huidige selectie afgedrukt, wat geschikt is voor uitvoer in lijststijl, zoals een gefilterd rapport. Veel toepassingen bevatten beide, omdat gebruikers tussen de twee modi wisselen, afhankelijk van of ze één item of een batch beoordelen.

Kan een menu-item opschooncode uitvoeren wanneer de gebruiker afsluit?

Ja, dit is een van de sterkste redenen om een ​​Quit-item op te nemen in plaats van erop te vertrouwen dat gebruikers het toepassingsvenster sluiten. Voeg aan Quit een methode toe die open transacties vastlegt of annuleert, recordvergrendelingen opheft, vensters op volgorde sluit en optioneel een sessielogboek schrijft. Als Quit afwezig is in het menu, wordt die methode nooit uitgevoerd en wordt de toepassing afgesloten in de staat waarin de gebruiker deze heeft verlaten.


Probeer FileMaker 45 dagen gratis

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