お世話になります。
当方、折れ線グラフを含むシステムをASPにて実現したいと思っています。
試しにOWC(OfficeWebコンポーネント)を使ってグラフは描けたのですが、
更に折れ線グラフ上からマウスクリックイベントを取得したいのです。
(上記イベントを取得するには「ValueToPointメソッド」というものを
使用するらしいのですが、当方の環境がOffice2Kのためかエラーになって
しまいます。OfficeXPじゃないとサポートしてないのかな?)
また、プロットエリアに縦線を描きたいのですが、可能でしょうか?
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
質問にあるようなグラフを会社の同僚が作っているのをみたことがあります。
どこかのホームページのサンプルを参考に作ったらしいですが・・・確か、Javascriptとスタイルシートを組み合わせていたようなおぼえがあります。
座標を指定し、その座標と座標を結ぶ直線を描くスタイルシートを、ASPで書き出していました。
また、mousedownなどのイベントが発生した座標を取得し、再描画していたと思います。
検索すればサンプルが見つかるのではないでしょうか。うる憶えでスイマセン。
アドバイスありがとうございました。
グラフの上に透過gifを貼り付け、細かくエリアを切るのはやめました。
再描画する前に一瞬フォーカスが残ってしまいますので。
無事、JavaScriptで座標取れました。
No.4
- 回答日時:
先ほどの回答の補足です。
VMLということでした。基本的なサンプルですが、参考になれば・・・V_GRAPH.htmlとV_GRAPH2.aspというファイルです。
***********V_GRAPH.html**************************
<HTML>
<HEAD>
<TITLE>VMLによるグラフサンプル</TITLE>
</HEAD>
<BODY bgcolor="fffff1">
<center>
<div style="position:absolute;top:30;left:20;height:100;width:150;background-color:#FFA500;filter:alpha(opacity=100,
finishOpacity=0,style=1,startX=0,startY=0,finishX=150,finishY=100)">
</div>
<div style="position:absolute;top:110;left:110;height:100;width:150;background-color:#87CEFA;filter:alpha(opacity=100,
finishOpacity=0,style=1,startX=0,startY=0,finishX=150,finishY=100)">
</div>
<span id="test1" style="position:relative:top:5;left:5;width:600;height:50;font-size:23pt;color:NAVY;font-weight:bold;font-family:MS Pゴシック;filter:alpha(opacity=100,
finishOpacity=0,style=1,startX=0,startY=0,finishX=400,finishY=50) shadow(color=gray,direction=150)">
ASPとVMLによるグラフ作成
</span>
<hr>
<table borser="0" width="600">
<tr>
<td>
<b>ASPとVML(VectorMarcupLanguage)を使用して、折れ線グラフを作成してみます!</b><br>
<br>
<font color="blue">特徴として、画像ファイルを一切使用せず、位置座標をもったベクトルデータで線分や図形を表現しています。</font>
<br>
<br>
<br>
■とりあえずサンプルなので、以下の項目をクリアしてないと正常に表示しません!<br>
<font color="red">テキストBOXは全部埋めてください 。</font>
<br>
<br>
■テキストBOXを適当に埋めて、"グラフ表示"ボタンを押してください。<br>
<font color="red">デフォルトでは商品別の月別売上推移の表になっています。</font><br>
</td>
</tr>
</table>
<Form method="post" Action="v_graph2.asp">
<table border="0"">
<tr>
<td></td>
<td></td>
<td>
<Input type="text" name="RangeA1" value="Jan" size="5">
<Input type="text" name="RangeB1" value="Feb" size="5">
<Input type="text" name="RangeC1" value="Mar" size="5">
<Input type="text" name="RangeD1" value="Apr" size="5">
<Input type="text" name="RangeE1" value="May" size="5">
<Input type="text" name="RangeF1" value="Jun" size="5">
<Input type="text" name="RangeG1" value="Jul" size="5">
<Input type="text" name="RangeH1" value="Aug" size="5">
</td>
</tr>
<tr>
<td>系列1</td>
<td>
<Input type="text" name="Range2" value="Shohin-A" size="12">
</td>
<td>
<Input type="text" name="RangeA2" value="50" size="5">
<Input type="text" name="RangeB2" value="78" size="5">
<Input type="text" name="RangeC2" value="120" size="5">
<Input type="text" name="RangeD2" value="70" size="5">
<Input type="text" name="RangeE2" value="210" size="5">
<Input type="text" name="RangeF2" value="160" size="5">
<Input type="text" name="RangeG2" value="92" size="5">
<Input type="text" name="RangeH2" value="145" size="5">
</td>
</tr>
</table>
<Input Type="submit" Value="グラフ表示"></Form>
</center>
</BODY>
</HTML>
***********V_GRAPH2.asp**************************
<%
Dim txt(8)
Dim val(8)
Dim gif(7)
Dim gset(7)
Dim gheight(7)
txt(0)=Request("RangeA1")
txt(1)=Request("RangeB1")
txt(2)=Request("RangeC1")
txt(3)=Request("RangeD1")
txt(4)=Request("RangeE1")
txt(5)=Request("RangeF1")
txt(6)=Request("RangeG1")
txt(7)=Request("RangeH1")
title=Request("Range2")
val(0)=CInt(Request("RangeA2"))
val(1)=CInt(Request("RangeB2"))
val(2)=CInt(Request("RangeC2"))
val(3)=CInt(Request("RangeD2"))
val(4)=CInt(Request("RangeE2"))
val(5)=CInt(Request("RangeF2"))
val(6)=CInt(Request("RangeG2"))
val(7)=CInt(Request("RangeH2"))
offTop=200'//TOPからグラフ表示範囲のoffset
offLeft=75'//Leftからグラフ表示範囲のoffset
tWidth=400'//グラフ表示範囲の幅
tHeight=300'//グラフ表示範囲の高さ
pitch=50'//グラフ表示ピッチ
%>
<HTML xmlns:v="urn:schemas-microsoft-com:vml">
<style>
v\:*{behavior:url(#default#VML);}
</style>
<body bgcolor="fffff1">
<center>
<span id="test1" style="position:relative:top:5;left:5;width:600;height:50;font-size:28pt;color:NAVY;font-weight:bold;font-family:MS Pゴシック;filter:alpha(opacity=100,
finishOpacity=0,style=1,startX=0,startY=0,finishX=400,finishY=50) shadow(color=gray,direction=150)">
display the graph!
</span>
</center>
<hr>
<Span style="position:absolute;top:<%=offTop%>;left:<%=offLeft%>;height:<%=tHeight%>;width:<%=tWidth%>;background-color:#87CEFA;filter:alpha(opacity=100,
finishOpacity=0,style=1,startX=0,startY=0,finishX=400,finishY=50)"></Span>
<%
For i= 0 To 6
%>
<v:line from="<%=(i*pitch)%>,<%=tHeight-val(i) %>" to="<%=(i+1)*pitch%>,<%=tHeight-val(i+1)%>" strokecolor="red" strokeweight="2px" style="position:absolute;left:<%=offLeft+25%>;top:<%=offTop%>;"/>
<%Next
i=0
For i=0 to 7
%>
<v:rect fillcolor="#111111" strokeweight="2px" style="position:absolute;left:<%=(i*pitch)+97%>;top:<%=497-val(i)%>;width:7;height:7;"/>
<%
Next
i=0
For i=0 to 7
%>
<Span style="position:absolute;top:<%=(offTop-20)+(tHeight-val(i))%>;left:<% =(offLeft+18)+(i*pitch)%>"><%=val(i)%></Span>
<%
Next
i=0
For i=0 to 7
%>
<Span style="position:absolute;top:<%=offTop+tHeight%>;left:<% =(offLeft+15)+(i*pitch)%>;"><%=txt(i) %></Span>
<%
Next
%>
<Span style="position:absolute;top:220;left:240;"><%=title%></Span>
<br>
<br>
<center>
このように簡単にグラフを作成する事ができます。<br>
VMLを使用すればWEBの表現力は更に豊かになります。<br>
<A href="v_graph.htm">Back</a>
</center>
</BODY>
</HTML>
回答ありがとうございます。
私もVMLのサンプル見つけてました。
既にOWCをやめ、サンプルをベースに奮闘しています。
グラフの上に透過gifを貼り付け、細かくエリアを切ってクリックした座標から
再描画しています。
OWCを使えたら良かったのですが、サンプルを含めて実績ないですもんね。
No.2
- 回答日時:
マウスクリックイベントは、OfficeグラフのobjectタグのidがChartSpace1だとすると、
JavaScriptなら
<script language="JavaScript" for="ChartSpace1" event="Click">
~処理~
</script>
VBScriptなら
<script language="VBScript">
Sub ChartSpace1_Click(ChartEventInfo)
~処理~
End Sub
</script>
です。
この回答への補足
回答ありがとうございます。
上記方法だと、グラフ全体のイベントになってしまうと思っています。
グラフエリア内の座標を取得したいのですが、難しそうですね。
また、プロットエリアの縦線はクリックした座標に描きなおすことが
できればと思い、質問した次第です。
アドバイスありがとうございました。
OWCはやめて、VMLでグラフ描画することにしました。
無事、JavaScriptで座標取れました。
OWCは、今後の課題にしたいと思います。
No.1
- 回答日時:
とりあえずプロットエリアの縦線は、FrontPage2000で...
1.Officeグラフを選択後、右クリックしてプロパティツールボックスを表示させる。
2.ドロップダウンコンボからグラフ…項目軸…(要は項目軸)を選択。
3.目盛と枠線というバーをクリック。
4.目盛と補助目盛について設定するところが現れるので目盛線チェックボックスにチェックを入れる。
こんなところでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) このプログラミングをどう組みますか? Googlecolabでやってるんですが、出来る方お願いします 1 2022/07/13 10:52
- Excel(エクセル) Excelグラフについて 1 2023/05/12 16:26
- Excel(エクセル) <スプレッドシート>採用進捗 グラフ作成について 3 2022/10/23 15:52
- 企画・マーケティング 表やグラフ作成、数値管理ツールを探しています。 1 2023/05/30 13:33
- 数学 新規ユーザ数の波 14 2022/07/11 18:44
- Excel(エクセル) EXCELのグラフを画像(JPG形式)で保存、通常実行がうまく行かない。ステップインはうまく行く 3 2022/08/30 12:06
- Excel(エクセル) 折れ線グラフの描き方 2 2022/07/11 10:12
- Excel(エクセル) エクセルのパレート図の折れ線グラフの各プロットのパーセント表示ってできますか? やり方を教えてほしい 1 2022/08/18 09:03
- iPhone(アイフォーン) 現在iphone13を使用していて物理simとesimのデュアル simを所有しています。 折角の機 1 2023/01/19 21:42
- 数学 x>=0, y>=0のとき、√x+√y=1の曲線の長さを求める。 y=(1-√x)^2と変形すると、 1 2022/12/31 11:20
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
formで項目を連結したい
-
画面の2重起動をチェックする...
-
phpMyAdminみたいに、テーブル...
-
送信フォームで送信ボタンをお...
-
VBSでブラウザ上のテキストボッ...
-
Javascript 郵便番号の入力欄で...
-
Javascriptの"return "について
-
ハイパーリンクを別ウインドウ...
-
フォームから入力すると、入力...
-
name属性のないformタグの、中...
-
プルダウン 項目が多いので先頭...
-
ラジオボタンのNullチェック
-
value内に変数を入れたい
-
JavaScriptで特定のtdタグにcla...
-
入力フォームに半角スペース以...
-
マウスカーソルの変更
-
ツリービューのチェックボック...
-
javaScriptの変数をJavaの変数...
-
特定<table>内の<td>の色を変える
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
チェックボックス付きのテーブ...
-
localStorageでのcheckbox制御
-
複数のselect値で1つも選択され...
-
JavaScriptの「.querySelectorA...
-
Javascriptの電卓で最初の何も...
-
文字数を数える際に空白、改行...
-
formで項目を連結したい
-
jQueryで合計を出したい
-
Formのシリアライズができない
-
画面表示とともにtableの指定の...
-
テーブル内のチェックボックス...
-
入力チェックの外部スクリプト...
-
ラジオボタンが選択されたらテ...
-
VBSでの自動ログイン
-
Javascriptで自動的に計算する...
-
jQuery テキストボックス読み取...
-
同一nameの input type="text"...
-
ボタンクリックでフォーカス移動
-
画面の2重起動をチェックする...
-
送信ボタン連打を抑止したいです
おすすめ情報