2 Replies Latest reply: Oct 28, 2013 9:52 AM by OLEKSANDR NERUSH RSS

    Workbench ASP.NET integration

    OLEKSANDR NERUSH

      Hello,

       

      i'm using Qlikview Workbench to integrate Qlikview with ASP.NET solutions. All work fine. But right now i'm going to try new ASP.NET Razor Engine.

      So, i have specific question regarding internal architecture of the Workbench.

      I have succesfully created QT.QWW.WebControls.QvObject from QlikViewWorkbench.dll assembly.  So, my code looks something like this:

       

      QvObject qv = new QvObject();

      System.Web.UI.Page p = new System.Web.UI.Page();

      p.Controls.Add(qv);   

      qv.ID = "QvObject1";

      qv.ObjectID = "LB02";   

      qv.QlikViewDocument = "AdventureWorks10 (Local)";

      qv.QvAjaxZfcPath = "http://192.168.65.181/QvAjaxZfc/";      

      HtmlTextWriter hw = new HtmlTextWriter(Response.Output);

      qv.RenderControl(hw);

       

        When i run page i got following results:

       

      <div style="width:400px;height:250px;">

      <div class="QvFrame" avqview="AdventureWorks10" avq="object:.Document\LB02" id="Document\LB02" style="display:none;width:400px;height:250px;">



      </div>

      </div>

      But, when i build ASP.NET using "Workbench", something like this:

       

      <%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>

      <%@ Register assembly="QlikViewWorkBench" namespace="QT.QWW.WebControls" tagprefix="qww" %>

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

      <html xmlns="http://www.w3.org/1999/xhtml">

      <head runat="server">

          <title></title>

      </head>

      <body>

          <form id="form1" runat="server">

          <div>

       

              <qww:QvObject ID="QvObject1" runat="server" ObjectID="LB02"

                  QlikViewDocument="AdventureWorks10 (Local)"

                  QvAjaxZfcPath="http://192.168.65.181/QvAjaxZfc/" />

       

          </div>

          </form>

      </body>

      </html>

       

      i got page containging appropriate objects and link to the QvAjax.js JavaScript library. Besides of that, body of the page contains also following script:

       

      <script type="text/javascript">

      //<![CDATA[

      var QvBinders = [];

      QvInitWorkBench = function() {

         if (typeof(Qva)!='undefined') {

             for (var i = 0; i < QvBinders.length; i++)

             {

                 eval(QvBinders[i]);

             }

             new Qva.Modal();

             new Qva.Scanner();

             Qva.Start();

         } else {

             var noJsMsg = "The Ajax javascript files could not be loaded from 'http://192.168.65.181/QvAjaxZfc/'. The value of the property QvAjaxZfcPath should point to the AjaxZfc virtual directory that's installed by the QlikView Server package.";

             var divs = document.getElementsByTagName('div');

             for(var i=0;i<divs.length;i++) {

                 if (divs[i].className == 'QvFrame') {

                     divs[i].parentNode.innerHTML = noJsMsg;

                 }

             }

         }

      }

      if (typeof(Qva)!='undefined') {

         Qva.QvAjaxZfcPath = 'http://192.168.65.181/QvAjaxZfc/';

         Qva.Remote = 'http://192.168.65.181/QvAjaxZfc/QvsViewClient.aspx';

         Qva.DocumentClick = false;

      }

      if (typeof(Qva.Mgr) === 'undefined'){

         Qva.GetDebugFiles(QvInitWorkBench); }

      else {

         if (window.attachEvent) {window.attachEvent('onload', QvInitWorkBench);} else if (window.addEventListener) { window.addEventListener('load', QvInitWorkBench, false);} else {window['onload'] = QvInitWorkBench;}

      }

      var qva; QvBinders[0] = "qva = new Qva.PageBinding('AdventureWorks10'); qva.View = 'AdventureWorks10'; qva.Autoview = 'ASP.default_aspx'; qva.AuthenticateUrl = 'http://192.168.65.181/QvAjaxZfc/Authenticate.aspx'; qva.Host = 'Local'; qva.Platform = 'WORKBENCH'; qva.CustomIcons = {}";

      //]]>

      </script>

       

       

      So, question is: which class (from QlikViewWorkbench.dll assembly) responsible for generation of the JavaScript code (from example above)?

      Could you please explain me how can i use QT.QWW.WebControls.Support.Proxy class?

      Is there any documentation regarding  QT.QWW.WebControls.Support.Proxy and QT.QWW.WebControls.QvObject classes?

       

      Thanks for any help.