tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板) [ツリー表示へ]   [Home]
一括表示(VB.NET VB2005)
タイトルwebアプリケーションでのchart
記事No1337
投稿日: 2005/01/25(Tue) 18:44
投稿者トシ
[OSのVer]:Windows XP   [VBのVer]:VB.NET  

VBを始めて間もない者です。こちらのサイトには大変お世話になっています。
自分なりに調べてみて分からなかったので、こちらに投稿させて貰う事にしました。

webアプリケーションでMSChartを使おうと思い、こちらのサイトを参考にプログラムを作りましたが

AxMSChart,MSChart20Libの部分でエラーが出てしまいます。何かwebアプリケーション用のコマンドが
あるのでしょうか?
ちなみに、普通のwindowsアプリケーションでは正常に作動しました。

With AxMSChart1 'エラー表示になります
    .chartType = MSChart20Lib.VtChChartType.VtChChartType2dLine 'エラー表示になります
    .ColumnCount = 5
    .RowCount = 144
    .ShowLegend = True

    For i = 1 To .RowCount
        For j = 1 To .ColumnCount
            .Column = j
            .Row = i
            .Data = intDat(i, j)
        Next j
    Next i
End With

With AxMSChart1 'エラー表示になります
    For i = 1 To 144
        .DataGrid.RowLabel(i, 1) = DName(l)
        l = l + 1

    Next i
    For i = 1 To 5
        .DataGrid.ColumnLabel(i, 1) = syurui(i)
        .Plot.SeriesCollection(i).LegendText = syurui(i)
    Next i
End With

With AxMSChart1.Plot.Axis(MSChart20Lib.VtChAxisId.VtChAxisIdX) 'エラー表示になります
    .CategoryScale.Auto = False          ' Sets manual scaling.
    .CategoryScale.DivisionsPerLabel = 6 ' Label appears every two
    ' divisions.
    .CategoryScale.DivisionsPerTick = 5  ' Ticks appear every two
    ' divisions.
    .CategoryScale.LabelTick = True   ' Labels displayed on top of
    ' Tick marks.
End With

[ツリー表示へ]
タイトルRe: webアプリケーションでのchart
記事No1338
投稿日: 2005/01/26(Wed) 10:43
投稿者aki
[OSのVer]:Windows    [VBのVer]:VB.NET  

ASP.NETですよね。
MSChartはサーバーコントロールとして使用できないのではないでしょうか。(多分)

なので、HTMLの方にVBScriptかJAVAScriptで記述するしかないのではないでしょうか。

サーバーコントロールとして使用する方法があるのなら私も教えて欲しいです!

[ツリー表示へ]
タイトルRe^2: webアプリケーションでのchart
記事No1343
投稿日: 2005/01/26(Wed) 15:02
投稿者トシ
[OSのVer]:Windows    [VBのVer]:VB.NET  

> MSChartはサーバーコントロールとして使用できないのではないでしょうか。(多分)

そうらしいですね、実際使うなら、クライアント側にダウンロード&インストールしなければならな

と、サポートに書いてありました。
でもそれを言い換えれば、VB.NETが入っているパソコンなら実行できるっていう事だと思うんですよ。
実際サポートには、webフォームにActivXコントロールをホストする例として、MSChartを挙げているん

すから。
そうなると、webフォームコントロールでデータの処理(サーバー内にあるファイルを開いてデータを何

かの形でクライアント側に送信)して、HTMLコントロールでMSChartを動かして、グラフ作成という事が

来るのではないかと思ったんですよ。
質問の内容が若干変わったかも知れませんが、分かる方がいたら、教えてください。

[ツリー表示へ]
タイトルRe^3: webアプリケーションでのchart
記事No1346
投稿日: 2005/01/26(Wed) 20:03
投稿者aki
> でもそれを言い換えれば、VB.NETが入っているパソコンなら実行できるっていう事だと思うんです
よ。

出来ます。

> そうなると、webフォームコントロールでデータの処理(サーバー内にあるファイルを開いてデータを

> ら
> かの形でクライアント側に送信)して、HTMLコントロールでMSChartを動かして、グラフ作成という事

> 出
> 来るのではないかと思ったんですよ。

出来ます。
サンプルコードを記述しようと思ったのですが、エラーでなかなか前に進まないので、
明日(?)に出来るようにしておきます。

[ツリー表示へ]
タイトルRe^4: webアプリケーションでのchart
記事No1347
投稿日: 2005/01/27(Thu) 00:28
投稿者トシ
[OSのVer]:Windows    [VBのVer]:VB.NET  

> サンプルコードを記述しようと思ったのですが、エラーでなかなか前に進まないので、
> 明日(?)に出来るようにしておきます。

ありがとうございます。ってまだ早いですかね?
今はもう完全に壁にぶつかってしまって立ち往生の状態なので、非常にありがたいです。
まだ自分でも模索してみるつもりですが、楽しみに待っていますので、よろしくお願いします。

[ツリー表示へ]
タイトルRe^5: webアプリケーションでのchart
記事No1348
投稿日: 2005/01/27(Thu) 09:38
投稿者aki
フォームにボタン(サーバーコントロールとHTMLコントロール)を2つ貼り付けます。

サーバーコントロールのクリックイベントに以下のコードを記述します。

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Button1.Click
        Dim strScript As String
        strScript = "<script id=clientEventHandlersVBS language=vbscript>" & vbCrLf
        strScript += "Sub chart_test()" & vbCrLf
        strScript += "dim objChart" & vbCrLf

        strScript += "set objChart = Form1.AxMSChart1" & vbCrLf
        strScript += "objChart.ColumnCount = 1" & vbCrLf
        strScript += "objChart.RowCount = 10" & vbCrLf
        strScript += "objChart.ShowLegend = True" & vbCrLf

        strScript += "End Sub" & vbCrLf
        strScript += "</script>"

        If (Not IsClientScriptBlockRegistered("clientScript")) Then
            RegisterClientScriptBlock("clientScript", strScript)
        End If

    End Sub

HTMLコードのHTMLボタンのタグに onclick="chart_test()" を記述します。

サーバーコントロールのボタンをクリック後、HTMLボタンをクリックすると
グラフの表示が変わるはずです。

いかがでしょうか?

[ツリー表示へ]
タイトルRe^6: webアプリケーションでのchart
記事No1353
投稿日: 2005/01/28(Fri) 01:07
投稿者トシ
[OSのVer]:Windows    [VBのVer]:VB.NET  

> いかがでしょうか?

すみません、確認に時間がかかって返信に遅れました。
VBScriptを使うのは考えてませんでしたし、HTMLに直接書き込む方法は僕にとって目から鱗でした。
本当に助かりました。もう半ば諦めていたところだったので、コードを見たときに軽く叫んでいました

ありがとうございました。また壁にぶつかったら、こちらにお世話になりに来るのでその時はよろしく

願いします。

[ツリー表示へ]