The Philosophy of FileMaker - Part 1
4.7 (329 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
989 students enrolled

The Philosophy of FileMaker - Part 1

Intermediate FileMaker Pro 15 Scripting, Calculations, Relationships and Reporting
4.7 (329 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
989 students enrolled
Created by John Mark Osborne
Last updated 5/2017
Price: $19.99
30-Day Money-Back Guarantee
This course includes
  • 8.5 hours on-demand video
  • 9 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Design a multi-user solution
  • Identify and create one-to-many, many-to-one, one-to-one and many-to-many relationships
  • Create an Entity-Relationship diagram (ERD)
  • Design according to the principals of anchor-buoy relational design
  • Translate business systems from real-life to electronic using data modeling
  • Create portals, filtered portals and filtered relationships
  • Learn how to print properly in a multi-table environment
  • Work with columns, merge fields, labels and a variety of other print mediums
  • Create reports using sub summary parts and summary fields
  • Learn how to script complex automations with decision making intelligence
  • Create adaptive or dynamic scripts
  • Work with modular scripting
  • Capture errors and redirect programming with error analysis
  • Save and restore found sets for a better user experience
  • Compare and contrast different approaches to a problem in order to design better solutions
  • Validate and format a phone number for consistent data entry
  • Flag overdue or upcoming events
  • Understand record locking and script for multi-user solutions
  • Learn the differences and best uses for global fields, variables and parameters
Course content
Expand all 91 lectures 08:34:23
+ Introduction
5 lectures 11:15

Learn about John Mark Osborne's experience in the FileMaker market so you know you are being by an expert developer.

Preview 02:10

Find out how to greatly enhance your learning experience with this short video.

Preview 03:56

There are very many good reasons why an invoicing solution was chosen as the structure for this tutorial.

Preview 01:27

Reviewing the completed invoicing solution will help you understand the goal at all times and assist in the learning experience.

Preview 02:55

Work files assist you in the learning process by providing a supplementary files such as an import table, graphic or even the completed FileMaker for the current chapter.

Preview 00:47
+ Starting a Database
18 lectures 01:12:09

One of the most common mistakes is not planning your solution and programming yourself into a hole.

Preview 04:41

The first step to designing a database is creating a new FileMaker file or solution.

Preview 03:09

Housekeeping fields track the history of a record including creation and modification information.

Preview 03:43

Field types, naming conventions and general information about field creation is covered in this section.

Data Entry Field

Every table should have a primary key field to uniquely identify records, even if it is never used in a relationship.

Primary Key

There are three standard methods for adding fields to a layout and a fourth special technique.

Adding Field to the Layout

Organizing the fields in a grouping familiar to most people will help with the ease-of-use.

Arranging the Fields

Add a title naming the table and merge fields displaying the creation and modification information.

Title and Merge Fields

Efficiency in programming is key so let's see how the process of adding fields can be streamlined.

Shipping Fields

The size of your FileMaker window in comparison to the screen resolution is an often overlooked consideration in the development process.

Window Size

Since the Status Toolbar will eventually be hidden from the user, let's start by creating navigation buttons to move from record to record.

Navigation Buttons

Recreating the Status Toolbar allows you to regain valuable screen real estate.

Status Toolbar

A consistent row of buttons at the top of the window helps to define a good graphical interface.

Button Bar

Tab Control objects allow you to easily create a tabbed interface in order to optimize layout real estate.

Tab Control

Nobody needs to be a graphic designer with the built-in interface themes that come with FileMaker.

Choosing a Theme

Make objects grow or stay in a particular location of the layout when the window is resized.


Form and List view are the backbone of interface design in FileMaker.

List View

Using buttons with simple scripts, we can provide more natural navigation between form and list view.

Navigating between Layouts
+ Structural Relationships
18 lectures 01:27:10

Data modeling is the process of translating a real-life scenario into electronic format, aka a database.

Data Modeling

I'm not a big fan of defining relational rules, preferring to teach by example, but some people learn better with definitions.

Relational Theory

Entity-Relationships Diagrams (ERD) describe the structure of your database in graphical terms.

Entity-Relationship Diagrams

Let's add the three new tables along with their appropriate fields as defined by the ERD.

Creating Tables

Creating relationships is as simple as clicking and dragging your mouse.

Creating Relationships

The Anchor Buoy method of relationship design is by far the most popular amongst professional FileMaker developers.

Anchor Buoy

Layouts based on the anchor buoy relational design system will be created for each of the new tables.

Anchor Layouts

Let's review the changes that needed to be made on the duplicated layouts and add a few new changes.

Anchor Layouts 2

Populating a foreign key using a pop-up menu is the easiest method.

Populating a Foreign Key

Let's use a portal to interface with the many-to-many relationship.

Many-to-Many Relationship

A couple more features are required to allow the addition of products to the portal on the Invoices layout.

Adding Records to the Portal

While the portal works fine now, a little bit of polishing will make it even easier to use.

Finishing the Portal

Let's examine the Lines table more closely to see what is created when data is entered through the portal.

How the Join Works

Totalling a portal is as simple as adding a calculation with a single function.

Aggregating Portals

Relationships can move data both directions between related tables.

Two-Way Relationships

Context or Perspective are all important when analyzing relationships.

Start and End

Let's aggregate the portal that shows invoices from the customers perspective but there's a little twist this time.

Totaling from Customers

This script step drills down from the related information in a portal to the actual record it represents.

Go to Related Record
+ Table Occurrences
19 lectures 01:58:41

A table occurrence is how you create relationships in FileMaker.

What are Table Occurrences?

Table occurrences determine the context for relationships as well as many other features.

Where are Table Occurrences Used?

Determining which related data shows in a portal using a calculation formula is easy to do.

Basic Portal Filtering

Global fields allow you to add fields that act like interface instead of storage.

Global Fields

Global fields allow you to interact with a filtered portal to display the information you want at the moment.

Portal Filtering with Globals

Aggregate calculations add up the relationship and not the portal. This technique shows how to total a portal with a filter calculation.

Totaling Filtered Portals

The preferred method for totaling a filtered portal is via ExecuteSQL but it is quite a bit more complicated.

Totaling with ExecuteSQL

It's important to program your solutions so they work naturally in all scenarios for every user.

Complicated Filtered Portals

Adding additional global fields to filter the portal by date range complicates the programming but adds a level of sophistication for the user.

Filtered Portals with Multiple Globals

Since the filtered portal calculation was modified, the ExecuteSQL total calculation has to be updated.

Updating the SQL

Before there were Filtered Portals, there were Filtered Relationships. Both approaches have advantages so learn them well.

Filtered Relationships

Let's complicate the filtered relationship by adding the global date fields into the mix.

Complex Filtered Relationships

Comparing and contrasting different approaches to a problem will help you become a better developer.

Filtering Discussion

Joining a table to itself can provide excellent results. In this case, allowing us to see all customers related by company name.


Filtered relationships provide an excellent way to filter value lists.

Conditional Value Lists

Calculated value lists can often substitute for conditional value lists.

Calculated Value Lists

Calculated value lists can't always match the same level of complexity as conditional value lists.

Conditional Value Lists Revisited

Let's add a script to show all related customers and a calculation to count the number of related customers.

Scripts and Calculations

The relationship graph can quickly get out of control without good organizational techniques.

Organizing the Graph
+ Output
12 lectures 01:19:56

Data entry layouts should be designed specifically for on-screen and not dual purpose as a print layout as well.

Printing Philosophy

Let's start with a basic customer contact list to make sure the fundamentals are in place.

Customer List

The customer contact list is not very efficient in terms of page real estate or ease-of-use so let's improve it.

Improved Customer List

Labels may seem easy with the assistant but when they go wrong, these tips will help you perfect your labels.


Exporting data can be done by printing, creating a PDF or exporting.

Exporting Customers

FileMaker has a good word processor built-in so use it to create merge or form letters instead of a third party application.

Merge Letters

An analogy to marbles will help you understand reporting.


Building a sub-summarry report requires knowledge about relational design.

Building a Report

Let's delve deeper into report creation to show some of the more advanced abilities.

Sophisticated Reporting

Exporting a sub-summary report requires a couple of extra steps.

Exporting a Report

Creating a layout to print an invoice is more complicated than duplicating the data entry layout and removing the buttons, tabs and colors.

Printing an Invoice

Let's complete the task of creating the invoice layout!

Finishing the Invoice
+ Scripting
15 lectures 01:51:10

Scripting can be defined as automation, a macro and even a programming language.

Scripting Defined

A detailed discussion of the interface features in the Script Workspace.

Anatomy of the Workspace

This video identifies the script steps with the most depth and the also the ones you should avoid at all costs.

The Good, the Bad and the Ugly

Let's start our official discussion of scripting with simple but very useful scripts for sending email and opening a web site.

Send Mail and Open URL

Learn how to use the Set Variable script step to move information between two tables.

New Invoice from Customers

Learn how to use script parameters to create dynamic or adaptive scripts.

New Portal Row

Use script parameters to create a single script to perform finds by each letter of the alphabet.

Rolodex Find

Locating birthdays in the current month is a handy marketing tool.

Upcoming Birthdays

When duplicating a record, only the parent is duplicated. This script automates the process of duplicating the child records as well.

Duplicating Invoices

Batch printing invoices for your records is more efficient than printing them as each customer makes a purchase.

Batch Print Invoices

Electronically track your inventory with FileMaker calculations.

Inventory Control

Leveling inventory with script is more efficient than a calculation field.

Inventory Control Scripted

A script isn't complete till you've plugged all the holes and allowed for every possibility.

Leveling Once and Returns

Control how a sub-summary report displays from browse mode.

Sub-Summaries in Browse

Consistent, concise and meaningful naming conventions are also important for scripts.

Naming Conventions
+ FileMaker 16 Bonus
3 lectures 28:44

The Data Viewer has a whole new calculation dialog complete with a pane splitter and an auto-evaluate feature.

Revamped Data Viewer Calculation Dialog

The Layout Objects Window places all the objects from a layout in a palette, giving you even more control over your layouts.

Layout Objects Window

The new Window Cards feature will answer all your wishes for a new Show Custom Dialog feature.

Window Cards
+ Working with John Mark Osborne
1 lecture 05:18

Find out about training courses, consulting and solutions from Database Pros.

Preview 05:18
  • Students should be familiar with the basics of browse, find, layout and preview mode which can be achieved by taking any of the beginner courses also available on Udemy
  • Students do not need to have experience with relational design, scripting and calculations but familiarity can help in faster learning

Learn FileMaker Scripting, Calculations, Relationships and Reporting from the guy who actually wrote the book, Scriptology: FileMaker Pro Demystified. With over two decades of experience teaching FileMaker, John Mark Osborne will help you understand tough FileMaker concepts with ease. Intermediate and advanced FileMaker techniques will be taught throughout the three part tutorial series. In order to better understand every nut and bolt that goes into designing a solution, a single file will be created from scratch. The chosen solution is an invoicing solution for its familiarity to a wide audience and flexibility of applying techniques to other solutions. The completed FileMaker file at each stage is provided to assist with the learning process.

Who this course is for:
  • Students will learn how to design a complete solution from the ground up including layout design, scripting, calculations, relational design and reporting
  • An invoicing solution will be used as the basis for the course but the concepts learned can be applied to any solution
  • This is an intermediate course with some beginner information