Developer’s Guide
Table Of Contents
- Contents
- Chapter 1 Introducing FileMaker Developer 5
- Chapter 2 Customizing your database solution
- About the custom solution examples
- Using the FileMaker Developer Tool
- Binding your databases into a runtime database solution
- Displaying databases in Kiosk mode
- Renaming your databases
- Removing design access to your databases
- Customizing the About, Help, and Scriptsmenus
- Adding the FileMakerPro extension to database filenames
- Saving your settings in the Developer Tool
- Chapter 3 Preparing files for a custom solution
- About the Relational Example
- General steps for preparing your solutionfiles
- Issues to consider before creating a runtime database solution
- Opening files in Kiosk mode
- Design tips for navigating in Kiosk mode
- Creating startup scripts
- Using button image samples
- Documenting your database solution
- Design tips for cross-platform solutions
- Creating a consistent appearance
- Simulating outline and shadow text styles
- Using common character sets
- Designing text layouts for cross-platform solutions
- Using a common color palette
- Using graphics in cross-platform solutions
- Using QuickTime movies in cross-platform solutions
- Showing the status bar in Windows
- Using separate scripts for printing
- Using the Status (CurrentPlatform) function
- Creating platform-specific scripts
- Protecting your runtime database solutionfiles
- Testing before and after creating yoursolution
- Converting and upgrading solution files
- Chapter 4 Distributing FileMakerPro runtime database solutions
- Chapter 5 Creating custom layout themes
- Chapter 6 Publishing your database on the Web
- Moving forward using open web standards
- Using the FileMakerPro Web Companion
- Displaying a custom home page
- Using a custom home page with Instant Web Publishing
- Monitoring your site
- Exporting data to a static HTML page
- Testing your site without a networkconnection
- Opening password-protected databasesremotely
- Using the Web Security Database
- Chapter 7 Using FileMakerPro XML to deliver your data
- About the XML examples
- General process for custom web publishing using XML
- Generating an XML document
- Using the FMPDSORESULT grammar
- Using the FileMakerPro Extended XMLgrammars
- About UTF-8 encoded data
- Generating FileMakerPro CGI requests for an XML document
- Using style sheets with your XMLdocument
- Comparing CSS, XSLT, and JavaScript
- Looking at the XML Inventory example
- Chapter 8 Using Java and JDBC to deliver your data
- About the JDBC examples
- About JDBC
- Using the FileMaker JDBC Driver
- SQL supported by the FileMaker JDBCDriver
- FileMakerPro support for Unicodecharacters
- About the FileMaker JDBC Driver interfaces and extensions
- Example 1: Looking at the FileMakerPro Explorer application
- Example 2: Creating the JBuilder Inventoryapplication
- Example 3: Creating the Visual Cafe Inventory application
- Using the FileMaker Java classes
- Chapter 9 Custom web publishing using CDML
- About the CDML examples
- General steps for custom web publishing using CDML
- About CDML format files
- Generating FileMakerPro CGI requests using CDML
- Using the CDML Tool and templates
- New and modified CDML tags
- About the CDML Reference database
- Creating error messages
- Using an encoding parameter with a CDML replacement tag
- Planning your web site
- Chapter 10 Writing external function plug-ins
- About the plug-in examples and templates
- Installing, enabling, and configuring FileMakerPro plug-ins
- Using external functions in a calculation
- Requirements for writing an external function plug-in
- FileMakerPro messages sent to theplugin
- Debugging your plug-in
- Avoiding potential MacOS resourceconflicts
- Providing documentation for your plug-in
- Naming and registering your plug-ins
- Appendix A Feature comparison of the runtime application and FileMakerPro
- Appendix B Valid names used in CGI requests for FileMaker XML data
- Generating a –find, –findall, or –findany request
- Generating a –view request
- Generating a –new request
- Generating an –edit request
- Generating a –delete request
- Generating a –dbnames request
- Generating a –layoutnames request
- Generating a –scriptnames request
- Generating a –dbopen request
- Generating a –dbclose request
- Specifying parameters for the request
- db (Database)
- lay (Layout)
- format (Format)
- recid (Record ID)
- modid (Modification ID)
- lop (Logical operator)
- op (Comparison operator)
- max (Maximum records)
- skip (Skip records)
- sortfield (Sort field)
- sortorder (Sort order)
- script (Script)
- script.prefind (Script before Find)
- script.presort (Script before Sort)
- styletype (Style type)
- stylehref (Style href)
- password (Database password)
- field name (Name of specific field)
- Appendix C FileMaker Pro values for error codes
- Index
Writing external function plug-ins
10-7
Note The source code for the Xpl-NumWords function is based on the
calculation formula described in the TechInfo article “Converting
Numbers to Words or Numbers to Text.” By writing the formula into
the code, this Full Example plug-in demonstrates how an external
function can save users hours of database development time.
For a description of the formula, go to the support pages at
www.filemaker.com and search the TechInfo database for article
104580 (old number TOBAR9726230123)—choose FileMaker from
the Product list and type
104580 in the Article box. As a shortcut to
the site, double-click FileMaker on the Web (installed in the FileMaker
Developer 5 folder).
Requirements for writing an external
function plug-in
FileMaker Pro plug-ins are most useful when they contain a single
external function or a set of external functions with similar features.
When you design your plug-in, keep in mind that most database
developers who use your plug-in may not understand programming
conventions that you take for granted — the format of each
function’s parameter should be understandable to the typical user.
Required code files
There are four code files that you must use with your external
function plug-ins. The FMFlags.h, FMExtern.c, and FMExtern.h
files must be used as they are without alteration. The FMTemplate.c
file must be modified for each new plug-in. These files are included
in the Template folder in either the Microsoft Visual C++ Template
(Windows) or the Code Warrior Pro Template (Mac OS) folder:
FileMaker Developer 5 > FileMaker Pro APIs > External Function Plug-in >
Template
FMTemplate.c
For information about the FMTemplate.c file, see “Requirements for
the plug-in’s main entry point” on page 10-9.
FMFlags.h
The FMFlags.h header file contains compiler directives to control
code compilation. This file allows you to have one set of source code
files that will compile on Windows and Mac OS machines. Do not
alter this file.
FMExtern.c
The FMExtern.c — along with the FMExtern.h file —defines the
parameter block (the shared data structure used by your plug-in and
FileMaker Pro) and some shared function calls. The function calls
are used to manipulate the parameter and result Handles in the
parameter block. The FMExtern.c file contains a 68K callback
mechanism to handle Power PC applications. Do not alter this file.
FMExtern.h
The FMExtern.h — along with the FMExtern.c file —defines the
parameter block (the shared data structure used by your plug-in and
FileMaker Pro) and some shared function calls. The function calls
are used to manipulate the parameter and result Handles in the
parameter block. Do not alter this file.
In addition, the FMExtern.h file defines the call-back functions for
memory operations and the different kinds of plug-in events
(FileMaker Pro messages) sent to the plug-in in a
FMExternCallSwitch definition.
typedef enum { kFMXT_Init, kFMXT_Idle, kFMXT_Internal1,
kFMXT_External, kFMXT_Shutdown,
kFMXT_DoAppPreferences, kFMXT_Internal2 }
FMExternCallSwitch;
The kFMXT_Internal1 and kFMXT_Internal2 values are reserved
by FileMaker, Inc. For information about the other values, see
“FileMaker Pro messages sent to the plug-in” on page 10-10.