2

データベースのデータに基づいてGoogleチャートフレームワークを使用しています...

次のような出力を生成する必要があります。

([
  ['Year',  'ON',   'OFF',  'X1',   'X2'],
  ['Jan/12',    2,  5,      10,         9],
  ['Fev/12',    5,  10,     54,         10],
  ['Mar/12',    10, 36,     15,         10]
]);

最後の行にはコンマがないことに注意してください。私のコードは次のようになります:

([
  ['Year',  'ON',   'OF',   'X1',   'X1'],
    <%
        WHILE NOT DB.EOF
        ON= DB("ON")
        OFF= DB("OFF")
        X1= DB("X1")
        X2= DB("X2")
    %>
        ['<% Response.Write Month %>/<% Response.Write Year %>',    <% Response.Write ON %>, <% Response.Write OFF %>, <% Response.Write X1 %>, <% Response.Write X2 %>,
    <%
        DB.MOVENEXT
        WEND
    %>
]);

私の質問: コンマを入れる代わりに、ループが最後の行に到達したことを確認するにはどうすればよいですか?

ありがとう!

4

2 に答える 2

3

AnthonyWJones の答えは私には問題ないようですが、次の移動後に EOF にいない場合はループ内で尋ねることもできます。

([ 
    ['Year',  'ON',   'OFF',   'X1',   'X2']
    <% Do While Not DB.EOF %>
        [
         '<%= Month %>/<%= Year %>', 
         <%= DB("ON") %>, 
         <%= DB("OFF") %>, 
         <%= DB("X1") %>, 
         <%= DB("X2") %>
        ]
        <%
        DB.MoveNext
        %>
        <% If Not DB.EOF Then %>
            ,
        <% End If %>
    <% Loop %>
]); 

;-)

于 2012-08-15T10:46:35.653 に答える
1

RecordCount = -1 を取得します。これは、前方のみのレコードセットは、まだいくつのレコードが来るかわからないためです。

ここで取るべきアプローチは、ループの先頭に何らかのコンテンツを挿入することです。

([ 
  ['Year',  'ON',   'OFF',   'X1',   'X2']
    <% 
        Do While Not DB.EOF
            Response.Write ", " & vbCrLf

            Response.Write "  ['" & Month & "/" & Year & "', " & DB("ON") & ", " & DB("OFF") & ", " & DB("X1") & ", " & DB("X2") & "]"  

            DB.MoveNext 
        Loop 
    %> 
]); 
于 2012-08-14T21:29:56.647 に答える