パッケージ org.opengion.hayabusa.report2


package org.opengion.hayabusa.report2
 OpenOfficeを利用した帳票システム関係のクラスです。

 従来のExcel帳票は、互換性のため残っていますが、こちらのパッケージが今後の主流の帳票システムになります。

 
  • クラス
    説明
    OpenOfficeを利用して様々な形式のファイルを読み込み、出力・印刷を行うための変換クラスです。 変換を行うことのできる入出力のフォーマット以下の通りです。 [対応フォーマット] 入力[Calc(ods) ,Excel(xls) ] ⇒ 出力[Calc(ods) ,Excel(xls,xlsx) ,PDF] 入力[Writer(odt) ,Word(doc) ] ⇒ 出力[Writer(odt) ,Word(doc,docx) ,PDF] 入力[Impress(odp),PowerPoint(ppt)] ⇒ 出力[Impress(odp),PowerPoint(ppt,pptx) ,PDF] 入力[ * 上記の全て ] ⇒ 印刷 ※ xlsx,docx,pptx は、MS 2007形式の為、LibreOffice のみ利用できます。 変換を行うには、以下の2通りの方法があります。 (1)簡易的な変換メソッドを利用する場合 DocConverter_OOO.convert(String, String)を利用して、変換を行います。 この場合、出力形式は、出力ファイルの拡張子に従って自動的に決定されます。 このため、印刷処理などを行う場合は、(2)の方法で出力して下さい。 (2)段階的に書くメソッドを呼び出して変換する場合 オブジェクトを生成した後、DocConverter_OOO.open()、#(各種変換メソッド)、Object.clone()を 順番に呼び出して変換を行います。 この場合、出力形式は、それに対応するメソッドを呼び出ることで決定されます。 また、変換を行うための、各種メソッドは、例外としてThrowableを投げるように定義されています。 このクラスを利用する場合は、このThrowableをcatchし、catch句で、必ずDocConverter_OOO.close(boolean)に、 "true"(エラー発生時のクローズ処理)を指定して、終了処理を行って下さい。 (これを行わない場合、OpenOfficeの不要なプロセスが残ってしまう可能性があります) また、出力ファイルが既に存在する場合、出力ファイルは一旦削除された後、処理されます。 なお、入力ファイルと出力ファイルが同じ場合、何も処理されません。(例外も発行されません) 入力ファイルを、CSV形式で複数指定した場合、複数の入力ファイルをマージして出力します。 ※1 現状は、ファイルのマージは、入力ファイルがExcelまたはCalcの場合のみ対応しています。 ※ DocConverter は、クラウド対応されていません。変換時はローカルファイル間で行ってください。
    帳票要求に設定された実行方法により、各種出力、Excel取り込み処理を行います。 1.出力 雛形ファイルを一時ディレクトリに展開した後、帳票データを埋め込み、最後にOpenOffice.orgの プロセスを利用して出力を行います。 対応している出力方法は、印刷、PDF出力、Excel出力です。 一時ディレクトリは、システムリソースのREPORT_FILE_URLで定義されたディレクトリです。 これが定義されていない場合は、システムリソースのFILE_URLで定義されたディレクト以下の/REPORTに 展開されます。 一時ファイルは、処理が正常に終了した場合、削除されます。(ODS出力のみにした場合は、出力直前の ODSファイルは残ります) 処理でエラーが発生した場合は、一時ファイルはデバッグのため、削除されません。 2.取り込み 旧帳票システムの取り込み処理及びその後のPG起動を行います。 実行方法により、出力、入力を行います。
    帳票処理要求を管理するキューオブジェクトです。 このオブジェクトでは、帳票の定義及びデータと、処理中に発生したエラーメッセージを管理します。 また、このキューを生成したオブジェクトもこのオブジェクトにセットされます。
    帳票要求スレッドの本体です。 外部からスタックされたキューを先入れ先出しの順番に処理します。 あるキューに対してエラーが発生すると、システムリソースのRETRY_COUNTで設定された回数再処理を試みます。 この回数分エラーが発生した場合は、そのキューのみがアプリエラーとなります。 このスレッドは一度生成されると、外部から明示的に終了の要求を起こさない限り生存し続けます。 終了するには、finish()メソッドを呼び出します。 このメソッドが呼ばれると、内部でスタックしているキューは全てクリアされるため、その時点で 処理されているキューの処理が完了した時点で、スレッドが終了します。
    帳票処理を行う各スレッドを管理するクラスです。
    指定されたパスに存在するODSの各XMLファイルをパースし、帳票定義及び 帳票データから書き換えます。
    シート単位のcontent.xmlを管理するためのクラスです。
    Sofficeのプロセスを管理するファクトリクラスです。
    ProcessPool は、AbstractObjectPool を継承した オブジェクトプールです。
    帳票処理のキューの処理方法を定義するインターフェースです。
    DBからキューを作成するためのクラスです。 キューはGE5xテーブルから作成されます。 キュー生成時点(処理スレッドにスタックした時点)では、帳票データのテーブルモデルは作成されません。 帳票データは、各スレッドからset()メソッドを呼び出したタイミングで生成されます。 処理開始及び、完了のステータスは、GE50の完成フラグに更新されます。 また、エラー発生時のメッセージは、GE56に更新されます。
    帳票明細データを帳票レイアウトテーブルに従って分割し、その結果をDBTableModelとして 生成します。 データの分割は、バイト数ベースで行われるため、エンコードを正しく指定する必要があります。 エンコード指定は、システムリソースのDB_ENCODEで指定します。 レイアウトテーブルが存在しない場合、又は、帳票データが存在しない場合、DBTableModelは nullで返されます。
    画面から直接キューを作成するためのクラスです。
    OpenOfficeのプロセスを表すクラスです。
    OpenOfficeのプロセスを表すクラスです。
    Calc帳票システムでタグのパースを行うためのクラスです。