2013-10-29 29 views
1

我試圖用經典ASP中的SQL Server結果填充HighCharts數據集,但似乎無法正確地獲取語法。這是我定製的一個非常基本的開始,我認爲數據集呈現並且從那裏很容易。來自SQL Server的HighCharts數據,傳統的asp

下面的循環工作正常,並從我的存儲區中正確地獲取數據。我的問題,我相信在實際var options =部分

dim xAxisData() 
dim yAxisData() 
j = 0    
    adoRsGraph.MoveFirst 

if adoRsGraph.EOF = false then 

    Do Until adoRsGraph.EOF 
     reDim xAxisData(j) 
     reDim yAxisData(j) 
      xAxisData(j) = adoRsGraph("Value") 
      yAxisData(j) = adoRsGraph("Date") 

     j = j + 1 
     adoRsGraph.MoveNext 
    Loop 

end if 



$(function() { 
     var options = { 
     chart:{ 
      type:'line', 
      renderTo: 'chartContainer'    
      }, 
     xAxis: { 
      categories: ['Apples','Bananas','Oranges'] 
     }, 
     yAxis: { 
      title:{ 
       text: 'Assets'   
      } 
     }, 
     series: [{ 
      name: 'Dates', 
      data: [<% For Each item In yAxisData Response.Write(item & ",") Next %>], 
      color: '#006600' 
     }] 
    } 
var chart3 = new Highcharts.Chart(options); 
}); 

接收錯誤的data[]部分;

Microsoft VBScript compilation 
Description:Expected end of statement 
Line:90 

與線90的存在;

data: [<% For Each item In yAxisData Response.Write(item & ",") Next %>], 

回答

4

恕我直言我認爲這將是更好的突破邏輯,將數據轉換成一個逗號分隔列表功能。當您重新設置陣列時,我還添加了preserve。否則,您將丟失數據。

dim xAxisData() 
dim yAxisData() 
j = 0    
    adoRsGraph.MoveFirst 

if adoRsGraph.EOF = false then 
    Do Until adoRsGraph.EOF 
     reDim preserve xAxisData(j) 
     reDim preserve yAxisData(j) 
     xAxisData(j) = adoRsGraph("Value") 
     yAxisData(j) = adoRsGraph("Date") 

     j = j + 1 
     adoRsGraph.MoveNext 
    Loop 
end if 

$(function() { 
    var options = { 
    chart:{ 
     type:'line', 
     renderTo: 'chartContainer'    
     }, 
    xAxis: { 
     categories: ['Apples','Bananas','Oranges'] 
    }, 
    yAxis: { 
     title:{ 
      text: 'Assets'   
     } 
    }, 
    series: [{ 
     name: 'Dates', 
     data: [<%= GetYAxisData() %>], 
     color: '#006600' 
    }] 
} 
var chart3 = new Highcharts.Chart(options); 
}); 

您發佈For Each item In yAxisData Response.Write(item & ",")將創建在導致意外的行爲最終的額外的逗號(,)原代碼。使用Join()函數是我認爲更好的選擇。

function GetYAxisData() 
    GetYAxisData = Join(yAxisData, ",") 
end function 
+0

你我的朋友是一個生命的救星,令人驚異的是我怎麼離譜我的想法是在傳統的ASP,只是做得不夠的話,這些都是從好我的時間之前的舊代碼的重新設計。非常感謝你! –

+0

沒問題,我很高興能幫到你。快樂的編碼! – David