We’re going to take a break this month from our usual tutorials and look at the newest version of FileMaker, which was released last month. Version 8 of FileMaker Pro, FileMaker Pro Advanced, FileMaker Server and FileMaker Server Advanced are all available, and FileMaker Mobile 8 is going to be released soon.
For those of you who aren’t familiar with the complete line of FileMaker products, FileMaker Pro is all you need if you wish to create databases. FileMaker Pro Advanced (formerly FileMaker Developer) includes everything in FileMaker Pro, but adds features that are targeted toward to more, um, advanced, users. It allows you to debug scripts by stepping through them (which we’ll cover when we get to scripting with FileMaker) and to create “runtime” solutions that users can access without having to purchase FileMaker.
Although FileMaker Pro can itself act as a server for other copies of FileMaker on a network, FileMaker Server is especially written for that purpose, allowing more users to connect and access the data of a single database. FileMaker Server Advanced adds the ability to serve that data to a Web site, enabling such solutions as online shopping carts or other database-driven Web pages. Finally, FileMaker Mobile provides software to synchronize data within a FileMaker database with mobile versions of the application running on either the Palm OS or PocketPC.
I do have to wonder about the naming conventions with the product line. Pretty soon, I think we’re going to have FileMaker Pro Super-Duper Advanced Plus. I know that there was an original FileMaker (sans “Pro”) years ago, but I think just about everybody has forgotten about that, so perhaps we can could drop the “Pro” suffix from the software title?
Although both the Pro and Server pairs of FileMaker software have been released, I’m only going to cover FileMaker Pro and Pro Advanced in this article, as that’s probably where the most interest will lie. If I get enough demand for looking at the Server versions, I’ll be happy to do so in a future article.
I seem to have the same relationship with the newest version of FileMaker that I’ve had since version 5.5 or so. Many great features are added, and a few of them are “Thank God they finally included that!” features, while others are “Hm, that’s kind of cool.” But sometimes FileMaker seems to just miss the boat with new features.
Let me give you one easy and trivial, yet annoying, absence in FileMaker 8. Years ago, when FileMaker 5 came out, a new feature was that many of the dialog boxes, such as for defining fields and scripts, could be resized. But, annoyingly, after you resized a dialog box, did your work and exited the window, when you returned, the dialog box would be the original size rather than the new one. This was fixed in a future version, and dialog boxes retained their sizes between uses, but column widths never have, and I keep hoping and hoping that this simple feature will be added. It’s honestly the first thing I check with a new version of FileMaker, and it has yet to be added. Should I hope for version 8.1?
I’ll admit that for the last year or so I’ve considered switching to a different programming environment for my work. Specifically, I’ve been checking out REALbasic, which includes a built-in single-user database and has plug-ins available for accessing network databases. FileMaker seems easier to use, but REALbasic seems more powerful, and I like that applications built with REALbasic are as cross-platform as FileMaker applications, but each version on each operating system looks like applications should look on that operating system: Mac applications look like Mac applications and Windows applications look like Windows applications, and I don’t have to do so many workarounds to get a good user interface. But FileMaker does continually evolve, and each version gets closer to my ideal environment.
I’ll tell you exactly what I want with new features of FileMaker: I want to be able to do something that I couldn’t do before, I want the things I could do before to be easier, and I want to be able to create a good interface without so much work. FileMaker 8 comes through in flying colors on two of these accounts and moves forward on the last. Let’s go through the new features of FileMaker Pro first.
A few versions ago, FileMaker introduced the ability to integrate Excel data with FileMaker data, and Mac OS X has always had the ability to print a report in FileMaker to a PDF file. FileMaker now takes both of these features to a new level. FileMaker data can now be directly saved into either of these formats. Both of these features are among those that I don’t anticipate using much, although the PDF export will be nice for Web applications that need to get a nicely formatted report to the user and for sending a PDF report via e-mail.
The e-mail capabilities of FileMaker are improved also. Now you can include the contents of any field, including container fields, as an attachment in an automatically generated e-mail. This will make sending data much smoother, especially in combination with the PDF export capabilities.
This one will be nice for end users, but has little effect, I think, for developers. Basically, when viewing a record, you can bring up a contextual menu for a field (by Control-clicking on the Mac and right-clicking on Windows), and one of the options will be to find all of the records that match that field’s criteria. So, for instance, if you’re viewing a sales order from John Doe, you can control click the name field and select “Find Matching Records” to find all of the sales orders from John Doe.
A feature found in many other applications, the ability to highlight misspelled words by underlining them, has been added. You can also Control-click a misspelled word to either see suggested corrections or to add it to the dictionary. Unfortunately, FileMaker, like Word, uses its own dictionary rather than sharing the dictionary that Apple has for its OS-level spell checking, so words that you’ve added via TextEdit will need to be added again in FileMaker.
I consider the features above to be primarily useful to end users who are either creating simple databases or using systems created by more advanced developers. Although the following features are part of FileMaker Pro as opposed to FileMaker Pro Advanced (although they are included with Advanced as well), I tend to think of them as more developer-oriented.
For instance, e-mail merge is a common request from clients, and it was always possible to perform a mail merge in FileMaker and send the results via e-mail, but this feature has been made easier with a new built-in feature allowing you to send an e-mail via a script that uses records in the found set to send separate e-mails.
Creating consistent layouts should be simpler with the new alignment tools. In addition to the previously existing ability to alight layout objects by left, right, and center, you can now specify that a group of layout objects should be the same height or width, based on either the smallest or largest. What is really nice is that this ability has been taken to the Relationships graph, so laying out the table occurrences found there will be much easier.
FileMaker refers to this feature as “Auto-complete,” but it has long been called “Clairvoyance” within the FileMaker developer community. What it means is that as you’re filling in a field, you can have FileMaker attempt to auto-fill by checking a value list. For instance, if you have a value list of colors (“Red,” “Blue,” Green”) and have specified that a Color field should auto-fill based on that value list, entering the field and typing an “B” will auto-fill the rest of the word “Blue,” although you can continue typing “Black” to override this. I include this in the developer-oriented features because before FileMaker 8, developers had come up with some ingenious workarounds to get this to happen, which we’ll be able to avoid now.
Pop-up calendars falls under a similar category. For years I’ve used a custom pop-up calendar solution that I built so that users could access a monthly calendar from which to select a date. FileMaker has made such workarounds obsolete by including the ability to format a date field to allow a pop-up calendar to be used for date selection.
This one will be a real boon to developers. When creating fields, developers can separate the fields into two general categories: attributes (i.e., fields that store information the user enters or need to be accessed by the user because they calculate something useful, such as a full name from a first, middle and last name) and developer fields (global fields and other fields that the developer uses in the background to get the job done). A developer seldom wants the end user to see the developer fields, but when exporting data that the user needs to select which fields to export, there’s no way to really hide these, at least not until FileMaker 8. Now developers can specify which fields appear in an export or import list, effectively hiding those fields that the user shouldn’t see and isn’t interested in.
This has to be my favorite feature of FileMaker 8. FileMaker 7 added calculation variables with the addition of the Let() function, but script variables are even better. Basically, you declare a variable, give it either local (within a script) or global (throughout the solution) scope, and can later refer to that variable. Developers have long used global fields to fill this need, which needlessly took up room within the field definitions for these temporary storage areas. I actually came up with a native FileMaker variable system so that I could have an infinite number of custom named variables, but it still added some fields to the system that this new feature will allow me to eliminate.
FileMaker 7 allowed script to accept parameters, now FileMaker 8 finishes with the other half of this by allowing scripts to return values, meaning that scripts can now act as functions for other scripts without having to store a value in a global field or the new script variable feature. Functions can’t yet be called by general calculations, which limits their usefulness, but custom functions (which are calculations, not scripts) can usually fill this need.
Moving from features of FileMaker Pro to FileMaker Pro Advanced, we find custom menus. Again, we’ve had this ability to a limited extent with the Script menu, which FileMaker Developer 7 allowed us to rename, but here we can completely customize the menu bar of a solution, a long-hoped-for feature.
A tooltip is when you hold your mouse over an interface item and see a yellow box that includes a description of the item or additional help regarding its use. Whereas before this required the use of a plug-in, FileMaker now includes this ability.
One of the advantages of FileMaker Pro Advanced is a debugger, which allows the developer to step through a script line-by-line to check for the location of a problem. A number of enhancements have been made to the debugging process with FileMaker 8. First of all, you can now disable individual script steps (also called “commenting out” script steps). Again, this was possible before, but more difficult (requiring the addition of an If script step that always evaluated to False).
Also include is a data viewer that allows you to add expressions during the debug process to see how they change during the script’s execution. This is again something that could be done before, but only by adding a special debug layout that included the values you wanted to track. Additionally, there is a trace feature that will show you exactly which script steps were executed.
In addition to the ability to copy and paste script steps, it’s also possible to import tables, which will make development much easier. Every table I build has about ten fields in common, and now developers will be able to create a table template and import that table (or duplicate it within a single file) to ease the creations of tables.
Comments can now be added to table occurrences, and, like script steps and tables, table occurrences can be duplicated to simplify development.
Overall, like previous versions of FileMaker Developer, the features included with FileMaker 8 are going to make this a must-have upgrade. Eventually, as I do now when working with FileMaker 6, I’ll wonder how I ever put up with the limitations of FileMaker 7 after working with 8. If you do any serious work with FileMaker, place your order now.
Especially since we’ll be working with FileMaker 8 for the future articles in this series. If you haven’t upgraded to version 8, you’ll still be able to use most of what I write about here, but occasionally I will be using 8-specific features, and for a while, I’ll point out workarounds in 7 where appropriate.
We’ll continue next month with our tutorial series of learning FileMaker. Until then, happy FileMaking!