Muutke küpsiste eelistusi

E-raamat: FileMaker Pro 9 Bible

  • Formaat: PDF+DRM
  • Sari: Bible
  • Ilmumisaeg: 31-Mar-2008
  • Kirjastus: John Wiley & Sons Ltd
  • Keel: eng
  • ISBN-13: 9780470332887
Teised raamatud teemal:
  • Formaat - PDF+DRM
  • Hind: 31,19 €*
  • * hind on lõplik, st. muud allahindlused enam ei rakendu
  • Lisa ostukorvi
  • Lisa soovinimekirja
  • See e-raamat on mõeldud ainult isiklikuks kasutamiseks. E-raamatuid ei saa tagastada.
  • Formaat: PDF+DRM
  • Sari: Bible
  • Ilmumisaeg: 31-Mar-2008
  • Kirjastus: John Wiley & Sons Ltd
  • Keel: eng
  • ISBN-13: 9780470332887
Teised raamatud teemal:

DRM piirangud

  • Kopeerimine (copy/paste):

    ei ole lubatud

  • Printimine:

    ei ole lubatud

  • Kasutamine:

    Digitaalõiguste kaitse (DRM)
    Kirjastus on väljastanud selle e-raamatu krüpteeritud kujul, mis tähendab, et selle lugemiseks peate installeerima spetsiaalse tarkvara. Samuti peate looma endale  Adobe ID Rohkem infot siin. E-raamatut saab lugeda 1 kasutaja ning alla laadida kuni 6'de seadmesse (kõik autoriseeritud sama Adobe ID-ga).

    Vajalik tarkvara
    Mobiilsetes seadmetes (telefon või tahvelarvuti) lugemiseks peate installeerima selle tasuta rakenduse: PocketBook Reader (iOS / Android)

    PC või Mac seadmes lugemiseks peate installima Adobe Digital Editionsi (Seeon tasuta rakendus spetsiaalselt e-raamatute lugemiseks. Seda ei tohi segamini ajada Adober Reader'iga, mis tõenäoliselt on juba teie arvutisse installeeritud )

    Seda e-raamatut ei saa lugeda Amazon Kindle's. 

A guide to the database program for Windows or Mac covers such topics as setting up scripts, generating summary statistics, using ScriptMaker, sharing data on the Web, and importing and exporting XML.

Refocused and completely rewritten with the needs of business users and FileMaker Pro developers in mind, FileMaker Pro 9 Bible shows you how to design an industrial-strength database, make it intuitive, and automate it with scripts and programming. From the fundamentals to data modeling to writing no-fail code, you'll find the clear, step-by-step procedures, solid techniques, and detailed explanations you need to master this powerful software and build the right solutions for your needs.
Acknowledgments xxvii
Preface xxix
About This Book xxix
About This Book's Target Audience xxx
How This Book Is Organized xxxi
Part I: The Fundamentals xxxi
Part II: Introduction to Database Design xxxi
Part III: Beyond the Basics xxxi
Part IV: Integrity and Security xxxi
Part V: Raising the Bar xxxi
Part VI: Appendixes xxxi
Icons Used in This Book xxii
Where to Go from Here xxxii
Part I: The Fundamentals
1(88)
Databases: The What, Why, and How
3(16)
The Many Faces of Databases: Lists, Tables, and Forms
4(2)
Understanding the limitations of paper-based databases
4(1)
Entering the digital age
5(1)
Preparing to get organized
5(1)
The Concept of a Relational Database
6(1)
Flat-file databases and data redundancy
6(1)
Opportunities for making connections
7(1)
The Anatomy of a Database Solution
7(5)
The data: Foundation and substance
7(1)
The interface: Screens, letters, forms, and reports
8(3)
The hidden helper: Process management
11(1)
How FileMaker Fits In
12(7)
Knowing what FileMaker Pro calls things
12(5)
Using familiar ideas from the real world
17(1)
Integrating processes and information
17(1)
Recognizing that knowledge is power --- personal and professional
18(1)
Putting FileMaker Pro in Perspective
19(12)
What Makes FileMaker Pro Different from Other Database Development Tools?
20(3)
Some common misperceptions
20(2)
A unique approach to design
22(1)
The FileMaker Product Family
23(2)
Desktop and server
24(1)
Scalability and flexibility
24(1)
FileMaker's Hidden Talents
25(4)
The cross-platform chameleon
26(1)
Multiple technologies and formats
26(2)
Plug-ins and extensibility
28(1)
The FileMaker calculation engine: Simplicity and power
28(1)
Resources and Exemplars
29(2)
Examples and brainteasers
30(1)
Other resources and opportunities
30(1)
Getting Acquainted with FileMaker
31(28)
Getting FileMaker Working for You
31(6)
Starting and exiting from FileMaker
32(1)
Creating, saving, and closing files
33(2)
Handling files and data safely
35(1)
Earlier file formats and conversion issues
36(1)
Finding Your Way Around
37(6)
The modes and their uses
38(1)
Navigating and viewing data
39(1)
Searching and the FileMaker Find/Omit puzzle
40(2)
Screen elements and what they're for
42(1)
Entering and Editing Data
43(3)
Creating and duplicating records
44(1)
Field definitions: Validation and dependencies
44(1)
The significance of commitment
45(1)
The Ins and Outs
46(3)
Importing and exporting data
46(2)
Previewing and printing options
48(1)
Send/Save as PDF and Excel
49(1)
Getting to Know the Relatives
49(2)
Ways to view and edit related data
49(1)
The importance of context
50(1)
Making complexity simple in practice
50(1)
Optimizing the Application
51(8)
Preference settings for your workstation
51(3)
File options for the current database
54(5)
What's New in FileMaker 9
59(30)
The FileMaker Quick Start Screen
59(1)
The Help Menu
60(1)
Learn More Links on Critical Dialogs
61(1)
Scheduled Software Update Notification
62(1)
New Calculation Functions
63(2)
Self
63(1)
Get (TemporaryPath)
64(1)
Get (HostApplication Version)
64(1)
Asin (number)
64(1)
Acos (number)
64(1)
Conditional Formatting
65(1)
Append to PDF
66(1)
The Send E-Mail Link for Database Sharing
67(2)
Script Grouping and Editing Tools
69(1)
Automatic Resizing of Layout Objects
70(1)
Enhanced Tab Control
71(1)
Default tab selection
72(1)
Tab width settings
72(1)
Web Viewer Feature Enhancements
72(2)
Progress indicator, location, lock icon
72(2)
Support for data URLs
74(1)
Field-Specific Enabling of Visual Spell-Checking
74(1)
Multiple Levels of Text Undo and Redo in Fields and ScriptMaker
75(1)
Additional Toolbar Controls
76(1)
Save/Send as PDF or Excel, Undo and Redo
76(1)
Layout alignment toolbar
76(1)
Additional Avery Label Formats
77(1)
Enhanced External SQL Data Source Support
77(3)
Supplemental Fields for ESS Tables
80(2)
Creating supplemental fields
80(1)
Using supplemental fields
80(1)
Considering design
81(1)
FileMaker Pro 9 Advanced
82(7)
Script Debugger enhancements
82(1)
Launching scripts from within the Script Debugger
82(1)
Working with restricted-access scripts
83(1)
Making multiple selections in the Script Debugger window
84(1)
Understanding the Pause on Error and Last Error code
84(1)
Using step buttons when a script is paused
84(1)
Data Viewer enhancements
85(1)
The Current and Watch tabs
85(1)
Authenticating to view-restricted data
86(1)
Identifying other usability improvements
86(1)
The PHP Site Assistant
87(1)
Database Design Report enhancements
88(1)
Part II: Introduction to Database Design
89(172)
Creating a Database
91(40)
Creating a New Database File
92(21)
Adding tables and fields
94(3)
OrderLines
97(1)
Invoices
97(1)
InvoiceLines
97(1)
Contacts
97(1)
Working with the Field Options dialog: Validation and auto-entry
97(6)
Setting up simple calculations
103(3)
Capturing simple metadata
106(2)
Creating relationships between tables
108(3)
Adding aggregating calcs
111(2)
Viewing and Interacting with Data
113(8)
Looking at the multiple uses of layouts
114(1)
Creating records and entering data
114(4)
Editing or deleting data
118(1)
Finding and sorting data you've already entered
119(1)
Using special find symbols
120(1)
Searching with the range and wildcard operators
120(1)
Avoiding the Need for Data Duplication
121(4)
Recognizing the visual cues to data relationships
121(1)
Information has a logical flow
122(1)
Anticipating the user
123(2)
Making complex things simple
125(1)
Getting Started with File Security
125(4)
Working with accounts and privilege sets
125(3)
Setting a default account and password
128(1)
Thinking About Usability
129(2)
Moving between records
129(1)
Managing context
130(1)
Moving between tables
130(1)
Using and changing views
130(1)
Using buttons for static and dynamic actions
130(1)
The Interface: Layout Mode
131(46)
Initial Layouts
131(15)
A map of Layout mode
134(1)
Selection then Action tools
135(1)
Drag-to-Layout tools
136(1)
Palette and Menu controls
136(1)
Organizing the presentation of information
136(1)
Applying formats to field and text objects
137(4)
Setting up layouts for printing
141(3)
Understanding lists and forms
144(1)
Layout parts and their purposes
145(1)
The Importance of Visual Structure
146(4)
Adding visual pointers and aids
147(2)
Using white space
149(1)
Ergonomics and avoiding visual fatigue
149(1)
Giving information meaning
150(1)
Different Kinds of Layout Objects
150(4)
Static and dynamic objects
151(1)
Inherent object properties
152(1)
Conditional format attributes
152(2)
FileMaker as a Graphical Environment
154(4)
Building graphic objects in FileMaker
154(1)
Default object formats and attributes
155(1)
Controlling stacking and alignment
156(1)
Bringing in graphics from other applications
157(1)
Interacting with Layout Objects
158(2)
Keyboard control of a layout
158(1)
Setting the tab order
159(1)
Assigning names to layout objects
160(1)
Controlling visual spell-checking
160(1)
The Tab Control and Its Uses
160(3)
Defining and creating a tab panel
161(1)
Navigating between tab panels
162(1)
Tab panel limitations
163(1)
Displaying Related Data
163(4)
Working within layout context
163(1)
Setting up a portal
164(3)
The Magic of Buttons
167(5)
Defining buttons
168(2)
Button scope and button commands
170(1)
The button as an object
171(1)
The Web Viewer: Inviting in the World
172(2)
Setting up a Web viewer
172(1)
Controlling a Web viewer
173(1)
Complementary data concepts
174(1)
Reports and Data Out put
174(3)
Considerations for printed outpul
174(1)
Using fonts
174(1)
Page sizes and page setup
175(1)
Paper output versus PDF or Excel output
176(1)
Composite PDFs from multiple layouts
176(1)
The Structure: The Manage Database Dialog
177(50)
Working with Tables
178(5)
Table concepts: A room with a view
178(1)
Adding, deleting, and renaming tables
178(2)
Moving tables between files
180(1)
Importing tables
180(3)
Specifying Fields
183(14)
Adding, deleting, and renaming fields
184(1)
Understanding field/data types and their significance
185(2)
Auto-entry options
187(1)
Field validation options
188(3)
Storage and indexing options
191(1)
Summary and Calculation fields
192(4)
Working with global fields
196(1)
Basic Calculations
197(11)
Creating a Calculation field
198(3)
Defining a calculation formula
201(1)
Entering literal text
202(1)
Referencing fields
203(1)
Understanding calculation functions and their syntax
204(1)
The List() function
204(1)
The Count() function
204(1)
The Date() function
204(1)
The Round() function
205(1)
The Length() function
205(1)
Doing some simple calculations
206(1)
Number of days an item is overdue
206(1)
Calculating initials from a person's name
206(1)
Compound interest at a known rate over a given period
207(1)
Current quarter of the calendar year
207(1)
Changing ampersands to ``and'' in a block of text
207(1)
Record navigation text (record n of nn)
208(1)
The Relationships Graph
208(6)
Common misconceptions about the Relationships Graph
209(1)
Tables versus table occurrences
210(1)
Avoiding circular references
210(2)
Named and unnamed data sources
212(1)
Creating references to other FileMaker files
213(1)
Working with External SQL Data Sources
214(9)
Configuring ODBC drivers: Setting up a DSN
214(5)
Integrating SQL tables with FileMaker data
219(3)
Adding supplemental fields
222(1)
The Concept of Data Relationships
223(4)
Why bother with relationships anyway?
223(1)
How relationships work
224(1)
Solving problems using relationships
224(1)
Deciding what goes where
225(1)
The FileMaker relational model
225(2)
The Processes: ScriptMaker
227(34)
ScriptMaker: What It Is and What It Offers You
227(7)
Building blocks of automation
230(2)
Context is everything
232(1)
Doing things in sequence
232(1)
Addressing objects by name
233(1)
Defining and Editing Scripts
234(9)
Script Editor windows
234(3)
Setting up a basic script
237(2)
How script commands function
239(1)
Changing the order of commands
239(2)
Assigning attributes to a command
241(2)
Using the Script Menu
243(2)
Managing the Scripts menu
244(1)
Other ways to trigger a script
244(1)
Using the single-threaded script engine
244(1)
Working with the script stack and paused scripts
245(1)
Controlling Script Execution
245(4)
Using conditional statements
246(1)
Using repetition
247(1)
Pausing for user input
248(1)
Some Notable Script Uses
249(2)
Navigation and view controls
249(1)
Editing information via scripts
250(1)
Printing and managing files
251(1)
Ease of Editing in ScriptMaker
251(2)
Selecting and duplicating multiple commands
252(1)
Copying and pasting scripts
252(1)
Copying and pasting script steps
253(1)
Organizing Scripts
253(6)
Creating list separators
254(1)
Script commenting
254(1)
Creating script groups
255(2)
Reordering and grouping scripts
257(1)
Filtering scripts by group
257(1)
Searching for scripts by name
258(1)
Some Examples to Start With
259(2)
Performing a Find
259(1)
Printing a report
259(1)
Acting on user input
260(1)
Part III: Beyond the Basics
261(240)
The FileMaker Power User
263(46)
Making Browse Mode Work for You
264(11)
Using multiple windows and views
264(1)
Filtering portals and creating pick lists
264(6)
Jump buttons: Shortcut navigation
270(4)
Controlling one window from another
274(1)
Performing Complex Search Operations
275(5)
Compound Find criteria: The AND Find
275(1)
Stacking Find requests: The OR Find
276(1)
Constraining and extending the found set
276(1)
Saving Finds and found sets
277(3)
Sorting Records
280(10)
Multiple sort keys
281(1)
Dynamic sort techniques
281(3)
Creating click-sort columns
284(4)
Sorting related data
288(2)
Understanding Formatting
290(5)
The management of formatting: A three-tiered approach
291(1)
Character-level formatting
291(1)
Paragraph-level formatting
292(1)
Layout format filters
292(1)
Precedence of number, date, and time formats
293(1)
Controlling formatting programmatically
293(1)
Creating style buttons
294(1)
Some Notes on Variables
295(3)
The three kinds of variables
296(1)
Variables and memory usage
296(1)
Instantiating and destroying variables
296(1)
Keeping track of variables
297(1)
Understanding Indexing
298(5)
Text index types
298(1)
The word index
298(1)
The value index
299(1)
Indexing myths exploded
299(2)
Differences between numeric and text indexing
301(1)
Unicode and alternate language indexes
301(1)
Optimizing field index configurations
302(1)
The Table of Dependencies
303(1)
Cascading calculation operations
303(1)
The limits of dependency
303(1)
Tiers of dependency
304(1)
Caching Join Results
304(2)
What caching does for you
304(1)
Solving caching problems
304(2)
Gaining control of the cache
306(1)
Understanding Global Fields
306(3)
The behavior of global fields
306(1)
Uses for global fields
307(1)
When to avoid global fields
307(1)
Using global calculation fields
307(2)
Building Advanced Interfaces
309(50)
Developing for Mac and Windows Users
310(4)
Selecting fonts
310(1)
Paying attention to differences in screen rendering
311(1)
Considering platform-specific window behavior
312(2)
Using Dynamic Screen Elements
314(6)
Disappearing/reappearing objects
314(1)
The portal invisibility trick
314(2)
Concealed and remotely operated tab control
316(1)
Using conditional formatting as a visibility control
317(1)
The hidden power of conditional formatting
318(1)
Multi-state buttons and objects
319(1)
Working with Sub-Summary Parts and Part Controls
320(5)
Building adaptable screens
320(1)
Stacking up multiple Sub-summary parts
320(2)
Using multiple break fields
322(2)
Controlling pagination and page breaks
324(1)
Designing for Print
325(5)
Non-printing objects
325(1)
Sliding objects and reducing parts
326(2)
Using Merge fields
328(1)
Creating a letter generator
329(1)
Using Multiple Windows and Views
330(2)
Managing window placement and size
330(1)
Windows as pop-ups and drill-downs
331(1)
Simulating modal window behavior
332(1)
Employing Custom Dialogs as an Interface Tool
332(2)
Dialogs as a data-entry device
332(2)
Dynamic dialog attributes
334(1)
Looking at Anchors and Resizable Layout Objects
334(5)
Objects that move according to window size
334(2)
Objects that grow and shrink
336(1)
Managing complex layout resizing
336(2)
Resizing behavior of enclosing objects
338(1)
Centering objects within the viewable area
339(1)
Implementing Shortcut Navigation
339(2)
The power of the Go to Related Record command
339(1)
One interface, many paths
340(1)
Building Back button functionality
340(1)
Building Depth and Dimensionality
341(2)
Using embossing and engraving effects
342(1)
Spatial cues for added meaning
342(1)
Delineation of element groups
342(1)
Color
343(1)
Transparency and translucency
343(1)
Working with Tab Controls
343(2)
Organizers and space savers
344(1)
Tab navigation via keyboard
344(1)
Scripting tab operations
344(1)
Recognizing the Flexibility of Portals
345(2)
Lists in many guises
345(1)
Portals as a navigation device
346(1)
Dynamically sorted portals
346(1)
Innovative portal implementations
347(1)
Using Advanced Web Viewer Techniques
347(3)
Access to advanced functionality
347(1)
Rendering internally calculated content
348(1)
Scraping data from Web pages
349(1)
Progress Bars and Native Charting Techniques
350(3)
Creating script progress monitors
351(1)
Native indicators and graphical displays
352(1)
Using Interface Elements
353(2)
Splash screens
353(1)
Main menus
354(1)
About and version info
354(1)
Online Help for your users
354(1)
Handling User Preferences
355(4)
A user-centric development philosophy
355(1)
Capturing state by user
355(1)
Example --- a multi-lingual solution interface
356(3)
Data Modeling in FileMaker
359(40)
Background in Relational Theory
359(5)
Set Theory in the management of data
360(1)
Modeling the real world
360(1)
Think about clarity of organization
361(1)
Keep the big picture in view
361(1)
Remembering some guiding principles
362(1)
Separate entities by type
362(1)
Delineate fields clearly
363(1)
Place multiples in a separate table
363(1)
Store everything once only
363(1)
Identify the major players
364(1)
Put it into practice
364(1)
FileMaker Relationships Graph Symbols
364(2)
Visual cues and clues
364(1)
The TO as a pointer
365(1)
Understanding the graph metaphor
366(1)
Relationship Operators
366(4)
Equi-joins and non-equal joins
367(1)
Comparative operators (theta joins)
368(1)
Cartesian joins
369(1)
Multi-predicate relationships
369(1)
Alternative Relationship Techniques
370(4)
Multi-key fields
370(2)
Compound keys
372(1)
One-way relationships
372(1)
Join tables
373(1)
Naturally occurring joins
373(1)
Working with Data Arrays
374(3)
Repeating fields as an array handler
374(1)
Collapsing and expanding arrays
374(1)
Relationship-based techniques for managing data
375(1)
Allowing creation via relationship
375(1)
Using self joins
376(1)
The isolating relationship
376(1)
Graph Techniques --- Spiders, Squids, and Anchor-Buoy
377(3)
Constellations and modular centers
377(2)
A satellite-based graph solution
379(1)
Segmentation on functional lines
379(1)
Documenting the Database Structure
380(5)
Graph annotations
381(1)
Naming conventions
382(1)
Field commenting
382(2)
Ancillary notes and documentation
384(1)
The Concept of Layers
385(3)
``Back end'' and ``front end''
385(1)
The business or procedural layer
386(1)
FileMaker as an integrated environment
387(1)
Separation anxiety
387(1)
File Architecture versus Data Structure
388(5)
Multi-file solutions
388(1)
The modular approach
389(1)
Interface files
389(2)
Approaches to separation of data
391(1)
Costs and benefits of separation
392(1)
Separation and External SQL Sources
393(2)
Understanding the rules
393(1)
Working within constraints
393(1)
Supporting the user
394(1)
Implementing Separation in an Existing Solution
395(3)
Establishing data source(s)
395(1)
Re-pointing table occurrences
396(1)
Creating separate graphs
397(1)
Deployment Considerations
398(1)
Your remotest dreams
398(1)
The model of adaptability
398(1)
Calculation Wizardry
399(50)
Compound Calculation Expressions
400(6)
The language of logic
401(1)
Functions and schema references
402(2)
Structured syntax and nesting
404(1)
Putting it all together
405(1)
Order of Operations
406(2)
Boolean Operations
408(2)
Zero, empty, and everything else
408(1)
Implicit Boolean coding
409(1)
Explicit Boolean coding
409(1)
Variables --- Calculation, Script, and Global
410(2)
Declaring calculation variables --- the Let() function
410(1)
Understanding variables' scope
411(1)
Benefiting from variables in a calculation
412(1)
Text Processing and Parsing Functions
412(7)
Substitute, Replace, and Trim
413(1)
Left, Right, and Middle
414(1)
Position and PatternCount
415(2)
The xWords suite
417(1)
Parsing in practice
418(1)
Text Formatting Operations
419(2)
Applying text formatting
419(1)
Removing text formatting
419(1)
Applying selective formatting
420(1)
Creating a Format button
420(1)
Dates, Times, and Timestamps
421(3)
How FileMaker manages dates
421(1)
Plotting time
422(1)
The number of seconds in 2007 years
423(1)
Juggling days, months, and years
423(1)
Summary Data
424(3)
Using aggregate functions
425(1)
The ballad of Max and Min
426(1)
Referencing summary fields
426(1)
Lists and Arrays
427(4)
Retrieving values as a list
427(1)
Managing lists --- the xValues functions
428(1)
Extracting one value from a list
429(1)
Adding or inserting a list value
430(1)
Removing a value from a list
430(1)
Layers of Abstraction
431(3)
Building blocks with GetField()
432(1)
The value of Evaluate()
432(2)
Unstored Calculations
434(2)
Why and when calculations are unstored
434(1)
Understanding the benefits and trade-offs of unstored calculations
435(1)
Discovering the hidden secrets of unstored calcs
435(1)
Calculation Fields versus Auto-Enter Calculations
436(3)
The user over-ride capability
436(2)
Auto-enter calculations and storage
438(1)
The Do Not Replace option
439(1)
Global Calculations
439(3)
The moon follows you everywhere
440(1)
Managing global dependencies
440(2)
The freedom and efficiency of global calculations
442(1)
Environment and Metadata
442(2)
The Get() functions
442(1)
Design functions
443(1)
Calculations Using Custom Functions
444(3)
Your Code's Documentation
447(2)
Code formatting
447(1)
Code commenting
448(1)
Scripting in Depth
449(52)
Scripting the Control of Objects and Interface
450(4)
Addressing objects by name
450(2)
Locking down the interface
452(1)
Managing user interaction
452(2)
Trapping for Errors
454(6)
Retrieving error codes appropriately
455(1)
What the error codes mean
456(1)
Why bother with error handling?
456(1)
Handling errors
457(3)
Scripts and Access Privileges
460(2)
Privilege-based errors
461(1)
Run script with full access privileges
461(1)
Determining the substantive privileges
462(1)
Automating the Automation
462(4)
Defining a script to run on file open
463(1)
Housekeeping practices for start-up scripts
464(1)
Scripts that run on file close
465(1)
Harnessing the Power of Parameters, Results, and Variables
466(9)
Getting data into a script
466(1)
Branching according to state
467(1)
Declaring variables
468(2)
Passing and retrieving multiple parameters
470(3)
Specifying and retrieving a script result
473(1)
Storing and accumulating data as you go
474(1)
Dynamic and Indirect Controls in ScriptMaker
475(5)
Example-Go to Layout by name or number
476(1)
Dynamic file paths using variables
477(1)
Dynamically building Find criteria
478(1)
Editing field data on the fly (indirection)
479(1)
Using Nonlinear Logic
480(4)
Nested and sequential If/Else conditions
481(1)
Looping constructs
481(1)
Specifying exit conditions
482(2)
Modular Script Code
484(1)
Using sub-scripts
484(1)
Script recursion
485(1)
Scripted Window Management
485(5)
Addressing windows by name (title)
486(2)
Moving and resizing windows
488(1)
Determining window dimensions
488(1)
Creating windows off-screen
489(1)
Freezing and refreshing the screen
489(1)
Scripting Data Import and Export
490(7)
Exporting field contents
490(1)
Exporting table data
491(1)
Selecting fields for export
492(1)
Import options
493(1)
Data matching for import
494(1)
Synchronizing and updating data
494(1)
Other import options
495(1)
Loading and unloading container objects
496(1)
Pivoting Data between Tables
497(2)
Using utility relationships
497(1)
Managing related data (walking through related records)
498(1)
Going over Some Practical Examples
499(2)
Locating unique records
499(1)
Building a multi-part PDF report
499(2)
Part IV: Integrity and Security
501(102)
In Control with FileMaker Security
503(26)
Concepts of Security
503(3)
Balance and perspective
504(1)
Identifying threats
504(1)
Assessing value
504(1)
Protecting your investment
504(1)
Interface vulnerabilities
505(1)
Taking things at interface value
505(1)
More than a semblance of security
505(1)
File-based security
506(1)
The Privilege Set
506(4)
Concepts of role-based security
507(1)
Defining and constraining access
508(1)
Schema privilege controls
509(1)
Granular Security
510(4)
Access to value lists and scripts
510(1)
The two dimensions of layout access
511(1)
Privileges for table, record, and field access
511(2)
Using and managing extended privileges
513(1)
User Authentication
514(3)
Creating user accounts
515(1)
Internal and external authentication
516(1)
Scripted Account Management
517(3)
Provision for automation of database security
517(1)
Working with multi-file solutions
518(1)
Safe scripting implementations
519(1)
Creating a Custom Logout Option
520(3)
The locked-down database
520(1)
Structuring a solution for logging out
521(1)
Security logging
522(1)
How Much Security Is Enough?
523(1)
Ways to evaluate risk
523(1)
A balanced view of threats 523
523(1)
A strategic model for response
524(1)
The Importance of Physical File Security
524(2)
Layers of protection
524(1)
Alternative forms of protection
525(1)
A multi-faceted approach
525(1)
Security in Deployment: FileMaker Server
526(3)
Filtered display of files
526(1)
Secure Socket Layer encryption
527(1)
Server checks and logs
527(2)
Maintaining Referential Integrity
529(18)
Pinpointing Common Causes of Referential Integrity Problems
529(1)
The potential impact on your solution
530(1)
Costs and benefits
530(1)
Using Unique Keys
530(2)
Key safeguards
531(1)
Keys and meaning (existence, persistence, uniqueness)
532(1)
Generating Keys
532(4)
Serial numbers
532(2)
Record IDs
534(1)
Unique identification (UID) values
535(1)
Exploring Keys and Data Type
536(1)
Retrofitting Keys
537(2)
Deleting Redundant Records
539(4)
The use of cascading deletion
539(1)
Configuring relationships for referential integrity
540(1)
Privilege requirements for cascade delete
541(1)
Controlled cascading deletes at runtime
542(1)
Considering Other Integrity Issues
543(1)
Lookups and when to use them
543(1)
Auto-entry lookups and references
544(1)
Data design issues
544(1)
Managing Dependencies
544(3)
Literal text references
545(1)
Indirect object/element references
545(1)
Filename references
545(1)
Structural anomalies
546(1)
Making FileMaker Systems Fail-Safe
547(34)
Expecting the Unexpected
547(4)
Successful backup strategies
548(1)
Backup frequency
548(1)
An appropriate backup cycle
548(1)
The integrity of backups
549(1)
The location of backups
549(1)
Back up the code, not just the data
549(1)
The hazards of copying open files
549(1)
Backing up local files
550(1)
Backing up hosted files
551(1)
A Comprehensive Approach to Error Trapping
551(4)
Dealing with record locking
552(2)
Techniques to avoid in multi-user or multi-window environments
554(1)
Replace Field Contents
554(1)
Record marking and flagging techniques
555(1)
Uses of global fields
555(1)
Opening Remote Files
555(6)
Peer-to-peer hosting
556(2)
File sharing risks
558(1)
Network spaghetti
558(1)
Opener files
559(1)
Sending an e-mail link
560(1)
Temporary Edit Interface Techniques
561(3)
The data viewer concept
562(1)
The legitimate purpose of record locking
563(1)
Creating double-blind entry systems
563(1)
Field Masking, Filtering, and Error Rejection
564(3)
Applying standard data formations
565(1)
Dealing with trailing spaces and carriage returns
566(1)
Rejecting out-of-scope characters
567(1)
Handling styled source text
567(1)
Built-in Logging Capabilities
567(2)
Making use of auto-enter options
567(1)
Capturing and extending standard metadata
568(1)
Script Logging
569(2)
Infrastructure for script logging
569(1)
Tracking script execution
570(1)
Script-specific context variables
571(1)
Script diagnostics
571(1)
Capturing User Edits in Detail
571(4)
Trapping edits, field-by-field
572(1)
Incorporating ancillary data
573(1)
Logging record deletions
574(1)
Managing the Accumulation of Log Data
575(1)
Archiving options
575(1)
Generating secondary output
575(1)
Implementing Roll-Back Capabilities
576(2)
Chronological roll-back
576(1)
Alternative undo and roll-back capabilities
577(1)
Using logs to roll forward
578(1)
Alternative Logging Approaches
578(3)
Logs as Data
579(1)
Scripted and triggered logging
579(2)
Maintaining and Restoring Data
581(22)
Some Notes on File Recovery
581(4)
Debunking common myths and misconceptions
582(1)
The Recover process
582(1)
Salvaging data
583(1)
Understanding file corruption
584(1)
Exporting and Importing Data
585(4)
File format considerations
586(1)
Exporting to and importing from a folder
587(2)
Delimiters and EOL markers
589(1)
Data Cleansing Operations
589(5)
Extract, transform, and load
589(1)
Data format considerations
590(1)
Data organization
590(1)
Data presentation
591(1)
Data domain
592(1)
Filtering capabilities in FileMaker
592(2)
Synchronizing Data Sets
594(3)
Import matching
595(1)
Importing selectively
596(1)
Handling Embedded Images and Stored Files
597(3)
Assigning and retrieving paths
599(1)
Scripted field updates
599(1)
Text-Handling Considerations
600(3)
Export field contents
600(1)
Designing a custom export process
601(2)
Part V: Raising the Bar
603(82)
FileMaker Pro Advanced Features
605(34)
Script Debugger
605(4)
Watching code in action
606(1)
Debugging restricted privilege scripts
607(1)
Getting used to the Debugger controls
607(2)
Data Viewer
609(6)
Current and Watch panels
610(1)
The Current panel
610(2)
The Watch panel
612(1)
Using the Viewer with the Debugger
613(1)
The Data Viewer sand pit
613(1)
The Data Viewer and variables
614(1)
Database Design Report
615(2)
DDR capabilities
616(1)
Mining the DDR for information
616(1)
Tools and techniques for interpreting DDR data
617(1)
File Maintenance
617(2)
Compact File
618(1)
Optimize File
618(1)
The Save a Copy As/Compacted alternative
618(1)
Defining Tooltips
619(2)
Using conditional tooltips
620(1)
Keeping track of tooltips
620(1)
Creating Custom Menus
621(6)
Defining menus
621(1)
Editing individual menus
622(1)
Benefits of the Script Step action
623(1)
Benefits of window widgets
624(1)
Adding menus to sets
624(1)
Assigning menu sets throughout your file
624(1)
Setting the default menu set for a file
624(1)
Determining a menu set for each layout
625(1)
Controlling menu sets via script
626(1)
Custom Functions
627(4)
Defining custom functions
627(2)
Custom functions as an aid to syntax readability
629(1)
Maximizing efficiency and ease of use
630(1)
Custom Functions and Recursion
631(4)
Things that only custom functions can do
632(1)
The stack and the limits of recursion
633(1)
Tail recursion in practice
633(1)
Some useful examples
634(1)
Creating an acronym from a supplied phrase
634(1)
Extracting a character set from a supplied block of text
634(1)
Removing an unspecified number of leading carriage returns
635(1)
Creating Runtime Applications
635(4)
Generating a stand-alone solution
636(1)
Binding for each platform
637(1)
Hosting runtime files
637(2)
Efficient Code, Efficient Solutions
639(22)
Designing for Scale: Size Considerations
639(2)
The elephant in the cherry tree
640(1)
Predicting what will scale well
640(1)
Eliminating Redundancy
641(2)
Avoiding duplication of elements
641(1)
Using portable and reusable code
642(1)
Appropriate use of sub-scripts
642(1)
Appropriate use of custom functions
643(1)
Designing for Flexibility and Adaptability
643(2)
Layouts and adaptable design
644(1)
Concepts of reusability applied to the Relationships Graph
644(1)
Traveling the Shortest Distance Between Two Points
645(9)
Optimal calculation syntax
645(2)
Alternative syntax examples
647(1)
Working with modifier keys
648(1)
Working with Boolean values
649(1)
Avoiding dependency ``spaghetti''
650(3)
Applying simplicity principles
653(1)
Transaction Modeling
654(4)
Live versus batch data
654(1)
Posting edits and propagating edits to related records
655(1)
Offline updates and processing
655(1)
Robots and batch automation
656(1)
Host/server script execution
656(2)
Managing File Size
658(2)
Dealing with data in chunks
658(1)
Modularization strategies
658(1)
Considering segmentation
659(1)
Data archiving
659(1)
Images and Media in Databases
660(1)
Extending FileMaker's Capabilities
661(24)
External Scripting Calls
661(8)
Using Send Event and VBScript
662(1)
Using VBScript with FileMaker Pro
662(3)
Perform AppleScript
665(2)
Cross-platform solutions and external script calls
667(1)
Third-party helpers and macros
668(1)
Rendering HTML and JavaScript
669(2)
Harnessing HTTP
669(1)
Bringing services to your solution
669(1)
Handling hypertext
670(1)
Web Viewer Widgets
671(1)
Charting with Flash
671(1)
Applets and servlets
671(1)
FileMaker Plug-Ins
672(8)
Installing and enabling plug-ins
672(2)
Using external functions
674(1)
Script triggering
675(1)
Robust triggering implementations
675(2)
Available script triggering plug-ins
677(1)
Dialog capabilities
677(1)
File and media handling
678(1)
E-mail, HTTP, and FTP
679(1)
Charting and other functionality
679(1)
Web Deployment Options
680(3)
Instant Web publishing
680(1)
Custom Web publishing
681(1)
Working with XML and XSLT
681(1)
The FileMaker PHP API
682(1)
FileMaker's PHP Site Assistant
682(1)
Finding Third-Party Tools
683(2)
Developer tools
683(1)
Analysis and documentation
683(1)
Shared information
684(1)
Part VI: Appendixes
685(2)
Appendix A: Glossary
687(16)
Appendix B: Expanding Your Knowledge with Additional Resources
703(6)
From the Horses Mouth
703(1)
Professional Consulting and Development Services
704(1)
Online Design and Development Tips and Tricks
705(1)
Online Forums and Mailing Lists
706(1)
Books and Periodicals
707(2)
Appendix C: About the Web Site
709(2)
What's on the Web Site
709(1)
Troubleshooting
710(1)
Index 711
Ray Cologon is a FileMaker Pro consultant, a member of the FileMaker Business Alliance (FBA), and a widely known and respected FileMaker Pro developer and solutions provider. Ray is the recipient of an Award for Leadership and Technical Excellence in FileMaker Pro from FileMaker, Inc. Dennis R. Cohen is a computer industry writer, technical reviewer, and coauthor of fifteen books. He has been involved in the industry for almost thirty years and was a senior software engineer at Claris Corp. (now FileMaker, Inc.).