You may have noticed that “i” icon appearing in a QlikView listbox and wondered “why is it there?” and “what’s it good for?”. Or you may have seen script “INFO LOAD…”and wondered what it did.
The “i” icon and INFO LOAD are both associated with the QV Info feature which has some interesting and useful applications.
Some INFO is created for you right out of the box with no effort required. Create a listbox for Field $Table. (If $Table is not available in your list of fields, Right-Click, Select Fields and check Show System Fields).
Select one $Table name The “i” appears in the caption when one value is selected.
Clicking the i will display information about the table source. If the table was created from a database, the SQL statement is shown.
If the table was created from an excel or other local text file, the external file will be opened!
Internally, INFO is a two column table that associates a Field value with an external image or data file. The $Table example shown above was created automatically. You can create your own INFO tables using the INFO LOAD script statement. The following script connects OrderNumbers with the associated Invoice PDF file.
InvoicePDF: INFO LOAD * Inline [ OrderNumber, InvoiceFile SO67707, PDF\Invoice_SO67707.pdf SO67710, PDF\Invoice_SO67710.pdf ...
Clicking the i opens the associated PDF file in Adobe Reader or the default application for *.PDF on your machine. If the file is not physically available, the the text string “PDF\Invoice_SO67707.pdf” will display in a popup.
For Access Point usage, note that opening external files in this way does not work from the Ajax client. It does work with the IE Plugin or Desktop client. (The workaround is to use Open URL Action).
Note that tables created using INFO LOAD do not appear in the Table Viewer.
A common use of INFO is image files. The optional prefix, “BUNDLE”, may be used to include the external file contents in the qvw itself. This is done for portability, as the files need not be available at runtime (works with all clients).
T1: BUNDLE INFO LOAD * INLINE [ Fruit, val Cherry, Image\Cherry.jpg Banana, Image\Banana.jpg Apple, Image\Apple.jpg Lemon, Image\Lemon.jpg ];
Note that the name of the second field (“val” in this case) does not matter as it is never referenced in expressions or the UI.
We can use the Fruit INFO in a number of ways. First we can use the field Fruit in a listbox and select “Info as Image” Representation on the Presentation tab:
The listbox will show the associated images instead of the text. Sort and Search in this listbox will use the Fruit text values, as we might expect.
Once again, when a single Fruit is selected we get our friend i. Clicking i will display the image in it’s original size in a moveable window. The window remains until the user closes it. You can pull up multiple images side by side and arrange them. Imagine pulling up multiple insurance claim or property photos.
Another way to utilize INFO data is in an expression using the Info(fieldname) . In the Straight Table below I’ve used the expression Info(Fruit) to create the second column. The Representation for that Expression has been set to “Image” on the Expressions pane.
The Info() function produces results only when there is one value for the given context. In a Text Object, Info(Fruit) would produce a null value as long as there is more than one Fruit possible. In this way, Info() works similar to the Only() function. Unlike Only(), Info() does not accept a Set expression to select a specific value. That kind of conditional logic requires using the qmem syntax instead of Info(). (For more on qmem, see the Help for BUNDLE ).
So what happens if we try to BUNDLE LOAD non-media files like excel or PDF? Disappointment I’m afraid. They will load. Your qvw will get larger. However the Info display won’t work correctly. You can of course leave off the BUNDLE prefix for those file types and make sure they are available at runtime to the user.
Info can also be invoked as an Object Action. The Action is “Show Information” and it can be found in the External Action Type.
Have fun and let me know how you use INFO.