Grunderna i lärande i fjärde dimensionen
Menyn Arkiv är det första en användare rör i en anpassad 4D-applikation, och det är också den meny som med största sannolikhet lämnas i sitt standardläge av utvecklare som är ivriga att gå vidare till formulär och metoder. Det är ett misstag.
Menyn Arkiv är där din applikation deklarerar vad den är till för — oavsett om det är ett verktyg för datainmatning, ett rapporteringsverktyg eller en allmän affärsapplikation. Att göra rätt tidigt sparar omarbetning senare, eftersom menyalternativ är kopplade till metoder och metoder är kopplade till din tabellstruktur.
Det här avsnittet går igenom den rekommenderade Arkiv-menyn för en anpassad 4D-menyrad, hur man bygger den i menyradsredigeraren och de praktiska begränsningarna du kommer att stöta på längs vägen.
Viktiga lärdomar
- En väldesignad anpassad Arkiv-meny innehåller vanligtvis fyra logiska grupper: dataförflyttning (Importera/Exportera), utskrift (Sidinställningar, Skriv ut post, Skriv ut hittat set), programidentitet (Om) och avsluta (Avsluta).
- Menyrader i 4D heter permanent
Menu Bar #1,Menu Bar #2och så vidare — du kan inte byta namn på dem, så dokumentera vilken rad som tjänar vilket syfte. - Skiljelinjer skapas som menyalternativ i sig själva med hjälp av alternativet Linje; de är inte en separat egenskap.
- Menyalternativens namn är fasta när de väl har skapats. Du kan ta bort och återskapa ett objekt, men du kan inte redigera dess etikett på plats.
- Omordning är asymmetrisk: du kan dra objekt uppåt fritt, men för att flytta ett objekt nedåt måste du dra andra objekt ovanför det.
- Kortkommandon och bifogade metoder konfigureras per menyalternativ, och metoderna är bryggan mellan menyn och din applikationslogik.
Varför Arkiv-menyn förtjänar en genomtänkt design
I FileMaker Pro är Arkiv-menyn till stor del fixerad — du får vad plattformen ger dig, och anpassning sker på nivån för skript och knappar snarare än själva menyraden. 4D inverterar det förhållandet. Menyraden är ett förstklassigt designobjekt, redigerat i designläge genom Menyradsredigeraren, och varje objekt i den kan ha sitt eget kortkommando och sin egen metod.
Den makten kommer med ansvar. En anpassad Arkiv-meny som speglar FileMaker-layouten av vana kommer att kännas fel för 4D-användare, medan en Arkiv-meny som utelämnar utskrift helt kommer att frustrera alla som förväntar sig standardbeteende på skrivbordet. Målet är en meny som är igenkännbar — den gör vad en Arkiv-meny förväntas göra — samtidigt som den är specifik för din applikations arbetsflöde.
Den rekommenderade strukturen för denna serie är medvetet liten:
Relaterat: — Ett enkelt kalkylarksgränssnitt som sitter ovanpå en riktig relationsdatabas, med automatiseringar, vyer och delbara gränssnitt..
Arkiv
Importera data
Exportera data
Sidinställningar
Skriv ut post
Skriv ut hittat set
Om A
Avsluta Q
Varje grupp svarar på en olika användarfråga. Den första gruppen svarar på “hur får jag in och ut data?”. Den andra svarar på “hur får jag det här på papper?”. Den tredje svarar på “vad är det jag kör?”. Den fjärde svarar på “hur avslutar jag?”. Det är en sammanhängande mental modell som användare navigerar i utan instruktioner.
Bygga Arkiv-menyn i menyradsredigeraren
Mekaniken är okomplicerad men full av små fällor. Från Designläge, öppna Verktyg-menyn och välj Menyradsredigerare. Du kommer att se ett fönster “Lista över menyrader” till vänster och ett fönster “Aktuell menyrad” till höger.
- I fönstret “Lista över menyrader”, klicka på Menu Bar #1. Observera att namn på menyrader inte är redigerbara – de är alltid
Menu Bar #1,Menu Bar #2och så vidare. Om du underhåller flera rader (till exempel en för datainmatning och en för rapportering), för separata anteckningar som mappar varje numrerad rad till dess syfte. Det här är ett av de få ställena i 4D där du måste underhålla extern dokumentation för att behålla förståndet. - I fönstret “Aktuell menyrad”, klicka på menyn Arkiv för att välja den som mål.
- Klicka på Lägg till objekt för att lägga till en ny post och skriv sedan dess namn.
- För att infoga en avdelare, lägg till ett annat objekt och välj alternativet Linje istället för att skriva ett namn.
- Upprepa tills menyn matchar din avsedda struktur.
De begränsningar du faktiskt kommer att stöta på
- Namnen är oföränderliga. När ett menyalternativ väl har skapats kan du inte byta namn på det. Om du råkar skriva “Exprot Data” istället för “Exportera data”, är din enda lösning att ta bort objektet och skapa ett nytt — vilket också innebär att du måste koppla om alla metoder och kortkommandon som du redan konfigurerat. Skriv noggrant första gången.
- Drag-and-drop är i praktiken enkelriktad. Du kan dra objekt uppåt fritt. För att flytta ett objekt nedåt måste du dra objekten ovanför det uppåt förbi det. Planera din ordning innan du börjar lägga till, eller acceptera en del omflyttning.
- Avdelare räknas som objekt. En avdelare upptar en plats i ordningen, så den följer samma regler för flytt som ett namngivet objekt. Infoga avdelare efter att du har fått de namngivna objekten i ungefär rätt ordning.
Figur 8 i den ursprungliga genomgången visar arbetsflödet för “Lägg till objekt” i Arkiv-menyn, och Figur 9 visar den resulterande anpassade Arkiv-menyn som användaren ser vid körning. Det är värt att förhandsgranska menyn efter varje grupp av tillägg snarare än att bygga hela saken i blindo.
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..
Att välja vad som hör till — och vad som inte gör det
Frestelsen med en anpassningsbar menyrad är att visa allt. Motstå det. Varje objekt du lägger till är ett löfte om att funktionen fungerar, är upptäckbar och har ett vettigt kortkommando. En kort Arkiv-meny som är helt kopplad slår en lång med döda poster.
En användbar ram för beslut:
| Kandidatobjekt | Inkludera när… | Överväg att utelämna när… |
|---|---|---|
| Importera data | Användare tar regelbundet in externa filer (CSV, tabbavgränsad, kalkylbladsexport) | Data kommer endast via dina egna formulär eller en automatisk synkronisering |
| Exportera data | Användare behöver lämna över data till Excel, ett annat system eller en kollega | Rapportering hanteras helt av utskrifter eller listor på skärmen |
| Sidinställningar | All utskrift överhuvudtaget förekommer | Applikationen är endast för skärm |
| Skriv ut post | Användare skriver ut posten som för närvarande visas på skärmen | Utskrift är alltid en hittad uppsättning eller en rapport |
| Skriv ut hittad uppsättning | Användare arbetar med frågeresultat och behöver dem på papper | Utskrift är alltid av enstaka poster |
| Om | Du vill ha versions- och supportinformation tillgänglig med ett klick | Applikationen är intern och versionshantering hanteras på annat håll |
| Avsluta | Alltid — användare behöver en ren utgång som kan köra rensningskod | Utelämna aldrig detta; en saknad Avsluta-knapp tvingar fram stängning av fönster på OS-nivå |
Objektet Avsluta förtjänar särskilt omnämnande. I 4D kan Avsluta kopplas till en metod som utför en ordnad avstängning — stänga fönster, bekräfta eller avbryta transaktioner, släppa lås, skriva en sessionslogg. Om du utelämnar Avsluta från menyn kommer användarna att stänga programfönstret istället, och din rensningsmetod körs aldrig. Det är en risk för dataintegriteten, inte en kosmetisk sådan.
På samma sätt är Om mer än bara fåfänga. Ett välbyggt Om-objekt kan visa applikationsversionen, 4D-motorns version, den aktuella datafilens sökväg och en supportkontakt. När en användare ringer för att få hjälp, löser “klicka på Om och läs upp de tre första raderna för mig” ett överraskande antal supportärenden innan de eskalerar.
Kortkommandon och kopplingen till metoder
Två egenskaper är kopplade till varje menyalternativ utöver dess namn: ett kortkommando och en metod.
Kortkommandon följer skrivbordskonventionerna tillräckligt noga för att användarna ska kunna gissa dem. De konventionella paren är Command-Q (macOS) eller motsvarande plattformsaccelerator för Avsluta, och Command-P för utskrift. När du tilldelar genvägar, leta efter kollisioner — om två menyalternativ delar en accelerator innebär det att ett av dem tyst aldrig aktiveras, och användaren kommer att rapportera det som att “menyalternativet gör ingenting”.
Metoder är 4D-motsvarigheten till FileMaker-skript, och det är de som får ett menyalternativ att göra något. Ett menyalternativ utan metod är inert: det visas, det markeras, men att klicka på det åstadkommer ingenting. Detta är den enskilt vanligaste defekten i en första anpassad menyrad. Innan du anser att Arkiv-menyn är färdig, gå igenom varje objekt och bekräfta att det antingen har en bifogad metod eller en avsiktlig anledning till att vara dekorativt.
Arbetsfördelningen är värd att klargöra:
- Menyalternativ hanterar upptäckt och anrop.
- Metoder hanterar logik, validering, felhantering och användarfeedback.
- Formulär och listrutor hanterar själva datapresentationen.
Att hålla dessa lager åtskilda är det som gör en 4D-applikation underhållbar. Ett menyalternativ vars metod är en enda rad som anropar en väl namngiven projektmetod är mycket lättare att felsöka än ett vars metod innehåller femtio rader inline-logik.
Metoder behandlas i en senare del av denna serie; för nu är det viktigaste att lämna kroken på plats. Att lägga till menyalternativet och bifoga en stubbmetod tidigt innebär att du kan koppla den verkliga logiken senare utan att behöva återvända till menyradsredigeraren.
Vanliga misstag och hur man undviker dem
- Att bygga menyn före datamodellen. Menyalternativ antyder kapacitet. Om du lägger till “Exportera data” innan du har bestämt vilka tabeller och fält som är exporterbara, kommer du antingen att leverera en halvfärdig exportfunktion eller behöva skriva om menyn senare.
- Att glömma avdelarobjekten. Utan avdelare uppfattas en Arkiv-meny med åtta poster som en odifferentierad lista. Den visuella grupperingen är det som gör strukturen läsbar.
- Att anta att man kan byta namn senare. Det kan man inte. Bestäm etiketter — inklusive versaler och pluralisering — innan du klickar på Lägg till objekt.
- Att lämna Avsluta okopplad. Som nämnts driver detta användare mot att stänga fönstret, vilket hoppar över din rensningslogik.
- Att kopiera FileMaker-konventioner rakt av. 4D:s menyrad är mer flexibel än FileMakers, så att kopiera FileMakers Arkiv-meny exakt slösar bort plattformens fördelar. Designa för dina användare, inte för en annan produkt.
Var detta passar in i serien
Det här avsnittet täcker specifikt Arkiv-menyn. De omgivande delarna av serien tar upp hur 4D-menyer jämförs med FileMaker-menyer, hur man bygger en anpassad menyrad från grunden och hur man hanterar Post-menyn — där hittade uppsättningar, postnavigering och radering finns. Tillsammans bildar de en helhetsbild av menylagret.
Om du bygger din första 4D-applikation är en rimlig ordningsföljd: definiera dina tabeller, skapa dina formulär och designa sedan menyraden sist, när du vet vilka operationer användarna faktiskt behöver. Menyn är kartan; den bör ritas efter att du känner till territoriet.
Vanliga frågor
Varför kan jag inte byta namn på en menyrad eller ett menyalternativ i 4D?
Menyrader heter permanent Menu Bar #1, Menu Bar #2 och så vidare, och etiketter för menyalternativ är fixerade vid skapandet. Detta är en avsiktlig begränsning i Menu Bar Editor snarare än en bugg. Den praktiska lösningen är att föra ett eget mappningsdokument – en enkel lista som parar ihop varje numrerad menyrad med dess syfte – och att korrekturläsa objektnamn innan du klickar på Add Item, eftersom den enda vägen att korrigera är att radera och återskapa.
Behöver jag en metod kopplad till varje menyalternativ?
Funktionellt sett ja, om du vill att alternativet ska göra något. Ett menyalternativ utan metod visas i menyn och kan väljas, men ingenting händer. Undantaget är skiljelinjer, som är strukturella snarare än interaktiva. För objekt vars logik ännu inte är skriven, bifoga en stub-metod som visar ett platshållarmeddelande, så att objektet åtminstone är ärligt om sitt tillstånd.
Ska Arkiv-menyn innehålla Import och Export i alla applikationer?
Nej. Inkludera dem när användare faktiskt flyttar data in och ut ur systemet – till exempel tar emot kalkylbladsexporter från en partner eller lämnar över frågeresultat till en analytiker. Om all data kommer in via dina egna formulär och all utdata skrivs ut eller visas på skärmen, lägger Import och Export till komplexitet utan att tillföra värde. Besluta baserat på observerat arbetsflöde, inte på vad andra applikationer gör.
Hur flyttar jag ett menyalternativ nedåt i listan?
Du kan inte dra ett objekt nedåt direkt. Menu Bar Editor låter dig bara dra objekt uppåt. För att flytta ett objekt nedåt, dra objekten ovanför det uppåt förbi det, vilket effektivt flyttar det lägre. Eftersom skiljelinjer också är objekt följer de samma regel. Detta är lättast att hantera om du lägger till objekt i din avsedda slutordning och bara gör små korrigeringar efteråt.
Vad är skillnaden mellan “Print Record” och “Print Found Set”?
“Print Record” skriver ut den enstaka post som för närvarande visas, vilket passar utdata i formulärstil, till exempel en faktura eller en kundprofil. “Print Found Set” skriver ut varje post i det aktuella urvalet, vilket passar liststil, som en filtrerad rapport. Många applikationer inkluderar båda, eftersom användare växlar mellan de två lägena beroende på om de granskar ett enskilt objekt eller en batch.
Kan ett menyalternativ köra rensningskod när användaren avslutar?
Ja — detta är en av de starkaste anledningarna till att inkludera ett Quit-alternativ istället för att förlita sig på att användare stänger programfönstret. Bifoga en metod till Quit som bekräftar eller avbryter öppna transaktioner, släpper postlås, stänger fönster i ordning och valfritt skriver en sessionslogg. Om Quit saknas i menyn körs den metoden aldrig, och applikationen stängs ner i det tillstånd som användaren lämnade den.
Vanliga frågor
Varför kan jag inte byta namn på en menyrad eller ett menyalternativ i 4D?
Menyrader heter permanent menyrad 1, menyrad 2 och så vidare, och menyalternativsetiketter är fasta vid skapandet. Detta är en avsiktlig begränsning i menyradsredigeraren snarare än en bugg. Den praktiska lösningen är att behålla ditt eget mappningsdokument – en enkel lista som parar ihop varje numrerad menyrad med dess syfte – och att korrekturläsa objektnamn innan du klickar på Lägg till objekt, eftersom den enda korrigeringsvägen är radera-och-återskapa.
Behöver jag en metod kopplad till varje menyalternativ?
Funktionellt, ja, om du vill att föremålet ska göra något. Ett menyalternativ utan metod visas i menyn och kan väljas, men ingenting händer. Undantaget är skiljelinjer, som är strukturella snarare än handlingsbara. För objekt vars logik ännu inte är skriven, bifoga en stubbmetod som visar ett platshållarmeddelande, så att objektet åtminstone är ärligt om dess tillstånd.
Ska menyn Arkiv inkludera Import och Export i alla program?
Nej. Inkludera dem när användare verkligen flyttar data in och ut ur systemet – till exempel tar emot kalkylbladsexporter från en partner eller lämnar frågeresultat till en analytiker. Om all data kommer in via dina egna formulär och all utdata skrivs ut eller visas på skärmen, lägger Import och Export till ytarea utan att tillföra värde. Besluta baserat på observerat arbetsflöde, inte på vad andra applikationer gör.
Hur flyttar jag ner ett menyalternativ i listan?
Du kan inte dra ett objekt nedåt direkt. Menyradsredigeraren låter dig bara dra objekt uppåt. För att flytta ett objekt nedåt, dra objekten ovanför det uppåt förbi det, vilket effektivt flyttar det lägre. Eftersom avdelare också är föremål följer de samma regel. Detta är lättast att hantera om du lägger till artiklar i din avsedda slutbeställning och bara gör små korrigeringar efteråt.
Vad är skillnaden mellan 'Print Record' och 'Print Found Set'?
"Skriv ut post" skriver ut den enskilda posten som för närvarande visas, som passar utdata i formulärstil som en faktura eller en kundprofil. 'Print Found Set' skriver ut varje post i det aktuella urvalet, vilket passar listformat som en filtrerad rapport. Många applikationer inkluderar båda, eftersom användare växlar mellan de två lägena beroende på om de granskar en artikel eller en batch.
Kan ett menyalternativ köra rensningskod när användaren avslutar?
Ja — detta är en av de starkaste anledningarna till att inkludera ett Avsluta-objekt istället för att förlita sig på att användare stänger programfönstret. Bifoga en metod till Quit som begår eller avbryter öppna transaktioner, släpper postlås, stänger fönster i ordning och eventuellt skriver en sessionslogg. Om Avsluta är frånvarande från menyn, körs den metoden aldrig, och applikationen stängs av i vilket tillstånd användaren lämnade det.
Prova FileMaker gratis i 45 dagar
Den långvariga relationsdatabasplattformen för team som behöver anpassade appar på skrivbordet, webben och mobilen från en enda fil.