Building a nicer (dynamic) multibox, without extensions

Building a nicer, dynamic multibox in QlikViewThe multibox is a QlikView object that I find extremely useful because it allows you to fit selection fields into a much smaller space. At the same time, I also find it extremely annoying; the gradient looks dated and if you want your field names and values to be readable you will often have to make both columns quite wide. For these reasons I tend to not use the multibox in my applications, using a conditionally hidden drop-down filter panel instead.

Recently, I was hired to perform a health check on an application. The application made extensive use of a multibox (in a very nice and flexible way, I should add). One of the challenges my client was facing was that not every field was relevant to every user. Besides a general technical review of the application, the developers wanted to know if it was possible to create a dynamic multibox. A multibox where users could select which fields they want to show.

As I started digging in to this question, I realized there’s a much nicer way to create a multibox. After experimenting with it for a bit, I actually like this solution so much that I will probably be using it in some of my future projects.

read more »

Aliases, to indent or not?

“Code is read more often than it is written”

  – common programming adage

As someone who often has to look at/modify QlikView script written by others, I have come to appreciate the value of readable script. Rather than taking an “if it works, it works” attitude, I always try to write my script with readability and consistency in mind. Somewhere down the line someone else (or worse, you) might have to decipher what a specific script is doing in order to modify or extend it.

Today I want to ask your opinion on the readability of a specific part of the QlikView script, indentation of aliases within LOAD statements. To this end, I’ve taken a piece of script from the QlikView System Monitor and formatted the aliases in three different ways. (note: I don’t agree with the absence of white space in functions and between operators, but have left that as is)

Have a look at the three options, and then please answer the two multiple choice questions below.

read more »

ABC: Always Be Closing

Always Be ClosingA very short tip on writing QlikView expressions that might save you a lot of headaches. In my last online training on Set Analysis (another one coming up this week) I showed a simple technique that I use when writing expressions in QlikView, especially when they contain nested functions. Based on the feedback, it seemed to resonate quite well with the attendees and not everybody was aware of this technique, so I thought I might share it with you as well.

It can simply be summarized as: Always Be Closing.

Whenever I write an expression that contains a parenthesis (or curly bracket/chevron/whatever) that also needs to be closed, I immediately close it and place the cursor one step back. Or, to show it visually (in slow mo):

This way, you’ll never need to think about how many parentheses/etc. you need to close your expression. Of course,  this technique also works for Excel, SQL or any programming language.

As a follow-on tip, whenever I have to ‘decipher’ a nested expression within QlikView, I work inside-out. Start with the inner-most function, figure out what it does and what value(s) it returns, then move on to the function that uses the output of the first function, figure out what that does, and so on.

Online training: QlikView Set Analysis

QlikView Set Analysis Training

Just a quick heads-up about a new online training that Miguel García and I are offering: Set Analysis. We delivered our first training on May 2nd and received excellent ratings and feedback. We are now scheduling new sessions, the first one being held May 23rd 2014. This is a live, instructor-led, 4 hour online training. We have multiple sessions (both in English and Spanish), so you should be able to find one that fits your time zone. More information can be found on the website, or after the break.

Register Now for the Online Set Analysis Training

read more »

Linked bar charts

Two questions from business users that will probably sound familiar to most QlikView Developers:

“We currently use this report. Can you re-make this in QlikView?”


“Our graphics designer came up with this dashboard. Can you do that in QlikView?”

Quite often you’ll find the answer to be yes. Although admittedly, you often may also want to suggest another approach, especially when asked the first question.

Recently I was asked if the following chart could be built in QlikView:

Linked Bar Chart - The Challenge

As you can see, this chart compares relative-to-total amounts for two periods. There is a vague area that connects both bars and kind-of-but-not-so-much shows the change between the periods. I had to think a bit harder before responding to that question…

read more »

Introducing a new author at QlikFix: Wesley Smit


One of the reasons I started this blog in 2010 was not only to share what I know about QlikView, but also to expand my own knowledge and understanding of it. In my opinion, explaining concepts and solutions to others is a great way to identify areas of improvement for yourself.

Recently, I got a new colleague at my company; Wesley Smit. Wesley is a recent graduate of Business Economics and Organization Sciences from the VU University in the Netherlands. With this business-oriented background, Wesley has an excellent understanding of the what and why of Business Intelligence. Since joining Bitmetric as a Junior Business Intelligence Consultant, we’ve been bringing him up to speed on how to develop BI solutions. Of course, the main focus is on QlikView, but we’re also working on peripheral solutions, methods and techniques that will make him an all-round consultant.

Wesley has been making great progress and is ready for the next step, not just gaining knowledge but also sharing it. In the coming time he will be posting articles on some of the things he has discovered while learning QlikView.

I welcome Wesley as a co-author on this blog and hope that you will enjoy his articles!

The power of QlikView caching

CacheToday I read a very interesting blog post about the QlikView Cache by Qlik’s Henric Cronström (HIC). In the post, Henric gives a high level overview of how caching is used within QlikView to speed up front-end response times. (for a more in-depth explanation, have a look at the patent) Henric also explains some interesting peculiarities about caching, one of which busts a myth that I hear repeated very often (“running macros clears the cache”). I highly encourage you to read Henric’s post.

Of course, this post isn’t just a me-too article. Rather, I want to show you a neat thing that will let you experience the power of caching in QlikView for yourself. Did you know that you can actually turn off caching?

read more »

Generating random test data in QlikView with Mockaroo

Functions to create random data in QlikView

I often need random data. For example to use in an example file on this blog, to deliver a customer demo or just to test out something new. As I am probably not the only one with this need, here’s a short and sweet post on how to generate random data for use in QlikView.

read more »

QlikView hash functions and collisions

HashFunctionI’m currently updating my materials for the upcoming Masters Summit for QlikView in Chicago, and thought I’d share a little bit with you. In my session on data modeling, I explain how you can deal with various types of Slowly Changing Dimensions in QlikView. One of the techniques I explain is using hash functions to detect changes in (historical) records. During the previous events, this always lead to two questions from the audience:

  • What exactly are hash functions and hashes?
  • And, from those who already know the answer to the first question: Aren’t you worried about hash collisions?

Today I will answer both questions and hopefully give you some insight into hash functions, their usefulness in QlikView and the risks of hash collisions.

read more »

A secure (and cheap) alternative to Dropbox

A more secure alternative to DropboxA short article that isn’t directly related to QlikView, but if you’re looking for a secure way to synchronize and share your files across computers then this might be interesting for you nonetheless.

Like many people, I am a big user of Dropbox. Between my referrals, the free space that came with my Samsung phone and my paid subscription I now have 186 GB of online storage. While this is awesome for personal files, I’ve always been reluctant to use Dropbox for work-related documents, as time and again it is demonstrated that Dropbox is not secure. Besides that, Dropbox is also quite expensive, especially since I mainly use it to synchronize files and am not really interested in the cloud storage. With this in mind I set out to see if I could set up a more secure (and cheaper) alternative to Dropbox.

read more »