現在オフラインです。再接続するためにインターネットの接続を待っています

お使いのブラウザーはサポートされていません

このサイトを利用するには、ブラウザーを更新する必要があります。

Internet Explorer を最新バージョンに更新する

サーバー側のグラフ作成機能を使用してグラフを動的に生成する方法

この記事は、以前は次の ID で公開されていました: JP244049
概要
Microsoft Office のグラフ Web コンポーネントは、フォーム上に COM (Component Object Model) コントロールとして配置して使用する以外に、不可視のメモリ内オブジェクトとして使用することもできます。この資料では、グラフ Web コンポーネントをサーバー上で使用し、グラフを GIF (Graphics Interchange Format) 画像の形式で作成する方法について説明します。この資料で説明する方法を使用すると、インターネットや、さまざまなクライアント デスクトップが混在するエンタープライズ環境で使用できるグラフの画像を作成できます。
詳細
グラフ Web コンポーネントでは、配列、データベース、スプレッドシート、独自のデータ ソースなど、さまざまなソースからのデータを使用してグラフを作成することができます。グラフを作成したら、グラフ コンポーネントの ExportPicture メソッドを使用することによって、グラフの GIF 画像を生成することができます。

これを行うには、global.asa ファイルを編集し、以下の手順に示されているコードを含む ASP ページを作成します。

プロジェクトの作成手順

  1. Microsoft Visual InterDev を起動します。
  2. ServerChart という名前で新しい Web プロジェクトを作成し、[次へ] をクリックします。
  3. この Web プロジェクトで使用するサーバーを指定します。
  4. [完了] をクリックして Web プロジェクトを作成します。
  5. サーバー上のプロジェクト ディレクトリ (通常は C:\Inetpub\wwwroot\ServerChart) を右クリックし、[プロパティ] をクリックします。次に、[セキュリティ] タブをクリックします。
  6. [アクセス許可] をクリックし、次のディレクトリのアクセス許可を追加します。
    IUSR_SERVERNAME : 読み取り、書き込み、実行、削除
    Creator : 読み取り、書き込み、実行、削除
  7. [OK] をクリックしてアクセス許可を設定します。
  8. Visual InterDev プロジェクトで、global.asa ファイルを右クリックし、[作業コピーの取得] をクリックします。
  9. global.asa ファイルに以下のスクリプトを追加します。
    <SCRIPT LANGUAGE=VBScript RUNAT=Server>Sub Session_OnStart	' Create a FileSystemObject to provide files in the script	Set Session("FSO") = CreateObject("Scripting.FileSystemObject")		' Create a variable that has the number of files created in this session	Session("n") = 0		' Set timeout to be 1 minute	Session.Timeout = 1End SubSub Session_OnEnd	' Delete the files created in this session	Dim x	For x = 0 to Session("n")-1		Session("FSO").DeleteFile Session("sTempFile" & x), True	NextEnd Sub</SCRIPT>
  10. [プロジェクト] メニューの [Web アイテムの追加] をポイントし、[アクティブ サーバー ページ] をクリックします。ページの名前を chart.asp とします。
  11. chart.asp に以下のスクリプトを追加します。
    <%@ language="vbscript" %><html><body><h1>Realtime CPU Utilization by Configurations</h1><FORM action="chart.asp" method=get name=frmChooseOrg><p> Select an Organization to see values for their machines: <SELECT name=sOrg><OPTION SELECTED value= 5>Org1</OPTION><OPTION value= 10>Org2</OPTION><OPTION value= 15>Org3</OPTION><OPTION value= 20>Org4</OPTION></SELECT><INPUT type="submit" value="Go"></p></FORM><%Dim oChart, c, Categories(5), Vals(5), i, sCaption, nData, nOrg' Get the input valuenData = Request.QueryString("sOrg")'When the page loads the first time, set ndata to 5if len(nData) = 0 then nData = 5' Generate random categories and values for the chart' These values can come from some existing data sourcefor i = 1 to 5	Categories(i) = "Machine" & CStr(i)	Vals(i) = nData * Rnd(100)next' Create a Chart ObjectSet oChart = CreateObject("OWC.Chart")Set c = oChart.Constants' Set the different parameters for the ChartSpaceoChart.Border.Color = c.chColorNone' Get Organization number and use it to set the CaptionnOrg = nData/5sCaption = "Current Utilizations for Org"sCaption = sCaption & CStr(nOrg)' Add a chart and set parameters for the chartoChart.Charts.AddoChart.Charts(0).Type = oChart.Constants.chChartTypeColumnClusteredoChart.Charts(0).SeriesCollection.AddoChart.Charts(0).SeriesCollection(0).Caption = sCaptionoChart.Charts(0).SeriesCollection(0).SetData c.chDimCategories, c.chDataLiteral, CategoriesoChart.Charts(0).SeriesCollection(0).SetData c.chDimValues, c.chDataLiteral, ValsoChart.Charts(0).HasLegend = TrueoChart.Charts(0).HasTitle = True' Get a temporary filename to save chart in that filesFname = Session("FSO").GetTempName & session.SessionID & ".gif"' Export the chart to the temporary fileoChart.ExportPicture server.MapPath(sFname), "gif", 600, 512' Create a link to the generated fileResponse.Write "<img src='" & sFname & "'>"' Store the file with its path in the session object for cleanupSession("sTempFile" & Session("n")) = Server.MapPath(sFname)' Increment the number of filesSession("n") = Session("n") + 1%></body></html>					
  12. プロジェクトを保存します。
  13. プロジェクト エクスプローラで chart.asp を右クリックし、[ブラウザで表示] をクリックします。
さまざまなコンピュータの CPU 使用率を示すグラフがページに表示されます。別の組織を選択すると、別の使用率が表示されます。

複数の異なるデータ集合を使用して複数のグラフを作成する場合は、それぞれのグラフに対して GIF ファイルを作成する必要があります。このサンプルでは、スクリプティング ランタイム ライブラリの FileSystemObject を使用して GIF 画像の一時ファイルを作成しています。このファイルは ASP ページと同じフォルダに保存されるので、Session オブジェクトの MapPath メソッドを使用して一時ファイルの場所を参照できます。ファイル名はセッション変数として保存されるので、セッションの終了時に自動的に削除されます。

IIS では、セッションがタイムアウトになると、必ず Session_OnEnd サブルーチンが実行されることに注意してください。セッションは、一定の時間内にクライアントからページが要求されなかった場合にタイムアウトします。タイムアウトの時間は、セッションの開始時に 1 分間に設定されます。

その他の注意点

現時点で、ExportPicture メソッドで使用できるフィルタは "GIF" 画像用のフィルタのみです。

ExportPicture メソッドには 2 つの引数を指定できます。引数では、生成するグラフのサイズをピクセル単位で指定します。この資料のサンプル コードでは、高さと幅をハード コーディングしています。このようにせずに、高さと幅をクライアントが指定できるようにすることもできます。

OWC.Chart ProgID は Office Web コンポーネント 9.0 に適用されます。バージョン 10 のコンポーネントを使用する場合は、ProgID を OWC.Chart から OWC10.ChartSpace に変更します。バージョン 11 のコンポーネントを使用する場合は、ProgID を OWC.Chart から OWC11.ChartSpace に変更します。

サーバー側で使用する場合の問題点

Office 2000 Web コンポーネントはサーバー側での使用を想定して設計されていません。多数のユーザー接続が同時に発生するサーバー環境で Office 2000 Web コンポーネントを使用すると、問題が発生する可能性があります。これらの問題の多くは Office XP Web コンポーネントおよび Office 2003 Web コンポーネントで対処されているため、大規模なサーバー側のソリューションを構築する場合は Office XP Web コンポーネントまたは Office 2003 Web コンポーネントの使用をお勧めします。

関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
317316 [INFO] Office 2000 Web コンポーネントをサーバー側で使用する場合の制約事項
関連情報
『Programming Microsoft Office Web Components』Dave Stearns 著、ISBN: 0-7356-0794-X

グラフ Web コンポーネントの使用の関連情報を参照するには、以下の「サポート技術情報」 (Microsoft Knowledge Base) をクリックしてください。
240263 [HOWTO] グラフ Web コンポーネントで複合グラフを作成する方法
235885 Visual Basic を使用して Office のグラフ Web コンポーネントを使用する方法
243192 [HOWTO] VBScript を使用してグラフをスプレッドシート コンポーネントに連結する
owc realtime
プロパティ

文書番号:244049 - 最終更新日: 10/19/2005 08:26:00 - リビジョン: 3.2

  • Microsoft Office Web コンポーネント
  • Microsoft Office Web コンポーネント
  • Microsoft Office Chart Component 9.0
  • kbhowto kbofficewebchart KB244049
フィードバック
.gif?"> >>ow.location.protocol) + "//c.microsoft.com/ms.js'><\/script>");