Filemaker Pro 8 Advanced full review
It’s a funny old world - FileMaker has dropped the ‘Developer’ handle for the one product that seasoned developers would consider as FileMaker’s first feature-complete development application. Not content with the excellent improvements in Pro 8 (date-pickers and tabbed-controls being just the highlights), Pro 8 Advanced includes a host of new development and customization features. They might be judged as attention-to-detail improvements, but taken together they offer an easy-to-use, cross-platform development tool capable of producing applications of the quality today’s end users expect.
A simple example: tooltips. Control-click on a layout object, and use the “Set Tooltip” dialog to add some help text. Because it’s treated as formatting, you can add a tooltip to every currently selected layout item and then tweak them individually. Objects with tooltips can be made to show a little post-it icon, so you can see any you’ve missed. Cannily, Advanced lets you define the text for your tooltip in terms of a calculation. Result: context sensitive help, based on the contents of the record you’re working on. How cool is that?
FileMaker already provides value lists that show value pairs: the value you’re choosing, say an ID number, and a related, more meaningful value, say a product name, to help the user select the right one. Advanced takes this one step further, with value lists that hide the first value in the pair: users pick a product name, but actually select the ID. Simple attention to detail, maybe, but it’s a small change that provides a professional look and feel to a solution.
One big new feature is menu customization. Previously it was possible to rename the Scripts menu and via AppleScript, add a custom menu. Possible, but fiddly, and few bothered. However, custom menus are the key to a great application, and Advanced gives you almost complete freedom to redefine every menu using something that FileMaker call Menu Sets. Each menu set can contain existing, edited, or completely new menus. Menus themselves are made up of existing FileMaker menu commands, overridden menu commands (so that, for example, the Quit command maps to a user-defined action instead), entirely new menu commands that run custom scripts, or indeed submenus - all with user-definable keyboard shortcuts. Solutions no longer need have their menu commands hidden away in the Scripts menu. (Advanced itself has a new menu,Tools, for direct access to debugging and menu customization tools, letting you switch between menu sets on the fly.)
But wait, there’s more. Menus, and menu items, can be enabled or disabled depending on the platform or current mode - different menus for Windows users say, or different commands when you’re in Find mode. Furthermore, menu and command names can be dynamically generated via a calculation, you can switch menus via a simple script step, and if a command isn’t in the current menu set it’s not available to anyone using other interface elements (so if your menus don’t include mode commands, the user can’t switch mode using the status bar’s pop-up). Which all adds up to a truly context-sensitive user interface. Have I mentioned how cool this version is yet?
Scripting has had a tune-up. Developer 7 included a debugging console for stepping through your scripts. Advanced 8 adds a Data Viewer, in which you can specify FileMaker fields or calculations to be monitored. No more using global fields, or switching layouts to work out what’s happening in a script. Oh, and global fields? Scripts now have access to global and local variables (with repetitions if you want to use them as arrays), so forget using global fields as loop counters. There’s more - the set-field step now lets you specify the repetition (although not the field name) by calculation, and the Go To Related Record step now lets you go to the related records for the entire found set. (If you understand the implications of that, please, take a moment to compose yourself and stop sobbing.) ScriptMaker itself lets you disable individual script steps - they’re shown commented out - so you can part-test a script. And as well as being able to pass values to scripts, scripts can now return a value via Exit Script that you can access using the get(ScriptResult) function. In short, developers can start thinking about code rather than workarounds.
Were these the only new features added in Advanced 8, then hardcore FileMaker developers should already be throwing credit cards at their nearest supplier. But they’re not. FileMaker Advanced now includes copy and paste for scripts. (I’ve waited fifteen years to write that.) Actually, it’s better than that. You can, in fact, copy and paste scripts, and script steps, and fields, and tables, and even (via a clone button) relationships.
What’s the big deal? For developers, code reuse has always been FileMaker’s bugbear. Moving scripts from one file to another has always been a pain (even given the “Import Script” from previous versions), and moving fields around impossible. Now, moving developer stuff is a simple as two keystrokes, and a couple of clicks. More importantly, given FileMaker Pro 8’s excellent relational handling, copy and paste are the final puzzle piece to make it easy to clean up legacy solutions, for example, moving global fields into a separate table. Pro 8 Advanced will have you slimming down your bloated solutions in no time!