Gap_Filler

Dialogs and Menus

Dialog Example
Create simple or complex dialog boxes with unlimited buttons, menus, checkboxes, fields, and styled text. Dialogs can make a script wait for their results and do field validation before closing, or they can float like a help window while the user works on a task in FileMaker.

Multi-level menus can be used anywhere in FileMaker with their contents defined by value lists or arbitrary text to keep your value lists less cluttered. Unlike FM pop-up menus, the value returned can be different from the text of the menu.

Progress Bar A progress bar function shows a bar that fills as your script performs a time-consuming operation with an automatic estimate of how much longer it will take. The user can cancel the operation by clicking cancel or pressing escape which lets you exit cleanly when you next update the progress bar.

An error function shows a dialog box telling the user there was an error and then logs useful information such as the current script and its parameter to the Windows Event Log so you don't have to try to coax the user to remember exactly what the error said or where it occured.

Search and the Utility Toolbox

Toolbox
Use Gap_Filler's floating toolbox to find text anywhere in the body of your scripts (FM 8 and newer), or to search for text in ANY list in a FM dialog (even in FM 7). Don't scroll through hundreds of fields to find the one you want, search for it by name with the toolbox!

The toolbox can Mark groups of lines in any list and move them to another point in the list, useful for keeping your fields or scripts orderly. It can also Evaluate the expression you are currently editing, kind of like the Data Viewer in FileMaker Advanced, but easier to access.

Drawing, Coloring, and Mouse Tracking

Tabbed menu bar
Graphics and mouse functions can be used to turn an image into a tabbed menu bar. Just change one image and one script and it changes the menu in every database! These functions can be used for anything you can imagine: click a grid to pick where labels should print, draw pie charts, etc. Another fuction replaces one color with another: grey out a button when it can't be used or turn the whole background yellow for one type of record and blue for another type on the same layout.

Hotkeys and Key Simulation

Hotkeys can be bound to any key combination on any (or all) layouts, and they can either run a script or set a variable then resume the script that was running. Now you can actually do something useful when the user presses return, create a new employee when Alt-E is pressed, hotkey Ctrl-N to do nothing instead of accidentally creating a new record, or even run a script on Ctrl-F that adds certain criteria to every find.

There's also a function to simulate a keystroke. Create a button to simulate Ctrl-Tab to move to the next window, or Alt-R then C in find mode to constrain the found set. Sure, there's a Constrain Found Set script step, but that always operates on the database that owns the script rather than the window in the foreground, so keystroke simulation is often useful for creating one script to work for all your databases instead of maintaining identical scripts in each.

Automated Printing

Gap_Filler can open the print dialog, change the printer, and set options like orientation, paper size, tray, records to print, pages to print, num copies, collation, and more (all things FileMaker's print setup functions tend to forget). Then it can start the print job, all without the user clicking a thing.

There's even a function to turn the mouse pointer into an hourglass while the system sets up the print job.

Regular Expressions, Variables, and Hashes

Get and set local and global named variables in FM7 or later and use them for things even FM8's variables can't be used for.

Regular expressions let you find or replace parts of strings that look match almost any criteria you can think of. You can check if a string looks like a date (one or two digits, a dash or slash, one or two digits, another dash or slash, then two to four digits), a phone number, etc. Gap_Filler's regular expressions use an open-source library that duplicates the most advanced features of Perl's regular expressions. Like in Perl, matches you find in a string are placed into Gap_Filler named variables for use outside of the regular expression!

Another open-source library allows Gap_Filler to generate MD5, SHA, and TR1 hashes encoded in base32, hex, or handwriting-readable formats. A hash is a virtually-unique representation of a large piece of data. To identify when a large document has changed, store its short hash in FileMaker and if just one character in the original document changes, you will know because its hash won't match what you saved in FileMaker. It's also a good security practice to store the hash of a password and validate passwords by checking if their hash matches what you stored. You need not worry if the hash you've stored is stolen because with a secure hashing algorithm like SHA512, it is virtually impossible find a password that will generate the same hash.

Tweak FileMaker's User Interface

I put a highly-visible Find button in each of our databases, but when FM enters find mode, it puts its own grey find button on the left side that will execute the find. Our employees who don't use the database that often would keep getting confused as to which find button to click, so I added a function to hide FM's grey find button and if they click my find button in find mode, a popup menu appears with options to execute the find, constrain the found set, insert a search criteria like a date range, open a floating help dialog, etc. You can also tweak the UI to hide the script cancel/continue buttons, although it's usually better to just hide the status area.

SQL

Gap_Filler lets you run SQL statements to manipulate data in FileMaker tables. Use SQL to access data without opening a new window or to import data in a more failsafe manner than using csv or similar flat files.

Clipboard

When you copy something (such as with Ctrl-C or Edit->Copy), different formats representing the same information are created on the "windows clipboard". If you copy some italic text from MS Word, then paste it into FM, it is no longer italic in FM. That's because FM reads the "Text" format from the clipboard instead of the "Rich Text" format that contains the extra information that the text is italic. Gap_Filler lets you get or set any format on the clip board, allowing you to save data from many applications into FM without losing that application's formatting. We use it to catalog clips from Word documents and later paste them into grant applications.

Productivity

Gap_Filler was designed to increase our office productivity. Function names are consistent, descriptive, and the options are kept to a minimum to reduce clutter and confusion. Other plugins may ask for three parameters to queue a script, but GF_ScriptQueue("My Script") will literally queue "My Script" from the current file to run at the next opportunity. This can be done anywhere you can place a calculation, such as when validating a changed field. If you need to specify a script parameter or what file to run the script from, you don't necessarily need to read the manual to remind yourself of the options. Gap_Filler "External Functions" in the FileMaker calculation editor contain brief reminders:
GF_ScriptQueue( scriptName {; scriptParam = ""}{; "fileName=Current File, scriptParamEval='N', currentScriptAction='P'(ause, 'R'esume, 'E'xit, 'H'alt)"} )

Whenever possible, parameters are made {; optional } and strings containing named parameters (like "fileName='My File'") are used instead of ordered parameters so that you don't have to supply default values for fileName and scriptParamEval before you can specify currentScriptAction. Named parameters also make your code easier to understand when you're looking at it later and allow easier addition of new features, such as the "runWhen" parameter that runs your script at the date & time you specify.

SYSTEM REQUIREMENTS

  • FileMaker 7v3 - 9.
  • Windows 2000 or later
  • Macintosh OSX 10.4.9 or later, PowerPC or Intel (the Mac version is still missing some features from the Windows version, but I am actively working on making both versions as similar as possible)
  • Any processor that can run FileMaker should run Gap_Filler.

JOIN THE MAILING LIST
To be informed of product updates, submit your email using the box below. I won't share your email with anyone else or send you anything other than Dracoventions product news.

First Name:   Last Name: (optional)
Email:
Send me updates regarding: Macintosh Version Windows Version    
Questions? Feedback? Encouragement? Contact Me