コンテンツにスキップ

ユーザーアプリケーション開発者操作ガイド

更新履歴

更新日 更新箇所 概要
2023/12/12 初版作成 初版作成

目次

対象読者

ユーザー 説明
帳票開発者 DBXFORM帳票開発アプリの操作を行う人を想定しています。SQL、HTML、Microsoft Officeに関する知識を持っていることを前提とします。
アプリケーション開発者 Oracle APEXから帳票生成を行うアプリケーションの開発者を想定しています。SQL、PL/SQL、Oracle APEXに関する知識を持っていることを前提とします。帳票開発者が生成した帳票テンプレートJSONファイルから、帳票を出力するためのコードを記載します。

Oracle APEXでの利用例

本章は、DBXFORM帳票開発アプリにて作成した帳票テンプレートJSONファイルをもとに帳票の生成またはファイルの結合を行うための実装例を説明します。帳票テンプレートJSONファイルやその保存テーブル及びデータ取得元のテーブルが作成されていることを前提とします。

DBXFORM帳票開発アプリについてはDBXFORM帳票開発者操作ガイドを参照してください。

想定読者
アプリケーション開発者

帳票ファイルの生成

DBXFORM帳票開発アプリにて生成した帳票テンプレートJSONファイル及び、SQLグループで設定した問合せ先のテーブルデータが存在することを前提とします。

帳票テンプレートJSONファイルのテーブル保存

帳票テンプレートJSONファイルをテーブルのBLOB列に保存します。

保存テーブルの例:

create table form_sample_table(
    blob_template_json_file BLOB
);

帳票ファイル生成アプリケーション作成

  1. アプリケーション・ビルダーを開き、作成をクリックします。
  2. 新規アプリケーションをクリックし、アプリケーションの作成画面に遷移します。
  3. 名前帳票ファイル生成アプリケーションを入力し、アプリケーションの作成ボタンをクリックします。
帳票ファイル生成ページの作成
  1. 帳票ファイル生成アプリケーションページ・デザイナに遷移します。
  2. ページの作成をクリックし、空白ページを選択します。
  3. ページ定義にて任意のページ名を入力し、ページ・モードにて標準を選択しページの作成をクリックします。
帳票ファイルダウンロードボタンの設定
  1. 帳票のダウンロードを行うためのTextボタンを配置します。
  2. 識別 > ラベル帳票のダウンロードと入力します。
  3. 動作 > アクションにてページの送信が選択されていることを確認してください。
帳票ファイル生成プロセスの設定
  1. ページ・デザイナ左側のプロセスタブにてAjaxコールバックにプロセスを作成します。
  2. 識別 > 名前にて任意の名称を設定します。(例: FORM_DOWNLOAD)を設定します。この名称は後程使用します。
  3. ソース > PL/SQLコードに以下のコードを入力します。
declare
    l_sql_key_json         JSON_OBJECT_T;
    l_output_file_name     VARCHAR2(255);
    l_form_template_file   BLOB;
    l_form_template_json   JSON_OBJECT_T;
    l_result_blob          BLOB;
begin
    l_sql_key_json := JSON_OBJECT_T();

    -- SQLキーJSONの生成
    -- p_sql_key_json: 保存するJSON_OBJECT_T型の変数を指定します(複数キーが存在する場合同じ変数を指定します)。
    -- p_key: 帳票テンプレートJSONファイルの、SQLグループに指定したSQLの変換するキーを指定します。 (#DEPARTMENT_ID#であれば、DEPARTMENT_IDを指定)
    -- p_data: キーの変換する値を指定します。
    -- p_value_type: 値の種類を記載してください。stringかnumberが指定できます。
    DBXFORM.ADD_SQL_KEY(
        p_sql_key_json   => l_sql_key_json,
        p_key            => 'DEPARTMENT_ID',
        p_data           => 10, -- 部門IDが10のデータを取得
        p_value_type     => 'number'
    );

    -- 帳票テンプレートJSONファイルを保存したテーブルからBLOBを取得
    select blob_template_json_file
    into l_form_template_file
    from form_sample_table;

    -- 取得したBLOBファイルをJSONオブジェクトに変換
    l_form_template_json := JSON_OBJECT_T(l_form_template_file);

    -- ファイル名の指定
    l_output_file_name := 'sample_file_name.pdf';

    -- 帳票の生成
    l_result_blob := DBXFORM.GET_RESULT_FORM(
        p_template_json  => l_form_template_json,
        p_sql_key_json   => l_sql_key_json
    );

    -- 生成したファイルのダウンロード
    DBXAP_UTIL.DOWNLOAD_FILE (
        p_file_name => l_output_file_name,
        p_file_data => l_result_blob
    );

exception
    WHEN OTHERS THEN
        rollback;
        RAISE;
end;
帳票ファイル生成用ブランチの設定
  1. プロセスの後ブランチを作成します。
  2. 動作 > タイプにて、ページまたはURL(リダイレクト)を選択します。
  3. ターゲットリンクが定義されていませんをクリックしリンク・ビルダー・ターゲットに遷移します。
  4. ターゲット > ページ&APP_PAGE_ID.(現在のページ番号)を入力します。
  5. 詳細をクリックし、詳細入力項目(リクエスト、アンカー)を表示します。
  6. リクエストに、APPLICATION_PROCESS=<Ajaxコールバックに作成したプロセス名>(例: APPLICATION_PROCESS=FORM_DOWNLOAD)を入力します。

  7. DBXFORM/DBXAP_UTILパッケージのリファレンスは帳票生成API PL/SQLリファレンスを参考にしてください。

帳票ファイルのダウンロード

帳票ファイル生成アプリケーションの実行
  1. 編集内容を保存した後アプリケーションを実行し、作成したページに遷移します。
  2. 帳票のダウンロードボタンをクリックすると、帳票ファイルがダウンロードされます。

PDFファイルの結合

PDF結合用帳票テンプレートJSONファイル及び、結合するPDFファイルのテーブルデータが存在することを前提とします。

PDF結合用帳票テンプレートJSONファイルのテーブル保存

PDF結合用帳票テンプレートJSONファイルをテーブルのBLOB列に保存します。

保存テーブルの例:

create table merge_sample_table(
    blob_template_json_file BLOB
);

結合ファイルのテーブル保存

結合するPDFファイルをテーブルのBLOB列に保存します。

保存テーブルの例:

create table merge_file_sample_table(
    merge_file BLOB
);

PDF結合アプリケーション作成

  1. アプリケーション・ビルダーを開き、作成をクリックします。
  2. 新規アプリケーションをクリックし、アプリケーションの作成画面に遷移します。
  3. 名前PDF結合アプリケーションを入力し、アプリケーションの作成ボタンをクリックします。
PDF結合ページの作成
  1. PDF結合アプリケーションページ・デザイナに遷移します。
  2. ページの作成をクリックし、空白ページを選択します。
  3. ページ定義にて任意のページ名を入力し、ページ・モードにて標準を選択しページの作成をクリックします。
PDF結合ダウンロードボタンの設定
  1. 結合されたPDFファイルのダウンロードを実行する為のTextボタンを任意の場所に配置します。
  2. 識別 > ラベル結合PDFのダウンロードと入力します。
  3. 動作 > アクションにてページの送信が選択されていることを確認してください。
PDF結合プロセスの設定
  1. ページ・デザイナ左側のプロセスタブにてAjaxコールバックプロセスを作成します。
  2. 識別>名前にて任意の名称を設定します。(例: FORM_DOWNLOAD)を設定します。この名称は後程使用します。
  3. ソース>PL/SQLコードに以下のコードを入力します。
declare
    l_output_file_name     VARCHAR2(255);
    l_form_template_file   BLOB;
    l_form_template_json   JSON_OBJECT_T;
    l_result_blob          BLOB;
begin
    -- PDF結合用帳票テンプレートJSONファイルを保存したテーブルからBLOBを取得
    select blob_template_json_file
    into l_form_template_file
    from merge_sample_table;

    -- 取得したBLOBファイルをJSONオブジェクトに変換
    l_form_template_json := JSON_OBJECT_T(l_form_template_file);

    -- 結合するファイルをループ
    FOR rec_file IN(
        select merge_file
        from merge_file_sample_table
    ) LOOP
        -- 結合用帳票テンプレートJSONにファイルを追加
        DBXFORM.ADD_TEMPLATE_FILE(
            p_template_json => l_form_template_json,
            p_file          => rec_file.merge_file
        );
    END LOOP;

    -- PDF結合用帳票テンプレートJSONを結合結果のPDFファイル(BLOB)に変換
    l_result_blob := DBXFORM.GET_RESULT_MERGE(
        p_template_json  => l_form_template_json
    );

    -- ダウンロードするファイル名
    l_output_file_name := 'sample_file_name.pdf';

    -- 生成したファイルのダウンロード
    DBXAP_UTIL.DOWNLOAD_FILE(
        p_file_name => l_output_file_name,
        p_file_data => l_result_blob
    );

exception
    WHEN OTHERS THEN
        rollback;
        RAISE;
end;
PDF結合用ブランチの設定
  1. プロセスの後ブランチを作成します。
  2. 動作 > タイプにて、ページまたはURL(リダイレクト)を選択します。
  3. ターゲットリンクが定義されていませんをクリックし、リンク・ビルダー-ターゲットに遷移します。
  4. ターゲット > ページ&APP_PAGE_ID.(現在のページ番号)を入力します。
  5. 詳細をクリックし、詳細入力項目(リクエスト、アンカー)を表示します。
  6. リクエストに、APPLICATION_PROCESS=<Ajaxコールバックに作成したプロセス名>(例: APPLICATION_PROCESS=FORM_DOWNLOAD)を入力します。

  7. DBXFORM/DBXAP_UTILパッケージのリファレンスは帳票生成API PL/SQLリファレンスを参考にしてください。

PDF結合ファイルのダウンロード

PDF結合アプリケーションの実行
  1. 編集内容を保存した後アプリケーションを実行し、作成したページに遷移します。
  2. 結合PDFのダウンロードボタンをクリックすると、結合を行ったファイルがダウンロードされます。