jvDrawSection(セクションとフィールド描画)

セクションとフィールドを描画します。

[構文]
 
Function jvDrawSection(ByVal jid As Long , ByVal mode As Long) As Long
 
C言語
int jvDrawSection(int jid, int mode);
 
JAVA
int jvDrawSection(int jid, int mode);
 
Delphi
Function jvDrawSection(jid, mode: Longint): Longint;
 

設定項目

内容

jid

jvCreateで取得したジョブID

mode

描画するモード(設定値参照)

 
リターンコード
 

定数

内容

 

0

正常終了

JV_REQ_ENDPAGE

1

正常終了。改ページの要求

JV_ERR_PARAMETER

-2

パラメータエラー

JV_ERR_JOBID

-3

ジョブIDエラー

JV_ERR_FONTEMBED_FILE

-124

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

JV_ERR_FONTEMBED_CODE

-125

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

JV_ERR_OUTOFRANGE

-127

描画領域を超えるため描画不可

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

定数

内容

JV_FORM_FIELD

1

フォームとフィールドを描画

JV_FORM_ONLY

2

フォームのみ描画

JV_FIELD_ONLY

3

フィールドのみ描画

 
[解説]
 
jvDrawSectionは可変フォーム用のファンクションです。固定フォームの場合はjvDrawFormを使います。
 
mode は、帳票を部分的に描画する時に使います。
 
セクションを正常に描画した後、指定中のセクションを描画する領域がまだ残っている場合には0が返ります。描画する領域が残っていない場合には「JV_REQ_ENDPAGE(1)」が返ります。
「JV_REQ_ENDPAGE(1)」が返った場合には、改ページ、または、セクション変更のどちらかが必要です。
 
jvDrawSection をコールした時に、描画領域不足のためセクションが描画できない場合には「JV_ERR_OUTOFRANGE(-127)」が返ります。このエラーが起こると、セクションは描画されず、フィールドにセットされたデータはクリアされます。同じセクションを繰り返し描画する時には、「JV_REQ_ENDPAGE(1)」が返った時に改ページやセクション変更などの処理を行い、このエラーを起こさないようにします。
 
「JV_ERR_FONTEMBED_FILE(-124)」と「JV_ERR_FONTEMBED_CODE(-125)」エラーは、Adobe PDFドキュメントを作成している時のエラーです。どちらも jvSetString でフォントを埋め込む設定がされている時に発生します。
「JV_ERR_FONTEMBED_FILE(-124)」エラーは、全てのフォントを埋め込む設定がされている場合に発生します。このエラーは、フォームファイルの中に埋め込めないフォントが見つかった時に発生します。エラーの原因となったフォント名は、、エラー発生直後に、jvGetString で取得することができます
「JV_ERR_FONTEMBED_CODE(-125)」エラーは、フォントを埋め込めない文字コードが見つかった時に発生します。エラーの原因となった文字コードは、エラー発生直後に、jvGetLongで取得することができます。
 
Adobe PDFドキュメントへフォントを埋め込む
 
基本的なコーディング   
   
[コーディング例]
 
Dim jid&, ret&
 
jid = jvCreate(JV_PRINTER, form1.hWnd, Printer.hDC, 0, 0, 0, "")
ret = jvSetForm(jid, "c:\JiveReport\納品書.jfm", 1, "", 100, 0, 0)
ret = jvStartDoc(jid, "納品書", "")
ret = jvSetSection(jid, "ヘッダー")
ret = jvDrawSection(jid, JV_FORM_FIELD)
 
for i=1 to 20
ret = jvSetSection(jid, "明細1")
 |
ret = jvDrawSection(jid, JV_FORM_FIELD)
next i
 
ret = jvSetSection(jid, "フッター")
ret = jvDrawSection(jid, JV_FORM_FIELD)
ret = jvEndPage(jid)
ret = jvEndDoc(jid)
ret = jvClose(jid)