NightWing Enterprises
Demo for FileMaker Pro™

FileMaker Native Process Feedback!

Progress Indicators v2.0

+ For FileMaker 13 and later +

For the benefit of clients and fellow developers, the following demonstration file is provided for free download.

Without apology, we offer you a 'version 2' Progress Indicators demo. It's been seven years since the previous one, and a lot has changed in that time. In particular, the host of new developer-oriented features in FileMaker 13 provides a window of opportunity for more tightly controlled image manipulation. Specifically, the ability to natively encode and decode Base64 image content allows us to harness the text processing power of the FileMaker calculation engine to generate images that are based on data.

In this case, the requirement is relatively simple - to produce a progress indicator, an image is required to update progressively or dynamically in response to an incrementing number - so that as the number changes, the resultant image will change in a way that is useful for feedback to the user.

In our version 1 demo, we harnessed web technology to show how "incremental completion" bar and "indeterminate process" barber's pole display could be produced on Mac and Windows. Following suit, a completion bar and barber's pole are what we've provided here as well, albeit with radically different technical underpinnings. In short, this new demo provides a pair of FileMaker custom functions* that can turn an incrementing numeric value into a corresponding animated image that FileMaker can display in a calculation field.

In order to produce the required Base64-encoded images, the text processing calculations require a color scheme. The custom functions in this demo are set up to receive a second parameter (in addition to the incrementing progress number) that supplies an encoded color palette from which they will render the required animated image sequences. The color palettes are simply a sequence of RGB color number values pre-encoded as Base64, and we've provided a selection of thirteen color profiles for the purposes of the demo. A configuration panel in a popover at the lower left of the demo screen lets you choose a different 'skin' for the progress indicators, and provides a preview of the resulting indicator images.

Aside from the calculation logic, it's also worth noting that the data and calculation fields that support the progress indicators in the demo implementation are all globally stored fields that reside in a separate system table and therefore require no relationships. This simple footprint allows the use of progress indicators on layouts throughout a complex solution with no graph overhead and minimal development work.

In addition, the demo shows a new FileMaker 13 technique for controlling the timing of scripted sequences in millisecond increments, and without the artifacts of a Pause/Resume Script[ ] command (unwanted screen refresh and flickering of the continue/cancel buttons in the Status Toolbar area). With these additional tools, FileMaker 13 allows improved precision and control as well as enhanced options for user feedback during scripted processes.

* Installation of Custom Functions in your solution file(s) requires FileMaker Pro Advanced - however, once installed in a given file, they can be accessed and used in that file throughout the FileMaker platform.
  ZIP archive
Progress Indicators v2.0 demo download (.zip archive)

Note 1:

The .zip archive download (above) provides a copy of the demo file suitable for all supported platforms.
Note 2: Before opening the demo file, please ensure you extract it from the .zip archive (eg to a local drive) - otherwise it will open in read-only mode and will not function as intended.
Progress Indicators v2.0 demo for FileMaker Pro 13 and later

This demo is provided free for private and educational purposes, and may be licensed for commercial and business applications. Should you require assistance implementing procedures such as those shown in our example files, please consider establishing an account with us for developer support.