Table of contents : Table of Contents......Page 5 How This Book Is Organized......Page 23 Part II: Developing Solutions with FileMaker......Page 24 Part III: Developer Techniques......Page 25 Part IV: Data Integration and Publishing......Page 26 Special Features......Page 27 Who Should Use This Book......Page 28 FileMaker and Its Marketplace......Page 29 You’re Not Alone......Page 30 Introduction to Database Software......Page 31 Database Software......Page 32 What Database Software Does......Page 33 Overview of the FileMaker 10 Product Line......Page 36 Peer-to-Peer Hosting......Page 38 Extending the Functionality of FileMaker Pro......Page 39 New Features......Page 40 FileMaker Database Architecture......Page 41 Technical Specifications......Page 43 Getting Started......Page 45 Registration......Page 46 Activation......Page 47 Using the Quick Start Screen......Page 49 Understanding FileMaker Databases......Page 51 Understanding Tables......Page 52 The FileMaker Pro User Interface......Page 53 Introducing the Status Toolbar......Page 57 Customizing the Status Toolbar (Mac OS X)......Page 59 Customizing the Status Toolbar (Windows)......Page 60 Working in FileMaker Pro......Page 61 Opening a Database......Page 62 Working with Records......Page 66 Working with Fields......Page 67 Field Types......Page 70 Data Validation......Page 73 Working with Related Data......Page 75 Finding Data with FileMaker......Page 78 Using Find Mode to Perform a Find Request......Page 80 Omitting and Showing All Records......Page 86 Saving Find Requests......Page 87 Sorting......Page 88 Printing......Page 89 Presenting Data with Summary and Subsummary Reports......Page 90 Using the Web Viewer......Page 91 Troubleshooting......Page 92 Technique 3: Replacing Data......Page 93 Technique 4: Inserting Specific Information......Page 94 Technique 8: Applying Text Styling and Tabs......Page 95 Using the Manage Database Dialog......Page 97 Table Naming Conventions......Page 99 Creating New Tables......Page 100 Field Naming Conventions......Page 101 Adding Field Comments......Page 103 Working with Field Types......Page 104 Time......Page 105 Container......Page 106 Calculation......Page 107 Summary......Page 109 Auto-Entry Field Options......Page 111 Field Validation......Page 116 Storage and Indexing......Page 118 Troubleshooting......Page 122 FileMaker Extra: Indexing in FileMaker......Page 124 What’s a Layout?......Page 125 Creating a New Layout......Page 127 Layout Context......Page 130 Layout Setup......Page 132 Hiding and Reordering Layouts......Page 136 Layout Naming Conventions......Page 137 Working with Parts......Page 138 Adding and Ordering Parts......Page 139 Part Definition......Page 140 Using the Layout Bar......Page 142 Using the Customizable Status Toolbar Tool Groups......Page 143 Adding Objects to a Layout......Page 145 Positioning Objects on a Layout......Page 147 Automatically Resizing Objects on a Layout......Page 151 Arranging Objects......Page 152 Aligning Objects......Page 154 Adding a Tab Control Object to a Layout......Page 155 Adding Fields to Layouts......Page 157 Field/Control Setup......Page 158 Field Behavior......Page 159 Setting the Tab Order......Page 160 Merge Fields......Page 161 Tooltips......Page 162 Troubleshooting......Page 163 FileMaker Extra: Designing Cross-Platform–Friendly Layouts......Page 164 Database Analysis......Page 165 Working with Entities and Attributes......Page 166 Entities Versus Attributes: A Case Study......Page 168 Representing Relationships in a Diagram......Page 170 Relationship Types......Page 171 Keys That Determine Uniqueness......Page 173 Keys That Refer to Other Tables......Page 174 Many-to-Many Relationships: Using Join Tables......Page 175 Attributes in a Join Entity......Page 176 Second Normal Form: Eliminate Redundant Data......Page 177 FileMaker Extra: Complex Many-to-Many Relationships......Page 178 Multitable Systems in FileMaker Pro......Page 181 Creating the First Table in a Multitable System......Page 182 Adding a Table to a Multitable System......Page 183 Adding a Relationship......Page 185 The Database So Far......Page 186 Using a Portal to View Related Child Data......Page 187 Using a Portal to Add Related Records......Page 190 Working with Related Parent Data in a Child File......Page 193 Building the Structure......Page 194 Creating Value Lists......Page 195 Designing the Interface......Page 196 Rapid Multitable Development......Page 197 Troubleshooting......Page 198 Relationships as Queries......Page 199 Nonequijoins......Page 200 Adding a Table Occurrence to the Relationships Graph......Page 201 Defining a Relationship with Multiple Match Criteria......Page 202 Creating Self-Relationships......Page 206 Creating a Relationship with a Global Value......Page 207 Working with Multiple Files......Page 209 Creating an External Data Source......Page 210 Adding an External Table to the Relationships Graph......Page 213 Troubleshooting......Page 214 Using Formatting Tools to Manage the Relationships Graph......Page 215 Using Table Occurrences to Manage the Relationships Graph......Page 216 Understanding How and Where Calculations Are Used......Page 219 Writing Calculation Formulas......Page 220 Uses for Calculation Formulas......Page 221 Writing the Formula......Page 222 Options......Page 226 Specifying Context......Page 229 The Parts of a Function......Page 232 Text Operations......Page 234 Nested Functions......Page 237 Number Functions......Page 238 Working with Dates and Times......Page 240 Using Conditional Functions......Page 242 Aggregate Functions......Page 243 Get Function......Page 244 Design Functions......Page 246 Troubleshooting......Page 247 FileMaker Extra: Tips for Becoming a Calculation Master......Page 248 Scripts in FileMaker Pro......Page 251 Creating Scripts......Page 252 The Scripting Interface......Page 254 Script Editing......Page 255 Full Access Privileges......Page 256 Commenting Scripts......Page 257 Using a Script Template......Page 258 Using Subscripts......Page 259 Managing the Scripts Menu......Page 260 Error Management......Page 261 Setting and Controlling Data......Page 263 Providing User Navigation......Page 265 Saved Script Options......Page 266 Using Conditional Logic......Page 269 Using Loops......Page 270 Working with Custom Dialogs......Page 272 Starting Scripts......Page 273 Working with Buttons on Layouts......Page 274 Troubleshooting......Page 275 FileMaker Extra: Creating a Script Library......Page 277 Deriving Meaning from Data......Page 279 Determine Report Requirements......Page 280 Generic Versus Specific Report Structures......Page 281 Working with Reports, Layouts, View As Options, and Modes......Page 282 Using the New Layout/Report Wizard......Page 284 Using Summarized Reports......Page 287 Working with Subsummary Parts......Page 288 Calculations Involving Summary Fields......Page 290 Maintaining Sort Order......Page 292 Modifying Table Views......Page 293 Working with Dynamic Reports......Page 294 Alternating Row Color......Page 296 Sorting by Columns......Page 298 Sliding Objects......Page 299 Save/Send as PDF......Page 300 Save/Send as Excel......Page 302 Send Mail......Page 303 Troubleshooting......Page 304 FileMaker Extra: Incorporating Reports into the Workflow......Page 305 Sessions in FileMaker Pro......Page 307 Session-Specific Elements......Page 308 User Accounts and Session Data......Page 309 The ACID Test......Page 310 Commit Versus Create and Serial IDs......Page 312 Record Locking......Page 313 Launch Files......Page 315 Troubleshooting......Page 316 FileMaker Extra: Development with a Team......Page 317 Approaching Security......Page 319 Identifying Risks......Page 320 Planning Security......Page 321 Maintaining Security......Page 324 User Accounts......Page 325 Privilege Sets......Page 328 Extended Privileges......Page 336 Server Administration Security......Page 338 Security over the Network......Page 339 User Authentication......Page 340 External Authentication......Page 341 Troubleshooting......Page 343 FileMaker Extra: Working with Multiple Files......Page 344 Adding a Web Viewer to Contact Management......Page 347 Setting Web Viewer Options......Page 350 Setting Up a Web Viewer with the Templates......Page 351 Controlling the Web Viewer with the Set Web Viewer Script Step......Page 352 GetLayoutObjectAttribute with Web Viewer......Page 353 FileMaker Extra: Using the Web Viewer for Files......Page 354 User Interfaces in FileMaker Pro......Page 357 Building Your Own Interface......Page 358 A Happy Medium......Page 359 Interface Look and Feel......Page 360 Single File Interface Versus Distributed Interface......Page 361 Working with Custom Menus......Page 362 Menu Sets Interface......Page 364 Customizing a Menu......Page 366 Loading and Activating Menu Sets......Page 368 Creating a New Menu from Scratch......Page 369 Conditional Formatting......Page 370 FileMaker Extra: User Interface Heuristics......Page 371 The Let Function......Page 373 The Choose Function......Page 376 The Evaluate Function......Page 378 The Lookup Functions......Page 381 Text Formatting Functions......Page 384 Text Style......Page 385 Array Functions......Page 386 Working with Return-Delimited Data Arrays......Page 387 Stepping Through an Array......Page 388 The Filter Function......Page 389 The FilterValues Function......Page 391 Custom Functions......Page 392 Uses of Custom Functions......Page 393 Creating Custom Functions......Page 395 Examples of Custom Functions......Page 397 GetNthRecord......Page 402 Troubleshooting......Page 404 Matching Multiple Values......Page 406 Script Parameters and Script Results......Page 409 Specifying Script Parameters......Page 410 Retrieving a Script Parameter......Page 411 Passing Multivalued Parameters......Page 412 Strategies for Using Script Parameters......Page 415 Script Results......Page 416 Script Variables......Page 418 About Local Variables......Page 419 About Global Variables......Page 421 About Dynamic File Paths......Page 422 FileMaker Extra: Recursive Scripts......Page 423 FileMaker Triggers Before FileMaker Pro 10......Page 425 Trigger Targets......Page 426 Trigger Events......Page 427 Layout Triggers......Page 428 Object Triggers......Page 429 Using a Timer......Page 430 The Self Function......Page 431 Get (TriggerKeystroke) and Get (TriggerModifierKeys) Functions......Page 432 FileMaker Extra: Using Triggers for an Interactive Interface......Page 433 Window Management Techniques......Page 435 Multiwindow Interfaces......Page 436 Tool and Function Palettes......Page 437 Rich Dialog Windows......Page 438 Go to Related Record......Page 442 GTRR Basics......Page 443 Jumping to Disconnected Table Occurrences......Page 444 Dedicated Find Mode Layouts......Page 445 Troubleshooting......Page 446 Understand Software Requirements......Page 449 Avoid Unclear Code......Page 450 Planning for Trouble......Page 453 Handling Errors in Scripts......Page 454 Tracking Down Errors......Page 456 Performance......Page 457 Connectivity and Related Issues......Page 460 Context Dependencies......Page 461 Globals......Page 464 File Maintenance and Recovery......Page 465 Using the Database Design Report......Page 468 Creating a DDR......Page 469 Using the Script Debugger......Page 470 About the Script Debugger......Page 471 Placing Breakpoints......Page 472 Using the Data Viewer......Page 473 Migration Choices......Page 475 Converting Files......Page 476 Converting Single-File Solutions......Page 477 Converting Relational Solutions......Page 478 Document Your Solution......Page 479 Fix File References and External Data Sources......Page 480 Post-Conversion Tasks......Page 482 Security......Page 483 Relationships......Page 484 Scripts......Page 485 Fields and Formulas......Page 487 Troubleshooting......Page 490 Instant Web Publishing......Page 491 Custom Web Publishing with CDML......Page 492 FileMaker Architecture......Page 493 ODBC Architecture......Page 494 Setting Up and Administering ODBC......Page 495 Installing Drivers......Page 496 Administering ODBC......Page 498 Example: Setting Up a DSN on Mac OS X to Connect to MySQL......Page 501 Example: Setting Up a DSN on Windows to Connect to FileMaker......Page 505 Importing ODBC Data into FileMaker......Page 506 Specifying the Data Source......Page 507 Adding the External Data Source to the Relationships Graph......Page 508 Using Supplemental Fields......Page 511 Troubleshooting......Page 514 Flat-File Data Sources......Page 515 The Import Field Mapping Dialog......Page 516 Updating Records with Imported Data......Page 519 Importing from Another FileMaker Pro File......Page 520 Using an Import to Create a New Table......Page 521 Setting Import Options and Reviewing Status......Page 522 Importing Multiple Files from a Folder......Page 523 Importing Text Files......Page 524 Importing Image Files......Page 525 Importing Photos from a Digital Camera......Page 527 Using a Script to Import Data......Page 528 Troubleshooting......Page 530 FileMaker Extra: Exploiting the FileMaker-to-FileMaker Import......Page 531 Moving, Consolidating, and Re-creating Tables......Page 532 Getting Out What You Put In......Page 533 Selecting Fields to Export......Page 534 Exporting Issues to Consider......Page 535 Character Transformations......Page 536 Exporting Related Fields......Page 538 Exporting to Fixed-Width Formats......Page 539 Working with Large Fields and Container Fields......Page 540 Scripted Exports......Page 541 What Is IWP?......Page 543 Getting Started with IWP......Page 545 Configuring FileMaker Pro for IWP......Page 546 Configuring FileMaker Server Advanced for IWP......Page 549 Sharing and Securing Files via IWP......Page 551 Constraints of IWP......Page 554 Scripting for IWP......Page 555 Layout Design......Page 557 Container Fields......Page 559 Application Flow......Page 560 Browse Mode......Page 564 Find Mode......Page 565 Troubleshooting......Page 566 About Custom Web Publishing......Page 567 Custom Web Publishing Versus Instant Web Publishing......Page 568 Preparing for Custom Web Publishing......Page 569 Getting Your Databases Ready for CWP......Page 570 Preparing for XML Publishing......Page 571 Introduction to XML Publishing......Page 572 Understanding Query Strings......Page 574 Performing Specific Searches with CWP URLs......Page 575 Applications of Custom Web Publishing with XML......Page 579 Preparing for XSLT Publishing......Page 580 Build the Site with the Site Assistant......Page 581 Explore the Generated Site......Page 584 Basic Cleanups......Page 586 Writing Your Own XSLT Code......Page 587 Embedding Query Parameters in a Stylesheet......Page 588 Using Tokens to Share Data Between Stylesheets......Page 589 Other Query Commands......Page 590 Other Query Parameters......Page 591 About the FileMaker XSLT Extensions......Page 593 About Sessions......Page 594 Troubleshooting......Page 595 FileMaker Extra: An XML Interface File......Page 596 Choosing a Custom Web Publishing Technology......Page 597 Getting Your Databases Ready for Custom Web Publishing with PHP......Page 598 Getting FileMaker Server Ready for Custom Web Publishing with PHP......Page 599 Using the PHP Site Assistant......Page 600 Building the Site with the PHP Site Assistant......Page 601 Troubleshooting......Page 608 Renaming Files......Page 609 Runtime Solutions......Page 611 Solution Options......Page 612 Removing Admin Access......Page 615 Error Log......Page 616 Preparing a Kiosk Interface......Page 617 Plug-ins......Page 618 Understanding Plug-ins......Page 619 Installing Plug-ins......Page 620 Configuring and Enabling Plug-ins......Page 621 Troubleshooting......Page 622 The FileMaker Server Product Line......Page 623 FileMaker Server Versus Peer-to-Peer Database Hosting......Page 624 FileMaker Server Capabilities......Page 625 FileMaker Server Requirements......Page 626 Installing and Deploying FileMaker Server......Page 629 The Installation Process......Page 630 The Deployment Process......Page 633 Hosting Databases......Page 638 FileMaker Server Overview......Page 639 Administration......Page 640 Configuration......Page 645 Preparing FileMaker Server......Page 648 Performing the Auto Update......Page 650 Putting It All Together......Page 654 Install Software......Page 655 Monitor Usage Statistics......Page 656 Keep Current with Software Updates......Page 657 A......Page 659 C......Page 661 D......Page 664 E......Page 666 F......Page 668 G......Page 672 I......Page 673 L......Page 675 M......Page 677 N......Page 678 O......Page 679 P......Page 680 R......Page 682 S......Page 684 T......Page 688 U......Page 690 W......Page 691 X-Y-Z......Page 692