Skip to main content
HPO Software

4th Dimension Learning Basics

This page is part of the 4th Dimension Learning Basics series, which walks developers through the 4D platform from first principles. The topic here is menus — specifically how the menu systems in FileMaker Pro (FMP) and 4D differ, and why that difference matters when you migrate a mental model from one tool to the other. Menus are one of the first things a new 4D developer notices, because 4D splits what FileMaker treats as a single surface into several distinct environments.

Key Takeaways

  • FileMaker Pro’s Browse mode presents one menu bar with one set of menus and menu items; 4D separates the User environment from the Custom Menus environment, and the two behave differently.
  • The 4D User environment is a developer testing space, not the place your end users normally live. Don’t design your production menu experience around it.
  • Foundation is a 4D Structure file preloaded with Methods and Forms you can copy and paste — a fast track once you understand the basics, not a replacement for them.
  • Menu design in 4D is a deliberate, structural decision. You decide what the user sees; you are not inheriting a fixed application menu bar the way you largely do in FileMaker.
  • Understanding the environment model first prevents the most common beginner mistake: building and testing menus in the wrong environment and then wondering why users see something different.

Why Menus Are the First Real Divergence

When you move from FileMaker Pro to 4D, the database concepts transfer reasonably well. Tables, fields, records, layouts, and forms all have recognizable counterparts. Menus are where the two platforms part company in a way that forces you to think differently about the application as a whole.

In FileMaker, the menu bar is essentially the application’s menu bar. You get File, Edit, View, Insert, Format, Records, Scripts, Window, and Help, and your job is mostly to suppress or augment what is already there. You are working against a fixed frame.

In 4D, the menu bar is something you construct. The platform gives you environments, and each environment can present its own menu bar. That means the menu is not a given — it is an artifact of your design. This is more work up front and considerably more control later, which is exactly the trade-off that defines 4D as a development platform rather than a template-driven tool.

FMP Browse Mode Menus

In the FMP Browse mode there is only one Menu Bar and set of Menus and Menu Items. That single bar serves the whole browsing experience. Figure 2 in the original material shows the FMP menu bar with the “File” and “Edit” menus visible.

The practical consequence is simplicity. A FileMaker developer learning the platform does not have to ask “which menu bar am I looking at?” There is one. Customization happens by removing items you don’t want users to reach and adding script triggers behind the ones you keep.

This is genuinely convenient, and it is worth acknowledging rather than dismissing. For small single-purpose solutions, the FileMaker model gets you to a usable interface faster. The cost is that you are always negotiating with a menu bar that was designed for a general-purpose application, not for your specific business app.

4D User Environment Menus

In 4D there is a standard User Environment Menu Bar. The critical thing to internalize is this: the User environment is not normally where users will be. The User environment is where the developer tests what has been developed. Normally the end user will never see the User environment.

Figure 3 in the original material shows the 4D User menu bar and its menus.

Think of the User environment as a workshop, not a showroom. It gives you a predictable, standard menu set so you can navigate your structure, run methods, inspect data, and verify behavior during development. Because it is standardized, it is stable — you can rely on it not changing underneath you while you work.

The beginner trap is subtle and common: you build a form, test it in the User environment, everything works, and you ship. Then a user opens the application in the deployed custom environment and the menus are different, some items are missing, and a workflow that depended on a menu item you were using during testing simply isn’t there. The fix is not technical — it is to test in the environment your users will actually use.

How to decide where to test

  • During structural development — work in the User environment. It is fast and predictable.
  • Before any release — walk through every user-facing workflow in the deployed custom menu environment, not the User environment.
  • When a menu item “disappears” — first check which environment you are in before debugging the menu definition itself.

4D Foundation Default Custom Menus Environment

Foundation is a shell. It is a 4D Structure file that has a multitude of Methods and Forms defined for you. You can just copy and paste these Methods and Forms. Once you’ve mastered the 4D basics, Foundation provides a fast track for getting your program developed.

Figure 4 in the original material shows the Foundation default custom menu bar and its menus.

Foundation is best understood as a reference implementation and a parts bin rather than a framework you adopt wholesale. The value is in the concrete, working examples: you can see how a custom menu bar is actually assembled, how menu items are wired to methods, and how the pieces fit together in a real structure file. Copying a working menu and modifying it teaches you the model faster than reading about it.

Two caveats worth stating plainly:

  • Copy-paste carries baggage. Methods and Forms pulled from Foundation may reference other objects, tables, or naming conventions that don’t exist in your structure. Expect to trace dependencies rather than assume a clean drop-in.
  • Foundation reflects its era. It was built to demonstrate 4D concepts, and its conventions may not match modern 4D practice. Treat it as a teaching aid and a source of patterns, not as a style guide.

Comparing the Three Menu Contexts

The clearest way to hold these three environments in your head is side by side.

ContextWho uses itMenu bar behaviorPrimary purpose
FMP Browse modeEnd userOne fixed menu bar and item setRun the solution as delivered
4D User environmentDeveloperStandard, predictable menu barTest and inspect during development
4D Custom Menus environmentEnd userMenu bar you defineDeliver the production experience
4D FoundationDeveloper (learning)Prebuilt default custom menusLearn patterns; copy Methods and Forms

The row that matters most for a new 4D developer is the third one. Everything in the FMP column collapses into a single surface; in 4D it splits into a developer surface and a user surface, and you own the user surface entirely.

Practical Guidance for Menu Design in 4D

Because you are building the menu rather than inheriting it, a few decisions come up early and are worth making deliberately.

Start from the user’s task list, not from the standard menu names. FileMaker trains you to think in terms of File, Edit, Records. In 4D you are free to organize around what your users actually do — “Orders,” “Customers,” “Reports” — and that is usually a better menu than a generic one.

Decide what belongs in a menu versus on a form. Menu items are global and always reachable; buttons on a form are contextual. A destructive action like “Delete All Records” is safer on a form where you can gate it, not in a menu where a stray click reaches it from anywhere.

Keep the developer surface and the user surface mentally separate. The User environment’s standard menu bar is a tool. Do not let its convenience leak into your design decisions about the production menu.

Use Foundation to learn the wiring, then build your own. The fastest path is to copy one Foundation menu, understand every connection in it, and then rebuild it from scratch for your application. The rebuild is where the learning sticks.

Test in the target environment before every release. This single habit prevents the most common class of “it worked for me” menu bugs.

Where This Fits in the Learning Path

This page sits early in the series, in the section comparing standard menus between FMP and 4D. The natural next steps are the detailed menu comparisons that follow — File menu comparisons, File menu suggestions, other menu comparisons, Records menu suggestions, and the custom splash screen. Each of those takes one slice of the menu surface and works through the specifics.

The reason the environment model comes first is that every later menu decision depends on it. If you don’t know which environment you are designing for, the specific menu-item advice that follows has no anchor. Get the environments straight, and the rest of the menu material reads as a set of concrete choices rather than a list of facts.

For broader background on the platform itself, the Wikipedia article on 4th Dimension provides useful context on its history and positioning, and the FileMaker article covers the platform this comparison is drawn against. For general principles that apply across both tools, the Nielsen Norman Group publishes widely respected research on menu design and navigation, and the W3C maintains accessibility guidance that is worth consulting when you decide how users will reach core functions.

Frequently Asked Questions

Why does 4D have a separate User environment if users never see it?

The User environment exists so developers have a stable, standardized place to test and inspect their work. Because its menu bar is fixed, it doesn’t shift underneath you while you’re developing. The end user normally works in a custom environment where you control the menu bar. Keeping the two separate means your testing surface and your delivery surface can each be optimized for their different purposes.

Is the 4D User environment menu bar customizable?

It is a standard menu bar provided by the platform, and the intent is that it stays standard so it remains a reliable development surface. Your customization effort belongs in the custom menus environment that your users will actually see. Treat the User environment menu bar as a tool you use, not a deliverable you design.

What exactly is Foundation, and should I build my app on it?

Foundation is a 4D Structure file — a shell — containing a large number of prebuilt Methods and Forms that you can copy and paste into your own work. It is a fast track once you have the 4D basics down. It is best used as a source of working examples and patterns rather than as a foundation you adopt wholesale, because copied objects may carry dependencies and conventions that don’t fit your structure.

Why did my menu item work during testing but not for the user?

Almost always because you tested in the User environment and the user is running in a custom menu environment. The two have different menu bars, so an item available to you during development may not exist in the deployed menu. Before debugging the menu definition, confirm which environment you are in.

Do I need to rebuild the FileMaker menu structure in 4D?

No, and you generally shouldn’t. FileMaker’s File/Edit/Records organization exists because FileMaker presents a general-purpose application menu bar. In 4D you are constructing the menu, so you can organize it around your users’ actual tasks instead of mirroring a generic structure. Use the FileMaker layout as a reference point for what functions you need, not as a template for how to arrange them.

How much of menu design should happen before I build forms?

Enough to know what is global and what is contextual. Decide early which actions belong in the menu — reachable from anywhere — and which belong on forms where they can be gated by context. Getting that split right early saves rework later, because moving an action between menu and form after the fact touches both the menu definition and every form that referenced it.

Frequently asked questions

Why does 4D have a separate User environment if users never see it?

The User environment exists so developers have a stable, standardized place to test and inspect their work. Because its menu bar is fixed, it doesn't shift underneath you while you're developing. The end user normally works in a custom environment where you control the menu bar. Keeping the two separate means your testing surface and your delivery surface can each be optimized for their different purposes.

Is the 4D User environment menu bar customizable?

It is a standard menu bar provided by the platform, and the intent is that it stays standard so it remains a reliable development surface. Your customization effort belongs in the custom menus environment that your users will actually see. Treat the User environment menu bar as a tool you use, not a deliverable you design.

What exactly is Foundation, and should I build my app on it?

Foundation is a 4D Structure file — a shell — containing a large number of prebuilt Methods and Forms that you can copy and paste into your own work. It is a fast track once you have the 4D basics down. It is best used as a source of working examples and patterns rather than as a foundation you adopt wholesale, because copied objects may carry dependencies and conventions that don't fit your structure.

Why did my menu item work during testing but not for the user?

Almost always because you tested in the User environment and the user is running in a custom menu environment. The two have different menu bars, so an item available to you during development may not exist in the deployed menu. Before debugging the menu definition, confirm which environment you are in.

Do I need to rebuild the FileMaker menu structure in 4D?

No, and you generally shouldn't. FileMaker's File/Edit/Records organization exists because FileMaker presents a general-purpose application menu bar. In 4D you are constructing the menu, so you can organize it around your users' actual tasks instead of mirroring a generic structure. Use the FileMaker layout as a reference point for what functions you need, not as a template for how to arrange them.

How much of menu design should happen before I build forms?

Enough to know what is global and what is contextual. Decide early which actions belong in the menu — reachable from anywhere — and which belong on forms where they can be gated by context. Getting that split right early saves rework later, because moving an action between menu and form after the fact touches both the menu definition and every form that referenced it.


More on 4D (4th Dimension) database & low code app development tutorials

Browse our latest guides and reviews.

Read more →