Que Using FileMaker 8 Special Edition May 2006 ISBN 0789735121

Special Edition Using FileMaker® 8

  By Steve Lane, Scott Love, Bob Bowers ...............................................

  Publisher: Que Pub Date: May 12, 2006 Print ISBN-10: 0-7897-3512-1 Print ISBN-13: 978-0-7897-3512-6 Pages: 912

  

If you're looking for the inside scoop on the latest version of FileMaker, you've come to the

right place. Authors Scott Love and Steve Lane are FileMaker experts who were involved

in the development of FileMaker 8, and they bring that knowledge to you in Special Edition

Using FileMaker 8. Frequent tips, case studies, and thorough examples show you how to avoid mistakes and save time in developing databases with FileMaker 8. This is the comprehensive reference that every database developer needs on their shelf.

Special Edition Using FileMaker® 8

  By Steve Lane, Scott Love, Bob Bowers ...............................................

  Publisher: Que

Pub Date: May 12, 2006

Print ISBN-10: 0-7897-3512-1 Print ISBN-13: 978-0-7897-3512-6 Pages: 912

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

Copyright SPECIAL EDITION USING FILEMAKER® 8 Copyright © 2006 by Que Publishing

  All rights reserved. No part of this book shall be reproduced, stored in a retrieval system, or transmitted by any means, electronic, mechanical, photocopying, recording, or otherwise, without written permission from the publisher. No patent liability is assumed with respect to the use of the information contained herein. Although every precaution has been taken in the preparation of this book, the publisher and author assume no responsibility for errors or omissions. Nor is any liability assumed for damages resulting from the use of the information contained herein.

  Library of Congress Catalog Card Number: 2006920311 Printed in the United States of America First Printing: May 2006 09 08 07 06 4 3 2 1

Trademarks

  All terms mentioned in this book that are known to be trademarks or service marks have been appropriately capitalized. Que Publishing cannot attest to the accuracy of this information. Use of a term in this book should not be regarded as affecting the validity of any trademark or service mark. FileMaker is a registered trademark of FileMaker, Inc.

Warning and Disclaimer

  Every effort has been made to make this book as complete and as accurate as possible, but no warranty or fitness is implied. The information provided is on an "as is" basis. The authors and the publisher shall have neither liability nor responsibility to any person or entity with respect to any loss or damages arising from the information contained in this book or from the use of the DVD or programs accompanying it.

Bulk Sales

  Que Publishing offers excellent discounts on this book when ordered in quantity for bulk purchases or special sales. For more information, please contact U.S. Corporate and Government Sales 1-800-382-3419

  

  For sales outside the United States, please contact International Sales

   Associate Publisher Greg Wiegand Acquisitions Editor Stephanie J. McComb Development Editor Laura Norman Managing Editor Charlotte Clapp Project Editor Tonya Simpson Copy Editor Cheri Clark Indexer Ken Johnson Proofreader Mike Henry

  Technical Editor Jay Welshofer Publishing Coordinator Sharry Lee Gregory Multimedia Developer Dan Scherf Book Designer Anne Jones Page Layout Bronkella Publishing Eric Miller

Dedication

  To my crew out in the Wild West...without all of you, each

of you (even the curmudgeons!), I'd be lost. You're an

amazing group of colleagues and I'm grateful we're here

building a company together.

  Scott Love

To Signe, Erlend, and Rona: I guess this doesn't quite

count as "never again"? Steve Lane To Eleanor, my new project management challenge. Bob Bowers

  About the Authors

Steve Lane has worked with relational databases for 16 years.

  He has written for FileMaker Advisor magazine and co-authored two other books, Advanced FileMaker Pro 6 Web Development and Special Edition Using FileMaker 7, as well as this book's companion volume, FileMaker 8 Functions and Scripts Desk

  

Reference. He is a founding partner with Soliant Consulting and

  has led training classes in FileMaker technologies all over the country, both in open sessions and in onsite client engagements. He regularly speaks at the annual FileMaker Developer's Conference, where in 2003 he was awarded the FileMaker Fellowship Award for "pushing the boundaries of FileMaker Pro."

  Scott Love has been working with FileMaker for more than a

  decade. He is one of four founding partners at Soliant Consulting, a company dedicated to custom software development; is a speaker at the FileMaker Developer's Conference; and is an Authorized FileMaker Trainer. He served at MacUser/MacWEEK as an online managing editor, and at Apple Computer as its Web Publishing Technology Evangelist, followed by directing the Technical Marketing team at Macromedia. He has written dozens of feature and review articles on FileMaker and Internet/web topics and co-authored

  Special Edition Using FileMaker Pro 7, as well as this book's

  companion volume, FileMaker 8 Functions and Scripts Desk Reference.

  Bob Bowers, CEO of Soliant Consulting, is a columnist and

  contributing editor for FileMaker Advisor magazine and has co- authored three other books: Advanced FileMaker Pro 5.5

  Techniques for Developers, Advanced FileMaker Pro 6 Web

Development, and Special Edition Using FileMaker Pro 7. At the

  2002 FileMaker Developer's Conference, where he is a perennial speaker, he was awarded the FileMaker Fellowship Award for "developing outstanding technical and educational resources for FileMaker."

Acknowledgments

  This book could not exist were it not for the hard work and support of our colleagues and friends. Writing it would have been impossible otherwise, and we'd like to share our gratitude with those who have toiled with us.

  First off, Stephanie McComb at Que Publishing gave us an impossible task some months ago: She asked that we update

  Special Edition Using FileMaker 7 for the upcoming release of

  FileMaker 8and that we cut its length by 10%. Full of pluck, we suggested an alternative: Allow us to add 50% and create two books instead. The result was this (slimmer) book, along with the companion FileMaker 8 Functions and Scripts Desk

  

Reference. We're deeply grateful to Stephanie for turning what

started as a long shot into reality.

  The rest of the team at Que Publishing is no less deserving of thanks. It's our deep pleasure to work with development editor Laura Norman again; her good humor and steady wisdom provide a strength of support that cannot be overstated. Tonya Simpson, our project editor, and Cheri Clark, our copy editor, have worked through our dense material diligently, and contributed countless improvements to our work. It's an immeasurable relief that they've been by our side through this whole process. Taking a page from our own work in software development, Mickey Burns joined our team as a project manager who found a perfect blend between bullying and babying as he helped us through (and at times past) each deadline. Liz Kinsella, July Belber, and Will Danford put in tireless hours pulling together demo files, screenshots, facts, and figures. Jan Jung lent her tremendous design skills. Carlos Ramirez made vital technical contributions, especially to the Mobile chapter.

  No acknowledgment would be complete without mentioning all the work our friends at FileMaker, Inc., do to make everything in our careers possible. FileMaker 8 is a fantastic suite of products and we're terrifically excited by the continued promise the FileMaker platform shows. Finally, we'd like to thank some of the folks at FileMaker from whom we've learned a great deal, and whom it's our pleasure to know and work with: Jay Welshofer, our technical editor, along with Andy Lecates, Bill Heizer, and Tony Millerall have contributed to this work and to our understanding of FileMaker, in ways large and small, and it's our pleasure to have their support and advice.

We Want to Hear from You!

  As the reader of this book, you are our most important critic and commentator. We value your opinion and want to know what we're doing right, what we could do better, what areas you'd like to see us publish in, and any other words of wisdom you're willing to pass our way. As an associate publisher for Que Publishing, I welcome your comments. You can email or write me directly to let me know what you did or didn't like about this bookas well as what we can do to make our books better.

  Please note that I cannot help you with technical problems related to the topic of this book. We do have a User Services group, however, where I will forward specific technical questions related to the book.

  When you write, please be sure to include this book's title and author as well as your name, email address, and phone number. I will carefully review your comments and share them with the author and editors who worked on the book.

  Email: Mail: Greg Wiegand Associate Publisher Que Publishing 800 East 96th Street Indianapolis, IN 46240 USA

Reader Services

  Visit our website and register this book at

  

for convenient access to any

  updates, downloads, or errata that might be available for this book.

Introduction In this introduction

  

  

Best of Three Worlds

  Welcome to the world of FileMaker Pro. By simply browsing through this book, you're sure to have heard the word

  database. We'll cover what databases are ad nauseam in the

  rest of this book, but one of the first things you'll need to understand about FileMaker Pro is that it is far more than just a database application. FileMaker Pro is nearly unique in the world of software. It is a powerful database system that can manage and store a wide range of information; it's an application for end users (like Microsoft Excel or Intuit's Quicken); and it's also a robust rapid application software development platform.

  When you hear someone speak about FileMaker, keep in mind they may be viewing it from any one of these different perspectives. An IT professional likely sees FileMaker as a database engine that fits into a larger security and network infrastructure. An end user is probably thinking about a specific solution built in FileMaker Pro and how that solution helps (or doesn't help) make her work more efficient. A software developer may see FileMaker as one of many tools he employs in building a wide range of applications. Our previous book, Special Edition Using FileMaker 7, was well received, but we did hear one consistent concern; namely, that the book was felt to be too advanced by some readers. So we'll try to be clear on our aims up front. This book was written with an eye toward the FileMaker developer community. If you're an

  IT professional who supports FileMaker applications, you'll probably find a few chapters (such as the one on FileMaker Server) to be of interest. If you're mostly interested in learning how to use the essential features of the FileMaker application, though, this book may not be for you. Although we've included possible, we've chosen to focus on an audience that we assume is largely familiar with the essential operations of FileMaker already, and is interested mostly in topics for the beginning to advanced developer.

  We have also written a companion work, FileMaker 8 Functions

  and Scripts Desk Reference. As a reference, it is meant to be

  used daily as developers look up function syntax, refresh their memories on how specific script steps work, peruse useful custom functions, or uncover what a specific error code means. Each book is intended to complement the other, but the two are not interdependent. Some of the feedback we received for

  Special Edition Using FileMaker 7 noted that it combined both

  reference material and deeper, conceptual topics and was perhaps serving two audiences. In this updated version of

  Special Edition Using FileMaker 8, we've focused on the

  exploration of various development topics, and left the reference material to our companion volume.

How This Book Is Organized

  Special Edition Using FileMaker 8 is divided into five parts, organized into something like a tree.

   "Getting Started

  with FileMaker 8," and

   , "Developing Solutions with FileMaker," constitute the "trunk" of the tree; they cover

  fundamental material that we recommend everyone read. If you're familiar with previous versions of FileMaker, you may need only to glance through

   but we still recommend you

  read carefully. Subsequent parts branch out from this base.

  

  "Developer Techniques," focuses on using FileMaker's features to develop complete, robust database applications.

   ,

  "Data Integration and Publishing," covers getting data into and out of FileMaker. And

   "Deploying a FileMaker Solution,"

  covers options for making a FileMaker solution accessible to others. The five parts of Special Edition Using FileMaker 8, and the topics they cover, are described in the following sections.

  introduce you to FileMaker and its uses

  and features, and get you started with the basics of defining databases.

  within the wider world of database and productivity software. It provides an overview of the new FileMaker 8 product line, and mentions the most important new features in FileMaker 8. This chapter is appropriate both for those previous versions and want a quick tour of the major innovations.

   , "Using FileMaker Pro," is intended as an

  introduction to the software from the perspective of a database user rather than a database developer. We introduce the major components and functions of the FileMaker interface, such as the Status Area, layouts, FileMaker's modes, and the basics of record creation, editing, and deletion. Note that FileMaker Pro 8 has added significant end-user functionality to the product line.

  

, "Defining and Working with Fields," provides a

  thorough overview of all of FileMaker's field types and field options, including lookups, validation, storage types, and indexing. This chapter is intended to help lay the groundwork for talking about database development, and to serve as a thorough reference on FileMaker field types and options.

   , "Working with Layouts," covers all of FileMaker's

  layout-building options in detail. We cover all aspects of layout building, and offer guidelines for quicker and more efficient layout work.

  is intended to introduce you to the fundamental

  techniques of database application development using FileMaker Pro and FileMaker Pro Advanced. through

  cover

  the theory and practice of designing and building database systems with multiple data tables.

  

  introduce you to foundational concepts in application and reporting logic.

  

, "Relational Database Design," introduces you to

  relational database design concepts. We proceed by working "on paper," without specific reference to FileMaker, and introduce you to the fundamental vocabulary and techniques of relational database design (keys and relationships) through a series of modeling exercises based on fictional business and organizational problems.

   , "Working with Multiple Tables," begins the task

  of translating the generic database design concepts of

   into specific FileMaker techniques. We show how

  to translate a paper diagram into an actual FileMaker table structure. We show how to model different relationship types in FileMaker using multiple data tables, and how to create fields that function effectively as relational keys.

   , "Working with Relationships," builds on the

  concepts of

   Rather than focusing on FileMaker's

  relationships from the standpoint of database design, we focus on their practical implementation in FileMaker programming. We look in detail at the new capabilities of FileMaker 8, and discuss nonequality join conditions, file references, and some strategies for organizing a multitable system.

   , "Getting Started with Calculations," introduces FileMaker's calculation engine. The chapter delves into the

  major types of FileMaker calculations. We cover a number of the most important functions, and discuss general strategies and techniques for writing calculations.

   , "Getting Started with Scripting," introduces FileMaker's scripting engine. Like the preceding chapter, this

  one covers the fundamentals of an important skill for FileMaker developers. We cover some common scripting interactivity to a user interface.

   , "Getting Started with Reporting," illustrates the

  fundamental techniques of FileMaker Pro reporting, such as list views and subsummary reports, as well as some more advanced subsummary techniques, and some design techniques for improving the look and usability of your reporting layouts.

  delve deeper into individual topics in

  advanced FileMaker application development. We build on earlier chapters by exploring more complex uses of portals, calculations, and scripts. We also offer chapters that help you ready your FileMaker solutions for multiuser deployment, and we examine the still-important issue of conversion from previous versions.

   , "Developing for Multiuser Deployment,"

  explores the issues and challenges of designing FileMaker systems that will be used by several or many people at once. We discuss how FileMaker handles concurrent access to data and discuss the concept of user sessions.

   , "Implementing Security," is a thorough

  overview of the FileMaker 8 security model. We cover the role-based Accounts feature, Extended Privileges, and many of the complexities of server-based external authentication (against Windows or Mac OS user directories, for example).

  

, "Advanced Interface Techniques," provides

  detailed explanations of a number of more complex, applied techniques for working with layouts and data presentation in a FileMaker application. We look at different options for where and how to build interface layouts, explore an advanced, script-based navigation scheme, and discuss FileMaker's tools for building multiwindow interfaces.

   , "Advanced Calculation Techniques," looks

  closely at some of the more advanced or specialized types

  Let Evaluate

  of FileMaker calculations, including the , , and

  GetNthRecord

  functions, as well as the functions for text formatting and for list manipulation. The chapter finishes with an examination of custom functions, another important feature in the FileMaker 8 product line.

   , "Advanced Scripting Techniques," like the

  preceding chapter, is full of information specific to features of FileMaker 8 scripting. Here we cover programming with script parameters, the significant new FileMaker 8 feature of script variables, programming in a multiwindow system, and the complexities of scripted navigation among multiple tables and recordsets.

   , "Advanced Portal Techniques," looks at FileMaker's portal elements from two perspectives. First, we

  examine more advanced uses of portals for creating and viewing database records. Second, we examine the ways in which portals can be used to create new types of interface elements, such as filtered record browsers or pick lists.

   , "Troubleshooting," is a broad look at how to

  find, diagnose, and cure trouble in FileMaker systemsbut also how to prevent it. We look at some software engineering principles that can help make systems more robust, and can reduce the incidence and severity of errors. The chapter also includes detailed discussions of how to troubleshoot difficulties in various areas, from multiuser record lock issues to performance difficulties over large networks.

   , "Converting Systems from Previous Versions of FileMaker Pro," explores the complex issues involved in moving to FileMaker 8 from versions prior to FileMaker 7. We begin by discussing migration scenarios that help you decide how much you stand to benefit from moving to 8. For certain systems the choice to move to 8 will be clear;

  for others it may be less so. We then discuss the mechanics of conversion in detail, and discuss some of the more significant pitfalls to be aware of.

  covers technologies and capabilities that allow FileMaker

  to share data, either by exchanging data with other applications, or by exporting and publishing data, for example, via ODBC, JDBC, and the Web.

   , "Importing Data into FileMaker," looks at all the

  means by which you can import data into FileMaker. It covers how to import data from flat files, how to batch imports of images and text, how to import images from a digital camera, and how to import data from ODBC and XML data sources. (The full treatment of XML importing is reserved for

   , "Exporting Data from FileMaker," is in some

  respects the inverse of

  ways by which you can extract or publish data from FileMaker, including simple export, XML export, and pushing data into SQL databases via ODBC, as well as means by which others can query FileMaker data over ODBC.

   , "Instant Web Publishing," looks at the features

  of the FileMaker 8 Instant Web Publishing model. Anyone interested in making FileMaker data available over the Web should begin with this chapter.

   , "FileMaker and Web Services," introduces you

  to FileMaker's XML capabilities. XML is the backbone of FileMaker's Custom Web Publishing technologies. This

  chapter introduces XML and its companion technology XSLT as they relate to FileMaker's XML import capability. Though no substitute for a book devoted to XML and XSLT, this chapter should teach enough for you to begin to get your footing with these technologies as they relate to FileMaker.

   , "Custom Web Publishing," covers FileMaker 8's Advanced Web Publishing technology. This chapter

  discusses how to configure the FileMaker Web Publishing Engine (WPE), and how to write XSLT stylesheets that exploit the WPE's capabilities to build FileMaker-backed web applications.

Part V : "Deploying a FileMaker Solution" Part V delves into the choices you have for how to deploy a FileMaker database, including deployment via FileMaker Server and via kiosk or runtime mode using FileMaker Developer. Chapter 24 , "Deploying and Extending FileMaker," provides

  an overview of the ways you can deploy a FileMaker database to one or more users, reviews plug-ins, and explores means of distributing standalone databases. Read this chapter for a quick orientation toward your different deployment choices.

   , "FileMaker Server and Server Advanced,"

  explores in depth setting up and working with FileMaker Server and FileMaker Server Advanced. The chapter covers setup, configuration, and tuning of Server, as well as managing server-side plug-ins and authentication.

  

, "FileMaker Mobile," reviews how to work with

  mobile computing devices and use FileMaker Mobile to both synchronize with and create databases on handheld organizers.

   , "Documenting Your FileMaker Solutions," covers

  how to put the final touches on a solution: It reviews some industrywide coding conventions, makes commenting recommendations, and explores how to extract information about a solution using the FileMaker Advanced feature Database Design Report.

Special Features

  This book includes the following special features:

  Chapter roadmaps At the beginning of each chapter, you

  will find a list of the top-level topics addressed in that chapter. This list enables you to quickly see the type of information the chapter contains.

  Troubleshooting Many chapters in the book have a section

  dedicated to troubleshooting specific problems related to the chapter's topic. Cross-references to the solutions to these problems are placed in the context of relevant text in the chapter as Troubleshooting Notes to make them easy to locate.

  FileMaker Extra Many chapters end with a section

  containing extra information that will help you make the most of FileMaker Pro. In some cases we offer expanded, fully worked examples of tricky database design problems; in others we offer shortcuts and maintenance techniques gleaned from our collective experience with developing production FileMaker systems (creating custom function libraries, or getting the most out of team development); and in others we delve all the way to the bottom of tricky but vital FileMaker features such as the process of importing records.

  

Notes Notes provide additional commentary or explanation

  that doesn't fit neatly into the surrounding text. You will find detailed explanations of how something works, alternative ways of performing a task, and other tidbits to get you on your way.

  Tips This element will identify some tips and tricks we've learned over the years.

  Cautions Here we'll let you know when there are potential pitfalls to avoid.

   The new version icon This icon will identify things that are new in FileMaker 8.

  Cross-references Many topics are connected to other

  topics in various ways. Cross-references help you link related information together, no matter where that information appears in the book. When another section is related to one you are reading, a cross-reference directs you to a specific page in the book on which you will find the related information.

Typographic Conventions Used in This Book

  This book uses a few different typesetting styles, primarily to distinguish among explanatory text, code, and special terms.

Key Combinations and Menu Choices

  Key (and possibly mouse) combinations that you use to perform FileMaker operations from the keyboard are indicated by presenting the Mac command first in parentheses followed by the Windows command in brackets: ( -click) for Mac and [Ctrl+click] for Windows, for example.

  Submenu choices are separated from the main menu name by a comma: File, Define, Value Lists.

Typographic Conventions Used for FileMaker Scripts Monospace type is used for all examples of FileMaker scripting

  FileMaker scripts are not edited as text, but are instead edited through FileMaker's graphical script design tool, ScriptMaker. As a result, scripting options that are presented visually in ScriptMaker need to be turned into text when written out. We follow FileMaker's own conventions for printing scripts as text: The name of the script step comes first, and any options to the step are placed after the step name, in square brackets, with semicolons delimiting multiple script step options, as in the following example:

  Show All Records Go to Record/Request/Page [ First ]

Show Custom Dialog [Title: "Message window"; Message; "Hello, world!"; Buttons: "OK"]

Who Should Use This Book

  Like FileMaker itself, this book has several audiences. If you work with structured data a lot (Excel spreadsheets, for example) but are new to databases, this book will provide you with a solid foundation in the world of databases, in the basics of database theory, and in the practical skills you need to become a productive database user or developer. The book's more introductory chapters tell you what you need to know to get started building basic databases for your own use. Later chapters introduce you to the world of multiuser database design, and to some of FileMaker's more advanced application design features. If you've worked with other database systemseither server-side relational database engines based on SQL, or desktop development environments such as Accessthis book will help you see how FileMaker Pro fits into the universe of database software. Look over the section in this introduction titled "How This Book Is Organized" to get a sense of which chapters will get you started quickly with FileMaker.

  If you're a web developer wondering how FileMaker might fit into your toolkit, note that we have extensive coverage of the new FileMaker web technologies in

   .

  And in case you're an old hand with FileMaker, we've provided a good bit of in-depth discussion of advanced techniques and have called out new FileMaker 8 features throughout the book.

Part I: Getting Started with FileMaker 8

   FileMaker Overview

   Using FileMaker Pro

   Defining and Working with Fields

   Working with Layouts

Chapter 1. FileMaker Overview In this chapter FileMaker and Its Marketplace

  

  

  

  

  

FileMaker and Its Marketplace

  However you approach FileMaker Pro, some core strengths of the platform are important for all types of users:

  Flexibility Working with FileMaker Pro is inherently open-

  ended. It is simple to create ad hoc data queries, quickly manage data entry, add functionality to a live system, or deploy to the Web in minutes.

  Ease of Use The folks at FileMaker, Inc. have labored hard to make FileMaker as approachable as humanly possible.

  Day-to-day users can easily learn how to add fields to a database, create reports, add form layouts, and more. With FileMaker Pro, organizations can be less dependent on specialized software engineers.

  

Interoperability FileMaker Pro supports many common,

  open standards for data exchange (SQL, ODBC, JDBC, XML) and allows users to connect their database solutions to the greater world of standards-based applicationsboth within their organizations and online on the Web.

  

Modern Data Architecture FileMaker Pro, despite being

  "just" a productivity application that lives on your computer along with Microsoft Word and Solitaire, allows users to create fully relational data structures and to properly build architectures that correctly manage real-world data.

  Ultimately, FileMaker exists between the world of desktop applications and high-end, enterprise-level server systems. It is the third option: a flexible, robust workgroup application that can quickly come together, evolve over time, and be

Rapid Application Development

  In the world of software development, flexibility and speed are critical. We live in the world of Internet time, and usually businesses embark on a development project only when they need something yesterday.

  The practices and experiences of the past two decades have proven software development to be a risky, unpredictable business. NASA's travails are painful reminders that this stuff is, in some ways, truly rocket science. New job functions have been developed in software quality assurance and project management. Certification programs exist to sift the wheat from the chaff. FileMaker Pro exists in many respects to help organizations take on less risk and navigate the waters of software development without having to take on massive engineering efforts when they aren't warranted. Because this is a rapid application development platform, it is possible to build a system in FileMaker Pro in a fraction of the time it takes to build the same system in more classic, compiled software languages or by using enterprise-level systems.

Low Total Cost of Ownership

  FileMaker Pro is focused around offering a low total cost of ownership for organizations. In October 2001, the Aberdeen Group, an independent research firm in Boston, found that "under conservative assumptions, FileMaker Pro was superior, with an average ratio of 5:1 in [cost of ownership] over the industry average database" (quote taken from the Aberdeen Group Executive White Paper "FileMaker Low-IT Database Cost- of-Ownership Study," October 2001).

  Both the cost of the software itself and the rapidity with which systems can be built mean that IT organizations have a viable alternative to the massive enterprise-level systems of the past.

FileMaker Is a Seasoned Platform

  FileMaker Pro is now 20 years old. In the mid-1980s, Nashoba Systems created an initial version that was acquired and published by Forethought, Inc., in April of 1985. Nashoba then reacquired the rights to the software and published FileMaker Plus in 1986 and FileMaker 4 in 1988.

  Claris Corp., which was then being formed by Apple Computer and was to become FileMaker's guiding parent, purchased Nashoba and published FileMaker II in 1988 and 1989. Finally in October 1990, FileMaker Pro 1.0 made its debut and set the product line on the course it has largely followed to this day. In December of 1995, Claris shipped FileMaker Pro 3.0, which saw the introduction of relational data modeling to the platform and, even more important, a completely seamless cross-platform application that's virtually identical between the Mac OS and Microsoft Windows. Today a majority of FileMaker's audience lives on the Windows side.

  In 1998, at the time of version 4.1, Claris Corp. rechristened itself FileMaker, Inc. and focused all its energy around its flagship product. FileMaker has been profitable every quarter since (an extraordinary feat considering the climate in Silicon Valley for the previous few years) and continues to enjoy the backing (as a subsidiary) of a cash-flush Apple Computer, Inc.

  Other major innovations have occurred along the way, but nearly everyone in the community recognizes that it was the watershed version 3.0 that broke open the gates for FileMaker.

  Version 4.0 introduced web publishing to the platform, and version 6.0 offered significant support for XML-based data interchange. In 2004, FileMaker Pro 7.0 was released. This major release featured a reengineered architecture from the ground up, a new model for working with relationships, modern security capabilities, and the capability to hold multiple data tables within a single file. FileMaker Pro 8, launched in August of 2005, is the next release built on the new architecture of 7; it is a testament to that architecture that FileMaker 8 contains as many significant features as it does.

You're Not Alone

  FileMaker, Inc. has sold more than 10 million units worldwide as of this writing. Users range from a single magician booking gigs in Denver, Colorado to Fortune 500 companies such as Citibank and Genentech. Just like any tool, FileMaker is noteworthy only when it has been employed to build somethingand its builders come in all shapes and sizes. The only true common element seems to be that they own computers and have information to store.

  There are some trends: FileMaker Pro is widely used in the world of both K12 and higher education. All 50 of the top universities in the United States use FileMaker Pro. The nonprofit industry is also a key focal point for FileMaker, as is the creative-professionals industry.

Introduction to Database Software

  At its heart, FileMaker Pro is database software; databases are useful for keeping track of contacts and their addresses and phone numbers, the students in a school, the sales and inventory in a store, or the results of experimental trials. Although this sort of information can be kept in spreadsheets and word processor documents, a database will make it much easier to take on these tasks:

  Organize your data into reports Databases can organize

  information into reports sorted by city, last name, price, or any other criteria necessary.

  Find one or several items in your collections Visually

  scrolling through a document with flat data displayed soon becomes unwieldy. Databases make it relatively simple to search for one record (or row) of data within potentially millions of others.

  

Create related associations among data Rather than

  duplicating the name of a company for multiple people (for example), or perhaps having to reenter an address in a dozen places, users can utilize databases to create associations between data elements (using a form of addressing) and preserve the integrity of their information.

  Share data with other systems Databases are often built

  to exchange information with other systems; many become one component in multitiered technology solution for companieseven small businesses often exchange data between QuickBooks, for example, and FileMaker Pro. least of which is the capability in FileMaker Pro to construct a user interface that can map to an organization's workflow. Often the members of an organization will outgrow the documents of desktop applications when they need to support multiple authors, track data in structured, interrelated ways, or manipulate data sets based on differing criteria. Often the first herald of the need for a database is when users are frustrated with not being able to find a given piece of information.

  The rest of this book gets into detail on how to do everything just mentioned and much more as well. You'll get a more detailed look at what a database is and how it works, how to build databases, and so on. But before we dive into the mechanics of databases, it's important to understand how theyand FileMakerfit into the overall software computing world.

Database Software

  A huge variety of software is on the market today. FileMaker generally falls into the category of business productivity software; however, it really is a hybrid application that marries desktop application productivity to a server-based architecture and database. It is as accessible as programs like Microsoft Excel and Intuit's QuickBooks, yet it also allows developers to create complex workgroup databases that are deployed in the same manner as other IT server-based applications. The idea of managing a collection of structured information is what database software is all about. Some database products on the market manage specialized collections such as business contacts. Products such as Act and Goldmine are good examples of those. Quicken, QuickBooks, and Microsoft Money manage collections of financial transactions.

  FileMaker and other nonspecialized database products such as Microsoft Access are used to create database systems just as word processing software is used to create specific documents and Microsoft Excel is used to create spreadsheets. In fact, Microsoft Excel is often used as a database because it has several strong list-management features. It works well for managing simple databases, but it doesn't work well in managing multiple lists that are related to each other.

  Often, simple grids of columns and rows of information (such as spreadsheets) are called flat file or list databases. Simple databases like these are generally self-contained; they usually don't relate to each other, so keeping information up-to-date across many such databases can become unwieldy or impossible. In such cases a relational database is called for. FileMaker is a fully relational database system and allows developers to associate a row (or record) in one area of the database (a customer list, for example) with records in another area of the database (a list of purchase orders, for example). To take another example, users of a relational database system can tie a single company entry to multiple contact people or even associate a single person with multiple company entries. Rather than entering this information in a dozen different places, relational databases, using a form of internal addressing, simply associate one item with another (customers with their orders, companies with their contacts). It is in this way that FileMaker gradates from a single-user productivity tool to a fully realized database development platform.

Off-the-Shelf Software

  There are many relational database products on the market: Specialized products such as Act and Quicken are also relational database products, but the difference is that those products are finished systems, offering a specific set of functionality, whereas products such as FileMaker are tools, used to create custom systems tailored to the individual needs of an organization or a

  It is certainly possible to re-create the functionality of Act or Quicken by using FileMaker, and some organizations choose to do so when faced with the fact that such specialized products are relatively inflexible. If an organization has nonstandard ways of doing things, its members may find it difficult to work with specialized products. Although FileMaker Pro does come with several database templates that might be perfectly suitable for an organization to use right away, most users instead turn to FileMaker to create custom database systems that exactly match how their organization operates.

Custom Development Software

  With a database development tool such as FileMaker Pro, a person can build a system to be exactly what is needed. It's the difference between buying a house that is a pretty good match and building a custom home that has exactly the features one wants (or at least can afford). Home construction is actually a great analogy for building a database because both follow similar trajectories. A home needs to be designed by an architect before it can be built. An owner needs to wait for the home to be built before he can move in, and questions or issues often arise during the construction process. After the home is built, the owner's needs may change and he may need to have an addition built onto the house to accommodate changed circumstances.

  Building a custom home often follows a similar path: The foundation needs to be laid and the walls and plumbing need to be stubbed in before the final coat of paint can be applied to the drywall. Software development often is a complex layering of interdependent parts, and we in the software business don't have the good fortune to be able to run to Home Depot for standardized parts at a moment's notice! Often we need to build our own tools as well.

  Finally, imagine that a home's construction is well under way and the owner decides to move the living room wall six feet. Although that is always possible, the impact of that change will vary a great deal depending on the stage at which the crew is working. This last point is an important one, and it is also where we diverge from the home construction analogy because real-world environments always change. This is especially true for today's email-driven, connected-network world. One of the key advantages to developing database systems in FileMaker Pro is that these systems can be rapidly redesigned, even while the system is in use by other users. Any aspect of a FileMaker system can be changed while it's live if need be (although that may not always be advisable). FileMaker's greatest strength is its inherent flexibility.

What Database Software Does

  FileMaker is database software. The thing that makes it unique in the market is the ease and means by which it allows developers to present information, but it's important to grasp the fundamentals of how all database softwareincluding FileMakerworks. The simplest kind of database is a list. It could be a list of employees or products or soccer teams. Consider an employee example. The information a Human Resources department might want to keep track of could look like the information shown in .

  Table 1.1. Employee Table First Name Last Name Department Extension Jane Smith Marketing 327 Calvin Russell Accounting 231 Renee Frantz Shipping 843

  In database parlance, a list like this is called a table. Crudely put, a table is a collection of like thingsin this case, people. After a table for people is established, one might extend it to include other attributes (or columns) for, say, phone numbers. The result is shown in .

  For a thorough understanding of data modeling and the definition of tables, see

   . Table 1.2. The Growing Phone Directory First Last Department Ext. Home Cell Jane Smith Marketing 327 555-1234 555-4453 Calvin Russell Accounting 231 555-8760 555-3321 Renee Frantz Shipping 843 555-9877 555-1122 As mentioned earlier, this type of database is called a flat file