tag:blogger.com,1999:blog-45014133453189187022024-03-20T08:41:00.533-07:00Tales from a Qlikview IdiotUnknownnoreply@blogger.comBlogger10125tag:blogger.com,1999:blog-4501413345318918702.post-39038801495938231012011-11-29T09:24:00.000-08:002011-11-29T09:24:41.754-08:00Let versus Set (Again)SET vString = 1 + 1; // The string "1 + 1";<br />
LET vEvalute = 1 + 1; // The value 2<br />
<br />
You can get very fancy using variables in Qlikview. You can include arguments inside your variables, so that you can use them like user defined functions.<br />
<br />
So, if you wanted to create a 'function' to multiply two numbers you could use a Set like this<br />
<br />
SET DOSTUFF = '$1*$2';<br />
<br />
The $1 and $2 act as arguments. (Think %1 for a DOS .BAT file)<br />
<br />
If you use a SET, it will plug in the arguments and evaluate as a string. i.e.<br />
<br />
SET A = $(DOSTUFF(2,2)); // returns '2*2' in A<br />
<br />
Note: The dollar sign in front of the DOSTUFF 'function', this signifies Dollar-Sign Expansion, basically some sort of text replacement happens between the parenthesis before it is evaluated.<br />
<br />
So, if we instead use a LET<br />
<br />
LET A = $(DOSTUFF(2,2)); // returns 4 in AUnknownnoreply@blogger.com1tag:blogger.com,1999:blog-4501413345318918702.post-80049393937011498882011-08-22T14:10:00.000-07:002011-08-22T14:10:04.913-07:00Applying formatting to a dimensionThe trick is that you have to remember to use a calculated dimension. And then,<br />
<br />
=num([Field],'######,###.00')Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4501413345318918702.post-62619728720840227372011-07-28T09:56:00.000-07:002011-07-28T09:56:29.847-07:00Hash126, Hash256 functions are case sensitive...In case you wondered!<br />
<br />
<br />
[Table1]:<br />
Load * Inline<br />
[CatID,Category<br />
A,A<br />
A,a];<br />
<br />
Load<br />
Hash128(CatID, Category) as MyHash Resident Table1;<br />
<br />
<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeMnceLc-agYe8-VpkC4Wfv17rIFnFe41Vi8xRzKPuam9gE6b104kZgzevKSQV1j_i5ncKRT07CxPRvZkUzCcICM6Cs5s3EzgBCzaFC3c2qWW1Us9t2JKUqSF_RgtJ9kuzBFKhl5S26-g/s1600/harsh.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgeMnceLc-agYe8-VpkC4Wfv17rIFnFe41Vi8xRzKPuam9gE6b104kZgzevKSQV1j_i5ncKRT07CxPRvZkUzCcICM6Cs5s3EzgBCzaFC3c2qWW1Us9t2JKUqSF_RgtJ9kuzBFKhl5S26-g/s1600/harsh.png" /></a></div>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4501413345318918702.post-21366888250980110752011-07-27T13:37:00.000-07:002011-07-27T13:37:18.262-07:00Fighting the Mobile ClientSo, I have been having 'Fun' playing the Qlikview iPhone Client. (It really is no surprise that as far as I can tell they are heading towards an html5\ajax client that supports all platforms)<br />
<br />
So what has been annoying me?<br />
<br />
Drawings of the objects are simplified compared to the desktop clients. Columns cannot be moved or resized...<br />
<br />
I just want to be able to specify that a column will show its entire name... and all of the data to for that matter... it makes for a really junky experience. :(Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4501413345318918702.post-12171868885645745382008-08-21T08:26:00.000-07:002008-08-21T08:28:10.673-07:00Quick TipFor some reason I must have failed to learn that you can move sheet object using the arrow keys in QlikView<br /><br /><ctrl> + arrow key -> 1 pixel at a time<br /><ctrl>+<shift> -> 10 pixels at a timeUnknownnoreply@blogger.com1tag:blogger.com,1999:blog-4501413345318918702.post-86504194527884670392008-08-20T13:52:00.000-07:002008-08-21T08:26:50.495-07:00Part 4, the magical list boxThe list box is the fundamental QlikView component.<br /><br />All data loaded into a QlikView can be displayed in list boxes.<br /><br />If a value occurs more than once in loaded database, <span style="font-style: italic;">only displayed once in list box</span><br /><br />A list box can show the frequency of the number of times the value occurs in the DB.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4501413345318918702.post-82891797592732855352008-08-20T13:19:00.000-07:002008-08-20T13:40:55.955-07:00Part 3A Little bit more about the QlikView associative database.<br /><br />There are differences between how QlikView manages join relationships between tables and how a typical DB might handle joins.<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiINOEb-2Wu5zuV60Aey-kQb9Rcr4P4SGpe71vY-sKo69zH00at5YdMb-2Aizo10C8P1DdQqkv9BWPwsfRKEb8C5p586J1QxwvHZBVNPWONf_43v2IjVhgR72SPzSot92XmURkryL2xr-Y/s1600-h/qlik1.PNG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiINOEb-2Wu5zuV60Aey-kQb9Rcr4P4SGpe71vY-sKo69zH00at5YdMb-2Aizo10C8P1DdQqkv9BWPwsfRKEb8C5p586J1QxwvHZBVNPWONf_43v2IjVhgR72SPzSot92XmURkryL2xr-Y/s320/qlik1.PNG" alt="" id="BLOGGER_PHOTO_ID_5236697687063524226" border="0" /></a><br /><br /><br /><br /><br /><br />You might be tempted to think that QlikView has a Categories.CategoryID field and a Products.ProductID field<br /><br />But a better visualization is with a categoryID field stored between the two tables.<br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6quvNBq2T5oypJUGEf7vfsAxg8IK49usBMchOpNkVZt_Fke-F_MLscdZzm3fE5dbcCkpwM4uxdNLwuPB4cgSv1jfJQiu_P66zeUHM3OgbvMJqvjXugJhyphenhyphenT54WTB0yNarffAX2TtZuwY8/s1600-h/qlik2.PNG"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6quvNBq2T5oypJUGEf7vfsAxg8IK49usBMchOpNkVZt_Fke-F_MLscdZzm3fE5dbcCkpwM4uxdNLwuPB4cgSv1jfJQiu_P66zeUHM3OgbvMJqvjXugJhyphenhyphenT54WTB0yNarffAX2TtZuwY8/s320/qlik2.PNG" alt="" id="BLOGGER_PHOTO_ID_5236698137778178514" border="0" /></a><br /><br /><br /><br /><br /><br /><br /><br />Qlikview combines the distinct datapoints into a single field. This is a Key Field<br /><br />A reference is maintained through small binary pointers maintaining the relationships back to the original tables.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilWyr_b3BTqXfcqCe3bOe_EKIhyx8vlaDjJNorj6-XrZp36VA7LkZeCnf2Xny_2_M2QQGr_N-p1ZdYi_nm_AICxtaDKhaji57emSDxBiIReejoPrjXdIQDWCF56jXbeOegimE5n7AKyyY/s1600-h/qlik3.PNG"><img style="cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEilWyr_b3BTqXfcqCe3bOe_EKIhyx8vlaDjJNorj6-XrZp36VA7LkZeCnf2Xny_2_M2QQGr_N-p1ZdYi_nm_AICxtaDKhaji57emSDxBiIReejoPrjXdIQDWCF56jXbeOegimE5n7AKyyY/s400/qlik3.PNG" alt="" id="BLOGGER_PHOTO_ID_5236701761740663746" border="0" /></a><br /><br />Compresses data by 80-90%, to 5-20% of its original size. Which is then loaded into memory.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4501413345318918702.post-44431058318172928342008-08-19T10:28:00.000-07:002008-08-19T11:45:48.923-07:00Part 2, comments, loading a .csvWorking with scripts.<br /><br />It's always useful to know how to add some comments to your scripts. So here are the three ways.<br /><br /><span style="font-weight: bold;">Using REM (end it with a ;)</span><br /><br /><span style="color: rgb(0, 102, 0);">REM this is a two lined comment</span><br /><span style="color: rgb(0, 102, 0);">because it needs to end with a semi-colon;</span><br /><br /><span style="font-weight: bold;">using //</span><br /><br /><span style="color: rgb(0, 102, 0);">//this is a comment</span><br /><span style="color: rgb(0, 102, 0);">//so is this</span><br /><br /><span style="font-weight: bold;">Using /* ... */</span><br /><br /><span style="color: rgb(0, 102, 0);">/* this is </span><br /><span style="color: rgb(0, 102, 0);">a <span class="blsp-spelling-corrected" id="SPELLING_ERROR_0">longer</span></span><br /><span style="color: rgb(0, 102, 0);">comment</span><br /><span style="color: rgb(0, 102, 0);">the end */</span><br /><br />I'm lazy so now I'm just going to base some of this off of this <a href="http://www.qliktech.com/contents.aspx?id=58">tutorial</a><br /><br />So let's load in their nifty .<span class="blsp-spelling-error" id="SPELLING_ERROR_1">csv</span> file. It's the Country1.<span class="blsp-spelling-error" id="SPELLING_ERROR_2">csv</span>. Click the Tables Files button on the edit script screen, then browse to the Country1.<span class="blsp-spelling-error" id="SPELLING_ERROR_3">csv</span> and then you will notice it <span class="blsp-spelling-error" id="SPELLING_ERROR_4">automagically</span> detects that it is comma delimited so then just hit finish.<br /><br />Should look like<br /><br />LOAD Country,<br /> Capital,<br /> [Area(km.sq)],<br /> [Population(<span class="blsp-spelling-error" id="SPELLING_ERROR_5">mio</span>)],<br /> [Pop. Growth],<br /> Currency,<br /> Inflation,<br /> [Official name of Country]<br />FROM [C:\Tutorial_English v8\Application\Data Sources\Country1.<span class="blsp-spelling-error" id="SPELLING_ERROR_6">csv</span>] (<span class="blsp-spelling-error" id="SPELLING_ERROR_7">ansi</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_8">txt</span>, delimiter is ',', embedded labels, <span class="blsp-spelling-error" id="SPELLING_ERROR_9">msq</span>);<br /><br /><span style="font-weight: bold;">You will notice that this is an absolute path. If you delete this script, and then check the Relative Paths <span class="blsp-spelling-error" id="SPELLING_ERROR_10">checkbox</span> and rerun the wizard, you will notice it will generate a script like this.</span><br /><br />Directory;<br />LOAD Country,<br /> Capital,<br /> [Area(km.sq)],<br /> [Population(<span class="blsp-spelling-error" id="SPELLING_ERROR_11">mio</span>)],<br /> [Pop. Growth],<br /> Currency,<br /> Inflation,<br /> [Official name of Country]<br />FROM Country1.<span class="blsp-spelling-error" id="SPELLING_ERROR_12">csv</span> (<span class="blsp-spelling-error" id="SPELLING_ERROR_13">ansi</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_14">txt</span>, delimiter is ',', embedded labels, <span class="blsp-spelling-error" id="SPELLING_ERROR_15">msq</span>);<br /><br />Notice the Directory statement. A directory statement without a following path is going to search the same <span class="blsp-spelling-error" id="SPELLING_ERROR_16">dir</span> where your .<span class="blsp-spelling-error" id="SPELLING_ERROR_17">qvw</span> is saved to. You can also specify a directory to look in by typing<br /><br />Directory c:\<span class="blsp-spelling-error" id="SPELLING_ERROR_18">userfiles</span>\data;<br /><br /><span style="font-weight: bold;"><span class="blsp-spelling-error" id="SPELLING_ERROR_19">Ok</span> lets get tricky, now lets say we wanted to use a variable to load our .<span class="blsp-spelling-error" id="SPELLING_ERROR_20">csv</span></span><br /><br />let <span class="blsp-spelling-error" id="SPELLING_ERROR_21">myCSV</span> = '[C:\Tutorial_English v8\Application\Data Sources\Country1.<span class="blsp-spelling-error" id="SPELLING_ERROR_22">csv</span>]';<br /><br />LOAD Country,<br /> Capital,<br /> [Area(km.sq)],<br /> [Population(<span class="blsp-spelling-error" id="SPELLING_ERROR_23">mio</span>)],<br /> [Pop. Growth],<br /> Currency,<br /> Inflation,<br /> [Official name of Country]<br />FROM $(<span class="blsp-spelling-error" id="SPELLING_ERROR_24">myCSV</span>) (<span class="blsp-spelling-error" id="SPELLING_ERROR_25">ansi</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_26">txt</span>, delimiter is ',', embedded labels, <span class="blsp-spelling-error" id="SPELLING_ERROR_27">msq</span>);<br /><br />That's <span class="blsp-spelling-error" id="SPELLING_ERROR_28">kindof</span> silly though, but doable.<br /><br /><span class="blsp-spelling-error" id="SPELLING_ERROR_29">Ok</span>, so let's say we ran the script of one of those versions. If you are following the tutorial we should <span class="blsp-spelling-error" id="SPELLING_ERROR_30">addArea</span>(km.sq), Capital, Currency, and Population(<span class="blsp-spelling-error" id="SPELLING_ERROR_31">mio</span>). So now you can see the real fun of <span class="blsp-spelling-error" id="SPELLING_ERROR_32">qlikview</span>. For example, you can click on <span class="blsp-spelling-error" id="SPELLING_ERROR_33">amsterdam</span> and see that it has a population of 15.2 million and uses the Euro. And if you clear your selections (hitting the clear button) then you can click on the 15.2 and it will show you the reverse that the capital with a population of 15.2 is <span class="blsp-spelling-error" id="SPELLING_ERROR_34">amsterdam</span>. You can also clear all of your selections and then let's say click on the Euro and it will show you all the capitals. Click around, get a feel for how the data is connected. Isn't that marvelous!Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4501413345318918702.post-4097971140141794582008-08-18T13:13:00.000-07:002008-08-18T15:27:34.594-07:00Part 1So, after executing a Connect and a Select you can also use a <span style="font-weight: bold;">Load</span> statement.<br /><br />You can load directly from a file, You can load from a subsequent (following next) select or load statement, but it must follow immediately after. Can load from a previously loaded (resident) table, load directly from an <span class="blsp-spelling-error" id="SPELLING_ERROR_0">inline</span> load, or load from generated data.<br /><br />A quick <span class="blsp-spelling-error" id="SPELLING_ERROR_1">Inline</span> example is<br />Load * <span class="blsp-spelling-error" id="SPELLING_ERROR_2">Inline</span><br />[<span class="blsp-spelling-error" id="SPELLING_ERROR_3">CatID</span>, Category<br />0,Regular<br />1,Occasional<br />2,Permanent];<br /><br />In the <span style="font-weight: bold;">Load</span> script it is possible to rename one or more fields.<br /><br />Since <span class="blsp-spelling-error" id="SPELLING_ERROR_4">QlikView</span> puts a great deal of meaning into names (for associations) you should really learn these!<br /><br /><span style="font-weight: bold;">Load as</span>: means rename a specific field in that specific statement.<br /><br /><span style="font-weight: bold;">Alias</span> <fieldname> as <new> : means you rename all the occurrences of those fields with the names specified.<br /><br /><span style="font-weight: bold;">Rename Field</span>: Rename field <span class="blsp-spelling-error" id="SPELLING_ERROR_5">XAZ</span>0007 to Sales; (It can also use a mapping table)<br /><br />Now for my oh so awesome example.<br /><br />Create our favorite c:\Data.<span class="blsp-spelling-error" id="SPELLING_ERROR_6">txt</span> with notepad and type in<br /><br /><div style="text-align: left;"><blockquote><span class="blsp-spelling-error" id="SPELLING_ERROR_7">StupidName</span><br />1<br />2<br />3<br />4<br />5<br /></blockquote></div><br /><span style="font-weight: bold;">So now our load statement would look like this (to change <span class="blsp-spelling-error" id="SPELLING_ERROR_8">StupidName</span> to <span class="blsp-spelling-error" id="SPELLING_ERROR_9">BetterName</span>)</span><br /><br /><blockquote>LOAD <span class="blsp-spelling-error" id="SPELLING_ERROR_10">StupidName</span> as <span class="blsp-spelling-error" id="SPELLING_ERROR_11">BetterName</span><br />FROM C:\DATA.<span class="blsp-spelling-error" id="SPELLING_ERROR_12">txt</span> (<span class="blsp-spelling-error" id="SPELLING_ERROR_13">ansi</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_14">txt</span>, delimiter is '<br />', embedded labels, <span class="blsp-spelling-error" id="SPELLING_ERROR_15">msq</span>);</blockquote><br /><br /><span style="font-weight: bold;">or using Alias (Notice the Alias comes first!)</span><br /><br />Alias <span class="blsp-spelling-error" id="SPELLING_ERROR_16">StupidName</span> as <span class="blsp-spelling-error" id="SPELLING_ERROR_17">BetterAliasName</span>;<br /><br /><blockquote>LOAD <span class="blsp-spelling-error" id="SPELLING_ERROR_18">StupidName</span><br />FROM C:\DATA.<span class="blsp-spelling-error" id="SPELLING_ERROR_19">txt</span> (<span class="blsp-spelling-error" id="SPELLING_ERROR_20">ansi</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_21">txt</span>, delimiter is '<br />', embedded labels, <span class="blsp-spelling-error" id="SPELLING_ERROR_22">msq</span>);</blockquote><br /><span style="font-weight: bold;">Or using rename Field (Notice the rename goes after!)</span><br /><br /><blockquote>LOAD <span class="blsp-spelling-error" id="SPELLING_ERROR_23">StupidName</span><br />FROM C:\DATA.<span class="blsp-spelling-error" id="SPELLING_ERROR_24">txt</span> (<span class="blsp-spelling-error" id="SPELLING_ERROR_25">ansi</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_26">txt</span>, delimiter is '<br />', embedded labels, <span class="blsp-spelling-error" id="SPELLING_ERROR_27">msq</span>);<br /><br />rename field <span class="blsp-spelling-error" id="SPELLING_ERROR_28">StupidName</span> to <span class="blsp-spelling-error" id="SPELLING_ERROR_29">aRenamedName</span>;</blockquote><br /><span style="font-weight: bold;">And using a mapping table (Map comes first!)</span><br /><br /><blockquote><span class="blsp-spelling-error" id="SPELLING_ERROR_30">MyMap</span>:<br />mapping load * <span class="blsp-spelling-error" id="SPELLING_ERROR_31">inline</span> [<br />Old,New<br />'<span class="blsp-spelling-error" id="SPELLING_ERROR_32">StupidName</span>', '<span class="blsp-spelling-error" id="SPELLING_ERROR_33">aNewMappedName</span>'<br />];<br /><br />LOAD <span class="blsp-spelling-error" id="SPELLING_ERROR_34">StupidName</span><br />FROM C:\DATA.<span class="blsp-spelling-error" id="SPELLING_ERROR_35">txt</span> (<span class="blsp-spelling-error" id="SPELLING_ERROR_36">ansi</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_37">txt</span>, delimiter is '<br />', embedded labels, <span class="blsp-spelling-error" id="SPELLING_ERROR_38">msq</span>);<br /><br />rename fields using <span class="blsp-spelling-error" id="SPELLING_ERROR_39">MyMap</span>;</blockquote><br /><blockquote></blockquote><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><blockquote></blockquote>Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-4501413345318918702.post-68077174779987179312008-08-18T08:29:00.000-07:002008-08-19T10:11:01.273-07:00The beginningQlikview is an awesome product that I am continually trying to wrap my brain around. I find writing guides and tutorials is a good way to force myself to learn stuff so it here it goes.<br /><br /><span style="font-weight: bold;">Fundamentals</span><br /><br />Database: A database is simply a container of information stored in a structured format. <i>Database</i> is often used interchangeably with the term table.<br /><br />Unlike databases, QlikView does not allow explicit (very specific) definitions of table relationships. In a database these would happen through key fields. (The field that links tables together)<br /><br />QlikView automatically defines table relationships (<span style="font-weight: bold;">associations</span>) through fields that are <span style="font-weight: bold;">named the same</span>. Any fields with the same name (case sensitive) form a key field that results in an outer join between the tables.<br /><br />So there are a few tricks you need to perform with QlikView. If the fields are already named the same and that's the relationship that you want, then you are set.<br /><br />If the fields are not named the same then you need to name them. (<span style="font-family:Trebuchet MS,Arial,Helvetica;"><span style=";font-family:Verdana;font-size:85%;" >you must rename one of the fields in the script using an alias statement or an as clause)</span></span><br /><br />And if relationships are happening that you don't want then you need to prevent them.<br /><br /><span style="font-weight: bold;">Association</span> in QlikView is basically the same thing as a SQL <span style="font-style: italic;">outer join</span>. With an outer join, <span class="clippingstext">rows are returned even when there are no matches through the JOIN critieria on the second table.<br /><br />Let's get our feet wet. We first want to load some data into QlikView. You can load in a ton of different file formats into QlikView. Let's go file new, and create a new QlikView Document.<br />Now hit Cntrl+e to edit the script.<br /><br />You now are looking at the Edit Script window. You can reload your data, or debug your loading, or add new tabs (Script is executed left to right, tab by tab)<br /><br />At the bottom is a toolkit for generating load scripts. It's divided into three sections, getting data from a Database, data from files, or inline data.<br /><br />One handy thing to note is the relative path check box, this allows you to reference files without having to use absolute paths i.e. file.csv instead of c:\myfolder\qlik\file.csv<br /><br />Ok, let's look at some script syntax. '<span style="font-weight: bold;">Connect</span>' is your friend.<br /><br /></span><ul><li><span class="clippingstext">Connect creates a database connection, either ODBC or OLE DB. </span></li><li><span class="clippingstext">Once you are using a 'connect' it is used until a new 'connect' is defined.</span></li><li><span class="clippingstext">If you use the wizard and select 'scramble connect user credentials' then it will scramble it. If you enter it in manually, you must use the unscrambled.</span></li></ul>Example:<br />ODBC CONNECT TO [CSMR SQL Server] (XUserId IS IJQNUZFMDA, XPassword IS KBYbFSJMNB);<br /><span class="clippingstext"><br />So, first you <span style="font-weight: bold;">Connect</span> and then you <span style="font-weight: bold;">Select<br /><br /></span></span><ul><li><span class="clippingstext">The select statement is used to identify fields and tables to load from the currect DB connection.</span></li><li><span class="clippingstext">Any valid select statment is legit, but... some ODBC drivers can impose limitations!</span></li><li><span class="clippingstext">Select statements cannot use QlikView functions!</span></li><li><span class="clippingstext"><span style="font-weight: bold;">Field names and table names must be bracked by quotes or square brakcets if they contain spaces or special characters!<span style="font-weight: bold;"></span></span></span></li><li><span class="clippingstext"><span style="font-weight: bold;"></span>distinct, as, where, group by, order by, or union are sometimes not supported.</span></li></ul>Ok, lets put this into practice. Let's make the most boring QlikView possible. Open up notepad and then type 1 and then save the document as c:\Data.txt<br /><br />Now, open up Qlikview, go file, new document. Hit control + e to edit the script, hit the table files button, navigate to your data.txt, then change the Options ->Labels to None and then hit finish.<br /><br />Your script should be something like<br /><br />LOAD @1<br />FROM C:\DATA.<span class="blsp-spelling-error" id="SPELLING_ERROR_0">txt</span> (<span class="blsp-spelling-error" id="SPELLING_ERROR_1">ansi</span>, <span class="blsp-spelling-error" id="SPELLING_ERROR_2">txt</span>, delimiter is '\t', no labels, <span class="blsp-spelling-error" id="SPELLING_ERROR_3">msq</span>);<br /><br />Then hit OK. Now hit Control + R to reload in all that fantastic data. It will ask you to save, so save it as something. Now right click anywhere on your blank page and choose 'New sheet object, New List Box' It will default to using '@1' as your field then hit <span class="blsp-spelling-error" id="SPELLING_ERROR_4">Ok</span>. You now have a list box with the label of '@1' and the value of 1. <span class="blsp-spelling-error" id="SPELLING_ERROR_5">Tada</span>, your first <span class="blsp-spelling-error" id="SPELLING_ERROR_6">QlikView</span>. Pretty boring huh. Well click on the 1, wow it turns green. Yup still pretty boring! But ya gotta start somewhere.<br /><br /><br /><br /><br /><br /><br /><br /><br /><span class="clippingstext"><span style="font-weight: bold;"><br /></span><br /><br /><br /><br /></span>Unknownnoreply@blogger.com1