2016-05-14 7 views
1

Ich habe eine tableau Arbeitsmappe mitJavascript API für Tableau

  • 2 Blätter
    • ein Balkendiagramm (Blatt genannt BAR)
    • ein Kreisdiagramm (Blatt genannt PIE)
  • 2 Dashboards
    • das Bargraph scr een (Blatt Fullbar genannt)
    • das Tortendiagramm Vollbild (Blatt genannt FULLPIE)

Jetzt im Versuch Tasten zwischen den Dashboards wechseln mit ihnen in eine HTML-Seite zu laden. Ich folgte dem Tutorial und es zieht das ursprüngliche Dashboard (FULLBAR) in Ordnung, aber das Umschalten von Dashboards ist, wo ich auf ein Problem stoßen.

Wenn ein Link ich diesen Fehler in der meinen Code Hier ist

Error: Sheet is not found in Workbook 

Konsole erhalten zu wechseln (Server offensichtlich XXXX'ed out)

<!doctype html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <title>Proof of Concept</title> 
     <meta name="description" content="Proof of Concept"> 
     <meta name="author" content="thisDude"> 

     <script type="text/javascript" src="http://xxx.xxx.xxx.xxx:xxxx/javascripts/api/tableau-2.0.0.js"></script> 

     <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script> 
     <script type="text/javascript" src="js/bootstrap.js"></script> 
     <script type="text/javascript" src="js/app.js"></script> 
     <link rel="stylesheet" type="text/css" href="css/bootstrap.css"> 
     <link rel="stylesheet" type="text/css" href="css/style.css"> 

</head> 
<body> 
    <div class='container'> 
     <div class='row'> 
      <div class='span3 col-xs-6'><img style="height:39px; width:100px;" src="logo.jpg" ></div> 
      <h2 class='col-xs-6 span7 pagination-centered'>Proof of Concept</h2> 
     </div> 
     <div class='row'> 
      <h3 class='offset3 span7 pagination-centered' id='sheetName'></h3> 
     </div> 
     <div class='row'> 

      <!-- All of our work will happen here --> 
      <!-- Viz located at http://xxx.xxx.xxx.xxx:xxxx/views/TEST_VIS2/FULLBAR --> 
      <ul id = 'menu' class='nav nav-list offset1 span2'> 
       <!-- This is the menu where we will add all of our buttons. --> 
       <li class='nav-header'>Switching Views</li> 
       <li><a onClick="switchView('FULLBAR')">Bar Chart</a></li> 
       <li><a onClick="switchView('FULLPIE')">Pie Chart</a></li>     
      </ul> 
      <div id='tableauViz'></div> 
      <script> 
      </script> 


      <!-- This is the end of the section where we will do our work. --> 
     </div> 
    </div> 
</body> 
</html> 

und mein app.js Code:

window.onload=function() { 
    var vizDiv = document.getElementById('viz'); 
    var vizURL = "http://xxx.xxx.xxx.xxx:xxxx/views/TEST_VIS2/FULLBAR_1"; 
    var options = { 
     width: '100%', 
     height: '500px', 
     hideToolbar: true, 
     hideTabs: true 
    }; 

    viz = new tableauSoftware.Viz (vizDiv, vizURL, options); 
}; 

function switchView(sheetName) { 
    workbook = viz.getWorkbook(); 
    workbook.activateSheetAsync(sheetName); 
    console.log(sheetName); 
    console.log(workbook + " workbook var"); 
    console.log(viz.getWorkbook() + " viz.getWorkbook var"); 
} 

Antwort

1

die Antwort gefunden out -

Ich hatte ursprünglich auf dem Server mit der Option "Blätter als Tabs anzeigen" DESELECTED veröffentlicht. Mein Javascript verwendete auch hideTabs: true.

Dadurch erkennt JS API die Namen der Blätter nicht.

Durch Auswahl der Option während der Veröffentlichung "Blätter als Tabs anzeigen" konnte die API Visualisierungen korrekt wechseln. Die js-Option "hideTabs: true" hält die visuellen Tabs weiterhin verborgen.

+0

Vielen Dank! Du hast mir Stunden zurück gegeben. – MarkHoward02