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
12-8 Developer’s Guide
• The second string (ID 129)is the descriptive text displayed in the
Application Preferences dialog box when the plug-in is selected.
• The third string (ID 130) must be empty.
• The fourth string (ID 131), referred to as the feature string,
contains the plug-in’s unique ID and feature flags.
//////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE DISCARDABLE
BEGIN
128 “FMExample” /* Name of plugin as shown in calculation
dialog */
129 “This is an example plug-in that demonstrates how to
write plug-ins. This comes with FileMaker Developer.” /* De-
scription shown in application preferences panel in FileMaker
*/
131 “Xmpl1YYYYnY” /* “Feature String” = <4 char creator>
<always 1> <app prefs> <has external functions> <always Y>
<idle> <always n> <Win32s> */
144 “Xpl-Version” /* functionId 0 */
145 “Xpl-NumToChar” /* functionId 1 */
146 “Xpl-CharToNum” /* functionId 2 */
147 “Xpl-Format” /* functionId 3 */
148 “Xpl-NumWords” /* functionId 4 */
/* INSERT YOUR CODE HERE */
// 149 “Xpl-MyNewFunctionNameHere” /* functionId 8 */
kErrorMsg “FMExample Plugin Error”
kErrorBody “error %li”
kStrMsg “FMExample Plugin”
kStrBody “%s”
END
///////////////////////////////////////////////////////////
//////////////////
String table in FMExample.rc
resource ‘STR#’ (kFMEX_RES_STRINFOID, purgeable) {
{ /* array StringArray: 4 elements */
/* [1] */
/* Name of plugin as shown in calculation dialog */
“FMExample”,
/* [2] */
/* Description shown in application preferences
panel in FileMaker */
“This is an example plug-in that demonstrates how
to write plug-ins. This comes with FileMaker
Developer.”,
/* [3] */
““,
/* [4] */
/* “Feature String” = <4 char creator> <always 1>
<app prefs> <has external functions> <always Y>
<idle> <always n> <Win32s> */
“Xmpl1YYYYnY”
}
}; /* STR# kFMEX_RES_STRINFOID */
String table in FMExample.r
Feature string syntax
The feature string must be 11 characters long for FileMaker Pro
plug-ins.
The first four characters of the feature string are the ID of the
FileMaker Pro plug-in. The ID must be unique for each plug-in and
must not begin with “F,” “FM,” or “Web.” For the Mac OS, it is
recommended that you set the creator type of the plug-in to this same
value. The ID can only contain low-ASCII alphanumeric characters
(such as
0-9, A-Z, and a-z).
Note So that there will be a good chance of having a unique ID, you
should register the ID at the Apple Developer Support web site—
even if you won’t be creating a Mac OS version of your plug-in. To
register plug-in IDs, go to the developer support pages on the Apple
Computer web site at www.apple.com/developer/ (see
“Registering
your plug-ins” on page 12-13).