コンテンツにスキップ

帳票生成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 ダウンロードするファイルです。