Creating and Storing 2D Bar Codes in FileMaker


2D Bar Codes are all the rage these days. These new style bar codes can store considerably more data than a standard bar code. Combined with the wide spread availability of iPhones and other smart phones with a built-in camera, capable of scanning these codes, there is an opportunity to employ these codes for a variety of purposes.

An example of this was done recently by my son, Cory Alder and his company Davander Mobile Corporation. He built a solution for a fair trade coffee company called Ethical Bean which involves a custom iPhone app talking to a FileMaker back-end system that keeps track of these bar codes. The company prints a 2D bar code on every package of coffee it sells. Customers can scan the bags, either in the aisles of the supermarket, or when they get home with their iPhone. The 2D bar code contains a unique URL for each batch of coffee. The app then will retrieve all kinds of useful and interesting information about the source of the beans that are blended in, the ratio of how they were combined, where the coffee came from, right down to maps and videos of the farmers responsible for the beans. It is a pretty cool marketing concept and really uses the technology well to open up information about what ‘fair trade’ actually means. If you are in the market area for Ethical Bean (Canada), it is worth checking this out. Even if you don’t have a smart phone, you can type the bar code number into a browser and see the information displayed.

This project and the recent release of a Custom Function for doing 2D bar code generation got me thinking about how to create and store these codes in FileMaker. I had been looking for an excuse to implement the free and awesome 360 Works ScriptMaker plugin as well. I created a little demo file of this in action.

Demo of ‘Create and Store 2D Bar Codes’ in FileMaker

wpid789-media_1286386849093.png

1) Enter a Dimension for the Bar Code size
2) Enter some data here. This could be address information or a longer URL.
3) This is a web viewer driven by the Google Chart API. It is generated on a Google server.
4) Click this button to run the script that grabs the bar code directly from the Google server. It stores a copy of this image in a container field
5) The Container field to store a 2D bar code from Google.

In testing it seems that the 2D Bar Codes generated by Google’s 2D Generator have a maximum capacity. This appears to be a limitation of the Google Charting API and not inherent in the 2D Bar Code format.

Maximum Dimension: 500
Maximum Characters: 1930

There seems to be an inverse relationship between the dimensions and the amount of data the bar code can store. If the dimension is too small and the data information is too large, it won’t display. There is also a question as to whether a bar code scanner could read a 2D bar code that small. Correspondingly, if the data is too large and the dimensions too large, Google maxes out what it can return.

Plug in some numbers and experiment.

Create a Custom Function

wpid795-media_1286387070096.png

Here are the steps I used to build this demo file. First I added the Custom Function.

The Custom Function

wpid790-media_1286386863484.png

Creating the Custom Function for ‘Google2DBarcode’

wpid796-media_1286387632229.png

All this Custom Function does is build a calculated URL to send to the Google Chart API app engine. This could be done simply by pasting the appropriate fields into the right places in the URL. This Custom Function makes it a little easier, but is not totally necessary.

The basic format of the URL is : http://chart.apis.google.com/chart?cht=p3&chd=t:60,40&chs=250×100&chl=Hello|World

Google2DBarcode Custom Function
// Function: Google2DBarcode
// Variables: Width, Height, Data
// It looks to me like Width and Height are not really needed as the bar code always comes out square and in fact a single dimension variable would work just as well. The reason they are in the URL string this way is to facilitate other types of graphs.
//http://code.google.com/apis/chart/

http://chart.apis.google.com/chart?chs=”&Width&”x”&Height&”&cht=qr&chl=”
&
Trim ( Substitute (Data ; ” ” ; “+” ) ) &”&chld=L|1&choe=UTF-8″

//http://www.briandunning.com/cf/1224
//Author:Bill K, BRC http://private.com

The Scripts

wpid791-media_1286386927541.png

There is an ‘On Open’ script to call the ScriptMaster function and a ‘Grab a BarCode’ script. Set this ‘On Open’ script to run in the File Options.

The ‘On Open’ script calls the ScriptMaster function

wpid792-media_1286386932509.png

This step makes it available to the database, provided you have the ScriptMaster plugin installed.

The script ‘Grab a BarCode and put it in a Container field’

wpid793-media_1286386944872.png

Set the Image container field with the GetURLasContainer External Function.

Use the ‘GetURLasContainer’ external function in a script

wpid794-media_1286386953141.png

Use this calculation to call the Custom Function ‘Google2DBarcode’ and set the Container field with this content.

Trackbacks/Pingbacks

  1. Making FileMaker interact with Google Translate | HomeBase Software - July 13, 2012

    […] Related Articles: Getting Help about FileMaker – FAST! Where Am I? Using FileMaker Go 12 to track your Location Creating Google Cluster Maps from FileMaker Creating and Storing 2D Bar Codes in FileMaker […]

  2. Paradise by the Dashboard Light – Bouncing around in FileMaker, building Charts | HomeBase Software - July 14, 2012

    […] Articles: Interactive Charts driven by Virtual Javascript files Creating and Storing 2D Bar Codes in FileMaker ‘FileMaker Go for the iPhone’ […]

  3. Shortening URLs using FileMaker | HomeBase Software - July 14, 2012

    […] Articles: URLs in PDFs – Yet another reason to shorten URLs in FileMaker Creating and Storing 2D Bar Codes in FileMaker Making FileMaker interact with […]

  4. Processing Indicator in FileMaker 11 | HomeBase Software - July 14, 2012

    […] Related Articles: FileMaker Progress Indicators using a Web Viewer and Animated GIFs FileMaker and Image Maps in a Web Viewer Creating and Storing 2D Bar Codes in FileMaker […]

  5. QR Codes in FileMaker 12 & 13 — No Plug-ins, No Custom Functions | HomeBase Software - December 18, 2013

    […] while back I did a blog posting on generating 2D Bar Codes, or QR Codes from Google’s Chart API. The demo was created back in the dark days of FileMaker […]

  6. QR Codes in FileMaker 12 & 13 — No Plug-ins, No Custom Functions | HomeBase Software - FileMaker Pro Gurus - December 19, 2013

    […] while back I did a blog posting on generating 2D Bar Codes, or QR Codes from Google’s Chart API. The demo was created back in the dark days of FileMaker 11, […]

  7. Creating and Storing 2D Bar Codes in FileMaker | Filemaker Info - December 21, 2013

    […] See on hbase.net […]

  8. No Internet Connection, Can’t use Plugins, Need QR Codes? — Create QR Codes in FileMaker Pro using only Javascript | HomeBase Software - May 11, 2014

    […] Creating and Storing 2D Bar Codes in FileMaker […]