
If only file name is given, we look into plugin folder, too. Changed DLL loading for DynaPDF.Initialize and XL.Initialize functions to look for given DLL path, try 32/64 DLLs.Changed XL.Initialize to accept empty path and pick the file name automatically per platform.looks for libxl library in plugin folder. Init with automatic picking of library name: MBS("XL.Initialize" "" $LicenseName $LicenseKey) Initialize automatically and look in same folder as plugin for the DLL/dylib/so file:

MBS( "XL.Initialize" "C:\Program Files\FileMaker\FileMaker Server\Database Server\Extensions\libxl.dll" "Test User" "win-43567890." )
#XOJO EXIT CELLEDIT LICENSE KEY#
Initialize with license key on Windows with Server: MBS( "XL.Initialize" "/Library/FileMaker Server/Extensions/libxl.dylib" "Test User" "mac-43567890." ) If you like to have the user choose the path, you can use FileDialog functions.įor Server be aware that server has limited permissions and may not be able to access all files on a computer. Use Path.FileMakerPathToNativePath to convert a FileMaker path to a native path if required.
#XOJO EXIT CELLEDIT CODE#
The dylib from MBS is normally code signed already and should work as is. Then you may need to code sign the dylib yourself to match the code signature of your runtime application. If you get a crash here on MacOS, please check if crash report says Code Signature Invalid. If no name is provided, we look for libxl.dll/dylib/so files. And we still look for 32/64 suffixes to DLL name. Starting version 9.5, the plugin will look into the same folder for the DLL as the plugin resides. For macOS the error message will tell you about wrong architecture. The bit level must match between app and library. Windows error 193 means that 64-bit FileMaker tried to load 32-bit library or 32-bit FileMaker tried to load 64-bit library. 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. If you have no license yet, you can test this function by passing empty strings for name and key.įor getting a license key, please visit the libXL website: You can keep the library in a database field and export it at runtime to a known location and load it from there. Initializes the XL library by loading it. Native path to the DLL on Windows or Dylib file on MacOS.Ĭan be empty for default file name with file in same folder as plugin. $LicenseKey) /* The license key of your libXL license.e.g. $LicenseName /* The name of your libXL license.e.g. $LibPath /* Native path to the DLL on Windows or Dylib file on MacOS.Ĭan be empty for default file name with file in same folder as plugin.e.g. MessageBox.Show("The value entered is incorrect.MBS( "XL.Initialize" /* Initializes the XL library by loading it. Private void dataGridViewMsg_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) For example, to validate the inputs written by the user via cell edition, you can rely on an approach on the lines of the following one: bool cancelIt = false

In any case, note that it is better to make sure that the cancellation happens only under the expected conditions otherwise, the code might get stuck in this event because it is automatically called at many different points. You can use EndEdit() to get what you want. How can I proceed to make the cell recover its original value without requiring me to keep track of this value? MessageBox.Show("The value entered is incorrect.", "Modification aborted") ĭataGridViewMsg.IsInEditMode = false // Someway, what I would like to do

Here, treatment determines is the new cell value isValid or not Here is what the validation method looks like : private void dataGridViewMsg_CellValidating(object sender, DataGridViewCellValidatingEventArgs e) The cell is then waiting for a correct value and won't let the user to simply cancel&revert his action. I am currently using the CellValidating event to prevent the cell from updating its value but I'm not able to exit the editing mode. recover the original value from the cell) When the user enters an incorrect value for a certain cell, I want to:

My goal is to have a friendly validation flow on my DataGridView.
