Today we have the Xojo training day for our beginners and intermediates. Plenty of seats available.
Like to join? Just come here!
Everyone else is invited to check out Andernach city and later join our welcome reception in the Sky Restaurant.
For live updates, please watch the Xojo forum.
Here is a table documenting the release versions of our MBS FileMaker Plugin from the last years. You see how regular we release and what the build number the final version had. If you still use an older one like 11.1.0.7, you may notice you have the pre-release version. Pre-release versions usually are not ready for new/changed features and contain some more debug code to do runtime checks. We disable those for final builds.
The CURL project is a well run open source project and includes a command line tool (curl), a library for C/C++ application developers to use (libcurl) and various smaller utilities like trurl, a command line tool for URL parsing and manipulation. Since this is all publicly hosted on curls.se and github.com/curl, everyone can take a look there and contribute.
Everyone can download the current source code and build their own version of the command line tools, add the library to their product like we do for our plugins and modify them as needed. Yes, if you like, you could customize it and make your own version.
From time to time you may have made changes on your copies, which you would like to push back to the project. This could be:
fixing a typo in the documentation or source code
adding an option to build process
adding a new feature
port the project to build with a different compiler or on a new operation system
You can use our new MFMessageComposeViewControllerMBS class in MBS Xojo iOS Plugin to let the user send a text message. A dialog pops up with prefilled text and attachments, so the user can edit the message and then send it using their messages account, either using SMS or iMessage.
To handle the result, please either subclass the MFMessageComposeViewControllerMBS class and implement the didFinishWithResult event. Or you use addHandler to add the event and use a method in your current screen. You get result integer, which you can compare to the constants MailComposeResultCancelled for user cancelled, MailComposeResultSent for when message is sent, MailComposeResultSaved for the message being saved for sending later or MailComposeResultFailed if it failed like being offline.
If you use FileMaker iOS SDK, we can provide a few new print commands for iOS in the MBS FileMaker Plugin in version 14.2. The new PDFKit.SelectPrinter function allows you to pick a printer. And the PDFKit.Print function got extended to print PDF documents as well as images. You can configure printing with PDFKit.SetPrintSetting function.
For MBS Xojo XL Plugin in version 24.2 we include new XL classes to create conditional formatting in an Excel file created in code. While you can always load an existing document with conditional formatting or diagrams and just fill the cells with data, we now can create the rules for conditional formatting in a script. Let us show you four examples from our example file.
This example defines a conditional format with a bold font. The conditional formatting is applied for the cells in the range B3:B11 to highlight all cells that begin with 'a'. The AddRule function allows you to define rules with various conditions like to highlight empty cells, duplicate or unique values, values starting or ending with a value or by an expression.
Dim cFormat As XLConditionalFormatMBS = book.addConditionalFormat()
cFormat.Font.bold = trueDim cf As XLConditionalFormattingMBS = sheet.addConditionalFormatting()
cf.addRange(2, 10, 1, 1)
cf.addRule(cf.FormatTypeBeginWith, cFormat, "a")
You can use our new MFMailComposeViewControllerMBS class in MBS Xojo iOS Plugin to let the user send an email message. A dialog pops up with prefilled text and attachments, so the user can edit the message and then send it using their mail account.
To handle the result, please either subclass the MFMailComposeViewControllerMBS class and implement the didFinishWithResult event. Or you use addHandler to add the event and use a method in your current screen. You get result integer, which you can compare to the constants MessageComposeResultCancelled for user cancelled, MessageComposeResultSent for when message is sent or MessageComposeResultFailed if it failed like being offline.
Fixed a problem with ListDialog freezing on Windows if you use alt-tab to switch to other apps and you switch back to the FileMaker window instead of the dialog itself.
We are glad to inform you that the new LibXL version 4.3.0 is available now.
What's new in the version 4.3.0:
added the possibility to remove all VBA code and macros from xlsm and xlsb files
added the possibility to remove all printer settings from xlsx, xlsm and xlsb files
added the possibility to set an active cell for splitted sheets (xlsx)
added keepAllSheets flag for the partial loading methods, if it's true, all sheets are saved back with Book::save() method,
but only one specified sheet is available for processing, thus LibXL can save more memory. It works only for xlsx files,
LibXL ignores this flag for xls files
added the multi-level sorting for AutoFilter::addSort() and Sheet::applyFilter() (xlsx)
added the updating/moving existing tables with Sheet::insertRow() and Sheet::removeRow() methods (xlsx)
improved SVG support
fixed a bug with adding a hyperlink after setting a picture, the output xlsx file was unreadable by Excel
fixed a bug with incorrect return values in Sheet::rowHeight() and Sheet::rowHeightPx() for non-standard DPI settings for some xlsx files
fixed Sheet::setPrintAread(), Sheet::setPrintRepeatRows(), Sheet::setPrintRepeatCols() for working with Japanese/Chinese sheet names
fixed a bug with reading some values in double quotes in the Sheet::readFormula() (xlsx)
fixed a bug with a workbook overwriting dialog message in Excel when an existing sheet is copied in xlsx file
fixed a bug with reading some cells after using functions which changes sheet's size (xlsx)
fixed a bug with reading tables in some xlsx files
fixed some bugs with partial loading/saving some workbooks in the Book::loadSheet() and Book::save() methods (xlsx)
fixed a bug with using non UTF-8 character encodings on Linux and Mac
fixed a bug with reading some data from a partially loaded workbook (xlsx)
New methods:
Book::removeVBA()
Book::removePrinterSettings()
The LibXL library can be used with MBS Plugins in Xojo and FileMaker. Updated plugins will be available soon. As usual we add the new functions soon. If you need help or want to try the new version early, let me know.
At the Spanish developer conference an attendee asked me about whether we have something to show a nice colored progress bar in a portal, preferable possible for Web Direct, too.
After a bit of research, I found an easy way to do this with MBS FileMaker Plugin and without using web viewers and JavaScript. We simply use GraphicsMagick functions to generate a nice picture on demand and show it as a container field. This can either be a script to generate the picture on the fly using a trigger. Or it can be a calculated field to generate it when needed. In both cases you can trigger the recreation of the image by changing a field with the percent value.
First let us show you the sample script. It creates a 300x30 Pixel big image with white background. Then we take the color from a field and if the color is "auto", we calculate the color based on a formula based on the percent value. Once we got a color, we draw a 20 pixel wide line with round caps with the background color. That background color for the bar is dynamically calculated to be lighter than the actual bar color. After the background bar line we draw the normal color bar on top. And save it to the container field, so FileMaker shows it. Don't forget to free the image on the end and avoid the memory get filled with images.
For iOS you may miss the print dialogs in Xojo. For upcoming 24.2 version of MBS Xojo Plugins we have new classes for you: The UIPrinterPickerControllerMBS class allows to show a printer picker dialog to choose the printer. And the UIPrintInteractionControllerMBS allows to show a dialog for printing a PDF or image.
Pick Printer
First we want to pick a printer. Let's show the printer picker. If you like, you can set a few properties like the SelectedPrinter property to preselect a printer.
Sub PickPrinter()
picker = New MyUIPrinterPickerControllerMBS
picker.Present
End Sub
In the Completed event, you can react to the user's choice. Check the error property for an error and the userDidSelect property. If the userDidSelect property is true, the check the selectedPrinter property.
Class MyUIPrinterPickerControllerMBS Inherits UIPrinterPickerControllerMBS
Sub Completed(userDidSelect asBoolean, error as NSErrorMBS)
System.DebugLog CurrentMethodName+""+userDidSelect.ToString
If error <> NilThen
MessageBox error.LocalizedDescription
EndIfIf userDidSelect ThenDim p As UIPrinterMBS = Me.selectedPrinter
If p <> NilThen
MainScreen.printer = p
MessageBox "Youpicked"+p.displayName+EndOfLine+p.printerID
EndIfEndIfEnd SubEndClass
For MBS FileMaker Plugin 14.2 we include new XL functions to create conditional formatting in an Excel file created in a script. While you can always load an existing document with conditional formatting or diagrams and just fill the cells with data, we now can create the rules for conditional formatting in a script. Let us show you four examples from our example file.
Highlighting cells that begin With the given Text
This example defines a conditional format with a bold font. The conditional formatting is applied for the cells in the range B3:B11 to highlight all cells that begin with 'a'. The XL.ConditionalFormating.AddRule function allows you to define rules with various conditions like to highlight empty cells, duplicate or unique values, values starting or ending with a value or by an expression.
Just 16 years ago we added the ChartDirector Plugin to our MBS Xojo Plugin collection.
Thanks to Mr. Jason J. Campbell for asking me to add a charts plugin and thanks to Peter Kwan from Advanced Software Engineering Limited for his support over the years and the excellent co-operation.
PS: ChartDirector is also the engine used by FileMaker Pro internally for the chart generation as you can see on the included DLLs.
This conference is organized by Egbert Friedrich and takes place from 6th to 8th June 2024 in Berlin, Germany.
Already over 60 people from 16 countries: 🇩🇪, 🇬🇷, 🇳🇴, 🇨🇭, 🇨🇦, 🇺🇸, 🇦🇹, 🇩🇰, 🇪🇸, 🇬🇧, 🇧🇪, 🇫🇷, 🇸🇪, 🇮🇹, 🇳🇱 & 🇷🇸.
As the conference is in English, this is your chance to meet people from around the world at a conference in Europe. And for a lot of people it's easier to get to Berlin than to cross the atlantic and deal with US immigration officers.
Who
dotfmp is an effort of various leading European FileMaker Developers. It is meant to bring all kinds of higher level developers together to share knowledge, educate and challenge each other. When
dotfmp starts at the 5th June 2024 in the later afternoon with a relaxed "Beer and Sausages" in one of the most famous Berlin Beergarden. The session days itself last from 6th until 8th June with various socializing events in the evenings. What
dotfmp is a 3 Day-Unconference, Meetup, Hangout or Barcamp. It is an informal and self-organized effort to meet on a personal base. Where
dotfmp takes place in one of the most famous spots in Berlin. The Schankhalle Pfefferberg is located in a vibrant area with a very short walking distance to all the famous restaurants. Why
We feel there are far too few possibilities to talk to, learn from, and hangout with fellow developers in a relaxed and informal environment. And we'd like to share work and get feedback from people chewing on similar challenges.
If you like to join the conference and present something, please register soon.
You can do a lot of PDF things with the DynaPDF functions in MBS FileMaker Plugin. One of them is layouting text and images on a PDF page.
Let us show you the output of a new example we made for a client. On the left you see the final page and on the right side the same PDF but with visible boxes for the text output.
As you see on the test page, we got a couple of cool things here:
Just three weeks until the conference starts. We look forward to an intense week and meeting you all. You can still sign-up and join the conference and/or training day.
Currently we have over 40 people from 14 countries:
Our room allocation expired. I kept one last room for a late sign-up attendee. Who likes to get that room?
Sight seeing day
We still have a few seats available for sight seeing day. If someone likes to come earlier to Germany and join our sight seeing tour, please let me know.
Exact tour depends on the weather, but we plan to visit a middle-age castle, some ruins and some nice views on the landscape.
If your printing company asks you to provide PDF documents in PDF/X format, you can create such a PDF in DynaPDF using our DynaPDFMBS class in the MBS Xojo DynaPDF Plugin.
For PDF/X-1 you need to have:
All fonts embedded.
All colors are CMYK or spot colors. If needed convert RGB to CMYK using Optimize function.
Add information for the printing condition using AddRenderingIntent function.
Set the version in header to the required PDF/X version.
Set a trim box for each page, which can be equal to the media box.
Set metadata with a document title.
Removed all actions.
DynaPDF can do the following PDF/X versions:
PDF/X-1a:2001
PDF/X-1a:2003
PDF/X-3:2002
PDF/X-3:2003
PDF/X-4p
PDF/X-5g
PDF/X-5n
PDF/X-5pg
PDF/X-6
PDF/X-6n
PDF/X-6p
Please note that newer PDF/X variants may have different conditions.
A recording of my presentation for codewave.es. The Spanish FileMaker conference took place in Valencia from 22nd to 23rd March 2024 and was well received. I talked about what is new in 2024 for MBS Plugin for Claris FileMaker.
Improved error reporting for LoadLibrary method on Windows for ScintillaControlMBS control.
Fixed a problem with LoadLibrary failing on Windows for ScintillaControlMBS control.
Improved writeToString method in XMLSerializerMBS class to return string marked UTF-8 instead of UTF-16.
Fixed a bug with SetLineDashPattern event in DynaPDFParseInterfaceMBS class, where the dash array was nil instead of providing the values.
Improved ReplaceTag and Substitute functions in WordFileMBS class to remove control characters from replacement text to avoid creating broken word files.