2016-05-14 3 views
1

У меня есть таблица книгу сJavaScript API для Tableau

  • 2 листов
    • бар диаграммы (лист называется бар)
    • круговая диаграмма (лист называется PIE)
  • 2 Панели мониторинга
    • гистограмма полная ссс ееп (лист называется FULLBAR)
    • круговая диаграмма полный экран (лист называется FULLPIE)

Теперь им пытаются загрузить их в HTML-страницу с кнопками для переключения между приборных панелей. Я следил за учебником, и он отлично втягивается в начальную панель (FULLBAR), однако при переключении панелей мониторинга я сталкиваюсь с проблемой.

При нажатии на ссылку, чтобы переключить я получаю эту ошибку в консоли

Error: Sheet is not found in Workbook 

Вот мой код (сервер явно XXXX'ed вне)

<!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> 

и мой app.js код:

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"); 
} 

ответ

1

Обнаруженные ответ -

Первоначально я опубликовал на сервере с опцией «Показать листы в виде вкладок» DESELECTED. Мой javascript также использовал hideTabs: true.

Выполнение этого приводит к тому, что JS api не знает названия листов.

Выбрав параметр во время публикации «Показать листы в виде вкладок», API смог правильно переключить визуализацию. Параметр js «hideTabs: true» по-прежнему сохраняет скрытые скрытые вкладки.

+0

Спасибо! Ты вернул мне часы. – MarkHoward02

Смежные вопросы