Images in a QlikView application can be power full in many ways. Most of the time I see solutions were images are used as background in text-objects, but it’s also possible to load images into memory and connect the images to a your data – and then it starts to get funny!
When loading images into memory and connect them to for example an employee dimension table, you are able to show an image side by side with data of the employee. Even images uses a lot of screen space, it gives sense in many occasions, because images are faster to read and understand for the brain than text.
However, there are some considerations to think about, before you load tons of nice looking jpg-files of all you employees into your application.
First, be care full about the size of each image. The bigger size, the longer it takes to show the image. Keep each image to a thumbnail-size (100 kb or less). I have seen solutions, were more than 60.000 images of that size are loaded into memory and it had very small impact of the performance. However, 60.000 images of 100 kb each consumes 6 GB RAM, so you must ensure that you have enough RAM-storage.
Use the same background for each images. If you would like to upload images of employees, then try to avoid images were some pictures have a light background and others a dark.
If possible, use images in the same resolution.
I have seen problems doing binary loads with images, so I recommend that you load your images in the final application tier and not in the QlikMart tier – if you have a QlikMart tier.
The easiest way to load images into your application is to ensure, that your files are named with the business key. So If your business key in you employee table is Initials, then make sure, that your files also are named with the Initials.
Then created a new attribute field in your Employee table containing the file-path to the image.
Your Employee table (Dim_Employee) could look like this (field names):
Where the field Employee_ImageFilePath contains the path to the image, for example:
Now all you need to do is loading the images into memory. To do that, you need the following simple script:
BUNDLE INFO LOAD
Employee_ ImageFilePath as info
To test the image in the application you can use the following expression in a text-box:
Every now and then standard queries just aren’t sufficient as data sources and therefore it might be neccesary to add an intermediate step. For instance by using a table variable. But using a table variable will by default not return any records. So what do we do, then?
Try to visualize your old tape recorder. If you are old enough, you might remember the forward button and the rewind button. These buttons made it possible for you to go forwards and backwards in the data on the tape.
Imaging if this is possible in QlikView.
Have you ever got the request to use special characters, like ( ) / \ & %, in the names of your measures or dimension attributes in your multidimensional cube, but only to find that the Name property will not accept this? There is a way to implement this even though it is not done on the Name property but involves Translations.
…Balanced Power Plan that is.
Caring about the nature is most certainly a likeable trait. But did you know that your servers might be doing that without you actively told them to? And it comes with a cost.
Have you ever thought about logging the before and after value for an update or delete? It’s actually pretty simple getting these information as a return on an update and delete.
Lets make a quick example.
By default view are updateable. It means you can write a TSQL update statement against a view just like you can update a table. I both cases you off course need update permissions. This give you an opportunity to let users update views containing less columns than the original table. You can update data in a view even if your dataset is a join on two or more tables.
In this blog we will se how you avoid users from update data out of your view.