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

文書翻訳 文書翻訳
文書番号: 244049 - 対象製品
この記事は、以前は次の 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 = 1
    End Sub
    
    Sub 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
    	Next
    End 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 value
    nData = Request.QueryString("sOrg")
    
    'When the page loads the first time, set ndata to 5
    if len(nData) = 0 then nData = 5
    
    ' Generate random categories and values for the chart
    ' These values can come from some existing data source
    for i = 1 to 5
    	Categories(i) = "Machine" & CStr(i)
    	Vals(i) = nData * Rnd(100)
    next
    
    ' Create a Chart Object
    Set oChart = CreateObject("OWC.Chart")
    Set c = oChart.Constants
    
    ' Set the different parameters for the ChartSpace
    oChart.Border.Color = c.chColorNone
    
    ' Get Organization number and use it to set the Caption
    nOrg = nData/5
    sCaption = "Current Utilizations for Org"
    sCaption = sCaption & CStr(nOrg)
    
    ' Add a chart and set parameters for the chart
    oChart.Charts.Add
    oChart.Charts(0).Type = oChart.Constants.chChartTypeColumnClustered
    oChart.Charts(0).SeriesCollection.Add
    oChart.Charts(0).SeriesCollection(0).Caption = sCaption
    oChart.Charts(0).SeriesCollection(0).SetData c.chDimCategories, c.chDataLiteral, Categories
    oChart.Charts(0).SeriesCollection(0).SetData c.chDimValues, c.chDataLiteral, Vals
    oChart.Charts(0).HasLegend = True
    oChart.Charts(0).HasTitle = True
    
    ' Get a temporary filename to save chart in that file
    sFname = Session("FSO").GetTempName & session.SessionID & ".gif"
    
    ' Export the chart to the temporary file
    oChart.ExportPicture server.MapPath(sFname), "gif", 600, 512
    
    ' Create a link to the generated file
    Response.Write "<img src='" & sFname & "'>"
    
    ' Store the file with its path in the session object for cleanup
    Session("sTempFile" & Session("n")) = Server.MapPath(sFname)
    
    ' Increment the number of files
    Session("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 を使用してグラフをスプレッドシート コンポーネントに連結する

プロパティ

文書番号: 244049 - 最終更新日: 2005年10月19日 - リビジョン: 3.2
この資料は以下の製品について記述したものです。
  • Microsoft Office Web コンポーネント
  • Microsoft Office Web コンポーネント
  • Microsoft Office Chart Component 9.0
キーワード:?
kbhowto kbofficewebchart KB244049
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com