Developer’s Guide
Table Of Contents
- Chapter 1 Welcome to FileMaker Developer
- Chapter 2 Installing FileMaker Developer in Windows
- Chapter 3 Installing FileMaker Developer in the Mac OS
- Chapter 4 Creating a database solution
- Overview of preparing your solutionfiles
- Considerations for a runtime databasesolution
- Considerations for Kiosk mode
- Using scripts to control your solution
- Protecting your database solution files
- Providing user documentation
- 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
- Your responsibilities as a developer
- Testing before and after creating your solution
- Converting and upgrading solution files
- Chapter 5 Creating custom layout themes
- Chapter 6 Using the FileMaker Developer Tool
- About the solution examples
- Using the FileMaker Developer Tool
- Binding your databases into a runtime database solution
- Creating Kiosk-mode solutions
- Renaming your databases
- Removing design access to your databases
- Customizing the About, Help, and Scripts menus
- Adding the FileMaker Pro extension to database filenames
- Saving your settings in the Developer Tool
- Chapter 7 Distributing FileMaker Pro runtime database solutions
- Chapter 8 Publishing your database on the Web
- Types of web publishing
- Using the FileMaker Pro Web Companion
- Creating a custom home page
- Creating a custom home page for Instant Web Publishing
- Creating a custom web site using a database layout
- Web Companion support for Internet mediatypes
- Monitoring your site
- Exporting data to a static HTML page
- Testing your site without a network connection
- Opening password-protected databases remotely
- Chapter 9 Custom web publishing using CDML
- About the CDML examples
- General steps for custom web publishing using CDML
- About CDML format files
- Generating FileMaker Pro CGI requests using CDML
- Using the CDML Tool and templates
- About the CDML Reference database
- Creating error messages
- Using an encoding parameter with a CDML replacement tag
- Planning your web site
- Chapter 10 Using FileMaker Pro XML to deliver your data on the Web
- About the XML examples
- General process for custom web publishing using XML
- Generating an XML document
- Using the FMPDSORESULT grammar
- Using the FileMaker Pro Extended XML grammars
- About UTF-8 encoded data
- Generating FileMaker Pro CGI requests for an XML document
- Using style sheets with your XML document
- Comparing CSS, XSLT, and JavaScript
- Looking at the XML Inventory example
- Chapter 11 Using JDBC to deliver your data
- About the JDBC examples
- About JDBC
- Using the FileMaker JDBC Driver
- SQL supported by the FileMaker JDBC Driver
- FileMaker Pro support for Unicode characters
- About the FileMaker JDBC Driver interfaces and extensions
- Example 1: Looking at the FileMaker Pro Explorer application
- Example 2: Creating the JBuilder Inventory application
- Example 3: Creating the Visual Cafe Inventory application
- Chapter 12 Understanding external function plug-ins
- About external functions
- About the plug-in example file
- Installing, enabling, and configuring the example plug-in
- Description of the FMExample plug-in’s external functions
- Using the example plug-in
- Customizing the plug-in example
- Requirements for writing an external function plug-in
- FileMaker Pro messages sent to the plug-in
- Debugging your plug-in
- Avoiding potential Mac OS resourceconflicts
- Providing documentation for your plug-in
- Registering your plug-ins
- Appendix A Feature comparison of the runtime application and FileMaker Pro
- Appendix B Valid names used in CGI requests for FileMaker Pro 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
- Generating a -dup request
- Generating an -img 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
Requirements for writing an external
function plug-in
FileMaker Pro plug-ins are most useful when they contain a single
function or a set of 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 three API code files that you must use without alteration
with your external function plug-ins: FMFlags.h, FMExtern.h, and
FMExtern.c. These files are FileMaker Proprietary API files and
cannot be distributed in source form without written consent from
FileMaker, Inc.
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.h and FMExtern.c
The FMExtern.h is the header file for the FMExtern.c file. Together,
these files define 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.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.
The FMExtern.c file contains a 68K callback mechanism to handle
Power PC applications. Do not alter these files.
Understanding external function plug-ins 12-7
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 12-10.
FMExternCallStruct defines the structure of the parameter block.
FMExternCallPtr is a pointer to that structure and gFMExternCallPtr
is a global variable that is defined as an FMExternCallPtr pointer.
Within the FMExternCallStruct definition are three variables of type
long: param2, param3 and result. The param2 variable contains the ID
(0, 1, 2, etc.) for the external function referenced from the Specify
Calculation dialog box in FileMaker Pro.
The param3 variable contains the value of the expression that
replaces the external function’s parameter passed to the plug-in from
the calculation formula in FileMaker Pro. Since external functions
can only return text/string data, the data in the param3 variable and
the data you put into the result variable must be text or a textual
representation of a number.
Note Param3 is a pointer (type long integer) to a text variable.
Required resource files
Two resource files are provided, that define the string resources
required by FileMaker Pro. The resource files are FMExample.rc for
Windows, and FMExample.r for Mac OS. For Windows, the string
resources start at string ID 128 in the resource file. For Mac OS,
they’re in a STR# resource with ID 128 in the resource file.
These four string resources are required for a FileMaker Pro plug-in:
• The first string (ID 128) is the plug-in’s name as it appears in the
FileMaker Pro Application Preferences dialog box.