jvDrawGraph(グラフ描画)

グラフを描画します。

[構文]
 
Function jvDrawGraph(ByVal jid As Long, ByVal graphType As Long, ByVal sx As Long, ByVal sy As Long, ByVal width As Long, ByVal height As Long, ByVal data As String, ByVal fontInfo As String, ByVal numInfo As String, ByVal info1 As String , ByVal info2 As String) As Long
 
C言語
int jvDrawGraph(int jid, int graphType, int sx, int sy, int width, int height, char *data, char *fontInfo, char *numInfo, char *info1, char *info2);
 
JAVA
int jvDrawGraph(int jid, int graphType, int sx, int sy, int width, int height, String data, String fontInfo, String numInfo, String info1, String info2);
 
Delphi
Function jvDrawGraph(jid, graphType, sx, sy, width, height: Longint; data, fontInfo, numInfo, info1, info2: PAnsiChar): Longint;
 

設定項目

内容

jid

jvCreateで取得したジョブID

graphType

グラフの種類(設定値参照)

sx

描画する左上X座標(1/100mm単位)

sy

描画する左上Y座標(1/100mm単位)

width

描画する領域の幅(1/100mm単位)

height

描画する領域の高さ(1/100mm単位)

data

グラフデータ

fontInfo

文字描画に使用するフォント情報

numInfo

数値軸情報

info1

データ系列情報または散布図X軸情報

info2

項目情報または散布図情報

 
リターンコード
 

定数

内容

 

0

正常終了

JV_ERR_JOBID

-3

ジョブIDエラー

JV_ERR_PARAMETER

-2

 パラメータエラー

JV_ERR_MEMORY

-4

メモリ関連エラー

JV_ERR_DRAW_GRAPH

-67

グラフ描画エラー

JV_ERR_FONTEMBED_FILE

-124

PDFドキュメントに埋め込めないフォントがある

JV_ERR_FONTEMBED_CODE

-125

PDFドキュメントにフォントを埋め込めない文字コードがある

 
[設定値]
 
graphType には次の値を設定します。
 

定数

内容

JV_GRAPH_COL

1

2D横棒グラフ

JV_GRAPH_BAR

2

2D縦棒グラフ

JV_GRAPH_PIE

3

円グラフ

JV_GRAPH_RADAR

4

レーダーグラフ

JV_GRAPH_AREA

5

面グラフ

JV_GRAPH_SCATTER

6

散布図グラフ

JV_GRAPH_LINE

7

折れ線グラフ

 
色には次の値を設定します。
 

定数

内容

JV_COLOR_BLACK

0

JV_COLOR_WHITE

16777215

JV_COLOR_RED

255

JV_COLOR_GREEN

65280

JV_COLOR_BLUE

16711680

JV_COLOR_LIGHTGRAY

12632256

明るい灰色

JV_COLOR_GRAY

8421504

灰色

JV_COLOR_DARKGRAY

4210752

濃い灰色

 
ポイント種には次の値を設定します。
 

定数

内容

JV_POINT_NONE  

0

なし

JV_POINT_BOX

1

四角形

JV_POINT_CIRCLE

2

JV_POINT_TRIANGLE1

3

三角形

JV_POINT_TRIANGLE2

4

逆三角形

JV_POINT_LOZENGE

5

ひし形

 
塗り潰しパターンには次の値を設定します。
 

定数

内容

JV_FILL_NULL

0

塗り潰しなし

JV_FILL_SOLID

1

前景色で塗り潰し(初期値)

JV_FILL_DKGRAY

2

濃い灰色

JV_FILL_GRAY

3

灰色

JV_FILL_LTGRAY

4

薄い灰色

JV_FILL_WHITE

5

JV_FILL_FDIAGONAL

6

45度右上がりハッチ

JV_FILL_BDIAGONAL

7

45度右下がりハッチ

JV_FILL_HORIZONTAL

8

水平ハッチ

JV_FILL_VERTICAL

9

垂直ハッチ

JV_FILL_CROSS

10

水平と垂直のクロスハッチ

JV_FILL_DIAGCROSS

11

45度のクロスハッチ

JV_FILL_BLACK

12

 
線種には次の値を設定します。
 

定数

内容

JV_PS_SOLID

0

実線 (初期値)

JV_PS_DASH

1

破線

JV_PS_DOT

2

点線

JV_PS_DASHDOT

3

一点鎖線

JV_PS_DASHDOTDOT

4

二点鎖線  

 
[解説]
 
グラフは、レポートエディタでグラフフィールドや固定グラフを描画することもできます。
 
JV_ERR_FONTEMBED_FILE(-124)」と「JV_ERR_FONTEMBED_CODE(-125)」は、Adobe PDFドキュメントを作成している時のエラーです。これらのエラーは、PDFドキュメントへフォントを埋め込むよう jvSetString で設定した場合に発生します。
「JV_ERR_FONTEMBED_FILE(-124)」エラーは、描画に使われている全てのフォントを埋め込むように設定した場合に発生します。このエラーは、帳票を描画中、PDFドキュメントへ埋め込むことができないフォントが見つかった時に発生します。エラーの原因となったフォント名は、、エラー発生直後に、jvGetString で取得することができます
「JV_ERR_FONTEMBED_CODE(-125)」エラーは、帳票を描画中、PDFドキュメントへ埋め込むことができない文字コードが見つかった時に発生します。エラーの原因となった文字コードは、エラー発生直後に、jvGetLongで取得することができます。  
 
Adobe PDFドキュメントへフォントを埋め込む
 
 
data には、整数のグラフデータをデータ間をカンマで区切って設定します。グラフデータに小数を設定しても切り捨てられて整数となります。散布図では、データの倍率と組み合わせて小数を表現することができます。
 
fontInfo にはフォント情報を「数値軸のフォント名、数値軸のフォントサイズ、info1 のフォント名、info1 のフォントサイズ、info2 のフォント名、info2 のフォントサイズ」の順に、カンマ区切りで設定します。フォントサイズの単位はポイントです。
 
numInfo には数値軸情報を「最小値、最大値、増分、目盛色、単位、凡例」の順に、カンマ区切りで設定します。最小値と最大値は数値軸の最小値と最大値になります。増分は数値軸の最小値から最大値までの目盛のスキップ分になります。目盛色は目盛を描画する文字の色でRGB値で設定します。単位は最大値の上に表示される文字列です。凡例には、表示(1)、非表示(0)を設定します。
 
info1 は、散布図以外の場合はデータ系列情報として扱われ、散布図の場合はX軸情報として扱われます。
 
データ系列情報
データ系列情報をデータ間をカンマで区切ってセットします。
データは、「系列名称、前景色、背景色、名称色、塗り潰しパターン、線種、ポイント種」の順番でデータ系列の数分先頭から繰り返してセットします。
系列名称はデータ系列の名称として表示されます。
前景色と背景色はグラフデータを描画する図形の色でRGB値でセットします。
名称色は系列名称を描画する色でRGB値でセットします。
塗り潰しパターンはグラフデータを描画する図形の塗り潰しパターンになります。
線種はグラフデータを描画する図形の線の種類になります。
ポイント種は折れ線グラフのポイント地点を示す図形の種類になります。
 
散布図X軸情報
X軸情報をデータ間をカンマで区切ってセットします。
データは、「最小値、最大値、増分、目盛色、単位」の順番でセットします。
最小値と最大値はX軸の最小値と最大値になります。
増分は数値軸の最小値から最大値までの目盛のスキップ分になります。目盛色は目盛を描画する文字の色でRGB値でセットします。
単位は最大値の横に表示される文字列です。
 
info2 は、散布図以外の場合は項目情報として扱われ、散布図の場合は散布図情報として扱われます。
 
項目情報
項目情報は必要な場合のみセットします。
項目情報がセットされない場合は、系列情報が軸となり、項目情報がセットされると系列情報は凡例として表示され、項目情報が軸となります。
項目情報をデータ間をカンマで区切ってセットします。
データは、「項目名称、名称色」の順番で項目の数分繰り返してセットします。
項目名称は項目の名称として表示されます。
名称色は項目名称を描画する色でRGB値でセットします。
 
散布図情報
散布図情報は必要な場合のみセットします。
散布図情報はデータ間をカンマで区切ってセットします。
データは、「ポイント種、ポイント色、データの倍率」の順番でセットします。
ポイント種はデータのポイントを表わす図形の形になります。
ポイント色はポイント種を描画する色でRGB値でセットします。
データの倍率は、グラフデータの倍率をセットします。10がセットされている場合、グラフデータは1/10倍され、100がセットされている場合、グラフデータは1/100倍されます。データの倍率は、グラフデータ(dataパラメータ)に小数データを設定したい場合に使用します。(整数の場合には1をセットしておきます。)グラフデータには整数しか設定できません。そこで、例えば1.58という値をセットしたい時、グラフデータには158をセットし、データの倍率に100をセットします。こうしておくと、内部では158を1/100倍してグラフを描画します。
 
[コーディング例]
 
//散布図以外の場合
Dim jid&, ret&
Dim graph&
Dim numI$, fontI$, i1$,i2$,data$
jid = jvCreate(JV_PRINTER, form1.hWnd, Printer.hDC, 0, 0, 0, "")
ret = jvSetForm(jid, "c:\JiveReport\売上実績.jfm", 1, "", 100, 0, 0)
ret = jvStartDoc(jid, "売上実績", "")
graph = JV_GRAPH_COL
numI = "0, 100, 10, JV_COLOR_BLUE, mm, 1"
fontI = "MS 明朝,10,MS 明朝,10,MS 明朝,10"
i1 = "名古屋,,,,,,,東京,,,,,,,大阪,,,,,,,"
i2 = "1996,1997,1998"
data = "20,12,33,24,14,35,28,16,37"
名古屋のデータは20,24,28
東京のデータは12,14,16
大阪のデータは33,35,37
1996のデータは20,12,33
1997のデータは24,14,35
1998のデータは28,16,37
ret = jvDrawGraph(jid,graph,0,0,3000,4000,data,fontI,numI,i1,i2)
|
ret = jvEndPage(jid)
ret = jvEndDoc(jid)
ret = jvClose(jid)
//散布図の場合
Dim jid&, ret&
Dim graph&
Dim numI$, fontI$, i1$,i2$,data$
jid = jvCreate(JV_PRINTER, form1.hWnd, Printer.hDC, 0)
ret = jvSetForm(jid, "c:\JiveReport\納品書.jfm", 1, "", 100, 0, 0)
ret = jvStartDoc(jid, "納品書", "")
graph = JV_GRAPH_SCATTER
numI = "0,100,10,JV_COLOR_BLUE,mm, 1"
fontI = "MS 明朝,10,MS 明朝,10,MS 明朝,10"
i1 = "0,200,20,mm"
i2 = "JV_POINT_CIRCLE,JV_COLOR_BLACK,100"
data = "20,12,33,24,14,35,28,16,37,27"
ret = jvDrawGraph(jid,graph,0,0,3000,4000,data,fontI,numI,i1,i2)
|
ret = jvEndPage(jid)
ret = jvEndDoc(jid)
ret = jvClose(jid)