Topics
All
MacOS
(Only)
Windows
(Only)
Linux
(Only, Not)
iOS
(Only, Not)
Components
Crossplatform Mac & Win
Server
Client
Old
Deprecated
Guides
Examples
Videos
New in version:
9.3
9.4
9.5
10.0
10.1
10.2
10.3
10.4
10.5
10.6
Statistic
FMM
Blog
XL.Initialize
Initializes the XL library by loading it.
| Component | Version | macOS | Windows | Linux | Server | FileMaker iOS SDK |
| XL | 2.9 | Yes | Yes | Yes | Yes | Yes |
Parameters
| Parameter | Description | Example |
|---|---|---|
| LibPath | Native path to the DLL on Windows or Dylib file on MacOS. Can be empty for default file name with file in same folder as plugin. |
"C:\libxl\libxl.dll" |
| LicenseName | The name of your libXL license. | "" |
| LicenseKey | The license key of your libXL license. | "" |
Result
Returns OK on success.
Description
Initializes the XL library by loading it.You can keep the library in a database field and export it at runtime to a known location and load it from there.
If you have no license yet, you can test this function by passing empty strings for name and key.
For getting a license key, please visit the libXL website:
https://www.monkeybreadsoftware.com/filemaker/libxl.shtml
Starting with version 4.4, you can pass just the filename of library and the plugin finds it in the Extensions folder or in FileMaker's application folder.
Windows error 193 means that 64-bit FileMaker tried to load 32-bit library or 32-bit FileMaker tried to load 64-bit library. The bit level must match between app and library. For macOS the error message will tell you about wrong architecture.
Starting version 9.5, the plugin will look into the same folder for the DLL as the plugin resides. And we still look for 32/64 suffixes to DLL name. If no name is provided, we look for libxl.dll/dylib/so files.
If you get a crash here on MacOS, please check if crash report says Code Signature Invalid. Then you may need to code sign the dylib yourself to match the code signature of your runtime application. The dylib from MBS is normally code signed already and should work as is.
This function requires a native path. Use Path.FileMakerPathToNativePath to convert a FileMaker path to a native path if required. If you like to have the user choose the path, you can use FileDialog functions.
For Server be aware that server has limited permissions and may not be able to access all files on a computer.
Examples
Initialize XL:
MBS( "XL.Initialize"; "/Library/FileMaker Server/Extensions/libxl.dylib"; "Test User"; "mac-43567890..." )
Initialize when needed:
#Initialize XL
If [MBS( "XL.IsInitialized" ) ≠ 1]
If [Get ( SystemPlatform ) = -3]
# iOS
Exit Script []
Else If [Get ( SystemPlatform ) = -2]
# Windows
Set Variable [$path; Value: "libxl.dll"]
Set Variable [$key; Value: "win-32213..."]
Else
# Mac
Set Variable [$path; Value: "libxl.dylib"]
Set Variable [$key; Value: "mac-32213..."]
End If
Set Variable [$r; Value: MBS( "XL.Initialize"; $path; "test"; $key )]
If [$r ≠ "OK"]
Show Custom Dialog [ "LibXL failed to initialize"; $r]
End If
End If
Initialize with license key on Windows with Server:
MBS( "XL.Initialize"; "C:\Program Files\FileMaker\FileMaker Server\Database Server\Extensions\libxl.dll"; "Test User"; "win-43567890..." )
Initialize automatically and look in same folder as plugin for the DLL/dylib/so file:
MBS("XL.Initialize"; ""; $LicenseName; $LicenseKey)
Register LibXL for MBS Plugin
If [ MBS("XL.IsInitialized") ≠ 1 ]
If [ MBS("IsMacOS") ]
Set Variable [ $r; Value: MBS( "XL.Initialize"; $path; "xxx"; "mac-xxx" )]
Else If [ MBS("IsWindows") ]
Set Variable [ $r; Value: MBS( "XL.Initialize"; $path; "xxx"; "win-xxx" )]
Else If [ MBS("IsLinux") ]
Set Variable [ $r; Value: MBS( "XL.Initialize"; $path; "xxx"; "linux-xxx" )]
Else If [ MBS("IsIOS") ]
Set Variable [ $r; Value: MBS( "XL.Initialize"; $path; "xxx"; "ios-xxx" )]
Else
Set Variable [ $r; Value: "new platform?" ]
End If
If [$r ≠ "OK"]
Show Custom Dialog ["Problem with LibXL Registration"; $r]
End If
End If
See also
- IsIOS
- IsLinux
- IsMacOS
- IsWindows
- OCR.Initialize
- Path.FileMakerPathToNativePath
- WIA.Initialize
- XL.IsInitialized
- XL.Uninitialize
Example Databases
- XL/AutoFilter
- XL/Change Column Names
- XL/Converter
- XL/Edit Sheet
- XL/Export records
- XL/Sheet with colored text
- XL/Writing data
- XL/XL
Blog Entries
Release notes
- Version 9.5
- Changed DLL loading for DynaPDF.Initialize and XL.Initialize functions to look for given DLL path, try 32/64 DLLs. If only file name is given, we look into plugin folder, too. If no file name is given, we try default file name.
- Version 8.0
- Added better error message when calling XL.LoadBook or XL.NewBook without calling XL.Initialize.
Created 18th August 2014, last changed 25th November 2020
XL.Format.SetWrap - XL.IsInitialized
Feedback: Report problem or ask question.
Links
MBS Xojo tutorial videos