I can think of at least one way to do this in native Quickbase, but it's extremely inconvenient. Also on mobile right now, so I can't type out all of the formulas.
In whatever table houses the QR codes, you can create another rich text formula field that just encompass the existing QR code field in a <td> tag. We can call this [QR Container].
Then you can have a formula query field that uses size() and getrecords() to find the number of QR code records with a record ID# less or equal to that record. So Record ID# 1 will return 1, Record ID# 2 will return 2, etc. I'll call this [Lower RIDs].
Then you have another formula query field. Let's say you want the printed copy to have 4 QR codes per row. If the [Lower RIDs] value is divisible by 4, it uses getfieldvalues() and getrecords() to collect the [QR Container] values of all records where [Lower RIDs] is greater than or equal to that record's [Lower RIDs] value minus three, but lower than or equal to that record's [Lower RIDs] number. So RIDs 1-3 would return blank values (not divisible by 4), and RID 4 would return a list of the [QR Container] fields for RIDs 1 through 4. You can use searchandreplace() on this value to replace " ; " with "", which will give you an HTML string. You can then encompass this string in a <tr> tag. We can call this field
.
Finally, you have a formula query field that gets the values of
for every record where it isn't blank. Then you use searchandreplace() on this field to replace " ; " with "". This gives you another HTML string, which you encompass in a <table> tag. We can call this .
Then you add an Exact Form for the QR codes table that only includes "~fid~", where fid is the field id# of your
field. This will give you a button on every record that when clicked, will give you a big Exact Form with a table of all of your QR codes that you can print. I have done similar things to this in the past, and I know that rich text fields will render properly in the Exact Form (including images like your QR codes).
Just writing this out, I'm sure it's terrible performance wise. There are definitely ways to optimize this by say, only having your fields make a table of the previous 100 records. So if you click on the button on your most recent record, you'll get your 100 most recently generated QR codes, but you won't be pulling together as much data as many times. Or maybe you only populate
on the 5 most recent records, and if it's older than that it just returns a blank value.
Realistically, the easiest way to do this is with a code page, but that comes with its own set of headaches. And if you're not already comfortable writing JS code, it really isn't worth learning it just for Quickbase. They offer so many great no code tools that are easier and faster for 99% of use cases, that the time spent learning wouldn't justify itself for the limited number of times you'd use it. If this functionality is really important I'd recommend just going with the tedious native QB solution.
------------------------------
Tyler Jablonski
------------------------------