Although our last article covered FileMaker 8.5, in that lengthy interim, a new version of FileMaker has been released, pushing the version number up to 9.
FileMaker Pro 9 is available for $299, or $179 to upgrade from FileMaker Pro 7 or higher. The Advanced version retails for $499, and is a $299 upgrade from FileMaker Pro 7, FileMaker Developer 7 or FileMaker Pro Advanced 8 or above.
I’ll begin with those features aimed mostly at the novice database user and move gradually toward the more complex features aimed at the developer. The summary can be given in advance, however: while the list of feature additions in FileMaker Pro 9 is long, it’s also shallow, and while all are welcome, none seem critical. I’ll include everything new, with a brief description and comment.
The first, and most obvious, feature you’ll see after installing is the new Quick Start screen, similar in function to FileMaker 8.5’s Template dialog box. If you need to use one of the built-in templates included with FileMaker, navigation to the one you want should be quicker with the categories of templates now in a list box rather than a pop-up menu.
Additionally, recently-opened files are integrated into this Quick Start screen, so that clicking on the “Open Database” icon to the left displays a list of recently accessed files, both local and remotely accessed. Given the frequency with which I open the same files over and over again, this may prove helpful, although the feature still tracks a maximum of 16 recent files. The File ‣ Open Recent menu will probably be more convenient for most people. My solution for opening commonly accessed files has been to use a third-party utility, such as DragThing or Butler, to open local files and Web location files pointing to remote systems.
Also included here is quick access to the FileMaker Learning Center, although I anticipate that this would probably be the least-used portion of the Quick Start screen.
A welcome addition is automatic software update notification, which, given that almost all computers are constantly connected to the Internet, should be standard with all software. However, this feature could have been made easier with the addition of the ability to automatically install updates from within the program, as other programs have begun to offer, rather than necessitating a visit to a Web site, downloading the software, and manually installing it. Also, the software update feature will check for updates every seven days or not at all; there’s no option to change the frequency, for which my preference would be daily.
Although, when in layout mode to design a screen, FileMaker supports only a single level of undo, when editing text within a field, multiple undos are now supported. There’s no mention of a limit on the number of undo/redo steps, so perhaps it’s limited only by available memory or disk space, but experimenting showed that it’s at least 100 steps.
While a nice addition, this feature has some drawbacks: it only works when editing fields, not when performing other actions such as layout editing or script editing, and the undo queue is cleared once you exit a record. So, for instance, you can’t perform an edit, move to a different record or layout, and still be able to undo any of the editing actions of the previous record.
Another addition is that field-level spell checking options now allow you to turn off the spell checking for an individual field. Prior to this, spell checking was either on or off, which meant that if you ever needed spell checking, you turned it on, and if FileMaker was set to indicate questionable words with the commonly used red underline, then e-mail fields and other similar fields that shouldn’t be spell-checked would show that the spelling needed to be corrected. While spell checking is useful, many fields in FileMaker, including proper names, e-mail and Web addresses, product codes, etc., shouldn’t be spell checked, so this is a nice addition.
On the topic of spell checking, it’s unfortunate that FileMaker still doesn’t seem to use the Mac OS X global spelling dictionary, so setting a proper name, for instance, as learned in FileMaker, doesn’t update the Mac OS X dictionary.
FileMaker has long had the ability to open URLs using the “fmp7://” protocol. However, sending a link to a served file has become much easier with the new File ‣ Send Link command in the menu. Choosing this will create a new e-mail message in your default mail program and embed a link to the open FileMaker system into the body of the e-mail. If the recipient has FileMaker on his or her computer, clicking the link in the received message will open the database from the server.
Extending FileMaker’s ability to send a report to a PDF file is the ability to append a report to an existing PDF. This could, of course, be a previously run FileMaker report, but could also be a PDF created elsewhere, allowing the easier integration of documents generated in other applications with data compiled by FileMaker.
This one is probably my favorite feature introduced with FileMaker Pro 9. A favorite category of FileMaker feature introductions are those that eliminate the need for developer fields. In the past, script variables eliminated the need for global fields to act as variables in many cases, and text formatting functions allowed the direct manipulation of a field’s format from a calculation, eliminating the need for a separate field having different formatting. Now conditional formatting eliminates calculation fields used solely for providing context feedback to the user.
For example, perhaps you have a field that tracks the balance of credit with a vendor. If the balance falls below a certain amount, say $1,000, an easy way to bring this to the notice of the user would be to have the balance include a red background. Prior to FileMaker 9, this would have required an extra calculation field and an extra global container field. The concept is that the global container field contains a small red swatch graphic and the calculation field is set such that if the balance is below $1,000, it contains the contents of the global field and otherwise contains nothing. Then the number field and the calculation field are placed on top of each other such that when the calculation field has a color it can be seen beneath the number field.
That’s a lot of work for so simple a feedback mechanism. Conditional formatting eliminates everything but the original number field. The format of a field can now have any number of conditions, and when they are true, display the formatting options specified.
There are a few new functions this time around, but it’s usually difficult to anticipate how necessary they are until a need for them is found. The new Get( HostApplicationVersion ) allows you to retrieve the version of FileMaker that’s hosting the system. Get( TemporaryPath ) returns, as expected, the path to the temporary folder used by the operating system.
The Self function returns the contents of the object containing a calculation with the function. For example, in the conditional formatting example above, where I used the calculation Accounts::Amount < 1000, I could have used Self < 1000 because the calculation was being defined within the object. Depending on the naming convention used for fields, this might also prove useful for tooltip calculations. When used in any other context (those in which it doesn’t make any sense), the function will either return an empty string or FileMaker will prevent its use (such as in a custom function).
On the other hand, Acos and Asin don’t do anything that couldn’t be done before. The best new features in FileMaker are those that enable behavior that was not previously possible. While it’s convenient to have built-in functions to retrieve the arccosine and arcsine of a number, custom functions are available for such needs, and the need for trigonometric functions is sparse.
Two welcome additions for developers deal with the creation of FileMaker scripts. The first allows scripts to be organized into groups. Developers have had numerous techniques for organizing the flat format of script lists previously available, which usually entailed creating empty scripts as labels and separators.
FileMaker 9 now includes the abilities to group scripts into folders and to create explicit separators for groups of scripts. Since the file format hasn’t changed, files that take advantage of this script organization can still be opened in FileMaker 7 or 8, with the folders and separators appearing as specially named empty scripts. This also has the advantages that a developer can work with an organized script list in FileMaker 9 for end users still working with FileMaker 7 or 8 without having to worry about compatibility issues, so long as the other new features of FileMaker 9 are avoided.
A second nice addition when working with scripts is the ability to have multiple script lists and multiple scripts open at one time. The script lists can be from separate files, and the scripts either from separate files or within a single file. Even though script parameters have eliminated some of the need for identical steps in multiple scripts, there are still times when copying steps from one script to another can be useful, and the ability to have multiple scripts open at one time makes this process, as well as comparing scripts, much easier.
FileMaker layouts are getting more and more dynamic with each release. Back in the old days, it was common to create multiple versions of a single “screen” to account for multiple tab views and possible for multiple screen resolutions. FileMaker’s tab feature solved the first problem, and resizable layout objects addresses the second problem.
For example, perhaps you’re building a multi-user system, and while most users have a screen resolution of 1024×768, there are a few out there who have larger resolutions. A developer has three options in such cases: build layouts for the lowest common denominator and don’t take advantage of the extra screen real estate when available; build layouts for the larger screen and force those with smaller resolutions to scroll to see everything; build two versions of the layouts, one for the smaller resolution and one for the larger resolution. None of these options is very satisfactory.
With FileMaker 9, none need be chosen. Layout objects now have the ability to resize with an increase in the window’s dimensions, so that if the user has a larger screen and a script zooms the window to take advantage of that, layout objects can be configured to also resize in order to use the extra pixels. Developers who have worked with Xcode or REALbasic will be familiar with this feature.
This image shows two views of the same layout where the Notes field has been automatically resized to account for the larger window that was manually set.
FileMaker has long had the ability to bring data from SQL sources into existing tables in FileMaker, but there were limitations to this feature, the most basic being that the data brought in from SQL sources was not live, but had to be periodically updated.
FileMaker 9 brings SQL tables to the same level as FileMaker tables found in another file. To FileMaker, a SQL source is just another external data source, like a table found in another FileMaker file. This means that data in such tables is live and can be related to, just like native FileMaker data. What all this means is that the integration of FileMaker data with existing SQL data is seamless. If you happen to have existing data in, for example, a MySQL database, that data can be viewed and manipulated within FileMaker as easily as native FileMaker data.
This feature doesn’t stand alone, however. In addition to FileMaker and the external SQL data source, you’ll need the appropriate ODBC driver. For example, the one recommended by FileMaker, Inc. is published by Actual Technologies and costs $30 per license.
There have been minor but welcome enhancements to the script debugging feature in FileMaker Pro Advanced. If a script’s access is restricted and the account currently being used is not a full-access account, authorization can be given when the script is debugged. This means that a developer can debug a script while logged on as an end user, which had always been problematic.
Also, error codes generated during script execution can be viewed within the debugger window, eliminating the need for extra script steps just to reveal such codes. And if an error does appear, it’s displayed as a link that will take the user to the relevant help page for more information on the nature of the error.
Like the script debugger, authorization can take place as needed when working with a file using an end-user account. The Data Viewer also tries to be a bit more intelligent by attempting to automatically show variables that are local to the currently executing script, although I’ve found that this isn’t always correct, and often variables still need to be manually added to the watch list.
Although the initial release of FileMaker Pro 9 had some compatibility issues with Mac OS X 10.5, FileMaker, Inc. has since released an update to account for some of these issues. A new update is expected to deal with some remaining issues, such as window selection, especially while using Spaces.
There was a time when a full number increment to the FileMaker version numbering scheme meant a large number of new features. Honestly, this hasn’t seemed to have been the case since the release of FileMaker 7. I actually tend to think of this as version 7.7, given the incremental improvements made since then. I sometimes think that software developers increment the full version number in an attempt to justify the upgrade price. If you work with FileMaker as a full-time developer, the new conditional formatting and script editing feature will be worth the upgrade. If you have existing FileMaker databases for your own personal use, you’re probably fine with the version you have. FileMaker 9 is still a great product if you need a simple database manager, although you might also look into FileMaker’s other recent offering, Bento, which may be a better choice for simple list keeping, both in terms of ease of use and price.