FileMaker Pro 13 The book that should have been in the box® Susan Prosser & Stuart Gripman Beijing | Cambridge | Farnham | Köln | Sebastopol | Tokyo FileMaker Pro 13: The Missing Manual by Susan Prosser and Stuart Gripman Copyright © 2014 Susan Prosser and Stuart Gripman All rights reserved Printed in USA Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472 O’Reilly books may be purchased for educational, business, or sales promotional use Online editions are also available for most titles (http://my.safaribooksonline.com) For more information, contact our corporate/institutional sales department: (800) 998-9938 or corporate@oreilly.com July 2014: First Edition Revision History for the First Edition: 2014-06-18 First release See http://www.oreilly.com/catalog/errata.csp?isbn=0636920033271 for release details The Missing Manual is a registered trademark of O’Reilly Media, Inc The Missing Manual logo, and “The book that should have been in the box” are trademarks of O’Reilly Media, Inc Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks Where those designations appear in this book, and O’Reilly Media is aware of a trademark claim, the designations are capitalized While every precaution has been taken in the preparation of this book, the publisher assumes no responsibility for errors or omissions, or for damages resulting from the use of the information contained in it ISBN-13: 978-1-4919-0079-6 [QG] Contents The Missing Credits ix Introduction xv Why FileMaker Pro? xvii About This Book xviii Macintosh and Windows xix About the Outline xix What’s New in FileMaker Pro 13 xx The Very Basics xxiv About the Online Resources xxv Safari® Books Online xxvi Part One: CHAPTER 1: Getting Started with FileMaker Working with Your Database A Very Quick Database Tour Opening and Closing Database Files Adding Data to Your Database 11 Navigating Your Database 17 Finding Records 20 Sorting Records 25 Same Database, Different Views 29 Saving Your Database 33 Using FileMaker’s Help Menu 35 CHAPTER 2: Organizing and Editing Records 37 Views 37 Advanced Find Techniques 43 Editing What’s in Your Fields 57 Changing Text Appearance 63 Checking Spelling 68 Preview Mode and Printing 71 iii Part Two: CHAPTER 3: Building Your First Database Creating a Custom Database 77 Creating a New Database 77 Creating and Managing Fields in Form View 79 Understanding Layouts 86 Customizing a Layout 91 Creating a New Layout 111 Arrange and Align Tools 114 CHAPTER 4: Adding Power to Your Database 119 Creating a Simple Calculation 119 Creating a Related Table 125 Creating and Using Portals 134 Using Tab Controls 143 Adding Merge Fields 151 Writing a Basic Script 154 Creating a Dynamic Report with the Assistant 160 Creating a Trailing Group Report 164 Creating Charts in Table View 166 Changing the Default Account 167 Summing Up 170 Part Three: CHAPTER 5: Thinking Like a Developer Creating and Managing a Relational Database 173 Understanding Relational Databases 174 Modeling Your Database 175 Creating a Relational Database 193 Using Relational Database Power 201 Lookups 209 Reviewing Relationship Concepts 217 CHAPTER 6: Field Options 223 Understanding Field Types 224 Auto-Enter Field Options 227 Validation Options 234 Storage Options 240 Beyond Text: Container Fields 247 iv Contents CHAPTER 7: Layout Mechanics 253 Layout Types 253 Layout Parts 257 Formatting Fields 271 Advanced Field Controls 276 Tab Order 288 Creating Layouts for Printing 292 CHAPTER 8: Layout Design 299 Layout Themes 299 Touch Themes 300 Styles 300 Grids, Guides, and Dynamic Guides 304 Screen Stencils 310 Data Formatting 311 Merge Fields 323 Merge Variables 325 Tooltips 326 Autosizing 328 Buttons 339 CHAPTER 9: Understanding Calculations 349 Understanding Calculations 349 Using a Related Field in a Calculation .367 Understanding the Specify Calculation Dialog Box 369 Auto-Enter Calculations 372 Validate Data Entry with a Calculation 375 Commenting in Calculations 377 CHAPTER 10: More Calculations and Data Types 381 Number Crunching Calculations 381 Going Beyond Basic Calculations 385 Text Calculations 388 Date and Time Calculations 401 Containers in Calculations 406 CHAPTER 11: Understanding Scripts 409 Understanding Scripts 410 Your First Script 410 Shortcuts to the Edit Script Window 422 The Importance of the Layout 423 Running Scripts 424 Organizing Your Scripts .428 Branching and Looping in Scripts 431 Script Triggers 440 Contents v CHAPTER 12: Exploring Script Steps 453 Go to Layout 453 Go to Object 454 Scripting for Fields 457 Working with Records 473 Finding Records 482 Sorting Records 492 Working with Windows 493 Working with Files 501 Printing 503 Other Script Steps 503 Part Four: Becoming a Power Developer CHAPTER 13: Applying Developer Utilities 509 Copying and Pasting Database Structure 510 Script Debugger 513 The Data Viewer 521 Disable Script Steps 525 The Database Design Report 526 Custom Functions 532 Custom Menus 538 Developer Utilities 551 File Maintenance 556 CHAPTER 14: Advanced Relationship Techniques 559 Advanced Relationships 560 Portal Filtering 567 Understanding Table Occurrences 570 Table Occurrence Groups 575 Understanding Graph Arrangements 586 Connecting Database Files 587 Using Multiple Relationship Techniques 592 CHAPTER 15: Reporting and Analysis 597 Summary Fields and Subsummary Parts 597 Web Viewer Objects 608 Conditional Formatting 614 Basic Charting (Found Set Charts) 619 Chart Formatting 625 Charting and Reports 628 Advanced Charting 631 vi Contents CHAPTER 16: Advanced Calculations 639 Understanding Boolean Functions 640 Using Storage Options 643 Logical Functions 648 The Let() Function and Variables 655 Recursion 658 Plug-Ins .663 CHAPTER 17: Advanced Scripting 667 Commenting Scripts 667 Importing Scripts 669 Communicating with Database Users 670 Creating Modular Scripts .678 Script Parameters 684 Script Variables 687 Handling Errors 689 Advanced Script Triggers 693 Putting a Complex Script Together 700 Part Five: Security and Integration CHAPTER 18: Adding Security 725 How Security Works .725 Privilege Sets 727 Managing Accounts 745 Extended Privileges 750 Managing External File Access 753 Scripts and Security 756 CHAPTER 19: Sharing Data Using FileMaker Server 761 Understanding Database Sharing 762 FileMaker Network Sharing 762 Working with a Shared File 765 FileMaker Server 769 Server Hardware 789 CHAPTER 20: Sharing Data with WebDirect and FileMaker Go 791 Understanding WebDirect 792 Enabling WebDirect in a Database 795 Opening a Database in FileMaker Go 798 Connecting with a Web Browser 802 Designing for WebDirect and FileMaker Go 804 Designing for Go 807 Designing for WebDirect 808 Contents vii Customizing the WebDirect Home Page 810 Sharing Databases on the Internet Without WebDirect 810 CHAPTER 21: Sharing Data with Other Systems 813 Sharing Your Data with Others 813 Snapshot Link 819 External SQL Sources 821 Exporting Data 832 Importing Data 838 Import Data Sources 850 Importing and Exporting in a Script 857 Part Six: Appendixes APPENDIX A: Getting Help 861 Getting Help from FileMaker Pro 861 FileMaker’s Installed Extras 865 Getting Help from the Community 871 APPENDIX B: File Conversion 873 Compatibility 873 Understanding Conversion 874 Start with a Test Run 875 Converting a Single File 875 Converting Multiple Files 878 APPENDIX C: Using the Insert Commands with Container Fields 879 APPENDIX D: FileMaker Error Codes 881 Index 891 viii Contents indexing fields basics, 242–246 calculation fields, 647 indirection (scripts), 683 individually significant data (fields), 81 inner loops (nesting), 440 In Range validation option, 240 Insert Audio/Video command, 251 Insert Calculated Result script step, 462 Insert File commands, 248, 251–252, 879–880 Insert File script step, 465–466 Insert Operators pop-up menu, 50 Insert Picture command, 248–251 Inspector Arrange/Align tools, 115 controlling layout objects with, 101–103 Data tab, 106 installing custom menu sets, 549–550 FileMaker Server, 771–775 Install OnTimer Script step, 693 ODBC drivers, 822–823 plug-ins, 664–666 Instant Web Publishing (IWP), 796 Invoice Finder layout (multiple relationship techniques), 592–596 iterative calculations, 658 K merge fields, 152 mode switching, Modify Last Find, 53 moving between fields, 13 moving fields, 841 moving objects, 113 moving/resizing objects, 96 navigating databases with, 18–19 navigating fields with, 122 omitting records, 46 Save command, 157 saving databases, 33 Script Debugger menu commands, 516 Scripts menu, 424 sizing fonts, 98 Sort dialog box, 28 tabs, 66 undoing text formatting, 64 Ungroup command, 343 Keychain (Mac), 749 key fields creating in all tables, 130 creating with auto-enter serial numbers, 126–130 definition of, 127 in relational databases, 187–191 script for changing values in related tables, 722 keystroke triggers creating, 697–698 creating keystroke filters, 698–700 detecting pressed keys, 695–697 overview, 694–695 Kiosk mode, 555 keyboard shortcuts closing files, 10 closing windows, 32 constraining object movements, 95 copying text while dragging, 58 creating records, 11 deleting records, 14–15 duplicating records, 14 field options dialog box, 122 function help, 361 Inspector, 271 Layout mode, 42 Manage Database window, 132 Manage Layouts dialog box, 269 labels, field editing, 97 naming, 137 Labels layout type, 255–256 languages, indexing, 245 Last Visited Records, 233–234 layout parts arranging, 261–263 Form view, 258 List view, 258 manipulating, 264 overview, 257–258 Part Setup dialog box, 259–261 J join tables, 181, 191–193 LAYOUT PARTS L INDEX 901 LAYOUTS 902 Preview mode, 258–259 when to use each type, 261 layouts adding gradients, 104–105 adding new fields, 122–124 adding portals, 135–137 aligning/distributing objects, 114–115 arranging objects, 117 Autosizing control. See Autosizing control (Inspector) building custom (scripts), 677–678 buttons. See buttons choosing for WebDirect/FileMaker Go, 806–807 controlling layout objects with Inspector, 101–103 copying portals from, 584 creating new, 111–112 customizing, 91–92 drawing tools, 106 duplicating/editing, 583–584 editing text objects/fields in, 92–93 fine-tuning tools, 116 formatting fields, 105–111 found sets and, 267–268 grids, 305–306 grouping/locking objects, 116–117 guides, 306–308 guides, dynamic, 309 inserting pictures in, 102–104 Invoice Finder, 592–596 Layout bar, 88–89 Layout mode, 42 layout objects, 89–91 layout privileges, 739–742 layout setup, 268–269 Layout Setup dialog box, 266, 443 layout triggers, 445–448 layout types, 253–257 Manage Layouts dialog box, 269–271 matching two, 112–115 merge fields and, 323–325 merge variables and, 325–326 New Layout/Report dialog box, 253–254 overview, 86–87 Printer layout types, 255–257 putting web viewers on, 609–611 renaming, 265–266 Report layouts, 292–293 INDEX resizing, 79 resizing objects in, 115–116 rotating objects in, 117–118 running scripts from, 423–424 Screen Stencil tool, 310–311 setting view of, 266–267 sliding layout objects, 333–339 starter solution templates, 94 Status toolbar in Layout mode, 88–89 tooltips, 326–328 viewing new table layout, 131–132 viewing related fields on, 202–205 layouts for printing columns, 296–297 margin configuration, 293–296 overview, 292–293 viewing in Preview mode, 292 layout themes overview, 299–300 reusing/sharing, 304 styles, 300–304 touch themes, 300 leading-edge searches, 49 Leading Grand Summary parts, 607–608 Learning XSLT (O’Reilly), 852 Left() function (text), 391 LeftValues() function (text), 394, 397 LeftWords() function, 392–393 Length() function (text), 395 Let() function, 655–657 Line charts, 621 line objects, 90 lists Autosizing control in list layouts, 332–333 drop-down, 276–278 List() function, 383–384 List layout, 254 List of option (summary fields), 604 return-separated, 383–384 List view basics, 38–39 layout parts in, 258 use of, 29–31 local variables, 656–657, 674 locking objects, 116–117 records, 32, 480, 762 Text tool, 97 logical functions conditional functions, 648–652 constructing conditional calculations, 652–654 overview, 364, 648 logical operators, 359–360 login accounts, changing, 167–170 automatic (Admin account), 746 lookup fields creating, 210–212 empty lookups options, 212 Looked-up value option, 210 navigating between related records, 213–217 overview, 209–210 Relookup Field Contents command, 213–214 looping scripts. See also branching/ looping scripts basics, 438–440 creating, 715–716 M MAC OS X, 824 mail, ways to send (scripts), 435 Manage Custom Functions dialog box, 532–533 Manage Database window creating calculation fields with, 120–123 discarding changes made in, 125 Managed Storage (container fields), 250 Manage Layouts dialog box, 269–271 Manage Scripts window, 414 manual indexing (fields), 244 many-to-many relationships, 180, 181–182 mapping fields (importing), 838–843 margin configuration (print layouts), 293–296 master (parent) records, 142 matching layouts, 112–115 records, finding, 22 Match operators, 50–51 mathematical operators, 358 Max() function, 386–387 maximum/minimum options (summary fields), 603 Maximum Number of Characters validation option, 240 Member of Value List validation option, 240 menus custom. See custom menus Find pop-up, 54–57 menu separators (scripts), 430–431 Mode pop-up, WebDirect, 808–810 merge fields, 151–154, 323–325, 339 Merge format (exporting), 836 merge variables, 325–326, 678 metadata fields, 227, 228 Microsoft Visio, 184 Middle() function (text), 392 MiddleValue() function (text), 394 MiddleWords() function, 392–393 Min() function, 387 Minor Grid Steps box, 95 mobile functions, 364 modes, 7–8, 30 modification values (auto-enter field options), 231 Modify Last Find script step, 492 setting, 53–54 Modify Table View dialog box, 42 modular scripts Halt Script/Exit Script steps, 680–683 overview, 678–679 Perform Script step, 679–680 MonthName() function, 404 movies in calculation fields, 406–407 importing folders of, 850–851 moving between fields, 12 fields, 93–95 objects, 96 portals, 137–139 windows with scripts, 497–499 multifield sorts (records), 28–29 multiple criteria relationships, 563–566 multiple databases, 590 multiple parameters, passing (scripts), 687 INDEX MULTIPLE PARAMETERS, PASSING (SCRIPTS) 903 MULTIPLE REQUESTS (RECORD FINDING) multiple requests (record finding), 44–45 multiple windows, managing, 29–33 N naming custom functions, 533 field labels, 137 fully qualified field names, 136 layouts, 265–266 objects, 454–456 natural keys, 190–191 navigating between related records, 213–217 databases with keyboard shortcuts, 18–19 record by record, 18–19 fields, 457–458 fields with keyboards, 122 records using scripts, 474–477 nested calculations, 388 nested loops, 440 nested tabs, 148 nesting expressions, 365 nesting Let() functions, 658 New Layout/Report dialog box, 253–254 New Record/Request script step, 474 New Request command, 45 newsgroups, FileMaker, 871 No Records Match error, 24 Not Empty validation option, 239 Notes tool, 200 Not operator, 360, 433 No Valid Criteria error, 24 number fields basics, 224 formatting, 105–107 zip codes and, 238 number functions overview, 362 types of, 382 using, 382–385 numbering records, 19 numbers converting to time values, 403 formatting, 311–314 number constants, 356–357 904 INDEX O objects aligning/distributing, 114–115 arranging, 117 deleting, 97 grouping/locking, 116–117 layout, 89–91 moving/resizing, 96 naming, 454–456 object grids, 95–96 object triggers, 448–452 Refresh Object script step, 504 resizing, 115–116 rotating, 117–118 sizing. See Autosizing control (Inspector) sliding (layouts), 333–339 turning into buttons, 342–343 ODBC (Open Database Connectivity) import data sources, 855–857 setting up, 822–826 Omit button/commands (record finding), 45–47 Omit Record script step, 491 OmniGraffle, 184 one-to-many relationships, 178, 180 one-to-one relationships, 180–181 OnFirstWindowOpen script trigger, 443–444 OnGestureTap script trigger, 448 OnLastWindowClose script trigger, 444 OnLayoutEnter script trigger, 447, 493–494 OnLayoutExit script trigger, 447 OnLayoutKeystroke script trigger, 447, 695 OnLayoutSizeChange script trigger, 447–448 OnModeEnter script trigger, 448, 486 OnModeExit script trigger, 448 OnObjectEnter script trigger, 449 OnObjectExit script trigger, 451–452 OnObjectKeystroke script trigger, 450, 695 OnObjectModify script trigger, 450–451 OnObjectSave script trigger, 451 OnObjectValidate script trigger, 451 OnPanelSwitch script trigger, 452 OnRecordCommit script trigger, 446 OnRecordLoad script trigger, 445– 446, 493 OnRecordRevert script trigger, 446–447 OnTimer scripts, 426 OnViewChange script trigger, 448 OnWindowClose script trigger, 445 OnWindowOpen script trigger, 445 opening database files, 9–10 databases in FileMaker Go, 798–803 Open File script step, 501–502 Open Record/Request script step, 463 Open Remote File dialog box, 766, 767–769 Open URL script step, 504 records with scripts, 477–480 shared files, 765–767 operators Find, 49–53 relationship, 566–567 using in calculations, 358–361 Options for Field dialog box, 236 OR conditions (searching), 44–45 ORDER BY clauses (SQL), 857 order of sorting records, 27–29 OR operator, 359 outer loops (nesting), 440 P Page Number Symbol ({{PageNumber}}), 155 paragraph formatting, 65–66 parameters functions, 361 scripts, 684–688 parent-child relationships, 127 parentheses operator, 358, 360 parsing dates/times, 404 Part Definition dialog box (layouts), 262 passwords for accounts, 746, 748 setting with scripts, 758 paths, defining data sources with, 590–593 PatternCount() function (text), 394 pausing scripts, 482–487 PDF files saving data as, 815–819 storing in container fields, 85–86 Percent format (numbers), 314 Perform Find/Replace script step, 471–473 Perform Find script step, 482, 488 Perform Script step, 679–680 pictures in calculation fields, 406–407 importing folders of, 850–852 inserting in container fields, 248–251 inserting on layouts, 102–104 Pie charts, 621–622 plug-ins buying/creating for calculations, 639 creating custom, 665 finding, 664–665 installing, 664–666 overview, 663 popover buttons, 148–151 pop-up menus, 271–273, 278–279, 284 portals adding to layouts, 135–137 auto-creation without, 203 context of, 139–140 copying from layouts, 584 creating records through, 140–141 definition of, 126 editing records through, 141–142 features and options, 138 Go to Portal Row script step, 481–482 overview, 134–135 performing finds with related data, 142–143 portal filtering, 567–570 vs related fields, 205 resizing/moving, 137–139 sort orders in, 198 preferences adding newly created fields to current layouts, 128 adding newly defined fields to layouts, 90, 123 changing user names, 230 drag-and-drop text selection, 57 INDEX PREFERENCES 905 PRESENTATION LAYERS Use Manage Database dialog to create files, 122 presentation layers, 641 Preview mode layout parts in, 258–259 page counts in, 73–74 viewing printing layouts in, 292 primary keys, 188–191 Printer layout types, 255–257 printing field definitions, 246–247 layouts for. See layouts for printing Print script steps, 503 records, 71–74 Relationship graph, 200 Subsummary parts and, 607 privileges data access/design, 733–735 detecting in scripts, 756–757 extended, 750–753 field-level access, 736–738 individual, 729–731 layout, 739–742 Other Privileges section, 730 record-level access, 735–737 running scripts with full access, 757–758 script, 743–745 value list, 741–742 privilege sets basics, 727–728 built-in, 728–729 creating, 732–733 custom, 729 editing, 744 overview, 727 Q Quick Find (records), 22–23 Quick Start screen, 79, 867 QuickTime files (container fields), 251–252 quotation marks (“ ”) comma-separated text files and, 839 for matching phrase searches, 51 for text values in calculations, 358 R radio buttons, 280, 284 Range ( ) operator (searching), 52 906 INDEX records committing, 13, 19, 232 creating, 11 creating in Table view, 83–84 creating through portals, 140–141 definition of, 127 deleting, 14–15 duplicating, 14–15 editing, 13 entering information in, 11–13 Export Records script step, 858 from external sources, 591 fields in. See fields finding. See finding records; finding records with scripts Import Records script step, 858 locking, 32, 480, 762 master and related, 142 navigating between related, 213–217 navigating record by record, 18–19 numbering, 19 printing, 71–74 record-level access, 735–737 record loops, 440 reverting, 13–14 Save Records script steps, 857–858 sorting, 25–28, 30 sorting with scripts, 492–493 transaction system, 703 updating in found sets, 847–848 value from last visited (auto-enter option), 232–233 viewing all, 23 viewing list of, 29–30 records, scripting for copying, 479–481 creating/duplicating/deleting, 474 finding. See finding records using scripts navigating, 474–477 opening/reverting/committing, 477–479 overview, 473 portals, 481–482 sorting, 492–493 recovering files, 556–558 recurring imports, 844–846 recursive functions (calculations), 658–662 references, calculations with, 407 Refresh Object script step, 504 related (child) records creating charts using, 633–636 Delete related records option, 220 deleting, 142 Go to Related Records script step, 475, 482 navigating between, 213–217 related fields creating value lists based on, 206–210 vs portals, 205 viewing on layouts, 202–205 related tables creating key fields with auto-enter serial numbers, 126–130 creating new, 130–132 creating relationships between two occurrences, 132–134 elements of, 126 overview, 125–126 related value lists, 208 relational databases basics, 174–175 choosing entities, 175 creating value lists based on related fields, 206–210 entity relationship (ER) diagrams, 182–186 finding relationships, 175–180 join tables, 191–193 key fields, 187–191 lookup fields. See lookup fields one found set for each table occurrence, 201–202 overview, 193–194 relationships creating between tables, 194–197 managing Relationships graph, 197–201 sorting, 196 types of, 180–182 viewing related fields on layouts, 202–205 relationships between entities, finding, 175–180 bidirectionality of, 217–218 connecting database files, 587–592 creating between tables, 194–196 creating between two table occurrences, 132–134 creating with SQL tables, 829 definition of, 127 editing, 563–565 global fields and, 585 implicit, 218–221 multiple criteria, 563–566 portal filtering, 567–570 relationship graphs, 197–201, 586–587 relationship operators, 566–567 self-join, 560–563 sorting, 196 TOGs and. See table occurrence groups (TOGs) TOs and. See table occurrences (TOs) types of, 180–182 using multiple techniques, 592–596 Relaxed Search (~) operator, 53 Re-Login function, 759–760 Relookup Field Contents command, 213–214, 470 RemoveDuplicates() function (recursion), 660–662 repeating fields, 241–243, 286, 291 repetitions options (repeating fields), 283–285 Replace Field Contents command adding serial numbers with, 128–130 basics, 58–59 specifying fields with, 470 reports. See also summary fields charts. See charts creating dynamic reports with Layout/Report Assistant, 160–164 Report layouts, 255–257, 292–293 Trailing Group, 164–166 Reset function, 16 resizing fields, 93–95 layouts, 79 objects, 96, 115–116 portals, 137–139 windows with scripts, 497–499 Resource Center, FileMaker, 867–868 result types, setting (calculations), 368 return-separated lists, 383–384, 631 INDEX RETURNSEPARATED LISTS 907 RETURNSEPARATED VALUES return-separated values, 394 reverting records, 13–14 records with scripts, 477–479 Revert Script command, 421 RGB function, 397–399 Right() function (text), 391 RightValues() function (text), 394, 396, 397 RightWords() function, 392–393 rotating objects, 117–118 Round() function, 384 rows, adding to portals, 137–139 Ruler, Text, 65–66 running scripts, 424–428 runtime solutions (Developer Utilities), 553–554 S Sample Data command, 96 saving data as PDF files, 815–819 databases, 33–35 database settings, 555 data in Microsoft Excel, 814–815 finds, 54–55 Save a Copy As script step, 502 Save All Scripts command, 421 Save Records script steps, 857–858 style changes to layout themes, 303–305 Scatter charts, 621 schemas, database, 173 scientific notation, 224 Screen Stencil tool, 310–311 Script Debugger breakpoints, 516–517 call stacks, 519–520 controlling script execution, 514–516 debugger window, 520 examining errors, 518 overview, 513–514 pausing on errors, 518–519 showing errors numbers with, 693 scripting project tutorial creating script, 412–418 improving script, 418–422 overview, 410 planning script, 411–412 preparing database, 411 908 INDEX scripts advantages of, 409–410 basics, 410 branching and looping in. See branching/looping scripts buttons for running, 157–158, 424–426 copying, 512–513 creating folders for, 428–430 creating menu separators for, 430–431 creating sort scripts, 155–157 detecting privileges in, 756–757 importing/exporting with, 857–858 managing security with, 757–759 pausing, 487 recording account names with, 726 running, 424–428 running from correct layout, 423–424 running with full access privileges, 757–758 running with triggers, 158–159 Script Debugger. See Script Debugger script privileges, 743–745 Scripts menu, 424 script triggers, 425 security errors in, 757 server vs client, 426–428 shortcuts to Edit Script window, 422 testing, 721 timer scripts, 426 using Go to Object in, 456–457 scripts, advanced Allow User Abort script step, 693 building complex script tutorial adding parameter to perform script step, 712 checking results of subscripts, 712–713 copying/editing script steps, 710–712 creating looping script, 715–716 creating subscripts, 704–707 Find Unbilled Activity subscript, 707–709 finishing Create Invoice Record subscript, 713–715 finishing Process Timeslips subscript, 715 overview, 700–701 planning, 701 planning for exceptions, 701–703 Process Expenses subscript, 717–720 testing script, 721 building custom layouts, 677–678 commenting in, 667–669 communicating with database users, 670 creating modular. See modular scripts error handling, 689–693 importing, 669–670 indirection, 683 script for changing key field values in related tables, 722 script parameters, 684–688 script variables, 687–689 Show Custom Dialog script step. See Show Custom Dialog script step showing feedback with merge variables, 678 script steps Allow User Abort, 693 Comment, 667–669 Compatibility pop-up menu, 795 copying, 512–513 copying/editing, 710–712 Dial Phone, 504 disabling, 525–526 for editing commands, 458 Execute SQL, 505 Exit Application, 506 Exit Script, 680–683 Export Records, 858 for files, 501–503 for finding records. See finding records using scripts Flush Cache to Disk, 505–506 Go to Layout, 453–455 Go to Object, 454–457 Halt Script, 680–683 Import Records, 858 Install OnTimer Script, 693 for navigating fields, 457–458 Perform Script, 679–680 for printing, 503 for records. See records, scripting for Refresh Object, 504 Save Records, 857–858 for selecting text, 458–459 Set Error Capture, 690–691 Set Field by Name, 683 Set Script Variable, 688–689 Set Web Viewer, 504–505 Show Custom Dialog. See Show Custom Dialog script step for sorting records. See sorting records with scripts Upload to FileMaker Server, 503–504 for windows. See windows script triggers applying to Sort by Last Name script, 158–159 basics, 440–441 creating, 442–443 file option triggers, 443–445 Install OnTimer Script step, 693 keystroke triggers. See keystroke triggers layout triggers, 445–448 object triggers, 448–452 overview, 410, 425 Set Script Triggers menu command, 449 triggering Find scripts, 485–487 scroll bars, 5–6, 274–275 searching. See also finding records with AND conditions, 44 with Find operators, 49–53 one found set for each table occurrence, 201–202 with OR conditions, 44–45 for plug-ins, 664–665 unstored fields, 646 security basics, 725–727 changing default login account, 167–170 errors in scripts, 757 extended privileges, 750–753 managing accounts. See accounts managing external file access, 753–756 managing with scripts, 757–759 INDEX SECURITY 909 SELECT CLAUSES (SQL) 910 SELECT clauses (SQL), 857 selecting objects, 91 Select Window script step, 497–498 text (script steps), 458 Self() function, 641–643 self-join relationships, 560–563 separators, menu (scripts), 430–431 serial numbers auto-enter field option for, 231–232 auto-entering into text fields, 191 creating key fields with auto-enter, 126–130 series items (charts), 627 servers, running scripts on, 426–428 Set Error Capture script step, 690–691 Set Field by Name script step, 683 Set Field script steps, 460–462, 464 Set Next Serial Value script step, 471–472 SetPrecision() function, 384–385 Set Script Triggers menu command, 449 Set Script Variable script step, 688–689 Set Selection script step (text), 459 Set Tab Order dialog box, 289 Set Variable Options dialog box, 688 Set Web Viewer script step, 504–505 shadow tables (SQL), 829–831 shape objects, 90 sharing custom functions, 537–538 sharing data. See also database sharing exporting. See exporting data External SQL Sources (ESS). See External SQL Sources (ESS) importing. See importing data; import data sources with others, 813–819 Snapshot Links, 819–821 short/long system date formats, 317 Show Custom Dialog options (scripts), 436 Show Custom Dialog script step asking simple questions, 671–673 Commit Data option, 674–676 overview, 670–671 providing input fields, 673–674 showing simple messages, 670–671 INDEX Show only related records option, 217, 477 skeleton subscripts, 705–707 sliding layout objects, 333–339 SmartDraw, 184 smart quotes, 51 Snapshot Links, 819–821 sorting creating script for, 155–157 records, 25–28, 30 records using scripts, 492 relationship data, 198 relationships, 196 sounds in calculation fields, 406–407 special characters, , 53 Specify Calculation window, 121, 351, 369–373 Specify Field dialog box, 124, 416 Specify Fields for Value List window, 207 Specify Find Requests window, 488 Specify Script Options dialog box, 679 Specify Script window, 422 Specify Solution Options window, 553 spell checking, 68–71 spider relationship graphs, 586–587 SQL (Structured Query Language) adding table to FileMaker database, 828–831 connecting FileMaker to data sources, 826–828 Execute SQL script step, 505 queries, 857 SQL Query Builder dialog box, 856 tables, using, 831–832 Standard Deviation of option (summary fields), 603–604 starter solutions, 94, 865–867 static find requests (scripts), 487–490 static web publishing, 811 Status toolbar adding buttons to, 16–17 drawing tools in (Layout mode), 106 in Layout mode, 88–89 overview, storage options (fields) container fields, 246 global storage, 241 indexing, 242–247 overview, 240–241 printing field definitions, 246–247 repeating fields, 241–243 storing references to files, 85 stored/unstored calculation fields, 643–647 stored values (calculations), 354 Strict Data Type validation option, 239 styles creating for text blocks, 99–100 layout themes, 300–304 matching between layouts, 112–114 TextStyleAdd()/TextStyleRemove() functions, 399–401 sub-expressions (calculations), 365 submenus, 546–548 subscripts checking results of, 712–713 creating, 704–707 Find Unbilled Activity subscript, 707–709 finishing Create Invoice Record subscript, 713–715 finishing Process Timeslips subscript, 715 overview, 678–679 Process Expenses subscript, 717–720 Substitute() function, 393, 659 Subsummary parts (layouts), 258, 599–600, 605–609 Summarize repetitions option (summary fields), 604–605 summary fields creating, 598–600 definition of, 162 types of, 600–605 values from found sets, 227 summary function (GetSummary), 363 surrogate keys, 190–191 symbols (Insert menu), 153, 155 syntax, function, 371 T Tab Controls creating, 143–146 deleting, 148 editing, 146–148 overview, 143 popover buttons, 148–151 table occurrence groups (TOGs) basics, 576–579 building new layout, 581–586 creating new, 580–581 managing, 579 overview, 575–576 planning new elements for, 575–576 switching with GTTR, 585–586 table occurrences (TOs) adding, 571–573 adding fields for new, 574–575 adding from external data sources, 588–589 basics, 570–571 Context pop-up menu, 369 creating/editing, 197–200 creating relationships between, 132–134 one found set for, 201–202 tables bidirectionality, 217–218 copying/pasting, 511 creating key fields in all, 130 creating new, 130–132 creating on import, 848–849 definition of, 127 deleting, 194 implicit relationships, 218–221 importing, 510–511 join, 181, 191–193 lookups. See lookup fields related. See related tables SQL. See SQL (Structured Query Language) Table layout, 255 Tables/Relationship tools, 198–199 Table view basics, 39–43 creating charts in, 166–167 creating records in, 83–84 properties, 260 viewing found sets in, 30 tab order buttons and, 291 customizing, 288–290 definition of, 13 fixing in People database, 290–292 overview, 288 preserving automatically, 291 repeating fields and, 291 INDEX TAB ORDER 911 TABS 912 tabs formatting, 66–67 tab characters, 19 tab-separated text files, 836, 839 technical support, FileMaker, 869–870 templates (starter solutions), 94 testing file conversions, 875 new accounts, 748–749 scripts, 721 text blocks, 99–100 calculations and, 350 counting functions, 395–396 editing. See editing text entering in fields, 15 export formats based on, 837 fields, zip codes in, 238 formatting, 64–66, 103 locking Text tool, 97 measuring systems for, 66 paragraph formatting, 65–66 pasting in container fields, 248 Perform Find/Replace script step, 471–473 script steps for selecting, 458–459 spell checking, 68–71 tab formatting, 66–67 text boxes, 276–277 TextColor() function, 397–398 text constants, 356–357 text fields overview, 224 serial numbers in, 191 TextFont() function, 398–399 text objects, 90 Text Ruler, 65–66 TextSize() function, 399 TextStyleAdd()/TextStyleRemove() functions, 399–401 text calculations in buttons, 390 overview, 388–389 text functions character, 390–391 counting, 395–396 editing, 393–394 formatting, 362, 396–401 overview, 362, 389–390 INDEX value, 394–395 word, 391–393 text objects adding to layouts, 98–99 conditional formatting of, 616–618 editing, 96–97 themes, layout. See layout themes time date/time calculations. See date/ time calculations time fields, 226 time formatting, 317–318 time functions, 362, 405 Time Symbol ({{CurrentTime}}), 155 timer scripts, 426 timeslips, 179–180 timestamps formatting, 319–320 timestamp fields, 226 timestamp functions, 362, 405 Title Footers (layouts), 258 Title Headers (layouts), 257 tooltips, 326–328 Total of option (summary fields), 600–601 touch device layout types, 254–255 touch themes (layouts), 300 Trailing Grand Summary parts, 607–608 Trailing Group reports, 164–166 training, FileMaker, 868–869 transactional data, 209–210 transaction system (records), 703 triggers keystroke. See keystroke triggers script. See script triggers trigonometric functions, 364 Trim() function (text), 394 tunneling (tables), 219 U undoing text formatting, 64 Unicode code points, 695 indexing, 245 uninterruptible power supply (UPS), 790 Unique Value validation option, 239 unsorted records, 27 unstored calculations, 643–645 updating FileMaker, 868 records in found sets, 847–848 uploading databases to FileMaker Server, 780–783 Upload to FileMaker Server script step, 503–504 user dictionaries, 71–72 user groups, FileMaker, 871 User Name Symbol ({{UserName}}), 155 User’s Guide (FileMaker), 36 V validating data entry with calculations, 375–377 validation options (fields) basics, 234–236 making validation stricter, 237–238 minimum number of characters calculation, 241 Validate only if field has been modified checkbox, 377 validation messages, 236 validation requirements, 238–239 value functions (text), 394–395 value lists creating, 108–110 creating based on related fields, 206–210 editing, 109 editing cautions, 279 field controls and, 271 related, 208 text value functions and, 394–395 value list privileges, 741–742 variables global, 689 Let() function and, 655–658 merge, 325–326 script, 687–689 storing in scripts, 674 using to create dynamic find requests, 489–491 vertical tabs, 839 viewing all records, 23 list of records, 29–30 new table layouts, 131–132 print layouts in Preview mode, 292 related fields on layouts, 202–205 sample data (fields), 96 tables, 30 views basics, 37–38 Form view, 38 List view, 38–39 setting layout, 266–267 Table view, 39–43 View Index window, 247 WEBSITES FOR FURTHER INFORMATION W Watch tab (Data Viewer), 522–524, 526 web browsers, 608 WebDirect basics, 792–795 connecting to databases via web browsers, 802–804 designing for, 804–810 disconnecting from, 803–804 enabling in databases, 795–796 FileMaker WebDirect Settings dialog box, 796 Home page, customizing, 810 setting up on FileMaker Server, 797–798 sharing converted files with, 874–875 sharing databases on the Internet without, 810–811 Web Publishing Engine (WPE), 771, 797 websites for downloading custom functions, 538 ER diagram software, 184 FileMaker Go 13 Development Guide, 795 FileMaker Pro Plug-in SDK, 665 MySQL, 822 ODBC Administrator, 824 ODBC drivers, 823 plug-ins, FileMaker, 665 websites for further information Developer’s Conference (DevCon), 871 FileMaker functions, 354 FileMaker Technical Network, 870 FileMaker webinars, 869 INDEX 913 WEB VIEWERS 914 Pause on error feature, 519 state abbreviations, 275 web viewers options, 611–614 putting on layouts, 609–611 Set Web Viewer script step, 504–505 WHERE clauses (SQL), 857 Wildcard (*) operator, 52 windows bringing to front with scripts, 497–498 Close Window script step, 497 creating with scripts, 493–496 managing multiple, 29–33 moving/resizing with scripts, 497–499 windows-related script steps, 500–501 WordCount() function, 395 word functions (text), 391–393 INDEX X XML (eXtensible Markup Language) importing data with FMPXMLRESULT, 851–854 Snapshot Links and, 821 XOR (exclusive or) operator, 359 XSLT style sheets, 837 Z Zero or More Characters operator, 53 zip codes in text fields, 238 zoom controls, 6–7 TH FileMaker Pro 13 E SSING CD I M no ’s ; There book s i h t ith CD w aved $5.0 st s u j u yo , and e file s c i t c a pr in thi d ess, r e d n d o enti eb a le W oftware m uals.com g n i s an le s very adab singm on) ad, e s o l i e t n m s w t n I of vailable a ing CD ic inks, piece iss is a t of l book click the M a tidy lis ( ter find chap ou’ll y y b e r The ized organ Don’t miss a thing! Sign up for the free Missing Manual email announcement list at missingmanuals.com We’ll let you know when we release new titles, make free sample chapters available, and update the features and articles on the Missing Manual website ... 8: The Missing Manual by David Pogue WordPress: The Missing Manual, Second Edition by Matthew MacDonald Your Body: The Missing Manual by Matthew MacDonald Your Brain: The Missing Manual by Matthew... Veer FileMaker Pro 12: The Missing Manual by Susan Prosser and Stuart Gripman Flash CS6: The Missing Manual by Chris Grover Galaxy Tab: The Missing Manual by Preston Gralla Galaxy S5: The Missing. .. Kindle Fire HD: The Missing Manual by Peter Meyers Living Green: The Missing Manual by Nancy Conner Mac OS X Lion: The Missing Manual by David Pogue Microsoft Project 2010: The Missing Manual by Bonnie