Swiss QR Bill Enhanced

Swiss QR Bill Enhanced

Swiss payment receipt with QR code as add-on for FileMaker


The new Swiss payment slips not only require a QR code, but also come with very specific requirements for design, data formatting and the like. With this free add-on you get a complete payment slip right away, which is dragged and dropped onto the print layout.

The add-on works with sample data, from which it is easy to see how it works. The same scripts and processes can be easily linked to your own tables on a central settings page. Various processes can be preset and easily adapted in the scripts as needed.

Swiss payment slip

In order to be able to create a Swiss payment slip, 3 tasks must be clarified for the developer:

  1. Compile invoice data
  2. Generate QR code
  3. Create payment slip

The add-on “Swiss QR Bill Enhanced” solves all these steps, makes them traceable and configurable. The data and QR code are combined into a payment document that can be dragged and dropped onto an invoice layout.

Preparation

In preparation, two fields need to be added to the invoice table: A repeating field will hold the invoice data and a container field will store the QR code. After installing the add-on, this is demonstrated comprehensibly with sample data. Once you understand how it works with the help of the sample data, you can integrate the solution. There are simple settings for this purpose.

The solution works according to the previously mentioned steps. There is a script for each individual step, which can be easily adapted if required.

1. collect invoice data

The invoice data is summarized in a repeating field. The specification for the data provides for certain fixed information, and information from the invoice must be copied in here. What information this is is determined by the specification. A script fills all repetitions. You can easily add your own data fields to this script. The repeating field is, so to speak, the intermediate storage of the information. QR code and payment receipt are now filled from this buffer. This simplifies the delimitation and structure of the information.

2. generate QR code

The QR code is generated from the invoice data stored in the repeating field. This is done using the solution provided as an add-on by Otmar Kramis(here). Thx! The code is generated using JavaScript in a web viewer and stored in a container field of the invoice table.

3. create payment slip

All information is now created and can be summarized for the payment slip. The QR code has been placed in the invoice table and must be inserted from there. All text information for the payment slip is stored in global variables and displayed on the payment slip. The inpayment slip itself has its own styles customized to the specifications. Therefore, the payment slip can be simply dragged and dropped onto the invoice layout. Texts work immediately. Only the container field for the QR code must be linked to the invoice table.

Texts on the payment slip must meet certain requirements. Numbers, IBAN code and the like must be formatted in certain ways. For this purpose, Custom Functions are used, which are part of the add-on.

Introduction video

Download links for free products will be sent by email. An e-mail check is performed. You need a valid and permanent email address.

Swiss QR Bill Enhanced (EN)

Free Download

Please fill out this form. The download link will be sent to you by email.


Portrait of smiling girl in glasses, sitting with laptop in outdoor cafe, drinking coffee and working remotely, studying online.

FM Starter version 2.8 released

FM Starter version 2.8 released

Bug fixes and improvements


30. November 2022In FM StarterBy Karsten Risseeuw1 Minutes

FM Starter is now available in version 2.8. The update does not bring any big innovations, but a number of smaller improvements and bug fixes.

The changes include the following adjustments:

  • Developer dashboard: Current account name can be added to the developer list with a click.
  • The global navigation automatically adjusts the window size. For this purpose, a minimum window width can now be specified.
  • Ukrainian was added for automatic translation with DeepL.
  • The login page has been optimized.

Downloads

Customers with a current license of FM Starter, or the FM Developer Bundle, can download the latest update from their account at fmstarter.com.

What is FM Starter?

FM Starter is a startup file for new FileMaker projects. The file accelerates and simplifies new projects by making frequently needed building blocks (navigation, multilingualism, project structure, user management, etc.) immediately available. New projects can be launched quickly.

What is FM Starter?

Evaluate function can speed up a FileMaker application

Evaluate function can speed up a FileMaker application

Replace calculation fields with regular text or number fields


1. September 2022In TipsBy Karsten Risseeuw10 Minutes

The “Evaluate” function in FileMaker performs a calculation as if it were a calculation field. However, an Evaluate function does not use a calculation field, but regular text or number fields instead. These can be indexed, which leads to better performance.

Calculation fields slow down an application’s performance

Why use regular text or number fields instead of a calculation field? An important reason may be indexation.

Calculation fields are always updated and therefore cannot be indexed. Fields that are always being updated will slow down any FileMaker solution. This is especially noticeable with large amounts of data in list views, as well as with scripts that need to access layouts where calculation fields are located.

Normal text and number fields, on the other hand, are usually indexed automatically and can therefore deliver results quickly – nothing more needs to be calculated. It is useful to trigger calculations in normal text and number fields, but only when necessary. Mostly, data has to be calculated only once and maybe later in a correction. In the majority of cases, a continuous recalculation is not necessary and only puts an unnecessary burden on the system.

If you want to create performant solutions, calculation fields are often a bottleneck. That’s why it can be worth looking for alternatives.

Calculate the text

Texts can be assembled. A typical use case is for address blocks. For example, you can have an address table with the following fields:

<Company>
<Street>
<ZIP> <City>.

This is only a simplified example. Most addresses are significantly more complex. To avoid having to constantly reassemble this information, it may be useful to create a separate field for a <complete address>. In it, you can map the entire address. For letters, invoices and the like, it is only necessary to refer to the pre-calculated field of the <complete address>. Because the calculated field is a normal text field, this field can be indexed. This example is about the concept, not about this particular solution, which is only used as an example.

The result should be written in the neutral text field <Complete address>. There are several options to solve this:

  1. By script (set field value + calculation in script)
  2. By field definition (definition in the field itself)
  3. By field definition (definition in an external reference field)

Thus, the calculation takes place only 1x. However, it should be possible to repeat the calculation if necessary.

This is where the differences lie compared to a calculation field: With a regular text or number field, you have to trigger the calculation specifically, whereas with a calculation field, it is constantly updated. It follows, of course, that development with regular fields is more complex. The reward, however, is a better performing solution and controllable results.

On the left are several address fields. On the right there is the field <Complete address>, where the data has been summed up. The field on the right is not a calculation field, but a normal text field.

Calculation per script

An easy way to insert a calculated value into a regular field is by a script step:

Calculation in field

Another resource-saving method is to use a text field where you specify a calculation:

The calculation is reactivated each time the data fields are changed. After that, no more calculations are performed. The load on the system is minimal, and the result can be indexed.

3. calculation with “Evaluate” function

The automatic calculation during text input (example 2) works well. However, it does not always work. Especially with external references, the “automatic” recalculation can fail. This is logical because a calculation in a regular text field must always be specifically triggered.

The following scenario could apply: Instead of hiding a calculation formula in a field or in a script, I can store the formula openly in a text field. This is then the definition for a calculation, not the calculation itself. Wherever I want to see the result of the calculation, I must reference the calculation definition, then evaluate and write the result in the result field.

If definitions are passed as “text”, they are not automatically evaluated. This is where the Evaluate function comes in.

  • In the field where I want to see a result (e.g. <complete address>), I create a reference to an external calculation formula located in a text field. This external formula should trigger the calculation in the field for me:
    • Field definition <Complete address> has a “formula” at “input” wherein I specify the external field: [ external definition]
    • Unfortunately, this calculation is not performed automatically. This can be corrected with the Calculate function: Evaluate ( [ External Definition ] )
  • You can control the calculation with a trigger field. A trigger field tells when the calculation should be executed. A change in the trigger field will do this. This works as follows:
    • Evaluate ( [ External definition ] ; [ Trigger field ] )
    • Trigger fields activate the evaluation by changing their content.

Here is the calculation for two different address blocks in normal text fields. They are complex calculations. Note: These fields contain only the formula. Nothing is calculated here. However, the goal is to store the calculation centrally and evaluate it at another location.

Here is the actual field for the result of the calculation. Be aware that it is not a common calculation field. The calculation is performed “On data entry” (“Auto-enter”), which can be defined in the field settings. In those settings, the reference to the previously mentioned formula is triggered with “Evaluate ( FORMULA FIELD)”. However, because of the complexity, this is not enough. The calculation often did not work automatically. An extra trigger must fix this. That’s why it says “Evaluate ( FORMULAFIELD ; TRIGGERFIELD )”.

Multiple triggers for the Evaluate function

The evaluate function supports only a single trigger. This is a limitation. The basics are simple: if the content of the trigger field changes, then the evaluation is performed. For complex, nested calculations and for external fields, the calculation may stall. However, a trigger can specifically start re-calculation. This is the task of the trigger.

Only 1 trigger is available. Occasionally, however, there are several fields in a calculation, on which the Evaluate function does not work. These fields can be added to a new field (add for the purpose!) to create a single trigger. If something now changes in one of the added fields, then the sum in the separate trigger also changes. The separate field is therefore only created to cover multiple fields, which should act as a single trigger. It is an auxiliary field.

As a trigger field, I created a number field, where I “added up” the relevant switches for this calculation. The result is not relevant. However, it will be a reliable indicator to reflect any change in the added switch fields. The change now triggers the calculation of the <complete address>.

Areas of application

Solutions like these help optimize an application. The only goal here is to avoid calculation fields because they constantly require resources. Regular text fields, on the other hand, can be indexed. The techniques in this post show how to trigger a calculation on demand in a regular text field.

Example

The following short video shows the result of the last example. The address on the right side of the picture is formatted with different switches. The result is saved in a regular text field. The example shows how to use regular fields to perform calculations entirely without calculation fields on demand.


How to use arrow keys for navigation in FileMaker list layouts?

How to use arrow keys for navigation in FileMaker list layouts?

Forget your mouse and work only with the keyboard


10. June 2022In ExamplesBy Karsten Risseeuw2 Minutes

In FileMaker list layouts, the keyboard can be used to switch between fields, but not between different records. Thus, if you want to edit a certain field in several records of a list, you have to reach for the mouse for each change to a different record. This is cumbersome. Here is a technique to use the arrow keys on the keyboard to navigate in a list.

In FileMaker lists, you can tab forward one field and SHIFT + Tab backward one field. However, you cannot get to the next record with any keyboard command. This makes it necessary to reach for the mouse again and again. This is annoying if you need to work in columns. You can access system settings on Mac to achieve this, but with a customization, it would be possible to achieve two more things at once:

  1. Same behavior under Mac and Windows
  2. Additional options in the script.

With the help of a trigger (“OnLayoutKeystroke”) a script can be called for this task. You can use this trigger to intercept the arrow keys, among other things. Arrow up can be assigned with “Previous record” and arrow down with “Next record”. This makes navigation easier.

The sample file shows how to intercept a keystroke and how to create a simple navigation in a list from it.

Within a record you can jump from field to field. This is already possible with the tab key. To avoid confusion with standard functions, an additional key (“modifier”) for jumping from field to field has been defined in this sample file. Here it is option + arrow to the right or arrow to the left. You can decide for yourself if you want to use this part.

Application possibility

This technique is probably most valuable when you are in a list layout wherein data needs to be edited in specific columns.

Arrow Keys in Lists
Arrow Keys in Lists

Free sample file on how to navigate in FileMaker list layouts with just the arrow keys.

Kostenlose Beispieldatei zeigt, wie man in FileMaker Listenlayouts mit Pfeiltasten navigieren kann.

Size: 461 kB
Version: 1.0

The KISS principle in FileMaker development

The KISS principle in FileMaker development

Simpler is better


6. May 2022In TipsBy Karsten Risseeuw10 Minutes

Software development is complex. Managing the complexity of a task is definitely an important challenge for any developer. However, once you have mastered the complexity, it is then a matter of simplification. This post is a personal reflection on the evolution towards greater simplification and what can be envisioned.

The KISS principle

In the early 1960s, a principle of good design was coined by the U.S. Navy. The idea behind the acronym “KISS” is to keep everything as simple as possible. KISS stands for

  • Keep it simple, stupid
  • Keep it simple & smart
  • Keep it simple & sweet
  • and so on.

The principle is to keep the design as simple as possible. Simplifying the design should offer several advantages. The principle can be applied to a wide variety of areas. In a software development environment, one could list possible benefits as follows:

  • Improved clarity
  • Easier to use
  • Easier to maintain
  • Uses fewer resources.

Simpler is better for these reasons. The KISS principle has proven to be a useful idea in many situations. The challenge, however, lies in simplification.

Simpler or more complete?

How can the KISS principle be applied? Are there also limits to simplification?

Often you can reduce a function to a single script step. If you want to achieve something and can do it through a single script step – instead of through many complex intermediate steps – you have understood something well. This would be analogous to the KISS principle. Simpler is better.

FileMaker is strong at these things because it often reduces complex issues to a configurable script step. However, while this simplification is purposeful, it is not always maximally clear. I would like to demonstrate this with an example.

Level 1: The minimalist

If you can solve something with just one script step, you show yourself to be a master. Simple is beautiful. However, there are limits to this. Calculations can be inserted at many script steps. In the script overview, these calculations are usually not visible or only partially visible.

Only another click and another window show which calculation is in the background. Here’s how it works in FileMaker. You may not even see that a calculation is stored. Then, while the function is very simple, the presentation in FileMaker also cloaks certain processes. This has advantages and disadvantages, but is not optimal for clarity.

Level 2: The experienced

A possible solution would be to replace the calculation with a variable and presuppose the variable itself to the function. One can proceed in such a way that calculations always take place in variables. The name of a variable can provide a hint about the calculation. It becomes clearer. This would give you two script steps:

  • Set variable (with calculation)
  • Use variable (in the actual function).

This procedure splits into two steps, which could also be done in one step. The advantage here is not in the “shortest possible implementation”, but rather in the clarity. If you open the script, you will see variable and application in two steps one after the other in the overview. One more step can make it clear that something is being calculated here and thus clarity can be served.

Level 3: The Wise Man

The considerations can go even further. It can be helpful to additionally enter a short comment. Many developers have found that a well-commented software solution is easier to maintain later. Accordingly, a comment is created with a view to later, easier maintenance. We now have three lines:

  • Comment
  • Set variable
  • Use variable (in function)

Evaluation of the development

Which is better now, the shorter direct implementation or the more readable version with an explanation for later? With this example I would like to show that the KISS principle is good, but there may be reasons to implement a task in a little more detail.

What is the difference here? The difference is in managing complexity, but at two different levels.

  1. The functionality
    If you can reduce a complex operation to a single correct script step, you have a good grasp of the capabilities of FileMaker (or any other development platform). That is the core issue at stake. Coping with the complexity could be achieved by a strong simplification.
  2. The representation
    The two other lines that are now added (comment and variable) are no longer concerned with functionality, but merely improve the presentation. In the overview it is thereby clear at once what is meant (comment) and where one should check a calculation (variable).

There are as many opinions on the subject as there are FileMaker developers. My point here is not to decide what is important or how something “should” be done. This post is just a reflection. Today, I therefore see the three steps mentioned as development approaches:

  1. Function (minimalism)
  2. Variable (experience)
  3. Comment (Wisdom)

Most importantly, the minimalist has good reason to do just that, and not write a line too much. Those who make calculations visible have learned from their experience that this makes scripts more readable. If you also add comments, you have understood that even after a year you probably don’t know why the script was written this way and not another way. There is something to be learned from each approach.

Simplification of FileMaker development

The KISS principle is just one of many ways to strive for simplification. Of course, there are other ways to simplify FileMaker development. In doing so, I find that there are different approaches. Which variant one prefers may depend on one’s own temperament or on special requirements of the current project. What are the variants?

  1. More rules
    Some strive for systems in which all details of the development are defined. There are not only “best practices”, but a set of rules is established, which the developer has to follow. There is a definition for everything: how to name things (such as field names, tables, layouts), how to reference them, and what concepts apply to the entire application.
    Disadvantage of a set of rules: it can take on a life of its own and tie up a lot of resources and time.
    Worth considering: a set of rules should help the developer and the developer should not serve the set of rules.
  2. Less rules
    Others, probably most developers, follow “best practices” and a reduced set of rules. You won’t be able to do completely without your own specifications, but the focus is not on the set of rules, but on a structure. The structure should help the developer to find his way now and in the future. Not “how” to do something, but “where” to find something is central.
    The disadvantage of a structure principle is precisely the freedom of the developer.
    Worth considering: Developers would do well to consciously establish a structure and use it consistently.

The simplification of the development always has something of an adventure. Which things stand the test of time will only be determined in retrospect. You need the courage to learn not only from your own experience, but also from other colleagues, to make mistakes, and to gradually incorporate proven approaches into your own work.

If you’re a learner, you’ll find that you change, you make better decisions over time, and in retrospect, you’ve made a lot of things a bit messy. It takes courage to take a gap when you realize that. Rarely, in fact, can the old errors be reprogrammed. Sometimes, however, it is essential. This process is exciting and there are methods to keep the pain in check. Simplification is one of these methods.

KISS: Keep it simple & smart.

Suggestions for FileMaker development

The KISS principle and other approaches can be applied to many areas of development. Here, further contributions to the work with FileMaker will gradually emerge. They are intended as suggestions for your own FileMaker development.


FM Starter 2.6 supports multiple developer accounts

FM Starter 2.6 supports multiple developer accounts


3. May 2022In FM StarterBy Karsten Risseeuw1 Minutes

The latest update of FM Starter offers several small improvements as well as bug fixes. An important new feature in version 2.6 is support for multiple developer accounts.

FM Starter is a startup file for FileMaker. As a FileMaker file, it has of course always supported any number of accounts. However, in order for the developer to get some tweaks and special menus, you had to sign up through a specific developer account. This restriction has now been lifted. Any number of accounts can be listed as “Developers”.

This works as follows:

Developer accounts must always be set up directly in FileMaker security settings. Once such an account is created, you can list the account in the developer dashboard. The next time the file is launched, the login will now be recognized as a “developer account” and additional features will be unlocked.

There is now a new “Developers” entry in the developer dashboard.

On the Developers page, you can now list the account names of the developer accounts. The entries should be saved afterwards.

The settings are recognized in the Startup Script and processed accordingly. Security is not compromised because this script only takes effect after the login has already taken place.

Those who have a current license can download the update directly from their own account.

My account

DeepL integration for FM Starter

DeepL integration for FM Starter

Automated translations for FM Starter


14. March 2022In FM StarterBy Karsten Risseeuw2 Minutes

FM Starter has always been multilingual. However, translations had to be done manually, which can be time-consuming. That has now changed. FM Starter 2.5 has just been launched. An automatic translation using DeepL is ready-to-go.

Last week I presented a free add-on that can be used to automate translations in FileMaker. This add-on was used for the current update of FM Starter. The DeepL translation was not only introduced, but also integrated well into FM Starter. Multilingualism was already given. Now a powerful automatic translation has been added. This makes it possible for anyone to create amazingly good translations in multiple languages in no time at all.

The next video shows how this works:

The video has also already been listed in the FM Starter video section.

Download the latest version

FM Starter users with a current license and support subscription can download the update directly from their account on fmstarter.com. Your authorization to download FM Starter expires one year after purchase. If the license has expired and you want to update it, log in with your account and check the product page. Your valid discount for renewal will then be automatically displayed there.

Login

Free add-on

If you don’t have a current license for FM Starter or the Developer Bundle, you can also download the free add-on “Translate with DeepL”. This is also a solution for developers who have already implemented solutions with FM Starter, but want to subsequently include automatic translation with DeepL.

Free Add-on: Translate with DeepL

What is FM Starter?

FM Starter is a starter file for new FileMaker projects. Important components such as dynamic navigation, multilingualism or user administration are already built in. A developer dashboard significantly speeds up and simplifies the configuration of new projects. You can find more about this solution here:

Jump start your next FileMaker project

Translate With DeepL

Translate With DeepL

Automatic translations in FileMaker using the DeepL API


10. March 2022In Add onsBy Karsten Risseeuw2 Minutes

“TWD, Translate With DeepL” is an add-on for FileMaker Pro, which makes it very easy to translate text into other languages.

Many FileMaker applications can benefit from multilingualism, for example for the user interface, for document output and much more. However, translations are labour-intensive and require good linguistic know-how.

“TWD, Translate With DeepL” is a free add-on for FileMaker, with which translations can be automated. The add-on translates using DeepL and uses their API interface.

How does it work?

The DeepL API requires an input text and returns an output in one of the available languages.

The add-on assumes a single text field, which as a repeating field should have as many repetitions as languages. The first repetition is the input text. The output goes in one of the repeats for that field. Using repeating fields is far more flexible and powerful than separate fields for each language. The add-on manages the number of languages dynamically and calculations based on the repetitions are easy to create.

If a data set is translated, then the first column (first repetition) is given as input for DeepL. As many columns and languages are now specified, the add-on now processes the translation as often. All existing columns/languages are translated one after the other. Any data sets can also be processed in sequence. We judged this to be the most efficient way to handle multiple languages.

If you are already working with your own table for translations, you can easily specify this. However, the translations must be written in repetitions of this field. Therefore, make sure that the structure is the same as the sample database in the add-on indicates.

Download links for free products will be sent by email. An e-mail check is performed. You need a valid and permanent email address.

TWD DeepL (DE)

Kostenloser Download

Bitte füllen Sie dieses Formular aus. Der Download Link wird Ihnen per Email zugeschickt.


Enhancement of the user management module in FM Starter

Enhancement of the user management module in FM Starter

The «UserAccounts» module for managing FileMaker accounts in FM Starter has been updated


9. February 2022In FM StarterBy Karsten Risseeuw1 Minutes

FM Starter just received a new update. The new version 2.4 is a maintenance update with various small optimizations and bug fixes. User management got a useful new feature.

Name and password

FM Starter, our starter file for new FileMaker projects, offers various modules for new projects. Below this is a user administration called «UAC User Accounts». In this user administration, administrators can create new accounts for users and define access data, rights, a default language and start and end dates.

Previously, user name and user password were specified. The username corresponded to the email address and the password was randomly generated by an algorithm.

Name and password can now also be set manually. In certain circumstances this can be helpful. If you switch to manual assignment, you can trigger the change at any time by redefining the access rights. This process is necessary because the user table is just an interface between users and FileMaker accounts. These two must be synchronized whenever there is a change. The new definition of access rights ensures this synchronization.

Free update for all active accounts

The update is free for customers with a current service subscription. The downloads can be found in your own account on fmstarter.com.

More information about FM Starter can be found here:


Simple address management as an add-on for Filemaker

Simple address management as an add-on for Filemaker

Example of a simple address management as an add-on


25. January 2022In Add onsBy Karsten Risseeuw4 Minutes

FileMaker add-ons are building blocks for FileMaker development. You can create add-ons yourself or use add-ons from other developers. Add-ons don’t have to be complex. They can be simple solutions, such as basic structures for a new project that can be easily adapted.

Example of an addon

Here below I show an example of a very simple addon. It is neither perfect nor universally applicable. It’s about a simple address database, which deals with the addresses, the associated contacts, and various other settings. As an add-on, this “development basis” can now be easily transferred to new projects and adapted there.

Structure of an add-on

A FileMaker add-on can be created as follows:

  1. Create a new file
  2. Build the functionality you want (with tables, layouts, scripts, etc.)
  3. Export the file as an add-on package using the appropriate script step

When you create the add-on, a so-called add-on package is generated from the file. The package is placed in a specific directory. The file path to this directory is slightly different on Mac and Windows. With Add-on Lab FREE you can not only easily convert a file to an add-on, but there is also a button with which you can open the target directory with one click.

FMA Addresses Download

The FileMaker add-on “FMA Addresses” is a free add-on that can be downloaded here. Once downloaded, the add-on can be integrated into any FileMaker file with just a few clicks. The only requirement: You have to use FileMaker Pro 19.1 or higher.

  1. Copy the ZIP archive to the special add-on directory*
  2. Restart FileMaker
  3. Open a file
  4. Switch to layout mode
  5. In the left column with tools there is a tab «Add-ons»
  6. Scroll all the way down the list of add-ons and select the «FMA Addresses» add-on.
  7. Load the addon
  8. When loading, the whole add-on is already loaded in the background.
  9. A reference to the start layout can optionally be added via drag-and-drop.

* The easiest way to locate the special directory for installing add-ons is to use the free add-on Lab FREE .

Starting point for further development

The add-on is not a ready-made solution, but shows how you can create a useful add-on yourself. In this address management there are not only different tables, but also already different layouts, for example for addresses and the associated contacts. Likewise, telephone numbers, various relations between the tables, some functions and a number of useful value lists are already built in.

Preparatory work like this for this plug-in only has to be done once. The add-on can then be used as a development basis for various projects. The functionality can be checked well, the development is clear. Add-ons are therefore functional and useful building blocks that can be used for further development. If you import an add-on with just a few clicks, the basis is laid right away.

  • Test the addon.
  • Do you have better ideas?
  • What could your own add-ons look like?

FMA Addresses Add-on
FMA Addresses Add-on

Add-on for FileMaker Pro 19.1 or newer. Simple address database in FileMaker. This is a sample file, not a ready-to-go solution. It is meant to give you ideas for your development of add-ons. See how it works, then go and create your personal version!