Class: Qv

Qv

This library is used to build QlikView extensions or to build websites with QlikView Workbench. Here are some examples. These examples assume a Workbench QvObject control has been added to the web page and the "CustomInitialization" property has been set to "True". The QlikView document being opened is the "Movies Database" example document.
Examples
Example 1: Capture the event when a selection have been made in a listbox.    
var doc;
var lb;
qvInit = function () {
    doc = Qv.GetCurrentDocument();
    lb = doc.GetObject("LB36");
    lb.SetOnUpdateComplete(listboxUpdated);
}
listboxUpdated = function () {
    var selected = this.Data.GetSelected();
    //"selected" is now an array of objects
    alert(selected.length + " selected items");
    //loop through the array
    for (var i = 0; i < selected.length; i++) 
    {
        //get the "text" property
        var text = selected[i].text;
    }
}
Qv.InitWorkBench({ View: "Movies Database", BodyOnLoadFunctionNames: "qvInit" });
Example 2: Clear selections in a listbox. The function "clearSelection" must be called from your code.
var doc;
var lb;
qvInit = function () {
    doc = Qv.GetCurrentDocument();
    lb = doc.GetObject("LB36");
}
clearSelection = function () {
    lb.Data.ClearSelections();
}
Qv.InitWorkBench({ View: "Movies Database", BodyOnLoadFunctionNames: "qvInit" });

Classes

Config
CurrentSelectionOptions
CustomIcons
Document
FieldOptions

Methods

AddExtension(name, extensionPaint)

Function to call in the JavaScript for a QlikView extension to register the extension.
Parameters:
Name Type Description
name String Name of the extension
extensionPaint function Paint function for the extension
Example
The following would be, for example, for an extension contained in
C:\Users\[UserName]\AppData\Local\QlikTech\QlikView\Extensions\
Objects\MyCompanyName\MyExtensionName

The code below would be in a file named script.js contained in the above 
directory. Any associated JavaScript and css files would be contained alongside 
this file.

Note that the exact path above might vary depending on your Windows version and 
whether you are deploying the extension in QlikView server or QlikView desktop.

Example 1:
function paint()
{
    var htmlElement = this.Element;
    var data = this.Data.Rows;
    // Render extension here.
}

Qv.AddExtension("MyCompanyName\MyExtensionName", paint);

Example 2: This example illustrates how a css file for the extension could also 
be loaded.

function paint()
{
    var htmlElement = this.Element;
    var data = this.Data.Rows;
    // Render extension here.
}

Qv.AddExtension("MyCompanyName\MyExtensionName", paint);
Qva.LoadCSS(Qv.GetExtensionSrc("Extensions/MyCompanyName/MyExtensionName/MyStyles.css"));

GetAllDocuments(callbackFn(object[]))

The supplied callbackFn will be called with the documents, as an array of document objects, as parameter
Parameters:
Name Type Description
callbackFn(object[]) function Your function which will be called with an array of documents in the data parameter
Example
function init() {

    Qv.GetAllDocuments(function(docs) {
        // process array here.
    });

}

Qv.InitWorkBench({ View: 'FilmsWebView', BodyOnLoadFunctionNames: ['init'] });

GetCurrentDocument() → {Qv.Document}

Returns a handle to the current QlikView document. Can be used from an extension to access Document data regardless of the document name.
Returns:
Reference to the object.
Type
Qv.Document
Example
var myDoc;

Init = function() {

    mydoc = Qv.GetCurrentDocument();

    // Work with document here.
}

Qv.InitWorkBench(
{ 
    View: 'FilmsWebView', 
    BodyOnLoadFunctionNames: ['Init'] 
});

GetDocument(document) → {Qv.Document}

Returns a handle to a QlikView Document with a specific document name.
Parameters:
Name Type Description
document String The name of the QlikView document (without extension).
Returns:
Reference to the object.
Type
Qv.Document
Example
Init = function() {

    var doc = Qv.GetDocument("FilmsWebView");
    // Work with document here.
}

Qv.InitWorkBench(
{ 
    View: 'FilmsWebView', 
    BodyOnLoadFunctionNames: ['Init'] 
});

GetExtensionSrc(extFilePath, isDocExtopt)

Get path to extension files, like images
Parameters:
Name Type Attributes Description
extFilePath String Extension file path
isDocExt Boolean <optional>
If the extension is a document extension
Example
var extPath = 'Extensions/MyCompanyName/MyExtensionName/';
    var img = document.createElement("IMG");
    img.src = Qv.GetExtensionSrc(extPath + 'myImg.png');

InitWorkBench(config)

Initialize workbench. If you need multiple documents you insert one function call to Qv.InitWorkBench for every document. NB! there can only be one value per page for the following parameters (QvAjaxZfcPath, BodyOnLoadFunctionNames, CSS ) so make sure you put them in the first call to Qv.InitWorkBench (if you want to set them). At a minimum you must supply the parameter View in the call.
Parameters:
Name Type Description
config Qv.Config Configuration data for the connection to a QlikView document
Examples
Qv.InitWorkBench({ View: 'Films' });
    
Qv.InitWorkBench({ View: 'Films', BodyOnLoadFunctionNames: ["MyInit", "MyInit2"], CustomIcons: {CA:"NewClearAll.bmp", CD:"NewClear.bmp"} });

LoadExtensionScripts(filesArray, callbackFn, isDocExtopt)

Load javascripts needed for QlikView extension object.
Parameters:
Name Type Attributes Description
filesArray Array.<String> Array of javascripts
callbackFn function Function to be called when scripts are loaded
isDocExt Boolean <optional>
If it's script for a document extension
Example
function scriptsLoaded()
{
    alert('scriptsLoaded fired');
}

function loadScripts() {
    var files = [],
        extPath = 'Extensions/MyCompanyName/MyExtensionName/';
    
    files.push(extPath + 'myJSFile.js');
    Qv.LoadExtensionScripts(files, scriptsLoaded);
}