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-9
The fifth character of the feature string is always “1,” the eighth is
always “
Y,” and the tenth is always “n.” Other values for these flags
are reserved for FileMaker, Inc. use only.
Here’s a description of each character in the feature string:
For example, “
Moc31nYYnnY” is a feature string for a plug-in with
the ID of “
Moc3” (characters 1-4) that exports an external function
(character 7 = “
Y”), does not need any special configuration or idle
time (characters 6 and 9 both = “
n”), and uses only the Win32s API
(character 11 = “
Y”).
Requirements for the plug-in’s main entry point
The FMTemplate.c and FMExample.c files are examples of what the
main file should look like for a FileMaker Pro plug-in. They define
the main entry point function for the various environments
(Windows and Mac OS) that a plug-in can be compiled for.
The main entry point contains a switch statement that allows the
plug-in to determine the condition under which control is passed to
it, so that it may act appropriately.
switch (pb->whichCall) {
The variable “pb” is a local variable that was assigned to be equal to
gFMExternCallPtr. (See the description of the FMExtern.h file in
“Required code files” on page 10-7).
Main entry point for Windows environments
The Windows platform plug-in exists as a 32-bit DLL with one
exported, named entry point. The filename extension for the DLL
must be “
.FMX” and the name of the entry point must be
“
FMExternCallProc.”
Characters in
the feature
string Description of characters
1-4 Characters 1-4 are the plug-in ID. (Register the ID on the
Apple Developer Support web site at www.apple.com.)
5 Character 5 is always “1.”
6 Set the sixth character of the feature string to “Y” if you
want to enable the Configure button for plug-ins in the
Application Preferences dialog box. Use “n” if there is no
plug-in configuration needed. If the flag is set to “Y,” then
make sure to handle the kFMXT_DoAppPreferences
message. (See “FileMaker Pro messages sent to
the plug-in” on page 10-10.)
7 Set the seventh character of the feature string to “Y” when
the plug-in has external functions you want to appear in the
Specify Calculations dialog box. It is expected that this is
going to be “Y” most of the time.
The names of the external functions must start at string ID
144 (Windows) or be in a “STR#” resource with ID 144
(Mac OS).
The first external function name is assigned the ID of zero
and is increased by one for each string found after that. (On
Windows, FileMaker Pro stops scanning for names when it
encounters the first empty string after string ID 144.)
8 Character 8 is always “Y.”
9 Set the ninth character of the feature string to “Y” if the
kFMXT_Idle message is required. For simple external
functions this may not be needed and can be turned off by
setting the character to “n.”
10 Character 10 is always “n.”
11 Set the eleventh character to “n” if the plug-in cannot limit
its Windows calls to the Win32s subset. (This might be the
case for FileMaker Pro 4.0 plug-ins.) Otherwise, it should
be set to “Y.” Even though the state of the Win32s flag is
ignored in the Mac OS, it still must exist.
Characters in
the feature
string Description of characters