• Tidak ada hasil yang ditemukan

FileMaker Pro 10 Bible free download ebook for read

N/A
N/A
Protected

Academic year: 2019

Membagikan "FileMaker Pro 10 Bible free download ebook for read"

Copied!
819
0
0

Teks penuh

(1)

Go

from basics to

full-scale development

Write

your own

FileMaker applications

Work

on PCs or Macs,

in workgroups or solo

Ray Cologon

FileMaker

®

(2)
(3)
(4)
(5)

Bible

(6)

10475 Crosspoint Boulevard Indianapolis, IN 46256

www.wiley.com

Copyright © 2009 by Wiley Publishing, Inc., Indianapolis, Indiana Published simultaneously in Canada

ISBN-13: 978-0-470-42900-6

Manufactured in the United States of America 10 9 8 7 6 5 4 3 2 1

No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permissions.

LIMIT OF LIABILITY/DISCLAIMER OF WARRANTY: THE PUBLISHER AND THE AUTHOR MAKE NO REPRESENTATIONS OR WARRANTIES WITH RESPECT TO THE ACCURACY OR COMPLETENESS OF THE CONTENTS OF THIS WORK AND SPECIFICALLY DISCLAIM ALL WARRANTIES, INCLUDING WITHOUT LIMITATION WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE. NO WARRANTY MAY BE CREATED OR EXTENDED BY SALES OR PROMOTIONAL MATERIALS. THE ADVICE AND STRATEGIES CONTAINED HEREIN MAY NOT BE SUITABLE FOR EVERY SITUATION. THIS WORK IS SOLD WITH THE UNDERSTANDING THAT THE PUBLISHER IS NOT ENGAGED IN RENDERING LEGAL, ACCOUNTING, OR OTHER PROFESSIONAL SERVICES. IF PROFESSIONAL ASSISTANCE IS REQUIRED, THE SERVICES OF A COMPETENT PROFESSIONAL PERSON SHOULD BE SOUGHT. NEITHER THE PUBLISHER NOR THE AUTHOR SHALL BE LIABLE FOR DAMAGES ARISING HEREFROM. THE FACT THAT AN ORGANIZATION OR WEBSITE IS REFERRED TO IN THIS WORK AS A CITATION AND/OR A POTENTIAL SOURCE OF FURTHER INFORMATION DOES NOT MEAN THAT THE AUTHOR OR THE PUBLISHER ENDORSES THE INFORMATION THE ORGANIZATION OR WEBSITE MAY PROVIDE OR RECOMMENDATIONS IT MAY MAKE. FURTHER, READERS SHOULD BE AWARE THAT INTERNET WEBSITES LISTED IN THIS WORK MAY HAVE CHANGED OR DISAPPEARED BETWEEN WHEN THIS WORK WAS WRITTEN AND WHEN IT IS READ.

For general information on our other products and services or to obtain technical support, please contact our Customer Care Department within the U.S. at (877) 762-2974, outside the U.S. at (317) 572-3993 or fax (317) 572-4002.

Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.

Library of Congress Control Number: 2009924155

(7)
(8)

other database tools. He subsequently used FileMaker to compile and analyze data for his doctoral thesis, as well as to design databases for a wide range of other purposes.

Ray has had a diverse career in the creative arts, education, and consulting. Over the past decade, he has developed his own business, NightWing Enterprises, (www.nightwing.com.au/ FileMaker) which specializes in the design and development of bespoke FileMaker Pro solu-tions and provides consulting services to developers and clients in various parts of the world. In 2005, Ray was recipient of the FileMaker Excellence Award for Leadership and Technical Excellence in FileMaker Pro, and he has been a presenter at recent FileMaker Developer

Conferences in the United States. He has also been a significant contributor to and moderator of a number of public forums on FileMaker and is a FileMaker Certified Developer.

(9)

Acquisitions Editor

Kyle Looper

Project Editor

Kelly Ewing

Copy Editor

Kelly Ewing

Technical Editors

Corn Walker Jason DeLooze

Editorial Manager

Jodi Jensen

Vice President & Executive Group Publisher

Richard Swadley

Vice President and Publisher

Andy Cummings

Editorial Director

Mary C. Corder

Project Coordinator

Kristie Rees

Graphics and Production Specialists

Andrea Hornberger Sarah Philippart

Quality Control Technician

Melissa Cossell

Proofreading and Indexing

Bonnie Mikkelson Sossity R. Smith

(10)
(11)

Part I: The Fundamentals

1

Chapter 1: Databases: The What, Why, and How . . . .3

The Many Faces of Databases: Lists, Tables and Forms ...4

The limitations of paper-based databases ...4

Entering the digital age ...5

Preparing to get organized ...6

The Concept of a Relational Database ...6

Flat-file databases and data redundancy ...7

Opportunities for making connections ...7

The Anatomy of a Database Solution ...8

The data: Foundation and substance ...8

The interface: Screens, letters, forms, and reports ...9

The hidden helper: Process management ...12

How FileMaker Fits In ...13

What FileMaker Pro calls things ...13

Familiar ideas from the real world ...17

Integrating processes and information ...18

Knowledge is power — personal and professional ...18

Chapter 2: Putting FileMaker Pro in Perspective  . . . . 21

What Makes FileMaker Pro Different from Other Database Development Tools? ...22

Some common misperceptions ...22

A unique approach to design ...25

The FileMaker Product Family ...26

Desktop and server...26

Scalability and flexibility ...27

FileMaker’s Hidden Talents ...28

The cross-platform chameleon ...28

Multiple technologies and formats ...29

Plug-ins and extensibility ...30

The FileMaker calculation engine: Simplicity and power ...31

(12)

Chapter 3: Getting Acquainted with FileMaker . . . . 35

Getting FileMaker Working for You ...35

Starting and exiting from FileMaker ...36

Creating, saving, and closing files ...37

Handling files and data safely ...38

Earlier file formats and conversion issues ...40

Finding Your Way Around ...41

The modes and their uses ...43

Navigating and viewing data ...43

Searching and the FileMaker Find/Omit puzzle ...45

Screen elements and what they’re for ...47

Entering and Editing Data ...48

Creating and duplicating records ...48

Field definitions: Validation and dependencies ...49

The significance of commitment ...49

The Ins and Outs ...50

Importing and exporting data ...51

Previewing and printing options ...52

Send/Save as PDF and Excel ...53

Getting to Know the Relatives ...54

Ways to view and edit related data ...54

The importance of context ...55

Making complexity simple in practice ...55

Optimizing the Application ...55

Preference settings for your workstation ...56

File options for the current database ...59

Chapter 4: What’s New in FileMaker 10  . . . . 63

(13)

GetFieldName(field) ...90

Get(DocumentsPathListing) ...91

External SQL Data Sources (ESS) Enhancements ...92

Additional SQL database support ...92

Value lists based on external SQL data ...92

Single Sign-On for remote Windows clients ...92

Handling of DATETIME values — MS SQL Server ...94

Bento Integration ...94

File Recovery Improvements ...96

Layout Mode Enhancements ...98

Inserting an object into the tab order ...98

Defining tooltips in Pro ...99

Additional font sizes in the format menu ...99

Send Mail by SMTP ...99

Format changes for automatically generated log files ...106

Updated templates and themes...107

FileMaker Pro Advanced Script Debugger enhancements ...107

Relookup Replace and Field Contents no longer commit ...107

Only a single sharing error for multiple files ...107

Script error codes and control commands ...108

Part II: Introduction to Database Design

109

Chapter 5: Creating a Database  . . . . 111

Before Getting Started ...111

Creating a New Database File ...112

Adding tables and fields ...114

OrderLines ...117

Contacts ...117

Invoices ...117

InvoiceLines ...117

Working with the Field Options dialog: Validation and Auto-Entry ...118

Setting up simple calculations ...124

Capturing simple metadata...127

Creating relationships between tables ...129

Adding aggregating calcs ...132

Viewing and Interacting with Data ...135

(14)

Editing or deleting data ...141

Finding and sorting data you’ve already entered ...141

Using special find symbols ...142

Searching with the range and wild card operators ...143

Avoiding the Need for Data Duplication ...143

Recognizing the visual cues to data relationships ...144

Information has a logical flow ...144

Anticipating the user ...146

Making complex things simple ...148

Getting Started with File Security ...148

Working with accounts and privilege sets ...148

Setting a default account and password ...151

Thinking about Usability ...152

Moving between records ...153

Managing context ...153

Moving between tables ...154

Using and changing views ...154

Using buttons for static and dynamic actions ...154

Chapter 6: The Interface: Layout Mode . . . . 155

Initial Layouts ...155

A map of Layout mode ...158

Selection and then Action tools ...158

Drag-to-Layout tools ...158

Palette and Menu controls ...160

Organizing the presentation of information ...160

Applying formats to field and text objects ...162

Setting up layouts for printing ...166

Understanding lists and forms ...168

Layout parts and their purposes ...170

The Importance of Visual Structure ...171

Adding visual pointers and aids...172

Using white space ...174

Ergonomics and avoiding visual fatigue ...174

Giving information meaning...175

Defining Tooltips ...175

Using conditional tooltips ...176

Keeping track of tooltips ...177

Different Kinds of Layout Objects ...177

Static and dynamic objects ...178

Inherent object properties ...179

Conditional format attributes ...179

FileMaker as a Graphical Environment...181

Building graphic objects in FileMaker ...181

(15)

Controlling stacking and alignment ...183

Bringing in graphics from other applications ...184

Interacting with Layout Objects ...185

Keyboard control of a layout ...185

Setting the tab order ...186

Assigning names to layout objects ...186

Controlling visual spell-checking ...187

The Tab Control and Its Uses ...188

Defining and creating a tab panel ...188

Navigating between tab panels ...189

Button scope and button commands ...198

The button as an object ...199

The Web Viewer: Inviting in the World ...200

Setting up a Web viewer...200

Page sizes and page setup ...203

Paper output versus PDF or Excel output ...204

Composite PDFs from multiple layouts ...204

Chapter 7: The Structure: The Manage Database Dialog  . . . . 205

Working with Tables ...206

Table concepts: A room with a view ...206

Adding, deleting, and renaming tables ...206

Moving tables between files ...208

Importing tables ...209

Specifying Fields ...212

Adding, deleting, and renaming fields ...213

Understanding field/data types and their significance ...214

(16)

Entering literal text ...234

Referencing fields ...235

Understanding calculation functions and their syntax ...236

The List( ) function ...236

Commission on earnings above a threshold ...238

Calculating initials from a person’s name ...239

Compound interest at a known rate over a given period ...239

Current quarter of the calendar year ...240

Changing ampersands to “and” in a block of text ...240

Record navigation text (record n of nn) ...240

The Relationships Graph ...241

Common misconceptions about the Relationships Graph ...241

Tables versus Table Occurrences ...243

Avoiding circular references ...244

Named and unnamed data sources ...245

Creating references to other FileMaker files ...246

Working with External SQL Data Sources ...247

Configuring ODBC drivers: Setting up a DSN ...247

Integrating SQL tables with FileMaker data ...252

Adding supplemental fields ...256

The Concept of Data Relationships ...257

Why bother with relationships anyway? ...257

How relationships work ...258

Solving problems by using relationships ...258

Deciding what goes where ...259

The FileMaker relational model ...259

Chapter 8: The Processes: FileMaker Scripting  . . . . 261

Scripting: What It Is and What It Offers You...261

Building blocks of automation ...264

Setting up a basic script ...271

How script commands function ...273

Changing the order of commands ...274

Assigning attributes to a command ...276

(17)

Using the single-threaded script engine ...279

Working with the script stack and paused scripts ...280

Controlling Script Execution ...280

Ease of Editing in FileMaker Scripting...287

Selecting and duplicating multiple commands ...288

Copying and pasting scripts ...288

Copying and pasting script steps ...289

Organizing Scripts ...289

Searching for scripts by name ...294

Some Examples to Start With ...295

Performing a Find ...295

Scripts assigned to custom menu commands ...298

Layout buttons ...298

Calling scripts from other scripts ...298

On Timer Script Triggers...299

File Open and File Close scripts ...299

Layout event Script Triggers ...299

Object event Script Triggers ...300

External script calls ...301

Part III: Beyond the Basic

303

Chapter 9: The FileMaker Power User  . . . . 305

Making Browse Mode Work for You ...306

Using multiple windows and views ...306

Filtering portals and creating pick lists ...306

(18)

Performing Complex Search Operations ...317

Compound Find criteria: The AND Find ...318

Stacking Find requests: The OR Find ...318

Constraining and extending the found set ...319

Saving Finds and found sets ...319

Sorting Records ...323

The management of formatting: A three-tiered approach ...334

Character-level formatting ...334

Paragraph-level formatting ...335

Layout format filters ...335

Precedence of number, date, and time formats ...336

Controlling formatting programmatically ...336

Differences between numeric and text indexing ...343

Unicode and alternate language indexes ...344

Optimizing field index configurations ...345

What caching does for you ...347

Solving caching problems ...348

Gaining control of the cache ...349

Understanding Global Fields ...349

The behavior of global fields ...349

Uses for global fields ...350

When to avoid global fields ...350

(19)

Chapter 10: Building Advanced Interfaces . . . . 351

Developing for Mac and Windows Users ...352

Selecting fonts ...352

Paying attention to differences in screen rendering ...353

Considering platform-specific window behavior ...354

Using Dynamic Screen Elements ...356

Disappearing/reappearing objects ...356

The portal invisibility trick ...356

Concealed and remotely operated Tab Control ...358

Using conditional formatting as a visibility control ...360

The hidden power of conditional formatting ...360

Multi-state buttons and objects ...361

Working with Sub-Summary Parts and Part Controls ...362

Building adaptable screens ...362

Stacking up multiple Sub-summary parts ...363

Using multiple break fields ...366

Controlling pagination and page breaks ...366

Designing for Print ...368

Nonprinting objects ...368

Sliding objects and reducing parts ...369

Using Merge fields ...371

Creating a letter generator ...372

Using Multiple Windows and Views ...373

Managing window placement and size ...373

Windows as pop-ups and drill-downs ...374

Simulating modal window behavior ...375

Employing Custom Dialogs as an Interface Tool ...375

Dialogs as a data-entry device ...376

Dynamic dialog attributes...377

Looking at Anchors and Resizable Layout Objects ...377

Objects that move according to window size ...378

Objects that grow and shrink ...379

Managing complex layout resizing ...379

Resizing behavior of enclosing objects ...382

Centering objects within the viewable area ...382

Implementing Shortcut Navigation ...382

The power of the Go to Related Record command ...383

One interface, many paths ...383

Building Back button functionality ...384

Building Depth and Dimensionality ...385

Using embossing and engraving effects ...385

Spatial cues for added meaning ...385

Delineation of element groups ...386

(20)

Working with Tab Controls ...387

Organizers and space savers ...387

Tab navigation via keyboard ...388

Scripting tab operations ...389

Recognizing the Flexibility of Portals ...389

Lists in many guises ...389

Portals as a navigation device ...389

Dynamically sorted portals ...390

Innovative portal implementations ...391

Using Advanced Web Viewer Techniques ...391

Access to advanced functionality ...391

Rendering internally calculated content ...392

Scraping data from Web pages ...393

Progress Bars and Native Charting Techniques...394

Creating script progress monitors ...395

Native indicators and graphical displays ...396

Using Interface Elements ...397

Splash screens ...397

Main menus ...398

About and version info ...398

Online Help for your users ...398

Handling User Preferences ...399

A user-centric development philosophy ...399

Capturing state by user ...399

Example — a multi-lingual solution interface ...400

Chapter 11: Data Modeling in FileMaker  . . . . 405

Background in Relational Theory ...405

Set Theory in the management of data ...406

Modeling the real world ...406

Think about clarity of organization ...407

Keep the big picture in view ...407

Remembering some guiding principles ...408

Separate entities by type ...409

Delineate fields clearly ...409

Place multiples in a separate table...409

Store everything once only ...410

Identify the major players ...410

Put it into practice ...410

FileMaker Relationships Graph Symbols ...410

Visual cues and clues...410

The TO as a pointer ...412

Understanding the graph metaphor ...412

Relationship Operators ...413

(21)

Cartesian joins...415

Repeating fields as an array handler ...420

Collapsing and expanding arrays ...421

Relationship-based techniques for managing data ...421

Allowing creation via relationship...421

Using self joins ...422

The isolating relationship ...423

Graph Techniques — Spiders, Squids, and Anchor-Buoy ...423

Constellations and modular centers ...424

“Back end” and “front end” ...432

The business or procedural layer ...432

FileMaker as an integrated environment ...433

Separation anxiety ...433

File Architecture versus Data Structure ...434

Multi-file solutions ...434

The modular approach ...435

Interface files ...436

Approaches to separation of data ...438

Costs and benefits of separation ...439

Separation and External SQL Sources ...439

Understanding the rules ...440

Working within constraints ...440

Supporting the user ...441

Implementing Separation in an Existing Solution ...442

Establishing data source(s) ...442

Re-pointing Table Occurrences ...442

Creating separate graphs ...444

Deployment Considerations ...445

(22)
(23)

Layers of Abstraction ...480 Building blocks with GetField( ) ...480 Completing the circuit with GetFieldName( ) ...481 The value of Evaluate( ) ...482 Unstored Calculations ...483 Why and when calculations are unstored ...483 Understanding the benefits and trade-offs of unstored calculations ...484 Discovering the hidden secrets of unstored calcs ...485 Calculation Fields versus Auto-Enter Calculations ...486 The user over-ride capability ...486 Auto-enter calculations and storage ...488 The Do Not Replace option ...488 Global Calculations ...489 The moon follows you everywhere ...490 Managing global dependencies ...490 The freedom and efficiency of global calculations ...491 Environment and Metadata ...492

Chapter 13: Scripting in Depth . . . . 499

(24)

Declaring variables ...519 Passing and retrieving multiple parameters ...521 Specifying and retrieving a script result ...523 Storing and accumulating data as you go ...525 Dynamic and Indirect Controls in Scripts ...526 Example — Go to Layout by name or number ...526 Dynamic file paths using variables ...527 Dynamically building Find criteria ...529 Editing field data on the fly (indirection) ...530 Using Nonlinear Logic ...531 Nested and sequential If/Else conditions ...531 Looping constructs ...532 Addressing windows by name (title) ...537 Moving and resizing windows ...538 Determining window dimensions ...539 Creating windows off-screen ...540 Freezing and refreshing the screen ...541 Scripting Data Import and Export ...542 Exporting field contents ...542 Loading and unloading container objects ...548 Pivoting Data between Tables...549 Using utility relationships...549 Managing related data (walking through related records) ...549 Going over Some Practical Examples...550 Locating unique records ...550 Building a multi-part PDF report ...551

Part IV: Integrity and Security

553

Chapter 14: In Control with FileMaker Security . . . . 555

(25)

Protecting your investment...556 Interface vulnerabilities ...557 Taking things at interface value ...557 More than a semblance of security ...558 File-based security ...558 Access to value lists and scripts ...563 The two dimensions of layout access ...563 Privileges for table, record, and field access ...564 Using and managing extended privileges ...566 User Authentication ...567 Creating user accounts ...568 Internal and external authentication ...568 Scripted Account Management ...570 Provision for automation of database security ...570 Working with multi-file solutions ...571 Safe scripting implementations ...572 Creating a Custom Logout Option ...573 The locked-down database ...573 Structuring a solution for logging out ...573 Security logging...575 How Much Security Is Enough? ...576 Ways to evaluate risk ...576 A balanced view of threats ...577 A strategic model for response ...577 The Importance of Physical File Security ...577 Layers of protection ...578 Alternative forms of protection ...578 A multi-faceted approach ...579 Security in Deployment: FileMaker Server ...579 Filtered display of files ...580 Secure Socket Layer encryption ...580 Server checks and logs ...580

Chapter 15: Maintaining Referential Integrity . . . . 581

(26)

Generating Keys ...584 Serial numbers ...585 Record IDs ...586 Unique identification (UID) values ...587 Exploring Keys and Data Type ...588 Retrofitting Keys ...590 Deleting Redundant Records ...591 The use of cascading deletion ...592 Configuring relationships for referential integrity ...592 Privilege requirements for cascade delete ...593 Controlled cascading deletes at runtime ...594 Considering Other Integrity Issues ...595 Lookups and when to use them ...595 Auto-entry lookups and references ...595

Chapter 16: Making FileMaker Systems Fail-Safe  . . . . 599

(27)

Sending an e-mail link ...612 Temporary Edit Interface Techniques ...613 The Data Viewer concept...613 The legitimate purpose of record locking ...615 Creating double-blind entry systems ...615 Field Masking, Filtering, and Error Rejection ...616 Applying standard data formations ...617 Dealing with trailing spaces and carriage returns ...618 Rejecting out-of-scope characters ...618 Handling styled source text ...619 Built-In Logging Capabilities ...619 Making use of auto-enter options ...619 Capturing and extending standard metadata ...620 Script Logging ...621 Infrastructure for script logging ...621 Tracking script execution ...622 Script-specific context variables ...622 Script diagnostics ...623 Capturing User Edits in Detail ...623 Trapping edits, field-by-field ...623 Incorporating ancillary data ...624 Logging record deletions ...626 Managing the Accumulation of Log Data ...626 Archiving options ...627 Generating secondary output ...627 Implementing Roll-Back Capabilities ...627 Chronological roll-back ...628 Alternative undo and roll-back capabilities ...629 Using logs to roll forward ...629 Alternative Logging Approaches ...630 Logs as Data ...630 Scripted and triggered logging ...630

Chapter 17: Maintaining and Restoring Data  . . . . 633

(28)

Data Cleansing Operations ...643 Extract, transform, and load ...643 Data format considerations ...643 Data organization ...644 Data presentation ...644 Data domain ...645 Filtering capabilities in FileMaker ...646 Synchronizing Data Sets ...647 Import matching ...648 Importing selectively ...650 Handling Embedded Images and Stored Files ...651 Assigning and retrieving paths...652 Scripted field updates ...652 Text-Handling Considerations ...653 Export field contents ...653 Designing a custom export process...654

Part V: Raising the Bar

655

Chapter 18: FileMaker Pro Advanced Features . . . . 657

(29)

Assigning menu sets throughout your file ...673 Setting the default menu set for a file ...673 Determining a menu set for each layout...674 Controlling menu sets via script ...675 Custom Functions ...675 Defining custom functions ...676 Custom functions as an aid to syntax readability ...678 Maximizing efficiency and ease of use ...678 Custom Functions and Recursion ...680 Things that only custom functions can do ...680 The stack and the limits of recursion ...681 Tail recursion in practice ...681 Some useful examples ...682 Creating an acronym from a supplied phrase ...682 Extracting a character set from a supplied block of text ...683 Removing an unspecified number of leading carriage returns ...683 Creating Runtime Applications ...684 Generating a stand-alone solution ...684 Binding for each platform ...685 Hosting runtime files ...686

Chapter 19: Efficient Code, Efficient Solutions . . . . 687

(30)

Robots and batch automation ...704 Host/server script execution ...704 Managing File Size ...706 Dealing with data in chunks ...706 Modularization strategies ...707 Considering segmentation ...707 Data archiving ...707 Images and Media in Databases ...708

Chapter 20: Extending FileMaker’s Capabilities  . . . . 709

(31)

Part VI: Appendixes

733

Appendix A: Expanding Your Knowledge with Additional Resources . . . 735

Appendix B: About the Web Site  . . . . 741

(32)

sustained dedication and attention to detail has produced the remarkable application that is FileMaker Pro 10.

(33)

Pro has been available as a cross-platform application (Mac and Windows) since 1992.

From its humble beginnings, FileMaker has acquired new features and capabilities with each suc-cessive version. Version 10, the most powerful and flexible yet, retains much of the essential core of earlier days, enabling rapid development and providing new users with a moderate initial learn-ing curve. As a longstandlearn-ing user of FileMaker (I began uslearn-ing FileMaker Pro with Version 2 in 1990), I have seen many of these changes and can unreservedly commend you on your choice. FileMaker Pro has earned its reputation for a combination of ease of use and power — and if you’re prepared to take the trouble to look a little more deeply into its capabilities (by reading this book, for example!), you’’ll find that it’s also extraordinarily versatile and capable.

The FileMaker Pro 10 Bible features FileMaker Pro 10 and FileMaker Pro 10 Advanced. As a user wishing to create basic solutions, FileMaker Pro 10 is an ideal place for you to start, and the bulk of the information in this book will be immediately useful to you. For more complex requirements or for serious development work, you’ll find that FileMaker Pro 10 Advanced offers numerous advantages, with improved diagnostics and powerful developer-oriented features — and again, you’ll find information herein to ensure that you’re able to get the most out of your purchase.

In addition, FileMaker, Inc. provides the server-based (Web and local network) deployment prod-ucts FileMaker Server 10 and FileMaker Server 10 Advanced, providing you with options to host FileMaker solutions for large workgroups. While the Server products aren’t the focus of the FileMaker Pro 10 Bible, I nevertheless include some references to design considerations for multi-user deployment.

About This Book

(34)

with these features in mind. This edition and the one immediately preceding it represent a major step forward (the previous book was a total ground-up rewrite) and are a substantial departure from earlier books in the series.

The FileMaker Pro 10 Bible brings together practical advice and examples, bringing essential theory together with explanations and techniques covering a wide variety of topics that you won’t find covered in other books or in the user guide and Help files that ship with FileMaker Pro. I’ve designed the book to provide value when read straight-through, as a place to quickly delve into a particular topic or feature, or as a deep reference work when accessing information via the Index.

Although the early chapters (Parts I and II) assume no prior experience with FileMaker, I do assume that you’re prepared to refer to the FileMaker Pro User Guide and the application’s online Help entries as needed (so I don’t repeat the information contained in the documentation that installs by default with the application). In the second half of the book, I cover more advanced aspects of material previously introduced; however, when doing so, I refer you to the relevant introductory passages in case you need to catch up on the basics first. For those occasions when you need to check a fact, find a technique, or solve a problem, the book includes a comprehensive Index and an extensive Table of Contents that help you find topics of interest.

FileMaker Pro 10 is a cross-platform product that operates similarly on Mac and Windows operat-ing systems. In those cases where a feature is specific to one platform, I draw your attention to it and discuss its use (including in cross-platform solutions). When referencing keyboard shortcuts, I include the Mac shortcut and also the Windows shortcut (for example, Ô+T / Ctrl+T). In those few cases where a dialog is significantly different on Mac or Windows, I provide screenshots of both versions of the dialog the first time it’s encountered, but otherwise I show the Mac version in each screenshot.

I’ve taken care to frame the explanations provided here in standard conventions and terminology wherever possible. For example, I use standard notations, such as 1:n, where applicable and a tilde (~) character to indicate an unspecified object (such as one or many records in a relationship). When terms are used with a special meaning, you can find them in the glossary provided in Appendix A.

Although this is a substantial volume, I nevertheless have a finite number of pages with which to address a vast quantity of information; FileMaker Pro is a very big subject! Rather than reiterating information already covered elsewhere, I have been at pains to employ available space within the book to add value and focus on new material you don’t already have at your fingertips. In some cases, this approach means presenting basic information in new ways or elucidating it beyond the common understanding (how FileMaker really works, and why!). As part of that goal, I present information that isn’t documented anywhere else, sharing with you insights gleaned from more than a decade in the trenches with various versions of the FileMaker Pro suite of products.

(35)

About This Book’s Target Audience

If you want to create databases and database solutions using FileMaker Pro 10 or FileMaker Pro 10 Advanced, you’re the target audience for this book. Whether you’re a serious amateur who’s creat-ing a database solution for your family, club, or organization; a professional managcreat-ing data as part of your wider role; or a developer who’s building custom systems or turnkey solutions to sell or license to others, FileMaker Pro 10 Bible can help you attain your goals.

I do make a few basic assumptions about you:

n I assume that you know how to use your computer and operating system, whether it’s a PC running Windows XP or Windows Vista, or a Mac running Mac OS X.

n I assume that you have, or have access to, FileMaker Pro 10 or FileMaker Pro 10 Advanced. The book is more useful if you have access to FileMaker Pro 10 while you read and work through the examples I present.

n The third assumption is that you want to both understand the database design process and learn how to accomplish a broad range of tasks using FileMaker Pro 10.

How This Book Is Organized

In keeping with Bible tradition, FileMaker Pro 10 Bible is divided into parts, and each part is divided into chapters. The parts of this book are as follows.

Part I: The Fundamentals

This part covers the basics of database theory and design and provides a high-level overview of the features of FileMaker Pro 10.

Part II: Introduction to Database Design

This part is where you learn more details of database design theory and how to use FileMaker Pro 10 to actually create a database solution.

Part III: Beyond the Basics

In this part, you find out how to use more advanced FileMaker Pro 10 features in such tasks as producing more comprehensive reports, implementing fault-tolerant input forms, designing lay-outs for cross-platform use, designing target-specific (screen, print, and Web) laylay-outs, and auto-mating data processing.

Part IV: Integrity and Security

(36)

Part V: Raising the Bar

Here, I delve into the additional features and capabilities offered by FileMaker Pro 10 Advanced and explore tools and techniques facilitating professional-level database development processes.

Part VI: Appendixes

The appendixes provide a compendium of other references you might find valuable, such as tar-geted technical books, related publications, and useful Web sites, and a synopsis of what you can find on this book’s companion Web site.

Icons Used in This Book

The book includes a number of icons to call attention to specific passages throughout the book. The icons are as follows:

NOTE

NOTE

Indicates useful, but noncritical, information concerning the material being presented.

TIP

TIP

Indicates information that makes performing a task easier or describes how a fea-ture can be utilized in a useful, but not obvious, manner.

CAUTION

CAUTION

Indicates possible pitfalls or side effects arising from the use of the feature being discussed.

CROSS-REF

CROSS-REF

Indicates where to look for additional (including prerequisite) information about the material being discussed.

NEW FEATURE

NEW FEATURE

Indicates a feature introduced in FileMaker Pro 10 or FileMaker Pro 10 Advanced.

ON

the

WEB

ON

the

WEB

Indicates material that you can find on the book’s companion Web site at www. wiley.com/go/filemaker10bible.

Where to Go from Here

If you’re new to creating databases, you should start with Part I. If you’re experienced at database design but new to FileMaker Pro, try skimming Part I to learn the FileMaker Pro interface and fea-ture set. If you’re an experienced FileMaker Pro user, you’ll probably want to check out Chapter 4 to see what’s new in FileMaker Pro 10 and then bounce around the book to those areas of particu-lar interest (so the book’s Index should prove immediately useful to you).

(37)

K

eeping track of information is a challenge you face in every area of your life, and everything from a grocery list to an inventory of books or music, to a company annual report, is part of that challenge. For your information to be useful, you’ll need ways to organize, store, retrieve and pres-ent it when needed. I assume that you’re reading this book because you recognize that using automated and computer-driven data organizing tools such as FileMaker Pro offers you many advantages — once you’ve taken the time to gain an understanding of the fundamentals.

In this first part of the FileMaker Pro Bible, I offer you a broad introduction to the terms and concepts that you’ll encounter when coming to grips with FileMaker Pro. As well as describing the ways computer database systems can help you to accom-plish your goals, I highlight some of the special features and attributes FileMaker Pro offers — those things that set it apart from competing applications, including the support it provides for novice or lay users. Moreover, this part provides a survey of new features in FileMaker Pro 10 that will be of interest to read-ers who have used previous vread-ersions of the application.

IN THIS PART

Chapter 1

Databases: The What, Why, and How

Chapter 2

Putting FileMaker Pro in Perspective

Chapter 3

Getting Acquainted with FileMaker

Chapter 4

(38)
(39)

Y

ou’ll find no shortage of references to data and databases in books, magazines, TV shows, and Web articles. In fact, referring to databases has become so commonplace that most people take it as shorthand for the use of sophisticated computer techniques to track and analyze infor-mation — and indeed computerized databases are everywhere. Despite this, databases have existed much longer than computers, and the basic concept has its origins in much more humble methods of information storage and retrieval.

The term database refers to any collection of ordered information, whether a computer is involved or not. So everything from the four-day weather forecast to your grocery list to a pocket dictionary is a database. In fact, this book, with its table of contents and index, is a database too, offering a compendium of useful data and several useful ways to access it. In the same way, computer databases mirror all the other familiar data management techniques that have been used throughout centuries — allowing you to organize information, store it, and access it efficiently.

The first and most important principle of any data organization method is that what you get out is only as good as what went in. In many cases (unless the way the information is organized is carefully conceived and followed), information will always be as easy to find as you would hope. This general-ization can apply equally to a handwritten list or a computerized data man-agement tool, depending on the skill and care with which the data has been arranged or entered, and on the suitability of the method for the uses to which you will put the information.

Of course, using a computer to keep track of information offers you many advantages, including speed and reliability, automation of common tasks, and the ability to sort, search, and summarize your information efficiently.

IN THIS CHAPTER

Identifying the elements of a database

Relating data

Solving problems by using a database

Looking at FileMaker’s role in streamlining data management

(40)

My purpose in this book is to provide you with a comprehensive overview of techniques and strat-egies for taking control of your information, using the capabilities of one of the best Database Management Systems available — FileMaker Pro 10!

The Many Faces of Databases:

Lists, Tables and Forms

The most common form of database is a list — any kind of list. Lists of things to do, shopping lists, lists of names and addresses, and countless others are everyday databases that are so familiar that you scarcely think about them. Lists that hold more than one kind of information are commonly organized into tables with different columns for each kind of fact and a separate row for facts about each item. (For example, a shopping list may have a column naming the items to be purchased and an adjacent column listing the quantity of each item required.) As soon as you have two or more pieces of interrelated information to manage, organizing your data into a tabular form provides a framework that is clear and simple and makes it easy for you to locate the information you need.

A computer database holds one or more tables of information, where your data is held within an organized structure that allows you to easily access it. Instead of columns and rows, however, the elements of a FileMaker database are described by using slightly different language. Here are a few of the basic terms:

n Field: In FileMaker, a field holds a discrete piece of information, such as a date, a name, a price, or a ZIP code. Fields correspond to the columns in a conventional table, or to the cells within a row of a spreadsheet.

n Record: One of a set of separate instances of a group of fields, containing a set of infor-mation about a specific item — for example, a person, a place, or a product. Records are analogous to the rows in a conventional table or spreadsheet.

n Table: A collection of records containing information about a number of similar items. n Database: One or more tables containing organized information.

The limitations of paper-based databases

Information is commonly collected by having people fill out forms. Often, the completed forms are filed in cabinets (for example, in alphabetical order), and essential parts of the information may be transcribed into a log or tracked via entries in an index card system.

(41)

After all the effort you might expend getting paper forms sorted and filing them, you’ll have them arranged in a single order (for example, by name or date of birth). Should you need the informa-tion sorted or grouped differently (such as by ZIP code so that you can claim a price break from the post office when sending mail to all the people who filled out forms), you have a huge manual task ahead. If you’re paying someone to assemble the information, such requirements can quickly become too expensive to justify.

Finally, should you need to update any information in the forms stored in such a filing system, someone will have to cross out the old information (such as an out-of-date phone number) and write in different data. After there have been several changes of the same or similar information, the forms (or cards or journal entries and so on) may become jumbled and difficult to read.

Entering the digital age

The impact of computerization has been felt in all corners of the globe. Even folk who don’t own and may never aspire to owning computers benefit both directly and indirectly from the many ways computers change the world we live in — from weather forecasting to traffic control to scien-tific breakthroughs to library loans systems: The digital age is upon us. Databases are at the very center of this world of change, because almost all computerized processes involve storing and manipulating data in some way.

Because you’re reading this book, I assume that you’re familiar with one or more operating sys-tems. However, it may not have occurred to you that in the process of opening and closing folders and viewing the files they contain, you’re navigating a database. Your computer maintains a data-base that tracks the locations (and names, types, and other characteristics) of all the files on each disk drive. When you double-click a file inside a folder, the operating system looks up its database to find out which application should be used to view or open the file in question. So you’ve been using databases long before you found your way to a database management application such as FileMaker Pro.

Storing your data digitally offers several compelling advantages:

n The data can easily be edited. (You don’t need erasers; you don’t make a mess crossing things out; you can automatically track and reverse changes at will. . . .).

n You can use computer programs to search your data and find specific entries much more quickly than you can do manually.

n Computers can repackage your information and present it to you in different formats — or in different sort orders, all at the click of a button or the move of a mouse.

Each of these tasks would be painstakingly laborious to undertake manually by using conventional (paper) records. And the more data you have, the slower a manual process becomes, whereas com-puters can apply the same processes to 5 records or 5,000, often with barely any perceptible differ-ence in the time they take to complete their task.

(42)

sys-utility. That is, the information may be arranged in the same configurations, and the screen forms may even resemble the familiar paper forms. When you print a form from a program that has been designed to mirror the appearance of your paper forms, you can move information freely between conventional filing systems and your digital database.

Adding to the advantages a digital database provides for entering, editing, searching, sorting, pre-senting, and reformatting information, a further benefit is that you can use computers to summa-rize data (automatically adding up totals or averages and so on), generate new data by using calculations, analyze your data, create graphical representations of your data, or make the data available remotely (such as via a Web page).

Preparing to get organized

Getting started on any significant task requires planning. Databases help you get your information organized, but before you can use them effectively, you may need to spend time organizing the database itself. In turn, to do that, you need to organize your thoughts.

The first thing you must establish in order to approach the task of getting organized is the kinds of information you need the database to store. For example, to keep track of inventory for a retail business, you’re likely to need product names, prices, and stock codes. You might also need to know other facts, such as item sizes, availability, sources of supply, or packaging options (boxed or single). In addition, you’ll likely need to keep track of how many of each item is on hand so that you’ll know when to order more stock from the supplier. When you know what information you need to track, you have a much clearer idea about what you need to put into your database.

Separately, you’ll need to determine what information your database should provide as outputs. For example, a products database may be required to produce a catalog or price list, a checklist for stock-take or a summary of items on special, and so on. When you consider what kinds of output will be required, you’ll have a clearer idea what information your database will be required to store.

The start of the process of defining and designing your database, therefore, should be to set out the inputs and the outputs and to make sure that what is going in will be sufficient to provide what you require to come out.

The Concept of a Relational Database

(43)

Flat-file databases and data redundancy

When working with flat-file databases, you’ll frequently encounter situations where the same infor-mation must be entered in more than one record (row) of the table. For example, in a database containing information about people, if one of the fields holds the home address and two of the people (John and Mary) live in the same place, the same address must appear twice (once on the record for John and again on the record for Mary). The immediate consequence of this duplication of information is that if you find an error, you’re likely to have to correct it in both places — or risk having your data contradicting itself and therefore becoming less dependable and useful.

Another issue you’ll encounter when using a flat-file database to deal with large amounts of informa-tion is that it’s hard to view all the relevant informainforma-tion at once (such as when a table must become very wide to accommodate a lot of fields). To make the process manageable, you may need to work with subsets of the data. If using subsets involves separating the information into two or more tables, you’re likely to find that you need to repeat some of the information from one table in the other. For example, if you decide to use separate tables to track people and their addresses and peo-ple and their jobs, some of the information (such as peopeo-ple’s names) must be in both tables. Again, when this repetition of data occurs, any duplicated information that has to be corrected or updated must be changed in two (or more) places to keep your data accurate and internally consistent.

Almost 40 years ago, an elegant solution to the problem of redundancy in databases was proposed by Edgar F. Codd when he described an idea he called the relational model that could be applied to enable Database Management Systems to manage interrelated sets of data more effectively. (You can find a copy of the original article in which Codd described his breakthrough at http:// portal.acm.org/portal.cfm). The mathematical model Codd proposed applied set theory and predicate logic as the basis of a system that would connect data in different sets (tables). For your purposes, the significant thing is that Codd’s work led to the widespread creation of database systems where you can relate information in tables based upon a common field.

In fact, long before relational databases became commonplace on computers, a similar concept was in use in various other forms. For example, before teachers began using computers to record atten-dance, assignment submissions, grades, and so on, many teachers employed special notebooks containing a main page with basic student detail, plus adjacent narrower pages for the teacher to enter columns of details against each student’s name (roll call, assignment results, test scores, and so on). When the same basic concept is implemented within a relational database, a table of stu-dent information is matched by a unique field value (such as stustu-dent’s name or an ID number) to corresponding information in other tables, where attendance, grades, and the like are recorded.

Opportunities for making connections

(44)

By setting up an appropriate computerized database, you can create a framework within which to work with your data so that you can easily access information you need and see connections between corresponding information (which people live in which houses and so on). FileMaker Pro 10 pro-vides an efficient environment that enables you to create flexible and powerful solutions to store and retrieve your data. As part of the process of configuring your solution, FileMaker Pro lets you set up relationships that link data in one table with corresponding data elsewhere in your solution.

An example of the kind of database solution you might create with FileMaker Pro 10 would be a system to track your music collection, wherein songs, artists, and albums will each appear in sepa-rate tables, with links between the tables to associate each song with an artist and with one or more albums on which it appears. In the event you decide to loan some items from your collection to friends, you might add a fourth table to record which items are on loan to whom (and presumably, to mark them off when they’re returned).

Similarly, you might choose to create a database to keep track of the names, telephone numbers, and addresses of your friends or business contacts. In this case, you might create a table of people, a table of addresses, and a table of employers (companies or workplaces). In this case, one or more people records may be associated with each address record, one or more people may be associated with each employer, and each employer may be associated with one or more addresses. Note that in this case, because all the addresses would be together in one table, separate joins are required to connect both the people table and the employers table to the addresses table.

While the two examples I mention here are common requirements, there are many other possibili-ties. From tracking your finances and expenditures to storing trip details and expenses for your vehicle, to organizing your favorite recipes to tracking invitations and responses for as gala ban-quet, there is no shortage of uses for custom database design skill.

The Anatomy of a Database Solution

You can find a number of basic components in any database solution, regardless of its purpose and origins. These elements include tables to hold the organized data, screens or forms to enter and view the data, reports to produce printed (or other) output. All but the simplest solutions can also be expected to include relationships that make the connections between different categories of information (linking people with companies, products with sales, and so on). The combination of the components that make up a database enable you to enter, edit, and extract data in ways that help you to get things done.

The data: Foundation and substance

(45)

The way your data is organized provides your database with structure — sometimes called its data architecture — which provides the basis for every function and procedure you perform. The deci-sions you make about data structure are important because they determine what will be possible, and what won’t, when you’re working with your data.

The model for data relationships developed in the 1970s may seem abstract; however, it provides an effective way of capturing relationships that exist in the real world and replicating them in the information stored in your database. The goal is devising a structure for your data that’s a good match for the things that data represents — and the relationships between them.

An ideal database structure is one that captures information about things (people, objects, places, and so on) and also accurately represents the relationships between them. People have relationships with each other — family and work relationships, for example — but they also have relationships of ownership and association with objects and places. Your databases should provide a way to repre-sent information and its interrelations.

The interface: Screens, letters, forms, and reports

When you interact with a computer database, you view and manipulate data onscreen. Different views of data presented onscreen are therefore often called screens, irrespective of how they’re orga-nized. A screen in this sense combines data, labels, and other control elements, such as menus and command buttons, that enable you to interact with the data and navigate the solution. Frequently, however, the visual elements of a screen are arranged in a way that is analogous to a familiar real-world object, such as a list, form, letter, or report. In many cases, you’ll find it helpful to refer to screens as forms or lists, as these terms are more descriptive.

The most common screen format is the digital form, which presents a selection of the fields of a single record, arranged in a logical and useful order. A digital form therefore mirrors familiar real-world paper forms and can be used for the same purposes — to create and update records. Figure 1.1 shows an example of an entry form used in the iTunes music database to interact with information about a song.

If you’re familiar with creating lists or using spreadsheets, you’ve encountered lists or tables containing so much data that they’re cumbersome. When a table has too many columns, it becomes unwieldy — making the task of seeing connections and considering the data as a whole very challenging. Database forms provide a way to ameliorate this problem by allowing you to view a subset of the fields (col-umns) of data, arranged in a way that makes the connections clear. For example, the components of an address — street, city, state, postal code, and so on — can be grouped together and viewed as a whole. Similarly, a person’s name, title, and personal details will be grouped together. When viewed in this way — rather than spread out across a row as in a conventional table or spreadsheet — you can much more easily understand what the information means and how it interrelates.

(46)

FIGURE 1.1

A form enables you to enter or update information in your database.

You can also use forms to retrieve your data, but that limits you to viewing one record at a time. Moreover, forms frequently present a subset of a record’s data. Although working with forms showing a subset of fields from record data may be advantageous during data entry — allowing you to deal with the data in manageable “chunks” — separate forms may not provide a compre-hensive view of the record’s data. That may be what you want some of the time, for example, when printing an invoice. However, one of an electronic database’s major benefits is that you can quickly and easily get a consolidated report, possibly with summary information, of your data or some defined subset of that data. Figure 1.2 shows such a report — summary data from a music data-base created with FileMaker Pro.

As the example in Figure 1.2 shows, reports are frequently arranged as a list of data from succes-sive records in rows, along with headings and appropriate summaries or totals. Although the many variations on this concept represent the most common kinds of reports required in a database, there are some exceptions.

(47)

Another common use of information is as the basis of correspondence. Letters to colleagues, asso-ciates, customers, or clients usually contain information that is relevant and specific to the recipi-ent. These letters can be produced from a database as a kind of report — one in which the elements of data and/or summary information are arranged within appropriate text, in a format that is conventional for correspondence. In this way, using the data that is already in your data-base, you can efficiently create dozens, or even hundreds, of different letters — each specific to the addressee. This particular type of correspondence, sometimes called a form letter, is a common fea-ture of word-processing applications, such as Microsoft Word. In Word, this feafea-ture is called Data Merge, and you use it to retrieve data from a separate merge data file (such as an Excel or Access file). FileMaker Pro lets you create such correspondence without involving other applications.

By enabling you to enter your data once and then retrieve it in a variety of configurations and for-mats (as screens, forms, reports, summaries, lists, or letters), a database turns unwieldy tables of data into a flexible and powerful tool.

FIGURE 1.2

(48)

The hidden helper: Process management

So far I’ve talked about putting data into computer databases via forms and getting it back out in reports of various kinds. Between the two ends of the process, however, databases make them-selves useful in many other ways. Database solutions can be configured to filter information, con-firm its validity, make connections, calculate new data from raw inputs, summarize sets of data, and automate a variety of tasks involving data.

During the process of data entry, you first create a record and then enter information into the fields within the record. Database applications may allow you to specify a default value for some or all fields, so when a new record is created, some of the fields already have data in them. Sometimes the data entered automatically in this way will be static (always the same), but on other occasions, it may vary depending on the current situation. Examples of default values that vary are a serial number, which will increment as each new record is created, or a date or time field that takes its value from the computer’s internal clock and calendar.

Still more helpful is the ability to define values that will be created automatically, depending on the values you enter. For example, you may enter an item’s unit price and the quantity purchased into a database, and the database automatically fills in the sales tax and total price in other fields, saving you time and effort and reducing the potential for mistakes.

Database screens are often set up with lists of values for particular fields, to prompt you to select an appropriate value — and to speed up the process, enabling you to replace the work of many key-strokes with a single click or just one or two keykey-strokes. Moreover, databases are often configured with rules determining which values are valid and which should be rejected. The user can, thus, be alerted when making an error during data entry, greatly reducing the incidence of data-entry errors.

Because of these capabilities, entering data into a well-designed database solution can be much quicker and easier than typing a table in a word processor or even a spreadsheet, and the results can be more accurate. If you have large amounts of data to manage, or if several different people are involved, using a database has many advantages. These advantages go well beyond data entry because you can automate many other aspects of a database solution.

When you work with data, you’ll frequently have to perform repetitive tasks as part of the process of managing information. For example, if you’re maintaining a sales and billing system, you may need to go through the purchase invoices, marking and dating those that have been paid and mail-ing out receipts to the person or company that made each purchase.

(49)

How FileMaker Fits In

In contemporary computing, you’ll find no shortage of database software — from relatively simple desktop database programs to industrial strength enterprise systems. A few of these products are excellent in the spheres where they operate, but most are not. FileMaker Pro 10, however, stands apart from the rest in several key ways, not least of them being its unusual combination of power, accessibility, and flexibility. However, each Database Management System also has its own terms, techniques, and concepts, as well as its own particular strengths and quirks, with which its users become familiar. To begin your FileMaker journey, I show you a few of the ways to “think” FileMaker.

What FileMaker Pro calls things

In the section “The Many Faces of Databases: Lists, Tables and Forms,” earlier in this chapter, I refer to database solutions, using that term’s general meaning. However, in the context of FileMaker Pro, a solution refers to a database file or a collection of database files that interact with one another to achieve a set of user-defined objectives. Whereas a file containing only a few tables might be referred to as a database, the term solution is generally reserved for the whole set of (one or more) database files forming a particular database system.

A FileMaker solution is composed of one or more files, which in turn may contain one or more tables in which data can be stored. FileMaker offers a great deal of flexibility regarding the way a solution is configured. You can put many tables into a single file, have many files each holding only a single table — or even have some files that have no tables at all (that is, containing only code or interface). You’ll make these choices depending upon the ways you want your solution to work.

The English language is rich with names, and many things have more than one name. In a word-processor table or a spreadsheet, information is entered into cells. In some SQL databases, adher-ing to the terminology of E. F. Codd (see the section “Flat-file databases and data redundancy,” earlier in this chapter), the equivalent place for entering a specific item of data is called an attribute.

However, in FileMaker, as noted previously, they’re called fields. Similarly, what you would refer to as a row in a spreadsheet is called a record in FileMaker.

NOTE

NOTE

Some folk argue that tuple is the appropriate term for a record or that join is the correct name for a relation. However, in my view, the terms record and relation

have the advantage of being more widely used and understood (including by those who have no background in advanced math). Should you decide to delve into technical papers on the subject of data theory, you’ll encounter many such terms employed in discussion of the theory of rela-tional databases. For everyday purposes, including when using FileMaker Pro, the terms in gen-eral use are all you’ll need.

(50)

window in two different modes. At the left, the window is in Layout mode, where the objects on the screen can be edited; at the right, the window appears in Browse mode, and you can see that it is displaying data.

The use of the word layout is significant for two reasons. First, FileMaker provides a set of tools for building screens and reports, which are not unlike those you would encounter in a graphic design program — its interface builder is a layout builder. Second, layouts are vehicles for creating all dif-ferent sorts of display and print output and can even create multipurpose screens that can be pre-sented as a form or a list or printed as a report. Instead of providing separate objects and toolsets for building each different kind of display or output (for example, a form builder and a separate report builder), FileMaker provides a single highly flexible object — the layout. With the exception of dialogs, borders, and the Status Area (the gray band at the top), everything you see in a

FileMaker window is a layout.

FIGURE 1.3

A layout being edited in Layout mode (left) and displaying data in Browse mode (right).

Another way that FileMaker terminology differs from most other database systems is that what oth-ers call search or query is referred to in FileMaker as a find, and the result of a find is termed the

found set. To find something in FileMaker, you fill in some information (such as a word or part of a word) into a blank Find screen, shown in Figure 1.4, and FileMaker will subsequently locate any matching records and present them to you. By contrast, to perform a search in many other database environments, you have to create exacting queries, usually conforming to a standardized language called SQL (short for Structured Query Language). A fairly simple query might be

(51)

to locate and return the contents of records in your Teams table where the TeamName field holds “Design Team” as its value. An SQL query also requires that you specify which fields are to be returned. (Otherwise, all fields in the table are returned.) Moreover, if you add further criteria to an SQL query, it soon becomes quite long and complex. By comparison, FileMaker’s Find process is quick and intuitive and less vulnerable to user errors. (It involves a lot less typing!)

As you can see in Figure 1.4, other than the tools provided in the panel on the window’s left side, there is virtually no visual difference between a new, empty record (as shown in Figure 1.3) and a Find request’s layout area.

In FileMaker, to find records that match given criteria, you go into Find mode, whereupon the cur-rent layout is presented to you with blank fields. You fill in one or more of the blank field boxes with your search criteria (in a layout that has the fields you want retrieved) and when you perform the find (using the Perform Find icon at the top of the window), FileMaker locates the records that match what you’ve entered. So, for example, when you’re viewing a screen that presents data about teams, you can go to Find mode and enter part of a team name, shown in Figure 1.4, to locate records for teams with names beginning with the letters you’ve entered. After performing the Find, you can browse or print the resulting records.

FIGURE 1.4

Gambar

Table concepts: A room with a view ........................................................................206
figure third-party plug-ins and the Auto-Update utility (configurable to automatically load plug-in
Figure 3.13). The first panel, shown in Figure 3.13, provides default settings for the behavior of
Table View dialog appears, as shown in Figure 4.7.
+7

Referensi

Dokumen terkait

Dimana pada praktiknya di lapangan nanti, kegiatan yang akan kami suguhkan adalah program program ini diharapkan mampu membangun mental siswa SMA

Sehubungan dengan telah memasuki tahap pembuktian kualifikasi terhadap dokumen penawaran yang saudara sampaikan, maka bersama ini kami mengundang saudara untuk

2 Sipil 12003 Jasa Nasihat/Pra detain dan Desain Enginering Pekerjaann Teknik Sipa Transportasi. 2 sipa 12003 Jasa Nasihat/Pra desain dan

Tabungan Negara Cabang Utama Surabaya ”karena penulis sangat tertarik untuk mengetahui bagaimana persyaratan dalam pembukaan hingga proses pencairan dari Deposito

Pers dipaksa untuk memuat setiap berita harus tidak boleh bertentangan dengan pemerintah, di era pemerintahan Soekarno dan Soeharto, kebebasan pers ada, tetapi lebih terbatas

Bahasan berikut akan mencakup berbagai ha1 yang terkait dengan keselamatan dan kesehatan kerja dan pada bagian akhir akan dibicarakan secara ringkas bentuk-bentuk

Penelitian dilakukan pada Rumah Sakit Umum Daerah di Pati yang bertujuan untuk menganalisis variabel partisipasi anggaran, komitmen organisasi, keterlibatan kerja dan

Sedangkan data Y (Kinerja) menggunakan data sekunder dari perusahaan. Hasil uji hipotesis kedua variabel komunikasi antarpribadi dan kecerdasan emosi) secara serentak memiliki