Muutke küpsiste eelistusi

FileMaker Pro 10 Bible [Pehme köide]

((Melbourne, Australia ))
  • Formaat: Paperback / softback, 816 pages, kõrgus x laius x paksus: 236x188x44 mm, kaal: 1179 g
  • Sari: Bible
  • Ilmumisaeg: 29-Apr-2009
  • Kirjastus: John Wiley & Sons Inc
  • ISBN-10: 0470429003
  • ISBN-13: 9780470429006
Teised raamatud teemal:
  • Pehme köide
  • Hind: 63,99 €*
  • * saadame teile pakkumise kasutatud raamatule, mille hind võib erineda kodulehel olevast hinnast
  • See raamat on trükist otsas, kuid me saadame teile pakkumise kasutatud raamatule.
  • Kogus:
  • Lisa ostukorvi
  • Tasuta tarne
  • Lisa soovinimekirja
  • Formaat: Paperback / softback, 816 pages, kõrgus x laius x paksus: 236x188x44 mm, kaal: 1179 g
  • Sari: Bible
  • Ilmumisaeg: 29-Apr-2009
  • Kirjastus: John Wiley & Sons Inc
  • ISBN-10: 0470429003
  • ISBN-13: 9780470429006
Teised raamatud teemal:
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.

FileMaker Pro 10 Bible provides information that grows with you no matter what your level when you start. Topics range from the general (how databases fit into real life and your business needs; comparisons with other database development tools; a broad discussion of integration with existing systems and software) through the building-blocks of FileMaker solutions, and on up to state-of-the-art advice on concepts of optimization, modularization, innovative and sophisticated user-interface design, dynamic elements, logic, cutting-edge calculations, publishing your database to the Web, and integrating tightly with SQL databases via "ESS". The book also includes the special developer tools available in FileMaker Pro Advanced, and covers topics too oft skipped over in other books on the market -- backup how-to's and strategies, must-read information about good database husbandry and file recovery, and so on. Much of the information in the book is documented nowhere else. This is the one must-have FileMaker book!
Acknowledgments xxx
Introduction xxxi
Part I: The Fundamentals
1(108)
Databases: The What, Why, and How
3(18)
The Many Faces of Databases: Lists, Tables and Forms
4(2)
The limitations of paper-based databases
4(1)
Entering the digital age
5(1)
Preparing to get organized
6(1)
The Concept of a Relational Database
6(2)
Flat-file databases and data redundancy
7(1)
Opportunities for making connections
7(1)
The Anatomy of a Database Solution
8(5)
The data: Foundation and substance
8(1)
The interface: Screens, letters, forms, and reports
9(3)
The hidden helper: Process management
12(1)
How FileMaker Fits In
13(8)
What FileMaker Pro calls things
13(4)
Familiar ideas from the real world
17(1)
Integrating processes and information
18(1)
Knowledge is power---personal and professional
18(3)
Putting FileMaker Pro in Perspective
21(14)
What Makes FileMaker Pro Different from Other Database Development Tools?
22(4)
Some common misperceptions
22(3)
A unique approach to design
25(1)
The FileMaker Product Family
26(2)
Desktop and server
26(1)
Scalability and flexibility
27(1)
FileMaker's Hidden Talents
28(4)
The cross-platform chameleon
28(1)
Multiple technologies and formats
29(1)
Plug-ins and extensibility
30(1)
The FileMaker calculation engine: Simplicity and power
31(1)
Resources and Exemplars
32(3)
Examples and brainteasers
32(1)
Other resources and opportunities
33(2)
Getting Acquainted with FileMaker
35(28)
Getting FileMaker Working for you
35(6)
Starting and exiting from FileMaker
36(1)
Creating, saving, and closing files
37(1)
Handling files and data safely
38(2)
Earlier file formats and conversion issues
40(1)
Finding Your Way Around
41(7)
The modes and their uses
43(1)
Navigating and viewing data
43(2)
Searching and the FileMaker Find/Omit puzzle
45(2)
Screen elements and what they're for
47(1)
Entering and Editing Data
48(2)
Creating and duplicating records
48(1)
Field definitions: Validation and dependencies
49(1)
The significance of commitment
49(1)
The Ins and Outs
50(4)
Importing and exporting data
51(1)
Previewing and printing options
52(1)
Send/Save as PDF and Excel
53(1)
Getting to Know the Relatives
54(1)
Ways to view and edit related data
54(1)
The importance of context
55(1)
Making complexity simple in practice
55(1)
Optimizing the Application
55(8)
Preference settings for your workstation
56(3)
File options for the current database
59(4)
What's New in FileMaker 10
63(46)
Embracing Change
63(1)
Status Area Redesign
64(4)
Live Reports/Sub-summaries
68(2)
Maintain Record Sort Order
70(2)
Saved Find Requests
72(4)
Set Field by Name
76(1)
Script Events Triggers
77(11)
Layout object triggers
78(3)
Layout script triggers
81(3)
Timed interval script triggers
84(1)
File-based script triggers
85(1)
Avoiding trigger tangles
85(3)
New Calculation Functions
88(4)
Get(TriggerKeystroke)
88(1)
Get(TriggrModifierKeys)
89(1)
Code(text)
89(1)
Char(code)
90(1)
GetFieldName(field)
90(1)
Get(DocumentsPathListing)
91(1)
External SQL Data Sources (ESS) Enhancements
92(2)
Additional SQL database support
92(1)
Value lists based on external SQL data
92(1)
Single Sign-On for remote Windows clients
92(2)
Handling of DATETIME values---MS SQL Server
94(1)
Bento Integration
94(2)
File Recovery Improvements
96(2)
Layout Mode Enhancements
98(1)
Inserting an object into the tab order
98(1)
Defining tooltips in Pro
99(1)
Additional font sizes in the format menu
99(1)
Send Mail by SMTP
99(1)
Quick Start Screen Enhancements
100(2)
Import/Export Enhancements
102(2)
Save Target Printer
104(1)
The Manage Scripts Interface
105(1)
Other Useful Enhancements
106(3)
IPv6 Support
106(1)
Format changes for automatically generated log files
106(1)
Updated templates and themes
107(1)
FileMaker Pro Advanced Script Debugger enhancements
107(1)
Relookup Replace and Field Contents no longer commit
107(1)
Only a single sharing error for multiple files
107(1)
Script error codes and control commands
108(1)
Part II: Introduction to Database Design
109(194)
Creating a Database
111(44)
Before Getting Started
111(1)
Creating a New Database File
112(23)
Adding tables and fields
114(3)
OrderLines
117(1)
Contacts
117(1)
Invoices
117(1)
InvoiceLines
117(1)
Working with the Field Options dialog: Validation and Auto-Entry
118(6)
Setting up simple calculations
124(3)
Capturing simple metadata
127(2)
Creating relationships between tables
129(3)
Adding aggregating calcs
132(3)
Viewing and Interacting with Data
135(8)
Looking at the multiple uses of layouts
136(1)
Creating records and entering data
136(5)
Editing or deleting data
141(1)
Finding and sorting data you've already entered
141(1)
Using special find symbols
142(1)
Searching with the range and wild card operators
143(1)
Avoiding the Need for Data Duplication
143(5)
Recognizing the visual cues to data relationships
144(1)
Information has a logical flow
144(2)
Anticipating the user
146(2)
Making complex things simple
148(1)
Getting Started with File Security
148(4)
Working with accounts and privilege sets
148(3)
Setting a default account and password
151(1)
Thinking about Usability
152(3)
Moving between records
153(1)
Managing context
153(1)
Moving between tables
154(1)
Using and changing views
154(1)
Using buttons for static and dynamic actions
154(1)
The Interface: Layout Mode
155(50)
Initial Layouts
155(16)
A map of Layout mode
158(1)
Selection and then Action tools
158(1)
Drag-to-Layout tools
158(2)
Palette and Menu controls
160(1)
Organizing the presentation of information
160(2)
Applying formats to field and text objects
162(4)
Setting up layouts for printing
166(2)
Understanding lists and forms
168(2)
Layout parts and their purposes
170(1)
The Importance of Visual Structure
171(4)
Adding visual pointers and aids
172(2)
Using white space
174(1)
Ergonomics and avoiding visual fatigue
174(1)
Giving information meaning
175(1)
Defining Tooltips
175(2)
Using conditional tooltips
176(1)
Keeping track of tooltips
177(1)
Different Kinds of Layout Objects
177(4)
Static and dynamic objects
178(1)
Inherent object properties
179(1)
Conditional format attributes
179(2)
FileMaker as a Graphical Environment
181(4)
Building graphic objects in FileMaker
181(2)
Default object formats and attributes
183(1)
Controlling stacking and alignment
183(1)
Bringing in graphics from other applications
184(1)
Interacting with Layout Objects
185(3)
Keyboard control of a layout
185(1)
Setting the tab order
186(1)
Assigning names to layout objects
186(1)
Controlling visual spell-checking
187(1)
The Tab Control and Its Uses
188(3)
Defining and creating a tab panel
188(1)
Navigating between tab panels
189(1)
Tab panel limitations
190(1)
Displaying Related Data
191(4)
Working within layout context
191(1)
Setting up a portal
191(4)
The Magic of Buttons
195(5)
Defining buttons
196(2)
Button scope and button commands
198(1)
The button as an object
199(1)
The Web Viewer: Inviting in the World
200(2)
Setting up a Web viewer
200(1)
Controlling a Web viewer
201(1)
Complementary data concepts
202(1)
Reports and Data Output
202(3)
Considerations for printed output
202(1)
Using fonts
202(1)
Page sizes and page setup
203(1)
Paper output versus PDF or Excel output
204(1)
Composite PDFs from multiple layouts
204(1)
The Structure: The Manage Database Dialog
205(56)
Working with Tables
206(6)
Table concepts: A room with a view
206(1)
Adding, deleting, and renaming tables
206(2)
Moving tables between files
208(1)
Importing tables
209(3)
Specifying Fields
212(16)
Adding, deleting, and renaming fields
213(1)
Understanding field/data types and their significance
214(2)
Auto-Entry options
216(2)
Field validation options
218(3)
Storage and indexing options
221(1)
Summary and Calculation fields
222(5)
Working with global fields
227(1)
Basic Calculations
228(13)
Creating a Calculation field
229(4)
Defining a calculation formula
233(1)
Entering literal text
234(1)
Referencing fields
235(1)
Understanding calculation functions and their syntax
236(1)
The List() function
236(1)
The Count() function
237(1)
The Date() function
237(1)
The Round() function
237(1)
The Length() function
237(1)
Doing some simple calculations
238(1)
Commission on earnings above a threshold
238(1)
Calculating initials from a person's name
239(1)
Compound interest at a known rate over a given period
239(1)
Current quarter of the calendar year
240(1)
Changing ampersands to ``and'' in a block of text
240(1)
Record navigation text (record n of nn)
240(1)
The Relationships Graph
241(6)
Common misconceptions about the Relationships Graph
241(2)
Tables versus Table Occurrences
243(1)
Avoiding circular references
244(1)
Named and unnamed data sources
245(1)
Creating references to other FileMaker files
246(1)
Working with External SQL Data Sources
247(10)
Configuring ODBC drivers: Setting up a DSN
247(5)
Integrating SQL tables with FileMaker data
252(4)
Adding supplemental fields
256(1)
The Concept of Data Relationships
257(4)
Why bother with relationships anyway?
257(1)
How relationships work
258(1)
Solving problems by using relationships
258(1)
Deciding what goes where
259(1)
The FileMaker relational model
259(2)
The Processes: FileMaker Scripting
261(42)
Scripting: What It Is and What It Offers You
261(7)
Building blocks of automation
264(2)
Context is everything
266(1)
Doing things in sequence
267(1)
Addressing objects by name
267(1)
Defining and Editing Scripts
268(10)
Script Editor windows
268(3)
Setting up a basic script
271(2)
How script commands function
273(1)
Changing the order of commands
274(2)
Assigning attributes to a command
276(2)
Using the Scripts Menu
278(2)
Managing the Scripts menu
278(1)
Other ways to trigger a script
279(1)
Using the single-threaded script engine
279(1)
Working with the script stack and paused scripts
280(1)
Controlling Script Execution
280(4)
Using conditional statements
281(1)
Using repetition
282(1)
Pausing for user input
283(1)
Some Notable Script Uses
284(3)
Navigation and view controls
285(1)
Editing information via scripts
286(1)
Printing and managing files
286(1)
Ease of Editing in FileMaker Scripting
287(2)
Selecting and duplicating multiple commands
288(1)
Copying and pasting scripts
288(1)
Copying and pasting script steps
289(1)
Organizing Scripts
289(6)
Creating list separators
289(1)
Script commenting
290(1)
Creating script folders
291(2)
Reordering and grouping scripts
293(1)
Filtering scripts by folder
293(1)
Searching for scripts by name
294(1)
Some Examples to Start With
295(2)
Performing a Find
295(1)
Printing a report
295(1)
Acting on user input
296(1)
Calling Your Scripts
297(6)
The Scripts menu
297(1)
Script hotkeys
297(1)
Scripts assigned to custom menu commands
298(1)
Layout buttons
298(1)
Calling scripts from other scripts
298(1)
On Timer Script Triggers
299(1)
File Open and File Close scripts
299(1)
Layout event Script Triggers
299(1)
Object event Script Triggers
300(1)
External script calls
301(2)
Part III: Beyond the Basic
303(250)
The FileMaker Power User
305(46)
Making Browse Mode Work for You
306(11)
Using multiple windows and views
306(1)
Filtering portals and creating pick lists
306(7)
Jump buttons: Shortcut navigation
313(4)
Controlling one window from another
317(1)
Performing Complex Search Operations
317(6)
Compound Find criteria: The And Find
318(1)
Stacking Find requests: The Or Find
318(1)
Constraining and extending the found set
319(1)
Saving Finds and found sets
319(4)
Sorting Records
323(10)
Multiple sort keys
324(1)
Dynamic sort techniques
324(3)
Creating click-sort columns
327(5)
Sorting related data
332(1)
Understanding Formatting
333(5)
The management of formatting: A three-tiered approach
334(1)
Character-level formatting
334(1)
Paragraph-level formatting
335(1)
Layout format filters
335(1)
Precedence of number, date, and time formats
336(1)
Controlling formatting programmatically
336(1)
Creating style buttons
337(1)
Some Notes on Variables
338(3)
The three kinds of variables
339(1)
Variables and memory usage
339(1)
Instantiating and destroying variables
340(1)
Keeping track of variables
340(1)
Understanding Indexing
341(5)
Text index types
341(1)
The word index
341(1)
The value index
342(1)
Indexing myths exploded
342(1)
Differences between numeric and text indexing
343(1)
Unicode and alternate language indexes
344(1)
Optimizing field index configurations
345(1)
The Table of Dependencies
346(1)
Cascading calculation operations
346(1)
The limits of dependency
346(1)
Tiers of dependency
347(1)
Caching Join Results
347(2)
What caching does for you
347(1)
Solving caching problems
348(1)
Gaining control of the cache
349(1)
Understanding Global Fields
349(2)
The behavior of global fields
349(1)
Uses for global fields
350(1)
When to avoid global fields
350(1)
Using global calculation fields
350(1)
Building Advanced Interfaces
351(54)
Developing for Mac and Windows Users
352(4)
Selecting fonts
352(1)
Paying attention to differences in screen rendering
353(1)
Considering platform-specific window behavior
354(2)
Using Dynamic Screen Elements
356(6)
Disappearing/reappearing objects
356(1)
The portal invisibility trick
356(2)
Concealed and remotely operated Tab Control
358(2)
Using conditional formatting as a visibility control
360(1)
The hidden power of conditional formatting
360(1)
Multi-state buttons and objects
361(1)
Working with Sub-Summary Parts and Part Controls
362(6)
Building adaptable screens
362(1)
Stacking up multiple Sub-summary parts
363(3)
Using multiple break fields
366(1)
Controlling pagination and page breaks
366(2)
Designing for Print
368(5)
Nonprinting objects
368(1)
Sliding objects and reducing parts
369(2)
Using Merge fields
371(1)
Creating a letter generator
372(1)
Using Multiple Windows and Views
373(2)
Managing window placement and size
373(1)
Windows as pop-ups and drill-downs
374(1)
Simulating modal window behavior
375(1)
Employing Custom Dialogs as an Interface Tool
375(2)
Dialogs as a data-entry device
376(1)
Dynamic dialog attributes
377(1)
Looking at Anchors and Resizable Layout Objects
377(5)
Objects that move according to window size
378(1)
Objects that grow and shrink
379(1)
Managing complex layout resizing
379(3)
Resizing behavior of enclosing objects
382(1)
Centering objects within the viewable area
382(1)
Implementing Shortcut Navigation
382(3)
The power of the Go to Related Record command
383(1)
One interface, many paths
383(1)
Building Back button functionality
384(1)
Building Depth and Dimensionality
385(2)
Using embossing and engraving effects
385(1)
Spatial cues for added meaning
385(1)
Delineation of element groups
386(1)
Color
386(1)
Transparency and translucency
386(1)
Working with Tab Controls
387(2)
Organizers and space savers
387(1)
Tab navigation via keyboard
388(1)
Scripting tab operations
389(1)
Recognizing the Flexibility of Portals
389(2)
Lists in many guises
389(1)
Portals as a navigation device
389(1)
Dynamically sorted portals
390(1)
Innovative portal implementations
391(1)
Using Advanced Web Viewer Techniques
391(3)
Access to advanced functionality
391(1)
Rendering internally calculated content
392(1)
Scraping data from Web pages
393(1)
Progress Bars and Native Charting Techniques
394(3)
Creating script progress monitors
395(1)
Native indicators and graphical displays
396(1)
Using Interface Elements
397(2)
Splash screens
397(1)
Main menus
398(1)
About and version info
398(1)
Online Help for your users
398(1)
Handling User Preferences
399(6)
A user-centric development philosophy
399(1)
Capturing state by user
399(1)
Example---a multi-lingual solution interface
400(5)
Data Modeling in FileMaker
405(42)
Background in Relational Theory
405(5)
Set Theory in the management of data
406(1)
Modeling the real world
406(1)
Think about clarity of organization
407(1)
Keep the big picture in view
407(1)
Remembering some guiding principles
408(1)
Separate entities by type
409(1)
Delineate fields clearly
409(1)
Place multiples in a separate table
409(1)
Store everything once only
410(1)
Identify the major players
410(1)
Put it into practice
410(1)
FileMaker Relationships Graph Symbols
410(3)
Visual cues and clues
410(2)
The To as a pointer
412(1)
Understanding the graph metaphor
412(1)
Relationship Operators
413(3)
Equi-joins and non-equal joins
414(1)
Comparative operators (theta joins)
415(1)
Cartesian joins
415(1)
Multi-predicate relationships
415(1)
Alternative Relationship Techniques
416(4)
Multi-Key fields
417(1)
Compound keys
418(1)
One-way relationships
418(1)
Join tables
419(1)
Naturally occurring joins
419(1)
Working with Data Arrays
420(3)
Repeating fields as an array handler
420(1)
Collapsing and expanding arrays
421(1)
Relationship-based techniques for managing data
421(1)
Allowing creation via relationship
421(1)
Using self joins
422(1)
The isolating relationship
423(1)
Graph Techniques---Spiders, Squids, and Anchor-Buoy
423(4)
Constellations and modular centers
424(1)
A satellite-based graph solution
424(2)
Segmentation on functional lines
426(1)
Documenting the Database Structure
427(4)
Graph annotations
427(1)
Naming conventions
428(1)
Field commenting
429(1)
Ancillary notes and documentation
430(1)
The Concept of Layers
431(3)
``Back end'' and ``front end''
432(1)
The business or procedural layer
432(1)
FileMaker as an integrated environment
433(1)
Separation anxiety
433(1)
File Architecture versus Data Structure
434(5)
Multi-file solutions
434(1)
The modular approach
435(1)
Interface files
436(2)
Approaches to separation of data
438(1)
Costs and benefits of separation
439(1)
Separation and External SQL Sources
439(3)
Understanding the rules
440(1)
Working within constraints
440(1)
Supporting the user
441(1)
Implementing Separation in an Existing Solution
442(3)
Establishing data source(s)
442(1)
Re-pointing Table Occurrences
442(2)
Creating separate graphs
444(1)
Deployment Considerations
445(2)
Your remotest dreams
445(1)
The model of adaptability
445(2)
Calculation Wizardry
447(52)
Compound Calculation Expressions
448(6)
The language of logic
449(1)
Functions and schema references
450(1)
Making context explicit
451(1)
Avoiding circular references
451(1)
Structured syntax and nesting
452(1)
Putting it all together
453(1)
Order of Operations
454(2)
Boolean Operations
456(2)
Zero, empty, and everything else
456(1)
Implicit Boolean coding
457(1)
Explicit Boolean coding
457(1)
Variables---Calculation, Script, and Global
458(2)
Declaring calculation variables---the Let() function
458(1)
Understanding variables' scope
459(1)
Benefiting from variables in a calculation
460(1)
Text Processing and Parsing Functions
460(7)
Substitute, Replace, and Trim
461(1)
Left, Right, and Middle
462(1)
Position and PatternCount
463(2)
The xWords suite
465(1)
Parsing in practice
466(1)
Text Formatting Operations
467(3)
Applying text formatting
467(1)
Removing text formatting
468(1)
Applying selective formatting
468(1)
Creating a Format button
469(1)
Dates, Times, and Timestamps
470(3)
How FileMaker manages dates
470(1)
Plotting time
470(1)
The number of seconds in 2009 years
471(1)
Juggling days, months, and years
472(1)
Summary Data
473(3)
Using aggregate functions
473(1)
The ballad of Max and Min
474(1)
Referencing summary fields
475(1)
Lists and Arrays
476(4)
Retrieving values as a list
476(1)
Managing lists---the xValues functions
477(1)
Extracting one value from a list
478(1)
Adding or inserting a list value
478(1)
Removing a value from a list
479(1)
Layers of Abstraction
480(3)
Building blocks with GetField()
480(1)
Completing the circuit with GetFieldName()
481(1)
The value of Evaluate()
482(1)
Unstored Calculations
483(3)
Why and when calculations are unstored
483(1)
Understanding the benefits and trade-offs of unstored calculations
484(1)
Discovering the hidden secrets of unstored calcs
485(1)
Calculation Fields versus Auto-Enter Calculations
486(3)
The user over-ride capability
486(2)
Auto-enter calculations and storage
488(1)
The Do Not Replace option
488(1)
Global Calculations
489(3)
The moon follows you everywhere
490(1)
Managing global dependencies
490(1)
The freedom and efficiency of global calculations
491(1)
Environment and Metadata
492(2)
The Get() functions
492(1)
Design functions
493(1)
Calculations Using Custom Functions
494(2)
Documenting Your Code
496(3)
Code formatting
497(1)
Code commenting
497(2)
Scripting in Depth
499(54)
Scripting the Control of Objects and Interface
499(5)
Addressing objects by name
500(1)
Locking down the interface
501(1)
Managing user interaction
502(2)
Trapping for Errors
504(6)
Retrieving error codes appropriately
505(1)
What the error codes mean
505(1)
Why bother with error handling?
506(1)
Handling errors
507(3)
Scripts and Access Privileges
510(2)
Privilege-based errors
511(1)
Run script with full access privileges
511(1)
Determining the substantive privileges
512(1)
Automating the Automation
512(5)
Defining a script to run on file open
513(1)
Housekeeping practices for start-up scripts
514(1)
Scripts that run on file close
515(1)
Script Triggers
516(1)
Harnessing the Power of Parameters, Results, and Variables
517(9)
Getting data into a script
517(1)
Branching according to state
518(1)
Declaring variables
519(2)
Passing and retrieving multiple parameters
521(2)
Specifying and retrieving a script result
523(2)
Storing and accumulating data as you go
525(1)
Dynamic and Indirect Controls in Scripts
526(5)
Example---Go to Layout by name or number
526(1)
Dynamic file paths using variables
527(2)
Dynamically building Find criteria
529(1)
Editing field data on the fly (indirection)
530(1)
Using Nonlinear Logic
531(4)
Nested and sequential If/Else conditions
531(1)
Looping constructs
532(1)
Specifying exit conditions
533(2)
Modular Script Code
535(1)
Using sub-scripts
535(1)
Script recursion
536(1)
Scripted Window Management
536(6)
Addressing windows by name (title)
537(1)
Moving and resizing windows
538(1)
Determining window dimensions
539(1)
Creating windows off-screen
540(1)
Freezing and refreshing the screen
541(1)
Scripting Data Import and Export
542(7)
Exporting field contents
542(1)
Exporting table data
543(1)
Selecting fields for export
543(2)
Import options
545(1)
Data matching for import
546(1)
Synchronizing and updating data
546(1)
Other import options
547(1)
Loading and unloading container objects
548(1)
Pivoting Data between Tables
549(1)
Using utility relationships
549(1)
Managing related data (walking through related records)
549(1)
Going over Some Practical Examples
550(3)
Locating unique records
550(1)
Building a multi-part PDF report
551(2)
Part IV: Integrity and Security
553(102)
In Control with FileMaker Security
555(26)
Concepts of Security
555(3)
Balance and perspective
556(1)
Identifying threats
556(1)
Assessing value
556(1)
Protecting your investment
556(1)
Interface vulnerabilities
557(1)
Taking things at interface value
557(1)
More than a semblance of security
558(1)
File-based security
558(1)
The Privilege Set
558(4)
Concepts of role-based security
560(1)
Defining and constraining access
560(1)
Schema privilege controls
561(1)
Granular Security
562(5)
Access to value lists and scripts
563(1)
The two dimensions of layout access
563(1)
Privileges for table, record, and field access
564(2)
Using and managing extended privileges
566(1)
User Authentication
567(3)
Creating user accounts
568(1)
Internal and external authentication
568(2)
Scripted Account Management
570(3)
Provision for automation of database security
570(1)
Working with multi-file solutions
571(1)
Safe scripting implementations
572(1)
Creating a Custom Logout Option
573(3)
The locked-down database
573(1)
Structuring a solution for logging out
573(2)
Security logging
575(1)
How Much Security Is Enough?
576(1)
Ways to evaluate risk
576(1)
A balanced view of threats
577(1)
A strategic model for response
577(1)
The Importance of Physical File Security
577(2)
Layers of protection
578(1)
Alternative forms of protection
578(1)
A multi-faceted approach
579(1)
Security in Deployment: FileMaker Server
579(2)
Filtered display of files
580(1)
Secure Socket Layer encryption
580(1)
Server checks and logs
580(1)
Maintaining Referential Integrity
581(18)
Pinpointing Common Causes of Referential Integrity Problems
581(1)
The potential impact on your solution
582(1)
Costs and benefits
582(1)
Using Unique Keys
582(2)
Key safeguards
583(1)
Keys and meaning (existence, persistence, uniqueness)
584(1)
Generating Keys
584(4)
Serial numbers
585(1)
Record IDs
586(1)
Unique identification (UID) values
587(1)
Exploring Keys and Data Type
588(2)
Retrofitting Keys
590(1)
Deleting Redundant Records
591(4)
The use of cascading deletion
592(1)
Configuring relationships for referential integrity
592(1)
Privilege requirements for cascade delete
593(1)
Controlled cascading deletes at runtime
594(1)
Considering Other Integrity Issues
595(2)
Lookups and when to use them
595(1)
Auto-entry lookups and references
595(1)
Data design issues
596(1)
Managing Dependencies
597(2)
Literal text references
597(1)
Indirect object/element references
597(1)
Filename references
598(1)
Structural anomalies
598(1)
Making FileMaker Systems Fail-Safe
599(34)
Expecting the Unexpected
599(4)
Successful backup strategies
599(1)
Backup frequency
600(1)
An appropriate backup cycle
600(1)
The integrity of backups
601(1)
The location of backups
601(1)
Back up the code, not just the data
601(1)
The hazards of copying open files
601(1)
Backing up local files
602(1)
Backing up hosted files
603(1)
A Comprehensive Approach to Error Trapping
603(4)
Dealing with record locking
604(2)
Techniques to avoid in multi-user or multi-window environments
606(1)
Replace Field Contents
606(1)
Record marking and flagging techniques
607(1)
Uses of global fields
607(1)
Opening Remote Files
607(6)
Peer-to-peer hosting
608(2)
File sharing risks
610(1)
Network spaghetti
610(1)
Opener files
611(1)
Sending an e-mail link
612(1)
Temporary Edit Interface Techniques
613(3)
The Data Viewer concept
613(2)
The legitimate purpose of record locking
615(1)
Creating double-blind entry systems
615(1)
Field Masking, Filtering, and Error Rejection
616(3)
Applying standard data formations
617(1)
Dealing with trailing spaces and carriage returns
618(1)
Rejecting out-of-scope characters
618(1)
Handling styled source text
619(1)
Built-In Logging Capabilities
619(2)
Making use of auto-enter options
619(1)
Capturing and extending standard metadata
620(1)
Script Logging
621(2)
Infrastructure for script logging
621(1)
Tracking script execution
622(1)
Script-specific context variables
622(1)
Script diagnostics
623(1)
Capturing User Edits in Detail
623(3)
Trapping edits, field-by-field
623(1)
Incorporating ancillary data
624(2)
Logging record deletions
626(1)
Managing the Accumulation of Log Data
626(1)
Archiving options
627(1)
Generating secondary output
627(1)
Implementing Roll-Back Capabilities
627(3)
Chronological roll-back
628(1)
Alternative undo and roll-back capabilities
629(1)
Using logs to roll forward
629(1)
Alternative Logging Approaches
630(3)
Logs as Data
630(1)
Scripted and triggered logging
630(3)
Maintaining and Restoring Data
633(22)
Some Notes on File Recovery
633(6)
Debunking common myths and misconceptions
634(1)
The Recover process
635(2)
Salvaging data
637(1)
Understanding file corruption
638(1)
Exporting and Importing Data
639(4)
File format considerations
639(2)
Exporting to and importing from a folder
641(1)
Delimiters and EOL markers
642(1)
Data Cleansing Operations
643(4)
Extract, transform, and load
643(1)
Data format considerations
643(1)
Data organization
644(1)
Data presentation
644(1)
Data domain
645(1)
Filtering capabilities in FileMaker
646(1)
Synchronizing Data Sets
647(4)
Import matching
648(2)
Importing selectively
650(1)
Handling Embedded Images and Stored Files
651(2)
Assigning and retrieving paths
652(1)
Scripted field updates
652(1)
Text-Handling Considerations
653(2)
Export field contents
653(1)
Designing a custom export process
654(1)
Part V: Raising the Bar
655(78)
FileMaker Pro Advanced Features
657(30)
Script Debugger
657(4)
Watching code in action
658(1)
Debugging restricted privilege scripts
658(1)
Getting used to the Debugger controls
659(2)
Data Viewer
661(6)
Current and Watch panels
661(1)
The Current panel
662(2)
The Watch panel
664(1)
Using the Viewer with the Debugger
665(1)
The Data Viewer sand box
665(1)
The Data Viewer and variables
666(1)
Database Design Report
667(2)
DDR Capabilities
668(1)
Mining the DDR for information
668(1)
Tools and techniques for interpreting DDR data
669(1)
Creating Custom Menus
669(6)
Defining menus
669(2)
Editing individual menus
671(1)
Benefits of the Script Step action
672(1)
Benefits of window widgets
672(1)
Adding menus to sets
673(1)
Assigning menu sets throughout your file
673(1)
Setting the default menu set for a file
673(1)
Determining a menu set for each layout
674(1)
Controlling menu sets via script
675(1)
Custom Functions
675(5)
Defining custom functions
676(2)
Custom functions as an aid to syntax readability
678(1)
Maximizing efficiency and ease of use
678(2)
Custom Functions and Recursion
680(4)
Things that only custom functions can do
680(1)
The stack and the limits of recursion
681(1)
Tail recursion in practice
681(1)
Some useful examples
682(1)
Creating an acronym from a supplied phrase
682(1)
Extracting a character set from a supplied block of text
683(1)
Removing an unspecified number of leading carriage returns
683(1)
Creating Runtime Applications
684(3)
Generating a stand-alone solution
684(1)
Binding for each platform
685(1)
Hosting runtime files
686(1)
Efficient Code, Efficient Solutions
687(22)
Designing for Scale: Size Considerations
687(2)
The elephant in the cherry tree
688(1)
Predicting what will scale well
688(1)
Eliminating Redundancy
689(2)
Avoiding duplication of elements
689(1)
Using portable and reusable code
690(1)
Appropriate use of sub-scripts
690(1)
Appropriate use of custom functions
691(1)
Designing for Flexibility and Adaptability
691(2)
Layouts and adaptable design
692(1)
Concepts of reusability applied to the Relationships Graph
692(1)
Traveling the Shortest Distance Between Two Points
693(9)
Optimal calculation syntax
693(2)
Alternative syntax examples
695(1)
Working with modifier keys
696(1)
Working with Boolean values
697(1)
Avoiding dependency ``spaghetti''
698(3)
Applying simplicity principles
701(1)
Transaction Modeling
702(4)
Live versus batch data
702(1)
Posting edits and propagating edits to related records
703(1)
Offline updates and processing
704(1)
Robots and batch automation
704(1)
Host/server script execution
704(2)
Managing File Size
706(2)
Dealing with data in chunks
706(1)
Modularization strategies
707(1)
Considering segmentation
707(1)
Data archiving
707(1)
Images and Media in Databases
708(1)
Extending FileMaker's Capabilities
709(24)
External Scripting Calls
709(7)
Using Send Event and VBScript
710(1)
Using VBScript with FileMaker Pro
710(2)
Calling Windows Command-Line scripts
712(1)
Perform AppleScript
713(2)
Cross-platform solutions and external script calls
715(1)
Third-party helpers and macros
716(1)
Rendering HTML and JavaScript
716(3)
Harnessing HTTP
717(1)
Bringing services to your solution
717(1)
Handling hypertext
718(1)
Web Viewer Widgets
719(1)
Charting with Flash
719(1)
Applets and servlets
719(1)
FileMaker Plug-Ins
720(8)
Installing and enabling plug-ins
720(2)
Using external functions
722(1)
Script triggering
723(1)
Robust triggering implementations
723(2)
Available script triggering plug-ins
725(1)
Dialog capabilities
725(1)
File and media handling
726(1)
E-mail, HTTP, and FTP
727(1)
Charting and other functionality
727(1)
Web Deployment Options
728(3)
Instant Web publishing
728(1)
Custom Web publishing
729(1)
Working with XML and XSLT
729(1)
The FileMaker PHP API
730(1)
FileMaker's PHP Site Assistant
730(1)
Finding Third-Party Tools
731(2)
Developer tools
731(1)
Analysis and documentation
732(1)
Shared information
732(1)
Part VI: Appendixes
733(10)
Appendix A: Expanding Your Knowledge with Additional Resources
735(6)
Appendix B: About the Web Site
741(2)
Index 743
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 founder of NightWing Enterprises, based in Melbourne, Australia. He has been a speaker at FileMaker Developer Conferences in Phoenix, Orlando, and San Francisco over the past four years and is the recipient of an Award for Leadership and Technical Excellence in FileMaker Pro from FileMaker, Inc.