帳票生成API PL/SQLリファレンス
更新履歴
更新日 | 更新箇所 | 概要 |
---|---|---|
2023/12/12 | 初版作成 | 初版作成 |
目次
初めに
本書は、帳票ファイルを生成する際に必要となるPL/SQLパッケージのインターフェースを説明します。
想定読者 |
---|
アプリケーション開発者 |
DBXFORMパッケージ
SET_RESULT_FORMプロシージャ
SQL実行結果のデータが埋め込まれた帳票ファイルデータを生成し、p_blob_loc
に指定したLOBロケータに設定します。
LOBロケータにすでにデータが存在する場合、ロケータの内容を上書きします。
PROCEDURE "SET_RESULT_FORM"(
p_blob_loc IN OUT NOCOPY BLOB,
p_template_json IN JSON_OBJECT_T,
p_sql_key_json IN JSON_OBJECT_T default NULL,
p_file_estimate_limit IN NUMBER default 100
)
引数 | 説明 |
---|---|
p_blob_loc | 変換先のLOBロケータを指定します。 |
p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 |
p_sql_key_json | ADD_SQL_KEYプロシージャにて生成したJSONオブジェクトを指定します。 |
p_file_estimate_limit | SQLのデータから予測されるファイルの出力件数の制限値です。 |
GET_RESULT_FORMファンクション
p_template_json
に指定した帳票テンプレートJSONファイルを基に、SQL実行結果のデータが埋め込まれた帳票ファイルをBLOB形式で戻します。出力がHTML形式の場合、zipファイルとして戻されます。
DBXFORM.GET_RESULT_FORM(
p_template_json IN JSON_OBJECT_T,
p_sql_key_json IN JSON_OBJECT_T default NULL,
p_file_estimate_limit IN NUMBER default 100
) RETURN BLOB
引数 | 説明 |
---|---|
p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 |
p_sql_key_json | ADD_SQL_KEYプロシージャにて生成したJSONオブジェクトを指定します。 |
p_file_estimate_limit | SQLのデータから予測されるファイルの出力件数の制限値です。 |
SET_OUTPUT_FORMATプロシージャ
p_template_json
に指定した帳票テンプレートJSONファイルの出力フォーマットを変更します。
出力フォーマットはp_extension
にhtml,pdf,docx,xlsxのいずれかを指定します。
PROCEDURE "SET_OUTPUT_FORMAT" (
p_template_json IN OUT NOCOPY JSON_OBJECT_T,
p_extension IN VARCHAR2
)
引数 | 説明 |
---|---|
p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 |
p_extension | 出力フォーマットを指定します。html,pdf,docx,xlsxのいずれかに変更可能です。 |
SET_MERGEPDF_NUMBERINGプロシージャ
p_template_json
に指定したPDFマージ用帳票テンプレートJSONファイルのナンバリングオプションを各オプション引数(p_skip_page
,p_start_number
,p_font_size
,p_format_string
)に設定した値に変更します。
オプション引数に値を設定しない場合は、元のオプションは変更されずに処理を終了します。
PROCEDURE "SET_MERGEPDF_NUMBERING" (
p_template_json IN OUT NOCOPY JSON_OBJECT_T,
p_skip_page IN NUMBER default NULL,
p_start_page_number IN NUMBER default NULL,
p_font_size IN NUMBER default NULL,
p_format_string IN VARCHAR2 default NULL
)
引数 | 説明 |
---|---|
p_template_json | DBXFORM帳票開発アプリにて作成したPDFマージ用帳票テンプレートJSONファイルを指定します。 |
p_skip_page | 描画テキストを表示しないページ(表紙など)を指定します。 |
p_start_page_number | 表示開始時のページ番号を指定します。 |
p_font_size | 描画テキストの文字サイズを指定します。 |
p_format_string | 描画するテキストを指定します。(ページ番号は#PAGE#、最大ページ数は#TOTALPAGE#で指定) |
ADD_SQL_KEYプロシージャ
帳票テンプレートJSONファイルに定義されたSQLグループのSQLに指定した変数を指定します。
p_sql_key_json
に指定したJSONオブジェクトに変数値を追加して戻し、実行結果のJSONオブジェクトをGET_RESULT_FORMファンクションで指定します。
SQLに記載した変数(#<p_keyに指定した値>#
)をp_data
に指定した値に変換してSQLを実行します。
DBXFORM.ADD_SQL_KEY(
p_sql_key_json IN OUT NOCOPY JSON_OBJECT_T,
p_key IN VARCHAR2,
p_data IN VARCHAR2,
p_value_type IN VARCHAR2
)
引数 | 説明 |
---|---|
p_sql_key_json | 変数を保存するためのJSONオブジェクトです |
p_key | SQLグループで指定したSQLの変数を指定するための変数名です。 |
p_data | 変数に指定される変換値です。 |
p_value_type | 変換値のデータ種別です。(string/number) |
例)p_sql_key_json
に指定したJSONオブジェクトに、p_key
,p_data
,p_value_type
に指定した値を保存します。
-- SQLグループのSQL例)帳票テンプレートJSONに定義されたSQLのIDとSUB_IDを指定
-- select
-- DISPLAY_VALUE_01,
-- DISPLAY_VALUE_02
-- from SAMPLE_TABLE
-- where ID = #ID#
-- and SERIAL_NO = #SUB_ID#
DECLARE
l_json JSON_OBJECT_T;
BEGIN
l_json := JSON_OBJECT_T();
DBXFORM.ADD_SQL_KEY(
p_sql_key_json => l_json,
p_key => 'ID',
p_data => 1,
p_value_type => 'number'
);
DBXFORM.ADD_SQL_KEY(
p_sql_key_json => l_json,
p_key => 'SUB_ID',
p_data => 'A20',
p_value_type => 'string'
);
END;
l_jsonの保存内容
{ "ID":{"data":["1"],"value_type":"number"},
"SUB_ID":{"data":["A20"],"value_type":"string"}}
ADD_TEMPLATE_FILEプロシージャ(PDFの追加シグネチャ)
PDFマージ用帳票テンプレートJSONファイルに、結合するファイルを追加します。 ファイルが複数ある場合、結合したい順番で順次実行します。
DBXFORM.ADD_TEMPLATE_FILE (
p_template_json IN OUT NOCOPY JSON_OBJECT_T,
p_file IN BLOB
)
引数 | 説明 |
---|---|
p_template_json | PDFマージ用帳票テンプレートJSONファイルを指定します。結合対象PDFが追加されたJSONが戻ります。 |
p_file | 結合対象PDFファイルのBLOBを指定します。 |
ADD_TEMPLATE_FILEプロシージャ(帳票テンプレートJSONファイル追加シグネチャ)
PDFマージ用帳票テンプレートJSONファイルに、結合するファイルを追加します。 帳票テンプレートJSONファイル(HTML帳票)であれば、結合対象に直接追加可能です。
DBXFORM.ADD_TEMPLATE_FILE (
p_template_json IN OUT NOCOPY JSON_OBJECT_T,
p_add_template_json IN JSON_OBJECT_T,
p_sql_key_json IN JSON_OBJECT_T
)
引数 | 説明 |
---|---|
p_template_json | PDFマージ用帳票テンプレートJSONファイルを指定します。結合対象が追加されたJSONが戻ります。 |
p_add_template_json | 結合対象の帳票テンプレートJSONファイルを指定します。HTML帳票のみ対応しています。結合時にPDFに変換されます。 |
p_sql_key_json | ADD_SQL_KEYプロシージャにて生成したJSONオブジェクトを指定します。 |
GET_REQUEST_JSONファンクション
PL/SQL以外から帳票WebAPIのコールを行う場合などに利用します。このファンクションから生成されるデータをBodyとし、帳票WebAPIのコールを行います。p_template_json
に指定した帳票テンプレートJSONファイルと、p_sql_data
に指定したSQL結果データを結合しリクエストデータを生成します。PDF結合用帳票テンプレートJSONの場合、p_sql_dataにはNULLを指定します。
FUNCTION "GET_REQUEST_JSON" (
p_template_json IN JSON_OBJECT_T,
p_sql_data IN JSON_OBJECT_T
) RETURN JSON_OBJECT_T
引数 | 説明 |
---|---|
p_template_json | DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルを指定します。 |
p_sql_data | GET_SQL_DATAファンクションにて生成したSQL結果データを指定します。 |
GET_SQL_DATAファンクション
帳票テンプレートJSONファイルに指定したSQLグループのデータを取得できます。
FUNCTION "GET_SQL_DATA"(
p_template_json IN JSON_OBJECT_T,
p_sql_key_json IN JSON_OBJECT_T
) RETURN JSON_OBJECT_T
引数 | 説明 |
---|---|
p_template_json | 帳票テンプレートJSONファイルを指定します。テンプレートの中にあるSQLを利用します |
p_sql_key_json | ADD_SQL_KEYプロシージャにて生成したJSONオブジェクトを指定します。 |
DBXAP_UTILパッケージ
DOWNLOAD_FILEプロシージャ
引数に指定したBLOBファイルをダウンロードします。Oracle APEXから利用します。
DBXAP_UTIL.DOWNLOAD_FILE (
p_file_name IN VARCHAR2,
p_file_data IN OUT NOCOPY BLOB
)
引数 | 説明 |
---|---|
p_file_name | ダウンロードするファイル名を指定します。 |
p_file_data | ダウンロードするファイルです。 |