Tolkning av tal
När du läser in data som innehåller siffror, valuta, eller datum, så blir de tolkade annorlunda beroende på om datatypen är definierad eller ej. Det här avsnittet beskriver hur data tolkas i de två olika fallen.
Data med information om datatyp
Fält som innehåller tal med definierad datatyp i en databas som läses in via ODBC kommer i QlikView att behandlas med avseende på respektive datatyp. Deras motsvarighet i form av strängar blir numret med en viss formatering.
QlikView sparar fältets ursprungliga talformat även om talformatet ändras i någon av programmets talformateringsdialoger. Det ursprungliga formatet kan alltid återställas genom att klicka på Ursprungligt från indata -knappen i talformatdialogerna
Standardformat för respektive datatyp är:
- heltal, flyttal: standardinställningarna för tal
- valuta: standardinställningarna för valuta
- tid, datum, tidsmarkör: ISO-standardformatering
Standardinställningarna för tal och valuta anges via variabler för taltolkning i skriptet eller operativsystemets inställningar (Kontrollpanelen).
Data utan information om datatyp
När det gäller data som saknar specifik formateringsinformation från datakällan (t.ex. data från textfiler eller ODBC data med allmänt format) blir hanteringen mer komplicerad. Slutresultatet beror på minst sex olika faktorer:
- Den form som data har i databasen
- Operativsystemets inställningar för tal, tid, datum etc. (Kontrollpanel)
- Användningen av alternativa variabler för taltolkning i skript
- Användningen av alternativa tolkningsfunktioner i skript
- Användningen av alternativa formateringsfunktioner i skript
- Användningen av talformatsdialogerna i dokumentet
QlikView försöker tolka indata som tal, datum, tid, o.s.v. Så länge som systemets standardinställningar används för dina data, sköter QlikView tolkning och formatering automatiskt. Användaren behöver således inte ändra vare sig skript eller inställningar i QlikView. Det finns ett enkelt sätt att se om data har tolkats korrekt: numeriska värden är vanligen högerjusterade i listboxar, medan textsträngar är vänsterjusterade.
Som standard gäller att följande schema gås igenom tills ett passande format påträffats. (Standardformat är det format – exempelvis decimalavgränsare, ordning mellan år, månad och dag osv. – som anges i operativsystemet, d.v.s. i Kontrollpanelen, eller i vissa fall definieras via de särskilda variablerna för taltolkning i skriptet.
QlikView tolkar data som något av följande, i ordningsföljd:
- Ett tal enligt standardformatet för tal.
- Ett datum enligt standardformatet för datum.
- En tidsangivelse enligt standardformatet för tid och datum.
- En tid enligt standardformatet för tid.
- Ett datum enligt följande format: yyyy-MM-dd.
- En tidsmarkör enligt följande format: YYYY-MM-DD hh:mm[:ss[.fff]].
- En tid enligt följande format: hh:mm[:ss[.fff]].
- Pengar enligt standardformatet för valuta.
- Ett tal med '.' som decimalavgränsare och ',' som tusentalsavgränsare, förutsatt att varken decimalavgränsare eller tusentalsavgränsare är satt till ','.
- Ett tal med '.' som decimalavgränsare och ',' som tusentalsavgränsare, förutsatt att varken decimalavgränsare eller tusentalsavgränsare är satt till '.'.
- En textsträng. Detta sista test slår aldrig fel: om det överhuvudtaget är möjligt att läsa datamängden, går den alltid att tolka som en textsträng.
När data läses in från textfiler kan det ibland uppstå tolkningsproblem. En felaktig decimalavgränsare eller tusentalsavgränsare kan göra att QlikView tolkar talen inkorrekt. Det första du bör göra är att kontrollera att variablerna för taltolkning i skriptet är rätt definierade och att systeminställningarna i Kontrollpanelen är korrekta.
När QlikView har tolkat data som ett datum eller en tid går det att ändra datum- eller tidsformatet i diagramegenskaperna.
Då det inte finns något fördefinierat format för data, kan en post givetvis innehålla data med olika format i ett och samma fält. Man kan exempelvis finna giltiga datum, heltal och text i ett fält. Dessa data kommer således inte att formateras, utan visas i sin ursprungliga form.