OnOpen-inställningar jag använder
Som utvecklare i QlikView är man ofta inne i appar och gör små ändringar. Det kan handla såväl om konsulter som interna utvecklare eller super users med behörighet. Det är då lätt hänt att en app blir sparad med något urval som utvecklaren hade gjort, vilket förvirrar slutanvändare som inte känner igen sig och själva blir tvugna att rensa urvalen direkt.
I andra fall önskar beställaren att vissa urval ska vara aktiverade när en användare öppnar applikationen. I dessa fall kan problemet istället vara att utvecklaren hade rensat urval när appen sparades senast.
Den bästa lösningen på båda problemet är lägga triggers på appens öppnande och först rensa urval för att sedan applicera urval som ska vara aktiva som standard.
Inställningar för detta finns under menyn Settings -> Document Properties på arket Triggers. Inställningen heter OnOpen under Document Event Triggers och man kan direkt se om det finns triggers genom att det står "<Has Action(s)>" efter OnOpen.

För att lägga till, förändra eller ta bort triggers klickar man på raden OnOpen och därefter på knappen Add/Edit Action(s).
Det första jag alltid lägger till är en trigger som rensar alla urval när applikationen öppnas. Detta fångar och hanterar situationen där jag eller någon annan råkat spara ner appen med ett aktivt urval gjort. Klicka på Add och lägg till Selection -> Clear All.
Därefter lägger jag till eventuella triggers för standardval som beställaren har efterfrågat. Det kan handla om att när appen öppnas ska "Externa leverantörer" vara valt i fältet Leverantörtyp, eller innevarande månad vara valt i ett ÅrMånad-fält etc. Klicka på knappen Add och välj Selection -> Select in Field. Ange fältets namn och värdet som ska väljas. Observera att fältet där man anger värdet som ska väljas stödjer beräkningar, så vi kan till exempel välja föregående månad genom att räkna ut värdet med ett uttryck.

Välja flera värden
Om man önskar att två värden i samma fält väljs kan det vara enklast att använda Selection -> Toggle Select istället för Select in Field. Vi lägger då upp till exempel två Toggle Select och anger respektive värde som ska väljas. Om man skulle använda två Select in Field skulle det andra valet överstyra det första valet. Toggle motsvarar att användaren håller ner control-knappen när de klickar på ett val i en listbox - valet läggs till eller tas bort från det aktuella urvalet.
Olika format
En specifik sak att tänka på är att t.ex. urval på datum-värden kan vara kluriga när formatet skiljer mellan fältet och triggern. Om datamodellen innehåller ett Datum i format som 20201101, 20201102, 20201103 osv (YYYYMMDD) och standardformatet för datum i appen är YYYY-MM-DD kommer inte en trigger =today() fungera. Formatet i uttrycket kan förändras som =date(today(),'YYYYMMDD').
Välja förra månaden
Det förekommer ofta att beställaren vill att föregående månad är vald när applikationen öppnas. För detta kan man använda den fina funktionen addmonths() som kan lägga till eller ta bort månader från ett datum. Funktionen hanterar själv antalet dagar i månaden och även skottår.
=year(addmonth(today(),-1) & num(month(addmonths(today(),-1)),'00')
Knappar
Vissa av de här funktionerna kan man ha nytta av som knappar med. T.ex. snabbval för föregående månad, rullande 12 månander eller liknande. Gå till egenskaperna för en knapp och sätt en Action på samma sätt som OnOpen.


Skriven av: Morgan Kejerhag
Morgan Kejerhag har arbetat med Qlik-plattformen sedan 2005 och är en av Sveriges mest erfarna konsulter. Under åren har Morgan arbetat med flertalet multinationella bolag där han lett arbetet i att bygga upp stora Qlik-miljöer såväl som små kunder. LinkedIn