<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
    <channel>
        <title>Storie di QlikView</title>
        <link>http://blog.querit.it/</link>
        <description>Il primo blog in assoluto dedicato a QlikView.
Trucchetti ed esperienze di sviluppatori Querit.

</description>
        <language>en-us</language>
        <copyright>Copyright 2011</copyright>
        <lastBuildDate>Fri, 05 Jun 2009 19:14:07 +0100</lastBuildDate>
        <generator>http://www.sixapart.com/movabletype/</generator>
        <docs>http://www.rssboard.org/rss-specification</docs>
        
        <item>
            <title>Prezzi delle licenze di QlikView 9</title>
            <description><![CDATA[<p>Da <b>QlikView 9</b> ci sono importanti novità sui costi delle licenze. Il listino prezzi è stato <i>completamente rivisto</i>, unificando i tipi delle licenze presenti fino ad oggi.<br />
Se volete un preventivo specifico per le esigenze della vostra azienda sentitevi liberi di <a href="mailto:%69%6E%66%6F%40%71%75%65%72%69%74%2E%69%74">scriverci</a> o, in alternativa, compilate il modulo verde a destra di questa pagina.</p>]]></description>
            <link>http://blog.querit.it/2009/06/costo-licenza-qlikview-9.html</link>
            <guid>http://blog.querit.it/2009/06/costo-licenza-qlikview-9.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">costi</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">licenze</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">prezzi</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">qlikview 9</category>
            
            <pubDate>Fri, 05 Jun 2009 19:14:07 +0100</pubDate>
        </item>
        
        <item>
            <title>Ordinamento di stringhe</title>
            <description><![CDATA[<p style="margin-bottom: 0cm">Io me ne sono accorto solo
recentemente... QlikView è senza dubbio un prodotto originale, ma
che lo fosse anche nell'<span class="Apple-style-span" style="font-weight: bold;">ordinamento delle stringhe</span> ...non me lo
aspettavo !</p>
<p style="margin-bottom: 0cm"><br /></p><p style="margin-bottom: 0cm">Provate a chiedergli di ordinare 
questi valori:</p>
<p style="margin-bottom: 0cm"><br />
</p><pre><span class="Apple-style-span" style="font-weight: bold;">load </span>* <span class="Apple-style-span" style="font-weight: bold;">inline </span>[
<p style="margin-bottom: 0cm">Stringa</p><p style="margin-bottom: 0cm">002501A76</p><p style="margin-bottom: 0cm">1ABAC2244</p><p style="margin-bottom: 0cm">2500A7600</p><p style="margin-bottom: 0cm">A BA00000</p><p style="margin-bottom: 0cm">A-B000000</p>];</pre><pre><p style="margin-bottom: 0cm"><span class="Apple-style-span" style="font-family: arial; white-space: normal; ">Vi aspettereste che vengnano presentati
esattamente come sono scritti, o eventualmente potreste avere il
dubbio se le cifre vanno prima delle lettere, oppure il contrario</span></p></pre>
<p style="margin-bottom: 0cm">Invece il risultato è questo:</p><p style="margin-bottom: 0cm"></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><br /></span>
<p></p>
<p style="margin-bottom: 0cm"></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="aa.gif" src="http://blog.querit.it/aa.gif" width="107" height="116" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span>
<p></p>
<p style="margin-bottom: 0cm">Quando l'ho visto la prima volta ho
pensato: <span class="Apple-style-span" style="font-style: italic;">"lo fa a caso"</span>; e subito dopo <span class="Apple-style-span" style="font-style: italic;">"è un baco della
release"</span></p>
<p style="margin-bottom: 0cm"><br />
</p>
<p style="margin-bottom: 0cm">Invece la spiegazione della casa madre
è stata circostanziata: 
</p><p style="margin-bottom: 0cm"><br /></p>
<p style="margin-bottom: 0cm"><span class="Apple-style-span" style="font-style: italic;">"L'ordinamento in Qlikview viene
fatto sul carattere (da sinistra a destra) in base alle impostazioni
locali, <span class="Apple-style-span" style="font-weight: bold;">ma solo i caratteri alfanumerici sono interessanti </span>per la
sequenza di ordinamento: tutti gli altri caratteri non-alfanumerici
vengono gestiti nello stesso modo, sullo stesso livello. Ad esempio:
"A-B" verrà ordinato prima "A BA" perché "-" e ""
verranno trattati in maniera uguale.</span></p>
<p style="margin-bottom: 0cm"> 
</p>
<p style="margin-bottom: 0cm"><span class="Apple-style-span" style="font-style: italic;">Se la stringa contiene valori numerici,
<span class="Apple-style-span" style="font-weight: bold;">QlikView ordina la parte numerica della stringa, prima di applicare
l'ordinamento alfanumerico.</span> Questo spiega il perché 1ABAC2244
viene ordinate prima di 002500A76 nell'esempio. La parte numerica
di 002500A76 sarà 002500 (o 2500) che verrà confrontata con 1
(parte numerica di 1ABAC2244).</span></p>
<p style="margin-bottom: 0cm"><span class="Apple-style-span" style="font-style: italic;"><br /></span>
</p>
<p style="margin-bottom: 0cm"><span class="Apple-style-span" style="font-style: italic;">Tutti i valori numeri identici ricevono
lo stesso simbolo, indifferentemente dalla loro presentazione - ad
esempio 0025, 025, 25 etc. sono considerati identici ed i simboli
usati per rappresentarli è semplicemente quello che appare nel primo
array ("0025" in questo caso) e questo implica che questi valori
vengono raggruppati condividendo uno stesso simbolo ..."</span></p>
<p style="margin-bottom: 0cm"><br />
</p><p style="margin-bottom: 0cm"><br /></p>
<p style="margin-bottom: 0cm">E se uno volesse l'ordinamento classico
?</p><p style="margin-bottom: 0cm"><br /></p><p style="margin-bottom: 0cm">Se invece provate a fare il rank(Stringa), l'ordinamento è ancora diverso....</p><p style="margin-bottom: 0cm"></p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="bb.gif" src="http://blog.querit.it/bb.gif" width="107" height="116" class="mt-image-center" style="text-align: center; display: block; margin: 0 auto 20px;" /></span><p></p><div>Che dire ? </div><div>Forse è un brutto sogno... </div>]]></description>
            <link>http://blog.querit.it/2009/05/ordinamento-di-stringhe.html</link>
            <guid>http://blog.querit.it/2009/05/ordinamento-di-stringhe.html</guid>
            
            
            <pubDate>Sat, 23 May 2009 23:58:20 +0100</pubDate>
        </item>
        
        <item>
            <title>QlikView 9</title>
            <description><![CDATA[<p><b>QlikView 9</b> ha infine raggiunto lo stato di <i>release candidate</i>.<br />
Uscirà fra qualche mese, ma in Italia sarà probabilmente annunciato ufficialmente verso fine anno.</p>

<p>Ha così tante novità che se chiedete a più sviluppatori quali siano le cose nuove, ognuno di loro vi dirà qualcosa di diverso... e avranno tutti ragione. Provare per credere.</p>

<p>Ecco le innovazioni principali secondo il mio punto di vista:</p>


<ol>
<li>forte incentivo all'utilizzo del server (ci saranno novità per le licenze)</li>
<li>client per iPhone (già disponibile nell'App Store, si può collegare a QlikView Server precedenti alla 9, ad esempio 8.50)</li>
<li>tutti i client hanno ora le stesse funzionalità, mentre prima il client Java (ad esempio) era indietro rispetto al plugin per Internet Explorer; anche la grafica è stata resa omogenea</li>
<li>possibilità di aprire un altro documento mantenendo le selezioni di quello attivo (le grandi aziende che analizzano tutti i loro processi con QlikView saranno con le bave alla bocca, era una funzionalità molto richiesta)</li>
<li><i>Dynamic Data Update</i>: ricaricamenti in background dei dati, qualcosa concettualmente simile al <i>Partial Reload</i> ma che potrà anche eliminare righe (era il grosso limite del <i>Partial Reload</i>), il Server invierà al client i dati in <i>push</i> (modalità asincrona, automaticamente)</li>
<li>le <i>Azioni</i> permetteranno di implementare la maggior parte delle funzionalità che prima si creavano con le macro, in maniera decisamente più elegante</li>
<li>possibilità di inserire dei link http (tramite azione collegata ad un pulsante oppure come tipo di visualizzazione dei dati di una colonna in una tabella)</li>
<li><i>Sparklines</i>: possibilità di inserire un grafico con una dimensione all'interno della cella di una tabella (si decide la dimensione nella rappresentazione dell'espressione)</li>
<li>nuove possibilità di rappresentazione grafiche attraverso i <i>Trellis</i> (grafici iterati su una dimensione)</li>
<li>possibilità di esportare/importare un <span class="caps">XML </span>con gli sheet e gli oggetti di presentazione del .qvw (ciò apre le porte a due cose: generazione programmatica di documenti QlikView; inserimento di documenti QlikView in sistemi di controllo versione, seppur in modo "manuale" esportando ed importando... Ma c'è potenziale per superare anche questo ostacolo in versioni future)</li>
<li>le <i>listbox</i> potranno mostrare in <i>visualizzazione ad albero</i> i valori dei campi generati con <i>Hierarchic Load</i> (non solo, ad esempio analizzando i log di un webserver si potrà usare la visualizzazione ad albero col separatore / per analizzare gli <span class="caps">URL </span>delle richieste)</li>
<li>eliminato il limite di due miliardi di righe nelle tabelle (non che io abbia mai visto qualche documento che lo raggiungesse), ora sul serio non c'è limite se non quello imposto dalla <span class="caps">RAM </span>del server</li>
<li>non sarà più necessaria la licenza professional per creare oggetti su QlikView Server, e sarà possibile creare anche degli sheet nuovi (fino ad oggi non si poteva fare, e si aggirava il problema prevedendo già uno sheet vuoto per personalizzazioni dei singoli utenti)</li>
<li>l'utente che crea oggetti in un documento sul server potrà decidere se mostrarli selettivamente agli utenti che vorrà (invece che a tutti oppure solo a sé stesso)</li>
<li>nuovo tipo di oggetto: campo di ricerca, permetterà di creare una casellina che cercherà in tutti i campi del documento, oppure in determinati campi impostati nelle proprietà, mostrando i risultati dei singoli campi (utile ad esempio per cercare contemporaneamente in un campo codice e in un campo descrizione, senza doverli necessariamente concatenare in un terzo campo)</li>
<li>man mano che si fa una ricerca in un campo, la stringa di testo cercato verrà evidenziata in giallo nei risultati</li>
<li><i>wizard</i> per creare grafici a boxplot oppure candele giapponesi (che era comunque già possibile fare a mano, si veda <a href="http://questo+post+di+più+di+un+anno+fa">http://blog.querit.it/2008/03/grafici-a-candele-giapponesi.html</a></li>
<li>eseguendo QlikView senza licenza si attiverà QlikView Personal: sarà possibile creare documenti senza alcuna limitazione, ma non potranno essere aperti da altri utenti; sarà possibile pubblicarli e scaricarli su un sito della QlikTech dedicato ad applicazioni QlikView opensource</li>
</ol>




<p>Sto scrivendo a memoria, quindi di sicuro ho dimenticato qualcosa.</p>

<p>E a voi quale novità in particolare sembra innovativa?</p>]]></description>
            <link>http://blog.querit.it/2009/05/qlikview-9.html</link>
            <guid>http://blog.querit.it/2009/05/qlikview-9.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">qlikview 9</category>
            
            <pubDate>Sat, 23 May 2009 18:40:05 +0100</pubDate>
        </item>
        
        <item>
            <title>QlikTech QlikView e HP Neoview</title>
            <description><![CDATA[<p>Era metà Maggio 2007 quando HP annunciò la sua nuova piattaforma di <i>data warehouse</i>, <strong>Neoview</strong>. Cercava di essere una soluzione verticale e <i>all-in-one</i>, ideale per grandi aziende che volessero basare tutti i processi, non solo quelli decisionali, sulla <i>Business Intelligence</i>; chiaramente HP era ben felice di metterci sia il software che l'hardware.<br />
Diverso approccio aveva inizialmente <strong>QlikView</strong>, apprezzato per lo più da medie aziende a causa di un limite delle tecnologie di allora più che per un <i>design flaw</i>, ma già mentre <strong>Neoview</strong> nasceva molte grandi aziende avevano adottato <strong>QlikView</strong> per gestire enormi moli di dati, dimostrando l'eccellenza del design lungimirante.</p>

<p>Il risultato? Forse perché entrambi i sistemi puntano allo sviluppo di applicazioni trasversali in tempo breve, forse perché (ora) sono entrambi ideali per grandi aziende, ma poche ore fa QlikTech ha annunciato la partnership con HP e la possibilità per <strong>QlikView</strong> di caricare dati da <strong>Neoview</strong>.</p>

<p>Il mio parere? Un ottimo accordo in tempi di crisi, mutua pubblicità ed un modo per HP per risollevarsi (si è aggrappata ad una scala mobile); una notizia forse meno interessante dal punto di vista puramente tecnico.<br />
Mi riservo di cambiare idea in futuro analizzando qualche caso pratico, ma per ora mi sembra soltanto l'ennesimo <i>custom data source</i>.</p>

<p>E voi che ne pensate?</p>]]></description>
            <link>http://blog.querit.it/2009/02/qliktech-qlikview-hp-neoview.html</link>
            <guid>http://blog.querit.it/2009/02/qliktech-qlikview-hp-neoview.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">hp</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">partnership</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">qliktech</category>
            
            <pubDate>Mon, 09 Feb 2009 20:49:56 +0100</pubDate>
        </item>
        
        <item>
            <title>Buffer load</title>
            <description><![CDATA[<p> <b><big>IT</big></b></p>

<p>Spesso sviluppando capita di avere a che fare con caricamenti molto lenti, ad esempio da viste con molte join (che sarebbe opportuno rifare a livello <strong>QlikView</strong>, ma questa è un'altra storia) oppure server o <span class="caps">DBMS </span>obsolescenti.<br />
Durante la fase di sviluppo si fanno molti ricaricamenti consecutivi per provare piccole modifiche, e perdere tempo risulta inutile, inefficiente, fastidioso. Per aggirare il problema è possibile dire a <strong>QlikView</strong> di ricordarsi ciò che gli ha ritornato una <code>load</code> (o una <code>select</code>) tramite il comando <code>buffer</code>:</p>

<blockquote><p>buffer (stale 8 hours) sql select * from tabella;<br />
buffer (stale 1 hour) load id, capitalize(desc) as desc from tab2.qvd (qvd);</p></blockquote>

<p>Così facendo <strong>QlikView</strong> la prima volta che viene eseguito crea un <em><span class="caps">QVD</span></em> temporaneo e, finché non "scade" (la durata viene specificata fra le parentesi) dalla seconda volta in poi carica da quello anziché dalla vera fonte dati.<br />
E caricare da <em><span class="caps">QVD</span></em> significa caricare a circa 30 megabyte al secondo, mentre una vista pesante potrebbe restituire cento righe al secondo, che magari sono soltanto 2 kb.<br />
Se dovesse essere modificato il testo della load (ad esempio viene caricato un campo in più, o viene usato <code>capitalize()</code> per un campo di testo) <strong>QlikView</strong> sarà sufficientemente furbo da ricaricare dalla vera fonte dati e sostituire il buffer.</p>

<p><b><big>EN</big></b></p>

<p>Quite often when developing you keep reloading your document, just to test slight changes. Having to wait slow <span class="caps">SELECT</span>s is really upsetting, so here is a way to tell <strong>QlikView</strong> not to reload them every single time, but rather save its content on a fast <em><span class="caps">QVD</span></em> when the query itself is unchanged:</p>

<blockquote><p>buffer (stale 8 hours) sql select * from tabella;<br />
buffer (stale 1 hour) load id, capitalize(desc) as desc from tab2.qvd (qvd);</p></blockquote>

<p><strong>QlikView</strong> will reuse the same data for 8 and 1 hours (in the example above).</p>]]></description>
            <link>http://blog.querit.it/2008/12/buffer-load-select.html</link>
            <guid>http://blog.querit.it/2008/12/buffer-load-select.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">buffer</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">load</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">script</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">select</category>
            
            <pubDate>Fri, 19 Dec 2008 15:17:29 +0100</pubDate>
        </item>
        
        <item>
            <title>Qlik bloccato. non disperare</title>
            <description><![CDATA[<div><span class="Apple-style-span" style="font-weight: bold; ">IT</span></div><div>qualche volta accade che dopo un reload o la modifica ad un grafico, l'applicazione rimane bloccata, senza rispondere a nessun input,magari dopo aver fatto modifiche importanti.Si è quindi costretti a terminare il programma attraverso il task manager.In tali situazioni premendo CTRL+S riesci a salvare comunque il lavoro fatto ( ovviamente se vuoi salvare).</div><div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">EN</span></div><div>Sometimes Qlikview environment doesn't accept any input and it ramains blocked. It would be happen after you get a reload or you modify a chart. You have to kill the application by Task Manager. Before you kill the application , try the keystroke CTRL+S : you could able to save the application anyway ( obviusly if you would).</div><div><br /></div><div><br /></div>]]></description>
            <link>http://blog.querit.it/2008/11/qlik-bloccato-non-disperare.html</link>
            <guid>http://blog.querit.it/2008/11/qlik-bloccato-non-disperare.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">qlikview bloccato bug</category>
            
            <pubDate>Wed, 19 Nov 2008 11:28:37 +0100</pubDate>
        </item>
        
        <item>
            <title>Boxplot e Delivery Time</title>
            <description><![CDATA[<div><span class="Apple-style-span" style="font-weight: bold;">IT</span></div><div>Supponiamo di essere il reponsabile acquisti della ACME inc. . Dobbiamo valutare 4 aziende per la fornitura di Nitrato di ammonio,fondamentale per i nostri prodotti. Il fornitore che consegna in minor tempo e con più affidabilità il prodotto diventerà il nostro partner di fiducia.</div><div><div>Nei mesi di maggio e giugno abbiamo fatto ordini e ricevuto consegne. Ora siamo pronti per l'analisi dei dati. </div><div><br /></div><div><div>OrderDelivery:</div><div>load * INLINE [</div><div>SUPPLIER,DATE ORDER,DATE DELIVERY</div><div>Nitro &amp; C.,01/05/08,02/05/08</div><div>Nitro &amp; C.,11/05/08,12/05/08</div><div>Nitro &amp; C.,14/05/08,16/05/08</div><div>Nitro &amp; C.,18/05/08,21/05/08</div><div>Nitro &amp; C.,23/05/08,29/05/08</div><div>Nitro &amp; C.,02/06/08,03/06/08</div><div>Nitro &amp; C.,04/06/08,07/06/08</div><div>Nitro &amp; C.,10/06/08,12/06/08</div><div>Nitro &amp; C.,16/06/08,19/06/08</div><div>Nitro &amp; C.,19/06/08,23/06/08</div><div>Nitro &amp; C.,22/06/08,26/06/08</div><div>Nitro &amp; C.,02/05/08,06/05/08</div><div>Ammonium Speed,03/05/08,04/05/08</div><div>Ammonium Speed,12/05/08,13/05/08</div><div>Ammonium Speed,15/05/08,16/05/08</div><div>Ammonium Speed,19/05/08,23/05/08</div><div>Ammonium Speed,27/05/08,29/05/08</div><div>Ammonium Speed,05/06/08,07/06/08</div><div>Ammonium Speed,03/06/08,06/06/08</div><div>Ammonium Speed,11/06/08,16/06/08</div><div>Ammonium Speed,13/06/08,18/06/08</div><div>Ammonium Speed,19/06/08,06/07/08</div><div>Ammonium Speed,22/06/08,23/06/08</div><div>Ammonium Speed,12/05/08,13/05/08</div><div>Nitram,03/05/08,07/05/08</div><div>Nitram,12/05/08,16/05/08</div><div>Nitram,15/05/08,19/05/08</div><div>Nitram,19/05/08,22/05/08</div><div>Nitram,27/05/08,01/06/08</div><div>Nitram,05/06/08,10/06/08</div><div>Nitram,03/06/08,07/06/08</div><div>Nitram,11/06/08,15/06/08</div><div>Nitram,13/06/08,17/06/08</div><div>Nitram,19/06/08,23/06/08</div><div>Nitram,22/06/08,28/06/08</div><div>Nitram,12/05/08,19/05/08</div><div>NH4NO3,03/05/08,09/05/08</div><div>NH4NO3,12/05/08,13/05/08</div><div>NH4NO3,15/05/08,21/05/08</div><div>NH4NO3,19/05/08,22/05/08</div><div>NH4NO3,27/05/08,06/06/08</div><div>NH4NO3,05/06/08,06/06/08</div><div>NH4NO3,03/06/08,12/06/08</div><div>NH4NO3,11/06/08,13/06/08</div><div>NH4NO3,13/06/08,19/06/08</div><div>NH4NO3,19/06/08,27/06/08</div><div>NH4NO3,22/06/08,29/06/08</div><div>NH4NO3,12/05/08,19/05/08</div><div>];</div><div><br /></div></div><div><br /></div></div><div><span class="Apple-style-span" style="font-weight: bold;">EN</span></div><div>We pretend to be the ACME Inc. purchasing department manager. We're testing four suppliers for Ammonium nitrate, primary row material for our company. Supplier with best performance in delivery time and reliability will be our partner.We purchase Nitrate on may and june from these four supplier. Now we analyze data to choose the partner.</div><div> </div><div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">IT</span></div><div>Ipotizziamo di affidarci alla media statistica del tempo di consegna. La media migliore appartiene a Nitro&amp; C. . Test concluso? Abbiamo scelto il nostro partner?</div><div><span class="Apple-style-span" style="font-weight: bold;">EN</span></div><div>At the begining we look at mean of delivey time for each supplier. Ntiro &amp; C. seems to have the best results.  Test finished? We've choose the partner?</div><div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="mean.GIF" src="http://blog.querit.it/mean.GIF" width="196" height="79" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></span></div><div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">IT</span></div><div>Proviamo a utilizzare un classico strumento di statistica descrittiva: il boxplot.</div><div>Questo strumento permette di evidenziare la distribuzione su misure quali mediana, I e III quartile e limiti di tolleranza,i cosidetti baffi. Dati oltre i baffi </div><div>sono considerati outlier o dati anomali.</div><div>Ulteriori info a http://en.wikipedia.org/wiki/Box_plot</div><div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">EN</span></div><div>We decide to use  boxplot a classic tool in descriptive statistics. Boxplot is a convenient way of graphically depicting</div><div>groups of numerical data through their five-number summaries (the smallest observation, lower quartile (Q1), median (Q2), upper quartile (Q3), and largest observation) ( http://en.wikipedia.org/wiki/Box_plot)</div><div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">IT</span></div><div>In Qlikview creiamo un combo Chart. Impostiamo come dimensione SUPPLIER e generiamo la seguente espressione fractile([DELIVERY TIME],0.75), rappresentante il III° quartile.</div><div>Dopodichè flagghiamo la check Boxplot. L'espressione diventerà una misura con 5 sotto-espressioni, rappresentanti le 5 misure del boxplot come segue </div><div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">EN</span></div><div>In Qlikview we create a Combo Chart and create the following expression: Fractile(Total &lt;SUPPLIER> [DELIVERY TIME],0.75) this represent the III° quartile. Then we flag the boxplot check and finally we set the other four expressions.</div><div><br /></div><div>I°quartile :fractile([DELIVERY TIME],0.25)</div><div>Mediana (Median ) : median([DELIVERY TIME])</div><div>Upper Whisker : fractile([DELIVERY TIME],0.75) + 1.5 *(fractile([DELIVERY TIME],0.75)-fractile([DELIVERY TIME],0.25))</div><div>Lower whisket : fractile([DELIVERY TIME],0.25) - 1.5 *  (fractile([DELIVERY TIME],0.75)-fractile([DELIVERY TIME],0.25))</div><div><br /></div><div>Ora siamo pronti per l'analisi.</div><div>Now we analize data.</div><div><br /></div><div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://blog.querit.it/boxplot21.html" onclick="window.open('http://blog.querit.it/boxplot21.html','popup','width=722,height=473,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://blog.querit.it/assets_c/2008/11/boxplot2-thumb-722x473.gif" width="722" height="473" alt="boxplot2.GIF" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a></span></div><div><br /></div><div><div><span class="Apple-style-span" style="font-weight: bold;">IT</span></div><div>Nitro &amp; C. conferma l'indicazione data dalla media. Ma Ammonium speed possiede una mediana più bassa.  Inoltre presenta un dato outlier a 17 giorni,</div><div>ben al dì la della concentrazione dei tempi di consegna. Escludendo tale dato, la media di Ammonium è la più performante. Nitram, pur avendo tempi di consegna più alti, ha una variabilità esigua. La certezza della consegna è assicurata. </div><div>NH4NO3 ha prestazioni basse rispetto gli altri tre fornitori e alta variabilità.</div><div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">EN</span></div><div>The Boxplot Tecnique show us that Ammonium could be the best supplier: Median , I° and III° quartile show us the better performance the other Supplier. </div><div>But a data results very outside from the Ammonium usual performance in delivery.</div><div>If we exclude this data the Ammonium speed delivery time mean becomes the better than the others supplier ones. </div><div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">IT</span></div><div>Chi scegliere dunque? Concentrerei la mia attenzione sui primi due fornitori. Io investigherei sul dato outlier di Ammonium speed. Potrebbe essere un dato inserito sbagliato. Poi sceglierei o Ammonium speed o Nitro &amp; C.</div><div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">EN</span></div><div>Who choose? May be Ammonium speed outlier data is only a wrong data or something strange happened. After investigation on that outlier we will choose Nitro &amp; C. or Ammonium speed.</div><div> </div></div><div><br /></div><div><br /></div> ]]></description>
            <link>http://blog.querit.it/2008/11/boxplot-e-delivey-time.html</link>
            <guid>http://blog.querit.it/2008/11/boxplot-e-delivey-time.html</guid>
            
            
            <pubDate>Sun, 02 Nov 2008 17:19:55 +0100</pubDate>
        </item>
        
        <item>
            <title>Conteggio distinct progressivo - Count distinct...progressive</title>
            <description><![CDATA[<span class="Apple-style-span" style="font-weight: bold;"><span class="Apple-style-span" style="font-family: '-editor-proxy';">IT</span></span><div><span class="Apple-style-span" style="font-family: -editor-proxy; font-weight: bold;"><br /></span><div>Un caso d'uso particolare della funzione <span class="Apple-style-span" style="font-weight: bold;">Count([distinct] expression)</span>, si ha quando vogliamo estendere il conteggio "a progressivo".<div><br /><div>Ad esempio:</div><div><span class="Apple-style-span" style="font-style: italic;">"quanti clienti ci sono in gennaio; quanti ce ne sono <span class="Apple-style-span" style="font-weight: bold;">fino a </span>febbraio; ... "</span><br /><div><br /></div><div>Purtroppo le funzioni di accumulo nelle chart sono disponibili solo per le sum()</div><div><br /></div><div>Che fare ?</div><div><br /></div><div>Quella che propongo è una soluzione brutale... a voi propormi qualcosa di più elegante</div><div><br /></div><div>Supponiamo di avere questi dati:</div><div><br /></div><div><div><span class="Apple-style-span" style="font-style: italic;">Vendite:</span></div><div><span class="Apple-style-span" style="font-weight: bold;">load </span>* inline [</div><div>mese, cliente</div><div>2, A</div><div>2, B</div><div>3, B</div><div>3, D</div><div>11,A</div><div>11,D</div><div>11,F];</div><div><br /></div><div>io faccio così:</div><div><br /></div><div><div><span class="Apple-style-span" style="font-style: italic;">ConteggioClienti:</span></div><div><span class="Apple-style-span" style="font-weight: bold;">load </span><span class="Apple-style-span" style="font-weight: bold;">distinct</span></div><div> mese + iterNo() - 1 as mese</div><div>,cliente as _cliente</div><div>,1 as ctrCliente</div><div><span class="Apple-style-span" style="font-weight: bold;">resident </span>Vendite </div><div><span class="Apple-style-span" style="font-weight: bold;">while </span>iterNo() &lt;= 13-mese;</div><div><br /></div><div>In pratica mi creo una tabella di appoggio, in cui per ogni mese colleziono tutti i diversi valori del codice da conteggiare, e la cifra 1 per contarli in modo più efficiente.</div><div>iterNo() mi serve per replicare i clienti su tutti i mesi, fino a fine anno.</div><div><br /></div><div>il risultato è questo:</div><div><br /></div><div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="ProgressiveCountDistinct.gif" src="http://blog.querit.it/ProgressiveCountDistinct.gif" width="282" height="174" class="mt-image-none" style="" /></span></div><div><br /></div><div><br /></div><div><span class="Apple-style-span" style="font-weight: bold;">EN</span></div><div><br /></div><div>There is a very specific use case, for the function: <span class="Apple-style-span" style="font-weight: bold; ">count([distinct] expression)</span>, when a "progressive" counting is requested.</div><div><div><br /><div>For exemple:</div><div><span class="Apple-style-span" style="font-style: italic; ">"how many customer you have in gen, how many <span class="Apple-style-span" style="font-weight: bold;">up to</span> feb, etc... "</span><br /><div><br /></div><div>Unfortunately, for charts,  the "accumulate" options are avalable only when you use sum() aggregate functions..</div><div><br /></div><div>How to do ?</div><div><br /></div><div>I will sugget you a dirty solution...  I am sure you can give me a better one !</div><div><br /></div><div>Let's have this data:</div><div><br /></div><div><div><span class="Apple-style-span" style="font-style: italic; ">Sales:</span></div><div><span class="Apple-style-span" style="font-weight: bold; ">load </span>* inline [</div><div>month customer</div><div>2, A</div><div>2, B</div><div>3, B</div><div>3, D</div><div>11,A</div><div>11,D</div><div>11,F];</div><div><br /></div><div>this is my suggestion:</div><div><br /></div><div><div><span class="Apple-style-span" style="font-style: italic; ">CountingCustomers:</span></div><div><span class="Apple-style-span" style="font-weight: bold; ">load </span><span class="Apple-style-span" style="font-weight: bold; ">distinct</span></div><div> month + iterNo() - 1 as month</div><div>,customer as _customer</div><div>,1 as ctrCustomer<span class="Apple-style-span" style="font-weight: bold; "></span></div><div><span class="Apple-style-span" style="font-weight: bold; ">resident Sales</span> </div><div><span class="Apple-style-span" style="font-weight: bold; ">while </span>iterNo() &lt;= 13-month;</div><div><br /></div><div>Basically, I loaded a table with, for each month, the distinct codes to be counted.</div><div>I used the field ctrCustomer at 1, for best counting.</div><div>I used iterNo() to replicat customers code for every month, up to end of the year.</div><div><br /></div><div>;-)</div></div></div></div></div></div></div></div></div></div></div></div>]]></description>
            <link>http://blog.querit.it/2008/10/conteggio-distinct-progressivo.html</link>
            <guid>http://blog.querit.it/2008/10/conteggio-distinct-progressivo.html</guid>
            
            
            <pubDate>Wed, 08 Oct 2008 00:07:02 +0100</pubDate>
        </item>
        
        <item>
            <title>Gestione delle date - Handling dates</title>
            <description><![CDATA[<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><img alt="calendar.jpg" src="http://blog.querit.it/2008/10/01/calendar-thumb-119x100.jpg" width="119" height="100" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></span><b><big>IT</big></b></p>

<p><strong>QlikView</strong> gestisce le date come il numero (decimale) di giorni passati dal 30 Dicembre 1899. Non ho mai capito perché, è una scelta abbastanza strana. Speravo che fosse un tributo a qualche evento interessante del 30 dicembre 1899, ma l'unico fatto apparentemente rilevante è la morte di un politico comunista svedese... Che delusione.<br />
Tornando a noi, ciò significa che:</p>


<ul>
<li>il giorno 2 è il primo Gennaio 1900 a mezzanotte</li>
<li>il giorno 2.5 è il primo Gennaio 1900 a mezzogiorno</li>
</ul>



<p>Ne consegue un gran numero di proprietà comode per elaborare date, ma giocando con una data come se fosse un numero, la sua rappresentazione diventa numerica. Per tornare alla rappresentazione di data basta mettere attorno <code>date()</code> (o <code>timestamp()</code> se vogliamo mostrare anche l'ora; oppure impostare il formato nell'oggetto che mostra il campo con la data in questione).</p>

<p>Qualche esempio:</p>


<ul>
<li><code>floor(now())</code> equivale a <code>today()</code>, cioè la mezzanotte di oggi (solo molto più pesante)</li>
<li><code>ceil(now())</code> è la mezzanotte di domani</li>
<li><code>now()+7</code> è fra una settimana a quest'ora</li>
<li><code>data_pagamento - data_scadenza_fattura</code> è il numero di giorni di ritardo di pagamento</li>
<li><code>today() + 365*4</code> non è oggi fra 4 anni causa anni bisestili, per quello è più furbo usare <code>addyears(today(), 4)</code></li>
<li><code>today() + 30</code> probabilmente non è lo stesso giorno del mese prossimo, per quello è più furbo usare <code>addmonths(today(), 1)</code></li>
<li><code>37145 + 0.36575</code> è circa uguale a <code>makedate(2001, 9, 11) + maketime(8, 46, 40)</code> che equivale a <code>'11/09/2001 8.46.40'</code></li>
<li><code>39739</code> è il mio prossimo compleanno</li>
</ul>



<p>Una piccola nota sulla funzione <code>date(espressione [, formato])</code>: serve per formattare il primo argomento secondo la stringa di formato, se non viene specificata viene usato il valore della variabile <code>DateFormat</code> (impostato ad inizio script).<br />
Attenzione però: modifica solo la rappresentazione, ma non tocca il dato. Infatti <code>date(makedate(2008)+maketime(12), 'DD/MM/YYYY')</code> ci mostrerà '01/01/2008' ma conterrà anche l'ora (mezzogiorno). Per capire come mai la rappresentazione sia diversa dal valore numerico sottostante, vedere il <a href="http://blog.querit.it/2008/02/num-text-dual.html">mio vecchio post sulla rappresentazione testuale, numerica, duale</a>. Volendo togliere ora, minuti, secondi è sufficiente approssimare per difetto con <code>floor()</code>, come dico più sopra.</p>


<p><b><big>EN</big></b></p>

<p><strong>QlikView</strong> stores dates as the number of days since 30 december 1899. Thus:</p>


<ul>
<li><code>2</code> is 1 jan 1900, at midnight</li>
<li><code>2.5</code> is 1 jan 1900, at midday</li>
<li><code>floor(now())</code> is the same as <code>today()</code> (just slower)</li>
<li><code>ceil(now())</code> means tomorrow</li>
<li><code>now()+7</code> means next week at this time</li>
<li><code>payment_date - invoice_due_date</code> is the number of payment delay days</li>
<li><code>today() + 365*4</code> is not today in 4 years, which in fact is <code>addyears(today(), 4)</code></li>
<li><code>today() + 30</code> is probably not this day next month, which is <code>addmonths(today(), 1)</code></li>
<li><code>37145 + 0.36575</code> is almost <code>makedate(2001, 9, 11) + maketime(8, 46, 40)</code> which is <code>'11/09/2001 8.46.40'</code></li>
<li><code>39739</code> is my next birthday</li>
</ul>



<p>Just a note: <code>date(expression [, format])</code> doesn't actually modify the date, it justs shows it with a given format. Thus <code>date(now(), 'YYYY-MM-DD') = now()</code> yields true, even if it's not midnight.<br />
If it seems odd to you, see <a href="http://blog.querit.it/2008/02/num-text-dual.html">my post about <code>dual()</code></a>.</p>]]></description>
            <link>http://blog.querit.it/2008/10/qlikview-date.html</link>
            <guid>http://blog.querit.it/2008/10/qlikview-date.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">date</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">timestamp</category>
            
            <pubDate>Wed, 01 Oct 2008 22:26:07 +0100</pubDate>
        </item>
        
        <item>
            <title>QlikView 8.50.6206</title>
            <description><![CDATA[<p><big><strong>IT</strong></big></p>

<p>È uscito <b>QlikView 8.50.6206.5</b>: nessuna funzionalità nuova, come si intuisce dal numero di versione è soltanto un <i>hotfix</i> della precedente 8.50.6091.<br />
Corregge un bel po' di bug piccoli ma fastidiosi, fra cui prestazioni del client Java, piccoli dettagli del copia e incolla di oggetti <b>QlikView</b> dentro Office (che è una novità di <b>QlikView 8.x</b>), e soprattutto finalmente si riesce a ridimensionare le colonne delle tabelle senza impazzire! Per quest'ultima ragione consiglio l'aggiornamento a chiunque stia utilizzando l'8.50.6091.</p>

<p><big><strong>EN</strong></big></p>

<p><b>QlikView 8.50.6206.5</b> is out: no new features, just a <i>hotfix</i> release.<br />
It fixes a huge number of small bugs, including the resize of columns in table objects and graphs, which was kind of broken since 8.50.6091.</p>]]></description>
            <link>http://blog.querit.it/2008/09/qlikview-8-50-6206.html</link>
            <guid>http://blog.querit.it/2008/09/qlikview-8-50-6206.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">qlikview 8</category>
            
            <pubDate>Mon, 22 Sep 2008 11:07:16 +0100</pubDate>
        </item>
        
        <item>
            <title>FirstSortedValue potenzialità clienti</title>
            <description><![CDATA[<div>First Sorted value.</div><div><br /></div><div><br /></div><div>Ipotizziamo che classifichiamo clienti dando un giudizio sulla potenzialità del cliente.Tale giudizio può essere espresso  più volte nel corso di un anno.</div><div><br /></div><div>I giudizi sulla potenzialità possono essere:</div><div>alta , buona, media,sufficiente, meglio perderlo</div><div><br /></div><div><br /></div><div>Se vogliamo ottenere un giudizio univoco sul cliente nell'anno stabiliamo che sia dato dal giudizio espresso con maggior frequenza. se due o più giudizi di potenzialità sono a pari frequenza, si sceglie quella più alta.</div><div><br /></div><div><br /></div><div><span class="Apple-style-span" style="color: rgb(85, 26, 139); "><img src="http://blog.querit.it/2008/09/19/Potenzialita-thumb-186x185.png" width="186" height="185" alt="Potenzialita.PNG" class="mt-image-right" style="float: right; margin-top: 0px; margin-right: 0px; margin-bottom: 20px; margin-left: 20px; border-style: initial; border-color: initial; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-style: initial; border-color: initial; " /></span></div><div><br /></div><div>Di seguito lo script copia e incolla</div><div><div>/*</div><div>CR carichiamo una tabella con i clienti e i giudizi di potenzialità</div><div>*/</div><div>Clienti:</div><div>load * <span class="caps">INLINE </span>[</div><div>cliente, anno , potenzialitàCliente</div><div>Rossi,2007,meglio perderlo</div><div>Rossi,2007,media</div><div>Rossi,2007,media</div><div>Rossi,2007,meglio perderlo</div><div>Bianchi,2007,alta</div><div>Bianchi,2007,media</div><div>Bianchi,2007,alta</div><div>Bianchi,2007,media</div><div>Rossi,2008,alta</div><div>Rossi,2008,meglio perderlo</div><div>Rossi,2008,alta</div><div>Rossi,2008,media</div><div>Rossi,2008,scarsa</div><div>Rossi,2008,meglio perderlo</div><div>Rossi,2008,media</div><div>Rossi,2008,meglio perderlo</div><div>Rossi,2008,meglio perderlo</div><div>Bianchi,2008,alta</div><div>Bianchi,2008,media</div><div>Bianchi,2008,alta</div><div>Bianchi,2008,media</div><div>Bianchi,2008,scarsa</div><div>Bianchi,2008,buona</div><div>Bianchi,2008,media</div><div>Bianchi,2008,meglio perderlo</div><div>Bianchi,2008,meglio perderlo</div><div><br /></div><div>];</div><div><br /></div><div><br /></div><div>/*</div><div>CR carichiamo la tabellina delle potenzialità, con il peso associato</div><div>*/</div><div>Potenzialità:</div><div>load valore ,descrizione, dual(descrizione, valore) as potenzialità </div><div>inline [</div><div>descrizione,valore</div><div>alta,5</div><div>buona,4</div><div>media,3</div><div>scarsa,2</div><div>meglio perderlo,1</div><div>];</div><div><br /></div><div><br /></div><div> /*</div><div> leghiamo la potenzialità con il peso</div><div> */</div><div>inner join (Clienti)  load text(potenzialità) as potenzialitàCliente, potenzialità resident Potenzialità;</div><div><br /></div><div><br /></div><div>/*</div><div> CR</div><div> supponiamo di avere al massimo 9 valutazioni in un anno per cliente</div><div> quindi moltiplico per 10 il count(*) sommando la potenzialità. Tale azione</div><div> mi permetterà succesivamente di usare correttamente il FirstSortedValue nel caso</div><div> ci sia parità di conteggio nei giudizi.</div><div>*/</div><div>tmpPotenzialitàAggregata:</div><div>load</div><div>count(*)*10 + potenzialità  as nr, </div><div>potenzialità,</div><div>cliente,</div><div>anno</div><div>resident Clienti</div><div>group by potenzialità, cliente, anno</div><div>order by potenzialità;</div><div>;</div><div><br /></div><div>/*</div><div>CR</div><div>il gioco è fatto  grazie al firstSortedValue</div><div>*/</div><div>PotenzialitàAggregata:</div><div>load</div><div>firstSortedValue( potenzialità,-  nr) as potenzialitàAggregata, </div><div>cliente as cliente,</div><div>anno as anno</div><div>resident tmpPotenzialitàAggregata</div><div>group by cliente, anno ;</div><div><br /></div><div>drop table tmpPotenzialitàAggregata;</div><div><br /></div><div><br /></div><div><div>/*</div><div>CR </div><div>Felicità</div><div>*/</div></div><div><br /></div></div><div><br /></div><div><br /></div><div><br /></div><div><br /></div><div><span class="mt-enclosure mt-enclosure-image" style="display: inline;"></span></div> ]]></description>
            <link>http://blog.querit.it/2008/09/firstsortedvalue-potenzialita.html</link>
            <guid>http://blog.querit.it/2008/09/firstsortedvalue-potenzialita.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">clienti</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">FirstSortedValue</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">potenzialità</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">script</category>
            
            <pubDate>Fri, 19 Sep 2008 14:19:47 +0100</pubDate>
        </item>
        
        <item>
            <title>Gestire files contenenti il carattere apostrofo nel nome (Managing files with apostrophe mark inside the name)</title>
            <description><![CDATA[<p style="MARGIN-BOTTOM: 0cm"><strong><font style="FONT-SIZE: 1.25em">IT</font></strong></p>
<p style="MARGIN-BOTTOM: 0cm">Questa è una sfida !</p>
<p style="MARGIN-BOTTOM: 0cm">Una bella funzione di QlikView, permette di navigare facilmente nel file system; così, per ottenere l'elenco di un certo tipo di files, in una certa directory, si fa semplicemente:</p>
<p style="MARGIN-BOTTOM: 0cm"><strong><font style="FONT-SIZE: 1.25em">EN</font></strong></p>
<p style="MARGIN-BOTTOM: 0cm">This is a challenge !</p>
<p style="MARGIN-BOTTOM: 0cm">Nice in QlikView, how you can easily navigate inside file system. You can get the directory list of a specific file name pattern, simply by:</p>
<p style="MARGIN-BOTTOM: 0cm"><br /></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>Set </b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"></font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">searchStr</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> = </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2">'\*.QVD'</font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">;</font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>Set </b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">R</font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">oot</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> = </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2">'C:\\myDocs'</font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">; </font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>For</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> each file in filelist (Root&amp;searchStr); </font></font></p>
<p style="MARGIN-BOTTOM: 0cm">&nbsp;&lt; . . . &gt;</p>
<p style="MARGIN-BOTTOM: 0cm"><strong><font color="#0000ff" size="2">Next file</font></strong><br /></p>
<p style="MARGIN-BOTTOM: 0cm"><strong><font style="FONT-SIZE: 1.25em">IT</font></strong></p>
<p style="MARGIN-BOTTOM: 0cm">Poi c'è anche la versione ricorsiva, che spazia nelle sottodirectory (viene da un First Tuesday, per cui non è una novità):</p>
<p style="MARGIN-BOTTOM: 0cm"><strong><font size="4">EN</font></strong></p>
<p style="MARGIN-BOTTOM: 0cm">There is also a recursive version (this came from a "First Tuesday" meeting, so it's not really a news): </p>
<p style="MARGIN-BOTTOM: 0cm"><br /></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>Sub</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> DoDir (Root)</font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>For</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> each file in filelist (Root&amp;searchStr) </font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"><i>&nbsp; FileList:</i></font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>&nbsp; Load</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#646464"><font style="FONT-SIZE: 9pt" size="2"><i><b>'$(file)'</b></i></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>as</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">FileName</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>autogenerate</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">(</font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2">1</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">)</font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">;</font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>Next</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> file</font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b></b></font></font>&nbsp;</p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>For each</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> dir in dirlist (Root&amp;'\*')</font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>&nbsp;Call</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> DoDir (dir)</font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>Next</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> dir</font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>End</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>sub </b></font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><br /></p>
<p style="MARGIN-BOTTOM: 0cm"><strong><font size="4">IT</font></strong></p>
<p style="MARGIN-BOTTOM: 0cm">nella tabella "FileList" ti trovi l'elenco dei files, e poi ne fai quello che vuoi...</p>
<p style="MARGIN-BOTTOM: 0cm">I problemi cominciano quando si incontrano files o directory che nel nome hanno un apostrofo.</p>
<p style="MARGIN-BOTTOM: 0cm">E già, perché l'apostrofo è terminatore di stringa, e lo script precedente vi segnala inesorabilmente un errore di sintassi all'istruzione:</p>
<p style="MARGIN-BOTTOM: 0cm"><strong><font size="4">EN</font></strong></p>
<p style="MARGIN-BOTTOM: 0cm">From the resulting "FileList" table, you can get the file name list, and then you can do wathever you want on each of them.</p>
<p style="MARGIN-BOTTOM: 0cm">The trouble begins when you find a name with the apostrophe mark ! In fact, this is a string terminator, and the following statement fails: </p>
<p style="MARGIN-BOTTOM: 0cm">&nbsp;</p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>Load</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#646464"><font style="FONT-SIZE: 9pt" size="2"><i><b>'$(File)'</b></i></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>as</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">FileName</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>autogenerate</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">(</font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2">1</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">)</font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">;</font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><br /><strong><font size="4">IT</font></strong></p>
<p style="MARGIN-BOTTOM: 0cm">L'uovo di Colombo è convertire il carattere APOSTROFO in un'altro, e poi riportarlo al valore originale subito prima dell'uso; nell'esempio uso %</p>
<p style="MARGIN-BOTTOM: 0cm"><strong><font size="4">EN</font></strong></p>
<p style="MARGIN-BOTTOM: 0cm">The Columbus egg is traslating the APOST in another character, and then back to APOST yust before using it; in the exemple I'm using %</p>
<p style="MARGIN-BOTTOM: 0cm"><br /></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>Let</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">FileNameCleaned</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">=</font></font><font color="#5a005a"><font style="FONT-SIZE: 9pt" size="2">replace</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">(</font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">file</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">,</font></font><font color="#5a005a"><font style="FONT-SIZE: 9pt" size="2">chr</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">(</font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2">39</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">),</font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2">'%'</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">)</font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">;</font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>Load</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#646464"><font style="FONT-SIZE: 9pt" size="2"><i><b>'$(FileNameCleaned)'</b></i></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>as</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">FileNameCleaned</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>autogenerate</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">(</font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2">1</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">)</font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">;</font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><br /></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>Let</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">FileName</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> = </font></font><font color="#5a005a"><font style="FONT-SIZE: 9pt" size="2">replace</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">(</font></font><font color="#5a005a"><font style="FONT-SIZE: 9pt" size="2">peek</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">(</font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2">'FileNameCleaned'</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">),</font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2">'%'</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">,</font></font><font color="#5a005a"><font style="FONT-SIZE: 9pt" size="2">chr</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">(</font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2">39</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">))</font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">;</font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"><i>FileData:</i></font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>Load</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#5a005a"><font style="FONT-SIZE: 9pt" size="2">rowNo</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">() </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>as</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">row</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">, </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">*</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2"><b>from</b></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#646464"><font style="FONT-SIZE: 9pt" size="2"><i><b>[$(FileName)]</b></i></font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> (</font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">ansi</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">, </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">txt</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">, </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">delimiter</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">is</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#0000ff"><font style="FONT-SIZE: 9pt" size="2">'\t'</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">, </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">no</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2"> </font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">labels</font></font><font color="#000000"><font style="FONT-SIZE: 9pt" size="2">)</font></font><font color="#004d00"><font style="FONT-SIZE: 9pt" size="2">; </font></font></p>
<p style="MARGIN-BOTTOM: 0cm"><br /></p>
<p style="MARGIN-BOTTOM: 0cm"><strong><font size="4">IT</font></strong><br /></p>
<p style="MARGIN-BOTTOM: 0cm">Il punto debole, è che l'altro carattere -a sua volta- potrebbe già essere presente</p>
<p style="MARGIN-BOTTOM: 0cm">A voi propormi una soluzione più furba !</p>
<p style="MARGIN-BOTTOM: 0cm"><strong><font size="4">EN</font></strong><br /></p>
<p style="MARGIN-BOTTOM: 0cm">The weakness is that the new charater could be present too... Can you suggest me a smarter solution ?</p>]]></description>
            <link>http://blog.querit.it/2008/08/gestire-files-contenenti-il-ca.html</link>
            <guid>http://blog.querit.it/2008/08/gestire-files-contenenti-il-ca.html</guid>
            
            
            <pubDate>Sat, 02 Aug 2008 08:29:31 +0100</pubDate>
        </item>
        
        <item>
            <title>www.querit.it down</title>
            <description><![CDATA[<p><big><strong>IT</strong></big></p>

<p>Siamo spiacenti ma in questi giorni abbiamo problemi tecnici con http://www.querit.it, che  risulta irraggiungibile: risolveremo quanto prima.<br />
Se nel frattempo doveste avere bisogno di contattarci per richiedere consulenze o altro, potete scriverci a <a href="mailto:%69%6E%66%6F%40%71%75%65%72%69%74%2E%69%74">info@querit.it</a>.</p>

<p>Ci scusiamo per il disagio.</p>

<p><big><strong>EN</strong></big></p>

<p>We're experiencing technical difficulties with http://www.querit.it which is currently down, we'll bring it up as soon as possible.<br />
Meanwhile, feel free to contact us by mailing <a href="mailto:%69%6E%66%6F%40%71%75%65%72%69%74%2E%69%74">info@querit.it</a>.</p>

<p>Sorry.</p>]]></description>
            <link>http://blog.querit.it/2008/07/website-down.html</link>
            <guid>http://blog.querit.it/2008/07/website-down.html</guid>
            
            
            <pubDate>Thu, 31 Jul 2008 13:23:14 +0100</pubDate>
        </item>
        
        <item>
            <title>QlikView 8.50: grafici, set analysis, e molto altro</title>
            <description><![CDATA[<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://blog.querit.it/2008/07/08/qv850.html" onclick="window.open('http://blog.querit.it/2008/07/08/qv850.html','popup','width=446,height=270,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://blog.querit.it/2008/07/08/qv850-thumb-223x135.png" width="223" height="135" alt="qv850.png" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a></span>Da una decina di giorni è uscito <strong>QlikView 8.50</strong>, come avevano anticipato a noi partner al <em>First Tuesday</em> a Trento.</p>

<p>Ha un bel po' di novità!<br />
Ad esempio finalmente i grafici (e non solo) si ricordano la posizione della barra di scorrimento, quindi cambiando selezione questa non salta fastidiosamente all'inizio, migliorando la <em>user experience</em> (è dimostrato che la qualità di un software si percepisca tramite la facilità, comodità e immediatezza di utilizzo).<br />
Sempre riguardo i grafici, ora si può mostrare il valore a metà del segmento, anziché in testa (sul <em>data point</em>): particolarmente utile per grafici a barre <em>impilate</em> (_stacked_), si veda lo screenshot. Implementando questa funzionalità hanno rotto qualcosina, ad esempio per il momento non funziona il numero massimo di valori da mostrare oltre il quale vengono disegnate le barre senza alcun numero, ma l'ho segnalato e mi han confermato che è un bug e verrà risolto quanto prima.<br />
Sono tante anche le novità grafiche: adesso gli oggetti hanno un'ombra (che si può configurare o disattivare), e le multibox sono più carine.</p>

<p>È cambiato anche qualche dettaglio di licenza: ora licenze 32bit e 64bit sono unificate, quindi finalmente posso installare QlikView a 64 bit sul mio PC fisso e superare il limite di 2 GB di <span class="caps">RAM </span>per processo che mi costringeva a fare qualche ricaricamento solo ed esclusivamente sul server del cliente (che aveva la licenza a 64 bit).</p>

<p>Tralasciando le altre novità sicuramente interessanti che vi consiglio di leggere nel <em>What's New</em> ufficiale, c'è una particolare funzionalità che hanno implementato ma che non gode della mia simpatia: le <strong>Set Analysis</strong>. Non sono una invenzione di QlikView, beninteso, le abbiamo già viste in altre piattaforme di <em>business intelligence</em>, ma le ritengo difficili da capire per l'utente finale e soprattutto possono disorientare un po'.<br />
Le <strong>Set Analysis</strong> permettono di variare l'insieme di dati su cui una espressione lavora, ad esempio se scrivo <code>count({1-$} ID)</code> mi conta gli <code>ID</code> attualmente <strong>non</strong> selezionati (<code>1</code> significa l'intero insieme in memoria, come <code>all</code> insomma, e <code>$</code> la selezione corrente). Tutto ciò si complica ulteriormente quando gli dico di fare conteggi basandosi sulla selezione precedente o, peggio ancora, sulla successiva (posto che io sia tornato indietro di una selezione).<br />
Insomma, sono analisi per utenti molto evoluti (non per <em>utonti</em>) e soprattutto con molta memoria (non <span class="caps">RAM, </span>ma proprio testa...).<br />
Vanno decisamente in senso contrario rispetto al mio motto nonché mia filosofia di sviluppo: <b><em>keep it simple</em></b>.</p>]]></description>
            <link>http://blog.querit.it/2008/07/qlikview-8-50-grafici-set-analysis.html</link>
            <guid>http://blog.querit.it/2008/07/qlikview-8-50-grafici-set-analysis.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">grafici</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">set analysis</category>
            
            <pubDate>Tue, 08 Jul 2008 19:24:41 +0100</pubDate>
        </item>
        
        <item>
            <title>Barra di scorrimento nei grafici - Scrollbar on graphs</title>
            <description><![CDATA[<p><span class="mt-enclosure mt-enclosure-image" style="display: inline;"><a href="http://blog.querit.it/2008/06/13/scrollbar.html" onclick="window.open('http://blog.querit.it/2008/06/13/scrollbar.html','popup','width=457,height=331,scrollbars=no,resizable=no,toolbar=no,directories=no,location=no,menubar=no,status=no,left=0,top=0'); return false"><img src="http://blog.querit.it/2008/06/13/scrollbar-thumb-457x331.png" width="457" height="331" alt="scrollbar.png" class="mt-image-right" style="float: right; margin: 0 0 20px 20px;" /></a></span>
<big><strong>IT</strong></big></p>

<p>Qualcosa di molto semplice, ma che un paio di volte mi è stato chiesto.<br />
Avendo un grafico con troppi valori della dimensione (ad esempio, un grafico con "troppe barre") tali da renderlo illeggibile, è possibile nelle proprietà del grafico specificare un numero di valori visibili (ad esempio 10) ed abilitare la barra di scorrimento, come nella schermata qui a destra.</p>

<p>Un altro <strong>piccolo ma utile suggerimento</strong>: <i>tenendo premuto shift + ctrl</i> potete spostare i singoli oggetti contenuti nel grafico (come si faceva su Excel).</p>

<p><big><strong>EN</strong></big></p>

<p>Just a simple trick, that however a friend of mine needed.<br />
After specifying the maximum number of visible values you can turn on the x-axis scrollbar, as the screenshot shows.</p>

<p>Another trick, <strong>both useful and trivial</strong>: with a graph focused, <i>hold down shift + ctrl</i> to move its objects (legend, text on chart, and so on, like you used to do on Excel).</p>]]></description>
            <link>http://blog.querit.it/2008/06/barra-scorrimento-grafico-scrollbar-graph.html</link>
            <guid>http://blog.querit.it/2008/06/barra-scorrimento-grafico-scrollbar-graph.html</guid>
            
            
                <category domain="http://www.sixapart.com/ns/types#tag">barra scorrimento</category>
            
                <category domain="http://www.sixapart.com/ns/types#tag">grafico</category>
            
            <pubDate>Fri, 13 Jun 2008 20:02:31 +0100</pubDate>
        </item>
        
    </channel>
</rss>

