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
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:
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.filemaker.com/developers/
index.html.)
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 12-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 in the list is assigned the ID of
zero and is increased by one for each string found after that. (In
Windows, FileMaker Pro stops scanning for names when it
encounters the first empty string after string ID 144.)
8 Character 8 is always “Y. ”
Understanding external function plug-ins 12-9
Characters
in the
feature
string Description of characters
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.
For example, “
Moc31nYYnnY” is a feature string for a plug-in with
the ID of “
Moc3” (characters 1-4) that includes 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 FMMain.h and FMMain.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 12-7).