Use Virtual Lists with JSON Arrays to build faster reports
Kevin Frank spends a lot of time optimizing code to speed up reporting, and generously shares it with the FileMaker community. This last go around includes building virtual list using JSON arrays, a natural fit for virtual lists. Why? Pretty much all of the data processing world is moving towards using JSON for sharing data between different platforms. And JSON is fast, easy to use, and easy to process or generate. Frank spent a lot of time and a lot of trial and error (his words) to build five (yes, five) sample files with different techniques. His current go-to is version 4, which I spent some time poking around .
Version 4 breaks the JSON file down into a one dimensional array from a 2D array, thereby increasing the report generation speed:
In demos 1-3 we’ve been forcing each row in our virtual list table to evaluate a large 2-dimensional array. In demo 4, the “locate and parse report data” subscript will continue to encode and pass a 2D pseudo-array as a script result, but now the parent reporting script will parse that 2D pseudo-array into a bunch of 1D JSON arrays, one per row in the report.
And once you try it, you’ll see that is it very fast. If you use Virtual Lists to build those hard to build reports, you’ll want to study these Free FileMaker Example files. If you don’t use Virtual Lists, you should learn how to do so. It’s another great tool for your developer’s toolbox.
I spend some time every day doing social media for some clients, and occasionally find links to very funny posts. The tweets in the linked article below strike show that raising children hasn’t changed all that much since my wife and I went through it. Well worth a couple minutes of your time:
The Best Looking Flying Car – So Far
Leave it to Aston Martin to design (and eventually build) the best looking flying car – it is eerily like Star Wars fighters, only better looking.
I’d really like to
fly drive ride in one (I’m hoping they have a manual override of the autonomous part).