What is new in the MBS FileMaker Plugin Version 10.3

In this article I want to introduce you the new functions from the MBS FileMaker Plugin in version 10.3.

LibXL

Let's start with a few innovations with LibXL, that allows you to edit Excel files. You now have functions with which you can identify the area of the table where data is filled in. You can determine the first row or column in an existing Excel document and which one is the last row or column that is filled. This simplifies your work. For example, you want to enter data in an existing table. You first determine the last filled row and then you enter the new values in the next row

There is the new XL.Sheet.CellWriteTextAsNumber function that writes a number into an Excel spreadsheet, which is passed as text. This prevents rounding errors for decimal numbers

Audit 

The Audit component can log changes in a database. Under the new Filemaker Pro, we create fields for each table that make this logging possible. With the new function Audit.SetIgnoreRepetitions you can set whether repeating fields should be checked. If you want to know if the check is deactivated, you can use the appropriate Get function Audit.GetIgnoreRepetitions.

GraphicsMagick

Let's take a look at the new features in the GraphicsMagick component. With the new ping functions, GMImage.Ping and GMImage.PingContainer we can load image data from a file or container field. Ping is similar to functions that read the data, but we read only enough to determine the image columns, rows, and file size. That means we can only read the metadata. 

Another function, GMImage.GetZPL, returns the hexadecimal ZPL value for an image. The picture is taken as black & white image and build the hex string, you can send this hex string to a receipt printer, which generates an image with this hex sting and prints it out.

Files 

In the Files component we have added a very powerful function that standardizes the path for you. For example, you have got back the following path from an application under Windows: %HOMEPATH%\test.txt. This is converted with the function Files.StandardizePath into the standardized path C:\Users\Name\test.txt

Under MacOS the tilde is extended. The empty components, references to the current directory and symbolic links are reduced.

On Windows we resolve environment variables and get the full path.

For Linux, symbolic links are resolved, empty components are reduced and relative paths are resolved.

Hotkey

We have a new function for the hotkeys on Windows and Mac. With HotKey.UnregisterAll you can unregister all Hotkeys. This enables you to reset the complete assignment of the hotkeys instead of having to do this with HotKey.Unregister for each hotkey individually.


(more)

News from the MBS Xojo Plugins Version 20.3

In this article I want to introduce you the new functionalities from the MBS Xojo Plugins in version 20.3.

Dynamic Declares

The classes of this topic handle the loading of dynamic C libraries and calling functions within them. Currently there are three classes. 

The DeclareLibraryMBS class Allows you to load a DLL on Windows, a dylib on MacOS and shared object on Linux. It inspects the available functions and load functions by name. You can enter a path or pass a folderItem when you create an instance of this class.

The DeclareFunctionMBS class give you the possibility to call C functions. In comprehension to the built-in declares in Xojo, those functions allow a much more dynamic calling of functions with various calling conventions. We support also the possibility to define declares at runtime. 

With the DeclareCallBackMBS class you can create callback functions dynamically. In the parameters you pass the function pointer to a C function which later calls back your callback.

 

Java

In the JavaVMMBS class we have two new methods, named DefineClass, that allow us to load a class with raw class data from the buffer. In the parameters, we specify the class name and the data either as a string or a memory block.


(more)

Omegabundle for Xojo 2020 ends 31st July

Get the top developer tools and third party components for the Xojo cross-platform development platform at a huge savings until 31st July August 2020.

Omegabundle for Xojo 2020 is a collection of the most useful tool sets, add-ons, digital books and components for use with Xojo Inc's Xojo development environment. If purchased separately and not including any additional offers, the total cost would be over $3,711.00. Omegabundle for Xojo 2020 costs $399. Buy now on the Paradigma Software store.



Xojo is an award-winning, cross-platform development tool for the Desktop (macOS, Windows, Linux), Web, iOS (iPad/iPhone) and Raspberry Pi. With Xojo, you can create native applications by using drag-and-drop to build your user interface and then one straight-forward programming language to enable the functionality. Xojo is powerful and modern, yet easy to use and learn. (more)

MBS Xojo Plugins, version 20.4pr1

New in this prerelease of the 20.4 plugins: Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 10.4pr1

New in this prerelease of version 10.4 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.com/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Drei Monate bis zur Deutschen FileMaker Konferenz 2020 in Malbun

Noch drei Monate bis zur FileMaker Konferenz 2020 in Malbun (Liechtenstein).

Vom 28. bis 31. Oktober findet die elfte deutschsprachige FileMaker Konferenz im JUFA Hotel in Malbun, Liechtenstein statt. Ursprünglich geplant für Juni muss die Veranstaltung leider in den Oktober verschoben werden. Wir hoffen dennoch auf tolles Wetter, viele Interessante Teilnehmer und Gespräche. Eventuell könnte das die einzige Konferenz rund um FileMaker in diesem Jahr werden, die vor Ort stattfindet.

Ein MBS Schulungstag ist für den Mittwoch vorher geplant. Bei Interesse kann man sich gerne bei uns anmelden. Die Ankündigung liegt hier: MBS Workshop



Die Veranstalter vom Verein FM Konferenz erwarten auch 2020 rund 120 Entwickler, Anwender, IT-Fachleute und Entscheidungsträger aus Wirtschaft, Bildung und Verwaltung. Rund um über 20 Fachvorträge und Workshops wird es viel Zeit zum Vernetzen in den gemeinsamen Pausen und beim Abendprogramm geben.

Für den Deutschsprachigen Raum ist diese Konferenz das Treffen des Jahres. Hier finden Sie vom Anfänger bis zum Profi Kontakte zu anderen Entwicklern. Lernen Sie was es neues gibt, nehmen Sie Impulse mit für die eigene Arbeit und erfahren Sie mehr zu FileMaker von deutschsprachigen Experten!
Bitte planen Sie wenigstens einen extra Tag ein für ihren Besuch in Liechtenstein, damit Sie die Natur in dem schönen Tal geniessen können. Den Aufstieg auf den Sareis können Sie bequem zu Fuß vom Hotel aus starten und die Turnastraße hinauf spazieren bis zum Restaurant am Gipfel. Oder alternativ die Seilbahn nehmen.

Improvements for MBS Xojo DynaPDF Plugin

Our MBS Xojo DynaPDF Plugin is quite popular and we try to improve it regularly.

In the current version 20.3 we added support for ClearRectangle and FillPath methods, one of the changes for API 2.0 in Xojo. We set Helvetica 12 in point as default font for every new PDF document. If you change the font, this font reference will be discarded on saving as DynaPDF cleans up the object tree when writing the PDF. But new users may not run into an error, because no font is set.

Earlier in 20.2 we added support for ignoring ClearRect calls in graphics class to be able to draw over an existing PDF page and not fill all the space with white color. With our own DynapdfGraphicsPathMBS class we got even support for drawing paths with the new Xojo methods to do so. In DynaPDFPageMBS class we got properties visible in the debugger, so you can directly inspect the boxes for the page. The SetCellPicture method for DynaPDFTableMBS class takes directly a picture to make this easier for developers to pass pictures. In DynaPDFMBS class we deprecated all the Ansi versions of the functions. Unicode support got better over the years and nobody should need those any more. And when you call SetFont without passing an encoding, we default to unicode.

Changes like the above may help to make use of the plugin more easier. For next version 20.4 we have a few more little changes to improve the plugin. First we have the problem that not everyone implements an Error event to catch problems. We add DynaPDFErrorExceptionMBS class to raise an exception if either the Error event is missing or you return the new constant kErrorEventRaise in the Error event. The error event can be implemented by subclassing DynaPDFMBS class or by using addHandler command. By using exceptions, you will not miss an error. But you may still want to use the Error event to ignore warnings, which could raise an exception otherwise.

Another change we thought about is to add more properties. A first one to add is ActiveFontInfo as DynaPDFFontInfoMBS to the properties. This allows you to see the current font set in the debugger. Let us know if you have ideas for properties we could add to make your live easier.

A DynaPDF Starter license is included in OmegaBundle and can be updated to DynaPDF Lite license at a discounted price.

Split XML for DDR into files for GIT

Did you know you can use XML functions in MBS FileMaker Plugin to split your Database Design Report XML files into smaller XML files and put them in a GIT repository?

First you can use FM.RunDatabaseDesignReport function in our plugin to trigger FileMaker to create a DDR by script. Or you use AppleScript for GUI scripting as you can see in this older blog post: Automate creation of Database Design Reports in FileMaker. For FM.RunDatabaseDesignReport, here is an example line:

MBS( "FM.RunDatabaseDesignReport"; 1 /* XML */; "/Users/cs/Desktop"; 0; "Anlagen.fmp12" )

First parameter is 1 to enable XML. Second parameter is folder path, but that is ignored on Windows or macOS Catalina, so please manually make a XML first and point to desktop, so you have always the same folder. Next parameter allows to not open the file and last parameter is to select which files to use for DDR.

Once you have a XML, you may want to split it to put it in version tracking. We got a sample script for next plugin for you. We use Text.ReadTextFile to read the XML file, then use XML.SubTree to get the XML. We loop over all the XML nodes with XML.NodeNames, use XML.SubTree again to get the part and write it to a new XML file. This gives you all the XML files on the top level on the right picture.

Next we did walk over layouts, scripts, tables and themes to write individual files for each item. This includes calling a script for each type to walk over the nodes and write them in files. If there is a group, we can create a folder and call the script again with output going to the new folder. To pass arguments we use JSON to pass XML block and path.

Once you regularly start to write those XML files automatically for all your databases into folders and check them in to GIT or any other version tracking, you can keep track of changes on the databases over times.

The file Split DDR.fmp12 will be included with next 10.4pr1 in a few days. Please do not hesitate to contact us with your questions.

PostgreSQL Libraries 12.3

For everyone using MBS Plugins with PostgreSQL can now get the library in version 12.3 on our website:

Libraries Download

Please use option on connection to point to the libpq.dylib for MacOS or libpq.dll for Windows.
You can just include the dylibs/DLLs in same folder as the application and point to them. For macOS you may need to code sign for redistribution as we just signed it with our code signature. The macOS libraries are changed to look for the crypto and ssl libraries in same folder as libpq.dylib file.

FileMaker Server Version and OS statistics

It's a long time since we published the last statistics diagrams.

First the version distribution for FileMaker Server. As this data is gathered from version numbers included with our license checks, this does exclude Site and ProDeveloper licenses. Some servers may have a firewall configured to disallow the plugin from connecting to our server. But the sample we have here is still quite representative. There is some fluctuation in the data, so watch the trends and not the individual months.



As you first notice, the diagram always looks this way over the years. New versions are added on the top and crush the older versions down as servers get upgraded. Version 17 used about a year to get to 25%, but version 18 managed that in about 6 month. In a few month 18 and 19 will be the majority. (more)

MBS FileMaker Plugin 10.3 - More than 6200 Functions In One Plugin

Nickenich, Germany - (July 21st, 2020) -- MonkeyBread Software today is pleased to announce MBS FileMaker Plugin 10.3 for macOS, iOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin currently available for FileMaker Pro. As the leading database management solution for Windows, macOS, iOS and the web, the FileMaker Pro Integrated Development Environment supports a plugin architecture that can easily extend the feature set of the application. MBS FileMaker Plugin 10.3 has been updated and now includes over 6200 different functions, and the versatile plugin has gained more new functions:

As Apple announced their move to Apple Silicon processors, we are already working on an update to our plugin to support it. For now we already defined function SystemInfo.isBigSur to return whether the newer macOS version 11.0 is running. The SystemInfo.isARM function returns 1 if you run on an ARM based CPU and this currently returns 1 on iOS, but will in future return 1 if FileMaker runs on newer Mac hardware with Apple Silicon. And the function SystemInfo.isTranslated will tell your solution whether it runs Intel code on Apple Silicon in emulation.

To share files, images, links, text or URLs on macOS, you can now show a standard menu from macOS to pick a service to share. In a script you can pick the service and provide additional parameters. This includes passing subject and recipients for email and chat messages. Beside a few standard targets like Airdrop, Apple Mail, Photos and iMessage, you can install various third-party software to use their sharing services.

With WebView.Create and WebView.CreateWithControl you can create a custom web viewer. For MacOS you can choose between WebKit 1.x and 2.x. For iOS you always get WebKit 2.x and for Windows the Internet Explorer engine. As our web viewer is independent of FileMaker's layout engine, you can place it on top of other controls and it stays visible without reloading when switching between different records.

With our new CLibrary functions you can load shared libraries written in C/C++ and list their functions. You pick a function and use the CFunction functions to prepare a call and then run the function. Parameters are automatically converted to the right datatypes and the result converted to a value for FileMaker. This function allows to directly call various functions of the OS directly as well as device SDKs with their interface libraries.

Our Audit functions got a rewrite using SQL parameters internally. This allows us to support Emojis in the logged text. The plugin can now monitor repeated fields for changes. If needed you can disable that with Audit.SetIgnoreRepetitions function.

The CURL functions can now pass SSL certificates via fields instead of referencing files. We rewrote CURL.UseSystemCertificates function to work better on newer macOS versions.

For Windows we added support to load DebugBar into a Webviewer. This is a third-party add-on for Internet Explorer to inspect the DOM tree, run JavaScript and see CSS properties. Use our WebView.ShowDebugBar function to load DebugBar and use it in FileMaker. We improved DragDrop functions to better accept picture data on Windows. For the Shell functions, you can use Shell.SetBufferSize to set the buffer size for capturing output of the command line tool.

On macOS press Command-Shift-F to directly jump to FileMaker's search field to find scripts in Script Workspace. Use Command-F for our script search field. When you copy a script text, we add the script name as comment on top. In the data viewer, set focus to the list and press Command-Option-g to hide global variables, press Command-Option-F to hide fields or press Command-F for the find bar.

We added Base64URL as an option to various hash and encryption functions. With the improved RSA.Sign you can do JWT RS256 signatures.

We added named color and alpha support on macOS for ColorPanel functions, upgraded Font.Activate for newer macOS versions, Java.DefineClass and Java.FindClass functions for Java, a new JSON.ToXML function to convert JSON to XML and we have improvements for LDAP functions using JSON to pass binary data.

A few smaller things should not go unmentioned like Files.StandardizePath to standardize file paths, GMImage.Ping and GMImage.PingContainer to read metadata from images without reading all the pixel data, a new Matrix.Multiply function and X509 validate date functions.

Finally we update CURL library to version 7.71.1, DynaPDF to 4.0.40.116, LCMS to 2.11, LibXL to 3.9.1, SQLAPI to 5.1, SQLite to 3.32.0 and Xcode to version 11.5.

See release notes for a complete list of changes.

MonkeyBread Software Releases the MBS Xojo Plugins in version 20.3

Nickenich, Germany - (July 21st, 2020) -- MonkeyBread Software today is pleased to announce MBS Xojo Plugins 20.3 for macOS, Linux and Windows, the latest update to their product that is easily the most powerful plugin collection currently available for Xojo. MBS Xojo Plugins have been updated and now includes over 2600 classes and 70,000 documented features, and the versatile plugins have gained more new functions:

As Apple announced their move to Apple Silicon processors, we are already working on an update to our plugin to support it. For now we already defined function SystemInformationMBS.isBigSur to return whether the newer macOS version 11.0 is running. The SystemInformationMBS.isARM function returns 1 if you run on an ARM based CPU and this currently returns 0 everywhere, but will in future return 1 if your application runs natively on newer Mac hardware with Apple Silicon. And the function SystemInformationMBS.isTranslated will tell your solution whether it runs Intel code on Apple Silicon in emulation.

With our new DeclareLibraryMBS class you can load shared libraries written in C/C++ and list their functions. You pick a function and use the DeclareFunctionMBS class to prepare a call and then run the function. Parameters are automatically converted to the right datatypes and the result converted to a variant. The new DeclareCallBackMBS class allows to define a callback, which can be thread safe. While the functions do similar things like the declare statement in Xojo, they are more dynamic and you can define the function call at runtime, specify calling conventions and support variable arguments.

For Windows we added a set of classes to acquire photos from various devices like cameras or scanners. Check the WinPhotoAcquireMBS class for the acquire functions. Use standard dialogs with WinPhotoAcquireDeviceSelectionDialogMBS and WinPhotoAcquireOptionsDialogMBS classes to find devices and set options.

Since Xojo uses direct draw for drawing in a picture or canvas, we now have DirectDrawGraphicsMBS class to offer you more options. Currently you can draw dashed lines for vector graphics. Let us know for future versions what new methods you like to have here.

The WKWebViewMBS class for working with WebKit 2.x got new methods to get the PDF or a web archive of the current page. You can do select all, paste, copy and cut via methods and query HTML and plain text for the website. If the page is a PDF itself, you can now query the data for the PDF document via MainResourceData directly. If needed, you can adjust the page zoom or media type for CSS.

Our encryption plugin got upgraded to allow SHA3 hashes with 224 to 512 bits in length. We added functions for Base64 URL encoding an a new example to show JWT RS 256 signature creation and verification.

For Windows we added support to load DebugBar into a HTMLViewer. This is a third-party add-on for Internet Explorer to inspect the DOM tree, run JavaScript and see CSS properties. Use our ShowDebugBar method in the IEWebBrowserMBS class to load DebugBar and use it in your Xojo application.

The XLSheetMBS class can now use WriteStringAsNumber to write a number passing it a string, SDAVAssetExportSessionMBS class allows more control on exporting videos in AVFoundation, DynaPDF got support for ClearRectangle and FillPath methods in Graphics class, the JavaVMMBS class can now define a class at runtime, examples are upgraded to use 64-bit as targets and WindowsGraphicsDeviceContextMBS class allows to get the HDC for a graphics object with proper cleanup later.

Finally we updated CURL library to version 7.71.1, DynaPDF to 4.0.40.116, LCMS to 2.11, LibXL to 3.9.1, SQLAPI to 5.1, SQLite to 3.32.0, Xcode to 11.5, VLC to version 3.0.11.

See release notes for a complete list of changes.

Neues MBS FileMaker Plugin 10.3 - Über 6200 Funktionen in einem Plugin

21. Juli 2020 - Monkeybread Software veröffentlicht heute das MBS FileMaker Plugin für FileMaker in Version 10.3, mit inzwischen über 6200 Funktionen eines der größten FileMaker Plugins überhaupt. Hier einige der Neuerungen:

Da Apple seinen Wechsel zu eigenen Prozessoren angekündigt hat, arbeiten wir bereits an einer Aktualisierung unseres Plugins, um diese zu unterstützen. Für den Moment haben wir bereits die Funktion SystemInfo.isBigSur definiert, um zurückzugeben, ob die neuere MacOS-Version 11.0 läuft. Die Funktion SystemInfo.isARM überprüft, ob FileMaker auf einer ARM-basierten CPU läuft und diese gibt derzeit 1 auf iOS zurück, wird aber in Zukunft 1 am Mac zurückgeben, wenn FileMaker auf neuerer Mac-Hardware mit Apple Prozessor läuft. Und die Funktion SystemInfo.isTranslated teilt Ihrer Lösung mit, ob Sie x86-Code auf Apple Silicon in Emulation ausführen.

Um Dateien, Bilder, Links, Texte oder URLs unter MacOS zu teilen, können Sie jetzt ein Standardmenü von MacOS anzeigen lassen und einen Dienst auszuwählen und dann zu teilen. Per Skript können Sie den Dienst auch festlegen und zusätzliche Parameter angeben. Dazu gehört die Übergabe von Betreff und Empfängern für E-Mail- und Chat-Nachrichten. Neben einigen wenigen Standardzielen wie Airdrop, Apple Mail, Photos und iMessage können Sie verschiedene Software von Drittanbietern installieren, um deren Freigabedienste zu nutzen. siehe SharingService

Mit WebView.Create und WebView.CreateWithControl können Sie einen benutzerdefinierten Web Viewer erstellen. Für MacOS können Sie zwischen WebKit 1.x und 2.x wählen. Für iOS erhalten Sie immer WebKit 2.x und für Windows den Internet Explorer. Da unser Web Viewer unabhängig von der FileMaker-Layout-Engine ist, können Sie ihn über anderen Steuerelementen platzieren, und er bleibt ohne Neuladen sichtbar, wenn Sie zwischen verschiedenen Datensätzen wechseln.

Mit unseren neuen CLibrary-Funktionen können Sie in C/C++ geschriebene Bibliotheken laden und deren Funktionen auflisten. Sie wählen eine Funktion aus und verwenden die CFunction Funktionen, um einen Aufruf vorzubereiten und dann die Funktion auszuführen. Parameter werden automatisch in die richtigen Datentypen konvertiert und das Ergebnis in einen Wert für FileMaker umgewandelt. Mit dieser Funktion können verschiedene Funktionen des Betriebssystems direkt aufgerufen werden, ebenso wie Geräte-SDKs mit ihren entsprechenden Treibern.

Unsere Audit Funktionen wurden neu geschrieben und verwenden intern SQL-Parameter. Dies erlaubt uns Emojis zu protokollieren. Das Plugin kann nun wiederholte Felder auf Änderungen überwachen und zu protokollieren. Bei Bedarf können Sie dies mit der Funktion Audit.SetIgnoreRepetitions deaktivieren.

Die CURL Funktionen können SSL-Zertifikate über Felder laden, anstatt Dateien zu referenzieren. Wir haben die Funktion CURL.UseSystemCertificates umgeschrieben, damit sie besser auf neueren MacOS-Versionen funktioniert.

Für Windows haben wir die Unterstützung zum Laden der DebugBar in einen Webviewer hinzugefügt. Dies ist ein Add-on eines Drittanbieters für Internet Explorer mit dem Sie den DOM-Baum untersuchen, JavaScript ausführen und CSS-Eigenschaften anzeigen. Verwenden Sie unsere Funktion WebView.ShowDebugBar, um die DebugBar zu laden und in FileMaker zu verwenden. Wir haben die DragDrop-Funktionen verbessert, um Bilddaten unter Windows besser akzeptieren zu können. Für die Shell-Funktionen können Sie Shell.SetBufferSize verwenden, um die Puffergröße für die Erfassung der Ausgabe des Befehlszeilenwerkzeugs festzulegen.

Drücken Sie unter MacOS Befehlstaste-Umschalttaste-F, um direkt in das Suchfeld von FileMaker zu springen und Skripts im Script-Arbeitsbereich zu finden. Verwenden Sie Befehlstaste-F für unser Suchfeld für Texte innerhalb des aktuellen Skripts. Wenn Sie einen Skript als Text kopieren, fügen wir den Scriptnamen als Kommentar oben hinzu. In der Datenanzeige klicken Sie auf die Liste und drücken Sie Befehl-Option-G, um globale Variablen auszublenden, drücken Sie Befehl-Option-F, um Felder auszublenden, oder drücken Sie Befehl-F für die Suchleiste.

Wir haben Base64URL als Option zu verschiedenen Hash- und Verschlüsselungsfunktionen hinzugefügt. Mit der verbesserten RSA.Sign können Sie JWT RS256-Signaturen erstellen.

Wir fügten benannte Farb- und Alphakanal-Unterstützung im MacOS für ColorPanel-Funktionen hinzu, aktualisierten Font.Activate für neuere MacOS-Versionen, ergänzen Java.DefineClass- und Java.FindClass-Funktionen für Java, eine neue JSON.ToXML-Funktion zur Konvertierung von JSON in XML und wir haben Verbesserungen für die LDAP-Funktionen mit der Übergabe für Binärdaten in JSON.

Einige kleinere Dinge sollten nicht unerwähnt bleiben wie Files.StandardizePath zur Standardisierung von Dateipfaden, GMImage.Ping und GMImage.PingContainer zum Lesen von Metadaten aus Bildern, ohne alle Pixeldaten zu lesen, eine neue Matrix.Multiply-Funktion und Funktionen um bei X509 Zertifikaten den Gültigkeitsbereich abzufragen.

Außerdem aktualisieren wir die CURL-Bibliothek auf Version 7.71.1, DynaPDF auf 4.0.40.116, LCMS auf 2.11, LibXL auf 3.9.1, SQLAPI auf 5.1, SQLite auf 3.32.0 und Xcode auf Version 11.5.

Alle Änderungen in den Release Notes.

Hide lines in Data Viewer

For MBS FileMaker Plugin 10.3 we got a last minute feature addition, just before the release tomorrow. For years people asked us to help making the data viewer in FileMaker more readable with hiding tons of globals or field references, so developers can better see local variables.

While we can't really hide the data, we found recently another trick: We change the height of the rows to 1 point and that may be enough to clear space needed. This works fine in various FileMaker versions.

As you can see, pressing ⌘-⌥-F shows or hides the fields while pressing ⌘-⌥-G shows or hides the global variables. And of course we still have ⌘-F to show find bar and jump to the search field. Press ⌘-G to jump to the next search result.

See also: Search for variables in data viewer

Please try it with downloading version 10.3 of our plugins in the next days.


Chart Diagrams with Xojo

With the MBS Xojo ChartDirector Plugin and an ChartDirector license you can create charts in Xojo. These diagrams can then be displayed on the user interface, integrated into a PDF document or saved as an external file. With ChartDirector you have many different chart types and a wide range of design options at your disposal. You can create diagrams according to your wishes. For example, you can specify axis colors, data colors, data labels, or backgrounds. Select fonts, use gradient or transparent colors and decorate charts with symbol pictures. The X, Y and a second Y axis on the right can be designed separately. You can also add and customize a legend for your chart. There are almost no limits to your imagination. Here are a few examples of charts created using the Chart Director and the MBS Xojo ChartDirector Plugin on Xojo. ChartDirector license must be purchased separately from the plug-in license and one is included with the OmegaBundle 2020. Below eight examples:


CDXYChartMBS on the left with three data sets and CDPieChartMBS on the right with 3D effect and custom label formatting.

(more)

MBS Xojo Plugins, version 20.3pr10

New in this prerelease of the 20.3 plugins:
  • Upgraded examples to use 64-bit targets. This was made automatically to enable 64-bit targets, HiDPI and dark mode for all projects. Thanks to Arbed!
  • Added NSAppearanceNameDarkAqua shared method to NSAppearanceMBS class for dark mode.
  • Added flipped parameter to RenderImage method in NSViewMBS class.
  • Changed NSURLSessionMBS classes to only load on Xojo 2015 or newer.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 10.3pr10

New in this prerelease of version 10.3 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.com/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Save Xojo report to PDF

If you use Xojo reporting and you like to output them to a PDF, get the MBS Xojo DynaPDF Plugin, currently in the OmegaBundle 2020 to implement this feature in your application:

// new PDF environment Dim pdf As New MyDynapdfMBS // create a new PDF file Dim f As FolderItem = SpecialFolder.Desktop.Child("report.pdf") Call pdf.CreateNewPDF(f) // get graphics for a page Dim g As Graphics = pdf.PageGraphics // now get report Dim rpt As New NameReport // and a printer setup Dim ps As New PrinterSetup // run report If rpt.Run(PrintableListBox, ps) Then If rpt.Document <> Nil Then // let it output to PDF rpt.Document.Print(g) End If End If // close it Call pdf.CloseFile

By using PageGraphics as Graphics, you can easily use Xojo's drawing commands for PDF pages and have your application output it's drawing not just to printer, but also to PDF files.
See blog post: Code above is intentionally kept brief as all error checking is skipped. If used in real world, you may need to check e.g. if CreateNewPDF returns an error as the file could not be created.

Please do not hesitate to contact us with your questions.

Claris Engage 2020, virtual and free to attend

This year we expect thousands of FileMaker developers join the conference:

On August 4-5, Claris is hosting their first Claris Engage conference for all Claris customers, partners, and developers! And this year, the event will be virtual and absolutely free! As you explore the best technology investments to drive your business forward, there are many sessions to help guide you. You can look forward to sessions from business leaders, industry experts, technologists, and Claris staff. Register today -- some sessions have limited space, but there is no registration fee. More details:

  • Save the dates: August 4 - 5, 2020 from 9:00am - 4:00pm Pacific time.
  • Here are a few sessions you might be interested in:
  • Opening Keynote: Delivering the Promise of Digital Transformation - Claris CEO Brad Freitag and his leadership team share their vision for a more-productive future powered by faster, easier digital transformation.
  • Panel: Business Built on Claris – CxO Perspectives - Hear from business leaders who run successful enterprises on the Claris Platform
  • Panel: Looking Ahead to Emerging Technology - IoT, CoreML and the impact of AI on the future of your business.
  • Panel: Cloud-Smart Security - Security experts navigate the new normal of modern security threats.
  • Learn how we can help you build modern apps faster using shareable add-ons.
  • And for months after the event, explore Claris Engage 2020 on-demand sessions in Claris Academy — event recordings plus a broader library of technical and business sessions presented by community experts. Sessions will be posted on a rolling schedule following the live event so you can enjoy them at your own pace.
If you miss it, you can watch all videos on the website.
The Claris Engage Europe will also be virtual, so the only in person conference will be the German FileMaker Konferenz, 28. - 31. Oktober 2020 in Malbun, Liechtenstein.

AVRecorder on iOS

For next prerelease we fixed a few issues for AVRecorder functions on iOS for users of our plugin with MBS FileMaker SDK.

You can now better place the control on the layout with new AVRecorder.AddPreviewWithControl function instead of specifying a size. Depending on the layout the control functions may get the right position whether status toolbar is visible or not for all platforms. Please let us know if you find a case where the position is wrong.

On iOS you can just like MacOS enumerate the devices and pick devices with AVRecorder.SetVideoDevice or AVRecorder.SetAudioDevice. Then you can show preview with AVRecorder.AddPreviewWithControl or AVRecorder.AddPreviewToWindow function. If you like, take a picture with AVRecorder.CaptureStillPhoto function.

If you are interested in the live QRCode detection within the video picture, you can try AVRecorder.StartQRCodeDetection function and see if the plugin can recognize a QRCode using CoreImage filters. That is the same feature as used in the camera app itself on iOS.

Please don't hesitate to contact us with your questions.

MBS Xojo Plugins, version 20.3pr9

New in this prerelease of the 20.3 plugins:
  • Removed old RegisterMBSPlugin function taking integer parameter.
  • Added ValidNotBefore and ValidNotAfter properties for X509MBS class.
  • Updated VLC to version 3.0.11.
  • Fixed crash in Tracks function in VLCMediaMBS class.
  • Added EncodeBase64URLMBS and DecodeBase64URLMBS functions.
  • Added JWT RS 256 example project to sign or verify.
  • Added GetFileContents with isPath parameter to WinDataObjectMBS class.
  • Fixed a crash with cleanup of SQL clients for SQLConnectionMBS and SQLDatabaseMBS.
  • Added SubTitle, toolbarStyle and titlebarSeparatorStyle properties to NSWindowMBS class.
  • Added mediaType and pageZoom properties to WKWebViewMBS class.
  • Added PDFData method to WKWebViewMBS class.
  • Updated DynaPDF to version 4.0.40.116.
  • Added kcoResetAnnotAppearance constant to DynaPDFMBS class.
  • Added FlushPagesEx and ResetAnnotAP methods to DynaPDFMBS class.
Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 10.3pr9

New in this prerelease of version 10.3 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.com/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Omegabundle for Xojo 2020 ends 31st July

Get the top developer tools and third party components for the Xojo cross-platform development platform at a huge savings until 31st July August 2020.

Omegabundle for Xojo 2020 is a collection of the most useful tool sets, add-ons, digital books and components for use with Xojo Inc's Xojo development environment. If purchased separately and not including any additional offers, the total cost would be over $3,711.00. Omegabundle for Xojo 2020 costs $399. Buy now on the Paradigma Software store.



Xojo is an award-winning, cross-platform development tool for the Desktop (macOS, Windows, Linux), Web, iOS (iPad/iPhone) and Raspberry Pi. With Xojo, you can create native applications by using drag-and-drop to build your user interface and then one straight-forward programming language to enable the functionality. Xojo is powerful and modern, yet easy to use and learn. (more)

FileMaker Stammtisch in Wien

On my next visit to Vienna, we plan another developer meeting:

Wer hat Interesse an einem FileMaker Entwicklertreffen nächste Woche in Wien?

Einfach in gemütlicher Runde treffen in einem netten Restaurant und beim Abendessen was über FileMaker reden. Vielleicht habt ihr ja auch Fragen und Probleme, wo ich helfen kann?

Zeit wäre ca. 18 bis 22 Uhr, so dass man auch später kommen oder früher gehen kann. So ungefähr einen Abend im Bereich von 20. bis 23. Juli. Mittwoch 22. Juli 2020

Treffpunkt steht noch nicht fest, vorzugsweise ein Biergarten.

Wer dabei sein möchte, bitte bei der Umfrage eintragen uns melden.

Falls sonst noch Bedarf an Schulung, vor Ort Entwicklung oder FileMaker/Xojo Hilfe besteht, bitte wegen Terminfindung bald melden.

Xojo Stammtisch in Wien

On my next visit to Vienna, we plan another developer meeting:

Wer hat Interesse an einem Xojo Entwicklertreffen nächste Woche in Wien?
ca. 18 bis 21 Uhr.

Einfach gemütlich zusammen sitzen in einem Restaurant oder Biergarten und über Xojo plaudern.
Gerne zeige ich auch neue Pluginfunktionen oder helfe bei Problemen mit Xojo Projekten. Einfach Computer mitbringen und was zeigen.

Wer noch dabei sein möchte, bitte bei der Umfrage eintragen.

JWT RS256 authentication in Xojo

Recently a client asked about JWT signatures. So we created an example project to create and verify JWT RS256 signatures in Xojo. This includes new EncodeBase64URLMBS and DecodeBase64URLMBS functions in MBS Xojo Encryption Plugin. We use SignData function in OpenSSLMBS class to sign the data and later use VerifyData function to verify the signature.

Create Signature

This example code takes values from fields on the window and creates the signature to show it in another field:

Sub Create() // take values from fields and make sure encoding is right and line endings Dim Header As String = Self.Header.Text.ConvertEncoding(encodings.UTF8) Dim Payload As String = Self.Payload.Text.ConvertEncoding(encodings.UTF8) Dim PrivateKey As String = ReplaceLineEndings(Self.PrivateKey.Text, EndOfLine.UNIX).ConvertEncoding(encodings.UTF8) Dim Password As String = Self.Password.Text.ConvertEncoding(encodings.UTF8) // now prepare string to sign Dim EncodedString As String = EncodeBase64URLMBS(header) + "." + EncodeBase64URLMBS(Payload) // sign it with RSA key and SHA 256 hash Dim Signature As String = OpenSSLMBS.SignData(EncodedString, PrivateKey, Password, OpenSSLMBS.kAlgorithmSHA256) // encode signature Dim SignatureEncoded As String = EncodeBase64URLMBS(Signature) // and build JWT RS 256 signature Dim result As String = EncodedString + "." + SignatureEncoded output.Text = result End Sub
(more)

Print web viewer on iOS

For next MBS FileMaker Plugin, we add iOS support for WebView.Print function, so you can show the print dialog and let the user print the website.

For WebView.SetPrintParameter function we add new settings for iOS, so you can set orientation to landscape or portrait and set the job name. More parameters can follow if there is a need.

Screenshot is in German, but it will be localized to whatever language you use in your application.

We also check if we can get WebView.Print to work properly on macOS. With macOS Big Sur newer APIs are coming, so it may work better there.

Coming soon in the next prerelease.


MBS Xojo Plugins, version 20.3pr8

New in this prerelease of the 20.3 plugins: Download: monkeybreadsoftware.com/xojo/download/plugin/Prerelease/.
Or ask us to be added to our shared Dropbox folder.

MBS FileMaker Plugin, version 10.3pr8

New in this prerelease of version 10.3 of the MBS FileMaker Plugin: Download at monkeybreadsoftware.com/filemaker/files/Prerelease/ or ask for being added to the dropbox shared folder.

Using DebugBar in Xojo for IE HTMLViewer

We found DebugBar, an extension for Internet Explorer and it still works in Windows 10, so we worked on an integration into Xojo as DebugBar doesn't do that as is.

For next MBS Xojo Plugins we add the new ShowDebugBar function for IEWebBrowserMBS class. Our plugin will look for the HTMLViewer in the window, then create a new window and host there the DebugBar component. Looks like this:



We have four tabs there. The first one allows you to inspect the DOM and you can use the green picker to select an element on the web site. If you move the mouse over one of the elements in the DOM tree, the element highlights on the website. You can also inspect styles and modify all in the text field below.
The HTTPs tab currently doesn't work, so check the Script tab, where you can see all JavaScripts, adjust them and execute some JavaScript right in the window.

There are a few issues and we'll see if we can resolve a few with the developers from DebugBar to make this as useful as possible for you. And they certainly appreciate if you buy a DebugBar license.

See   DebugBar website   Download   Features   Order

Please don't hesitate to contact us with your questions.

Using DebugBar in FileMaker for IE WebViewer

We heard the cries for an inspector for Windows and looked around for help. Recently we found Firebug, but that only works if you install it on the same domain. Our search continued and we found DebugBar, an extension for Internet Explorer and it still works in Windows 10, so we worked on an integration into FileMaker as DebugBar doesn't do that as is.

For MBS FileMaker Plugin 10.3 we add the new WebView.ShowDebugBar function. Our plugin will look for the web view in the FileMaker window, then create a new window and host there the DebugBar component. Looks like this:



We have four tabs there. The first one allows you to inspect the DOM and you can use the green picker to select an element on the web site. If you move the mouse over one of the elements in the DOM tree, the element highlights on the website. You can also inspect styles and modify all in the text field below.

The HTTPs tab currently doesn't work, so check the Script tab, where you can see all JavaScripts, adjust them and execute some JavaScript right in the window. See screenshot below:



There are a few issues and we'll see if we can resolve a few with the developers from DebugBar to make this as useful as possible for you. And they certainly appreciate if you buy a DebugBar license.

See   DebugBar website   Download   Features   Order

Please don't hesitate to contact us with your questions.

Xojo Developer Magazine 18.4

The July/August (18.4) issue of xDev Magazine is now available. Here's a quick preview of what's inside:

Introducing PowerXS (Part 1) by Marc Zeedar
Marc unveils his new framework cloning tool for XojoScripts that he was going to speak about at XOJO.CONNECT this year.

OOP Listbox (Part 2) by Markus Winter
Markus continues creating his object-oriented Listbox.

On the Scene Again (Part 3) by Stefanie Juchmes
More SceneKit, this time exploring solving and animating a popular brain teaser.

Porting a Mac App to iOS by Tom Baumgartner
How hard is it to port your Mac app to iOS? Tom recently did it and shows what it took.

MapKit (Part 5) by Markus Winter
Markus continues in his quest to draw maps with Xojo, this time going deeper into finding and displaying addresses.

PLUS: WWDC 2020, Xojo on Android, Web 2.0, Drag and Drop, Best of the Web, and more!

Mehrwertsteuersenkung

Vorübergehend bis zum Jahresende wurde in Deutschland die MWSt. von 19% auf 16% gesenkt.

Wenn Sie eine MBS Plugin Lizenz kaufen und aus Deutschland kommen, aber nicht vorsteuerabzugsberechtigt sind, können Sie ca. 2.5% sparen beim Einkaufspreis.

Für alle Geschäftskunden ändert sich effektiv nichts, weil Sie die Steuer ja verrechnet bekommen beim Vorsteuerabzug.

[English] VAT rate in Germany changed temporarily from 19% to 16%. While we appreciate a tax reduction, it's a hassle to implement for everyone with a shop, doesn't save much money for tax payers, but creates a big hole in the budget for the government.

Archives

Jul 2024
Jun 2024
May 2024
Apr 2024
Mar 2024
Feb 2024
Jan 2024
Dec 2023
Nov 2023
Oct 2023
Sep 2023
Aug 2023
Jul 2023
Jun 2023
May 2023
Apr 2023
Mar 2023
Feb 2023
Jan 2023
Dec 2022
Nov 2022
Oct 2022
Sep 2022
Aug 2022
Jul 2022
Jun 2022
May 2022
Apr 2022
Mar 2022
Feb 2022
Jan 2022
Dec 2021
Nov 2021
Oct 2021
Sep 2021
Aug 2021
Jul 2021
Jun 2021
May 2021
Apr 2021
Mar 2021
Feb 2021
Jan 2021
Dec 2020
Nov 2020
Oct 2020
Sep 2020
Aug 2020
Jul 2020
Jun 2020
May 2020
Apr 2020
Mar 2020
Feb 2020
Jan 2020
Dec 2019
Nov 2019
Oct 2019
Sep 2019
Aug 2019
Jul 2019
Jun 2019
May 2019
Apr 2019
Mar 2019
Feb 2019
Jan 2019
Dec 2018
Nov 2018
Oct 2018
Sep 2018
Aug 2018
Jul 2018
Jun 2018
May 2018
Apr 2018
Mar 2018
Feb 2018
Jan 2018
Dec 2017
Nov 2017
Oct 2017
Sep 2017
Aug 2017
Jul 2017
Jun 2017
May 2017
Apr 2017
Mar 2017
Feb 2017
Jan 2017
Dec 2016
Nov 2016
Oct 2016
Sep 2016
Aug 2016
Jul 2016
Jun 2016
May 2016
Apr 2016
Mar 2016
Feb 2016
Jan 2016
Dec 2015
Nov 2015
Oct 2015
Sep 2015
Aug 2015
Jul 2015
Jun 2015
May 2015
Apr 2015
Mar 2015
Feb 2015
Jan 2015
Dec 2014
Nov 2014
Oct 2014
Sep 2014
Aug 2014
Jul 2014
Jun 2014
May 2014
Apr 2014
Mar 2014
Feb 2014
Jan 2014
Dec 2013
Nov 2013
Oct 2013
Sep 2013
Aug 2013
Jul 2013
Jun 2013
May 2013
Apr 2013
Mar 2013
Feb 2013
Jan 2013
Dec 2012
Nov 2012
Oct 2012
Sep 2012
Aug 2012
Jul 2012
Jun 2012
May 2012
Apr 2012
Mar 2012
Feb 2012
Jan 2012
Dec 2011
Nov 2011
Oct 2011
Sep 2011
Aug 2011
Jul 2011
Jun 2011
May 2011
Apr 2011
Mar 2011
Feb 2011
Jan 2011
Dec 2010
Nov 2010
Oct 2010
Sep 2010
Aug 2010
Jul 2010
Jun 2010
May 2010
Apr 2010
Mar 2010
Feb 2010
Jan 2010
Dec 2009
Nov 2009
Oct 2009
Sep 2009
Aug 2009
Jul 2009
Apr 2009
Mar 2009
Feb 2009
Dec 2008
Nov 2008
Oct 2008
Aug 2008
May 2008
Apr 2008
Mar 2008
Feb 2008