Skip to Content
Skip to Table of Contents

← Previous Article Next Article →

ATPM 11.11
November 2005

Columns

How To

Extras

Reviews

Download ATPM 11.11

Choose a format:

FileMaking

by Charles Ross, chuck@chivalrysoftware.com

Welcome to FileMaker 8!

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 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.

Love and Hate

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.

Acrobat, Excel, and E-mail

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.

Extended Search 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.

Improved Spell Checking

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.

E-mail Merge

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.

New Layout Tools

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.

Clairvoyance

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

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.

Field List Filter

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.

Script Variables

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.

Return Values From Scripts

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.

Custom Menus

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.

Tooltips

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.

Enhanced Debugging

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.

Enhanced Copy and Paste

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.

Enhanced Relationship Graph

Comments can now be added to table occurrences, and, like script steps and tables, table occurrences can be duplicated to simplify development.

Conclusion

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!

Also in This Series

Reader Comments (10)

Reiner Kief · November 2, 2005 - 12:32 EST #1
Have a look at 4D (www.4d.com) and you'll forget Filemaker.
Charles Ross · November 2, 2005 - 12:58 EST #2
I took a look at 4D years ago, and I remember rejecting it because of a number of reasons. Of course, this was some time ago, so perhaps it's improved past my original objections. I'll check it out.

Basically, I'll always be looking for the ease of development I find with FileMaker but without the interface and coding limitations. So far, REALbasic is a good candidate.

Chuck
Frank Martin · November 2, 2005 - 16:07 EST #3
FileMaker Pro is all you need if you wish to create databases.

Dopey. I wish to create databases (http://www.fundimensions.com) and I need something much more powerful than Filemaker Pro: in that application, 4th Dimension and I are doing thousands of things that Filemaker Pro cannot.
a debugger, which allows the developer to step through a script line-by-line to check for the location of a problem

I am sure you will find that usefiul. I have used the 4D debugger for the last 11 years and love it.
you declare a variable, give it either local (within a script) or global (throughout the solution) scope, and can later refer to that variable

Ditto my comment above, plus we have process variables--but I forgot, Filemaker does not support multiple processes, does it?
Carlos Menem · November 8, 2005 - 10:25 EST #4
Despite adding of $ and $$variables is a good advance, you can't use them to put it on a layout or to use it as a key to get related records from a table. Or at least I didn't find how to do that.

Don't cry for me Filemaker developers!!!!!!!!!!!
Chuck · November 8, 2005 - 13:02 EST #5
No one has ever claimed that FileMaker is the most powerful database development environment available. And honestly, I'm not looking for the most powerful database. FileMaker's claim to fame is its combination of power and ease of use. I think that FileMaker 8 is a good step forward in this regard. It includes new tools to enhance ease of use for the casual user as well as new tools to make it easier for developers to create solutions for it. In my experience, although FileMaker won't be the most powerful database environment available, it is so far the best for rapid solutions.

Having said that, FileMaker, for me, is not the Macintosh of the database world. I could never picture me moving away from the Mac, but I could picture me moving away from FileMaker if I found the right tool for it, which is why I'm looking into REALbasic as an option. Perhaps I'll find it works well and perhaps not, and perhaps I'll take another look at 4D in the near future. Some FileMaker developers have also been fans of Savoy and Valentino. But a development environment has inertia. I've been using FileMaker for 12 years, and know the software inside out. A different environment would have to be much better to convince me to switch, allowing me to build databases as quickly as I do with FileMaker but also offering some significant advantage.

Regarding the use of variables as layout items or relationship keys, variables are only available in scripts, so you can't use them in those fashions. However, I don't see that one would need to. Script variables are simply script objects that carry a calculated value, and calculation fields can have the exact same value as a script variable, and any field can be placed on a layout and can be used as the keys in a relationship.

Chuck
Eric · November 30, 2005 - 16:38 EST #6
The one feature that I would find most time-saving in a new release version of Filemaker (advanced) would be one that hearkens back to Hypercard. Please!, please!, please! drop the apparent assumption that FileMaker developers are too dumb to learn proper syntax for scripts, and give us the ability to edit scripts as plaintext. That was a beautiful feature of Hypercard, and you could even modify a script from within itself. It was hugely powerful, and the language was dead simple.
Michael Blach · May 18, 2006 - 13:06 EST #7
I have been using Filemaker Pro 8 for about 2 days, and I went from not knowing anything about it to developing a database for my small business in that time. I am however disheartened to find out that "Export to PDF" has been removed from the runtime version of filemaker. Of all the features, I needed this the most. Dang. Sure, I can use the "Print" dialogue to print a PDF to the desktop... but erugh... Why even bother. :(
John Bruno · August 17, 2006 - 18:06 EST #8
I'm trying to use a script variable within a find request (the find request is in the same script as the variable). I'm trying to find a field whose value matches the script variable's value, but when it performs the find, it uses the variable name instead of the value.
Bram · December 3, 2006 - 15:39 EST #9
You can't use a script variable in a find request but you can switch to find mode and 'Set Field' the variables and 'Perform Find' afterwards. The result is the same. (Yes, I know it looks horrible but it seems to work.)
Michael Blach · January 28, 2008 - 23:02 EST #10
Well, its 2008, Filemaker Pro 9 has been released, and guess what... still no support to export to PDF in runtime apps. THIS single feat is the most infuriating thing I have ever seen, Period.

Add A Comment





 E-mail me new comments on this article