org.opengion.hayabusa.taglib

## クラス ReportTableTag

- java.lang.Object
- - javax.servlet.jsp.tagext.TagSupport
  - - javax.servlet.jsp.tagext.BodyTagSupport
    - - org.opengion.hayabusa.taglib.CommonTagSupport
      - - org.opengion.hayabusa.taglib.ReportTableTag

- すべての実装されたインタフェース:
    java.io.Serializable, javax.servlet.jsp.tagext.BodyTag, javax.servlet.jsp.tagext.IterationTag, javax.servlet.jsp.tagext.JspTag, javax.servlet.jsp.tagext.Tag, javax.servlet.jsp.tagext.TryCatchFinally

      public class ReportTableTag
      extends CommonTagSupport

  検索結果の DBTableModelオブジェクトをレポート形式に変換するタグです。 データ(DBTableModel)と、コントローラ(DBTableReport クラス)を与えて、 外部からコントロールすることで、各種形式で データ(DBTableModel)を表示させることが 可能です。
  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：<og:report fileURL="[･･･]" listId="[･･･]" ･･･ />
         ●body：なし

         ●Tag定義：
           <og:report
               listId           ○【TAG】帳票IDを指定します(必須)。
               fileURL            【TAG】雛型のHTMLファイルの保存してある ディレクトリを指定します
               programFile        【TAG】HTMLファイルをEXCEL変換する場合に使用するBATファイルを指定します
               outFileURL         【TAG】出力HTMLファイルの保存してあるディレクトリを指定します
               outFilename      ○【TAG】ファイルを作成するときの出力ファイル名をセットします(必須)。
               headerKeys         【TAG】固定部の{@KEY} の KEY 部分をCSV形式で複数指定します
               headerVals         【TAG】固定部のKEY に対応する値をCSV形式で複数指定します
               footerKeys         【TAG】繰り返し部の終了後に表示する key 部分をCSV形式で複数指定します
               footerVals         【TAG】固定部のKEY に対応する値をCSV形式で複数指定します
               pageEndCut         【TAG】ボディー部(繰り返し部)がなくなったときに、それ以降を表示するかどうか[true/false]を指定します(初期値:true)
               reportClass        【TAG】実際に書き出すクラス名の略称(DBTableReport_**** の ****)をセットします(初期値:HTML)
               language           【TAG】タグ内部で使用する言語コード[ja/en/zh/…]を指定します
               scope              【TAG】キャッシュする場合のスコープ[request/page/session/applicaton]を指定します(初期値:session)
               tableId            【TAG】(通常使いません)sessionから所得する DBTableModelオブジェクトの ID
               storageType        【TAG】生成した帳票の出力先ストレージタイプを指定します。
               bucketName          【TAG】生成した帳票の出力先バケット名を指定します。
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
           />

         ●使用例

  変更履歴:

    5.10.9.0 (2019/03/01) oota クラウドストレージ対応を追加。(Fileクラスを拡張)

  機能分類
    その他出力
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

- - ### フィールドのサマリー

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.BodyTagSupport

      `bodyContent`

    - ### クラスから継承されたフィールド javax.servlet.jsp.tagext.TagSupport

      `id, pageContext`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.BodyTag

      `EVAL_BODY_BUFFERED, EVAL_BODY_TAG`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.IterationTag

      `EVAL_BODY_AGAIN`

    - ### インタフェースから継承されたフィールド javax.servlet.jsp.tagext.Tag

      `EVAL_BODY_INCLUDE, EVAL_PAGE, SKIP_BODY, SKIP_PAGE`

  - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `ReportTableTag()`

  - ### メソッドのサマリー

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `int` | `doEndTag()` Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
    `protected java.lang.String` | `getTagName()` タグの名称を、返します。
    `protected void` | `release2()` タグリブオブジェクトをリリースします。
    `void` | `setBucketName(java.lang.String bucket)` 【TAG】バケット名を設定します。
    `void` | `setFileURL(java.lang.String url)` 【TAG】雛型のHTMLファイルの保存してある ディレクトリを指定します。
    `void` | `setFooterKeys(java.lang.String ftKeys)` 【TAG】繰り返し部の終了後に表示する key 部分をCSV形式で複数指定します。
    `void` | `setFooterVals(java.lang.String ftVals)` 【TAG】固定部のKEY に対応する値をCSV形式で複数指定します。
    `void` | `setHeaderKeys(java.lang.String hKeys)` 【TAG】固定部の{@KEY} の KEY 部分をCSV形式で複数指定します。
    `void` | `setHeaderVals(java.lang.String hVals)` 【TAG】固定部のKEY に対応する値をCSV形式で複数指定します。
    `void` | `setListId(java.lang.String listId)` 【TAG】帳票IDを指定します。
    `void` | `setOutFilename(java.lang.String filename)` 【TAG】ファイルを作成するときの出力ファイル名をセットします。
    `void` | `setOutFileURL(java.lang.String url)` 【TAG】出力HTMLファイルの保存してあるディレクトリを指定します。
    `void` | `setPageEndCut(java.lang.String peCut)` 【TAG】ボディー部(繰り返し部)がなくなったときに、それ以降を表示するかどうか[true/false]を指定します(初期値:true)。
    `void` | `setProgramFile(java.lang.String programFile)` 【TAG】HTMLファイルをEXCEL変換する場合に使用するBATファイルを指定します。
    `void` | `setReportClass(java.lang.String reportClass)` 【TAG】実際に書き出すクラス名の略称(DBTableReport_**** の ****)をセットします(初期値:HTML)。
    `void` | `setStorageType(java.lang.String storage)` 【TAG】保存先のストレージタイプを設定します。
    `void` | `setTableId(java.lang.String id)` 【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
    `java.lang.String` | `toString()` このオブジェクトの文字列表現を返します。

    - ### クラスから継承されたメソッド org.opengion.hayabusa.taglib.CommonTagSupport

      `add, add, addEventColumn, addEventColumn, check, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseKey, setCaseNN, setCaseNull, setCaseVal, setContextAttribute, setCookie, setDebug, setLanguage, setLbl, setNoTransitionRequest, setObject, setObject, setParameterNames, setParameterRows, setRequestAttribute, setRequestCacheData, setScope, setSessionAttribute, setUserInfo, startQueryTransaction, sys, sysBool, sysInt, useMainTrans, useQuotCheck, useTag, useXssCheck`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.BodyTagSupport

      `doInitBody, getBodyContent, getPreviousOut, release, setBodyContent`

    - ### クラスから継承されたメソッド javax.servlet.jsp.tagext.TagSupport

      `findAncestorWithClass, getId, getParent, getValue, getValues, removeValue, setId, setPageContext, setParent, setValue`

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### インタフェースから継承されたメソッド javax.servlet.jsp.tagext.Tag

      `getParent, setPageContext, setParent`

- - ### コンストラクタの詳細

    - #### ReportTableTag

          public ReportTableTag()

  - ### メソッドの詳細

    - #### doEndTag

          public int doEndTag()

      Taglibの終了タグが見つかったときに処理する doEndTag() を オーバーライドします。
      定義:
        `doEndTag` インタフェース内 `javax.servlet.jsp.tagext.Tag`
      オーバーライド:
        `doEndTag` クラス内 `CommonTagSupport`
      戻り値:
        後続処理の指示
      変更履歴:

        3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
        3.8.0.4 (2005/08/08) 帳票出力に準拠した方式に変更
        4.0.0.0 (2007/10/18) メッセージリソース統合( getResource().getMessage ⇒ getResource().getLabel )
        4.0.0.0 (2007/11/28) メソッドの戻り値をチェックします。
        5.10.9.0 (2019/03/01) クラウドストレージ対応を追加。

    - #### release2

          protected void release2()

      タグリブオブジェクトをリリースします。 キャッシュされて再利用されるので、フィールドの初期設定を行います。
      オーバーライド:
        `release2` クラス内 `CommonTagSupport`
      変更履歴:

        2.0.0.4 (2002/09/27) カスタムタグの release() メソッドを、追加
        3.1.1.2 (2003/04/04) Tomcat4.1 対応。release2() を doEndTag()で呼ぶ。
        3.1.3.0 (2003/04/10) REPORT_ENCODE(帳票エンコーディング)を利用するように修正。
        3.8.0.4 (2005/08/08) filename 削除、listId ,programFile 追加 ,
        5.10.9.0 (2019/03/01) storageType,bucketNameを追加。

    - #### setTableId

          public void setTableId(java.lang.String id)

      【TAG】(通常は使いません)結果のDBTableModelを、sessionに登録するときのキーを指定します (初期値:HybsSystem#TBL_MDL_KEY[=h_tblmdl])。
      パラメータ:
        `id` - sessionに登録する時の ID
      説明:

             検索結果より、DBTableModelオブジェクトを作成します。これを、下流のviewタグ等に
             渡す場合に、通常は、session を利用します。その場合の登録キーです。
             query タグを同時に実行して、結果を求める場合、同一メモリに配置される為、
             この tableId 属性を利用して、メモリ空間を分けます。
            		(初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])。

    - #### setListId

          public void setListId(java.lang.String listId)

      【TAG】帳票IDを指定します。
      パラメータ:
        `listId` - 帳票ID
      説明:

             雛形ファイルは、帳票ID.html となります。また、ファーストページ対応の場合は、
             帳票ID_FIRST.html になります。
             なお、filename 属性が指定された場合は、そちらが優先されます。

      変更履歴:

        3.8.0.4 (2005/08/08) 新規追加

    - #### setHeaderKeys

          public void setHeaderKeys(java.lang.String hKeys)

      【TAG】固定部の{@KEY} の KEY 部分をCSV形式で複数指定します。
      パラメータ:
        `hKeys` - 固定部の key
      説明:

             カンマで複数指定できます。
             分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
             こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

      変更履歴:

        3.5.6.2 (2004/07/05) 先に配列に分解してからリクエスト変数の値を取得

    - #### setHeaderVals

          public void setHeaderVals(java.lang.String hVals)

      【TAG】固定部のKEY に対応する値をCSV形式で複数指定します。
      パラメータ:
        `hVals` - 固定部の値
      説明:

             カンマで複数指定で、リクエスト情報でも設定できます。
             分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
             こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

      変更履歴:

        3.5.6.2 (2004/07/05) 先に配列に分解してからリクエスト変数の値を取得

    - #### setFooterKeys

          public void setFooterKeys(java.lang.String ftKeys)

      【TAG】繰り返し部の終了後に表示する key 部分をCSV形式で複数指定します。
      パラメータ:
        `ftKeys` - 繰り返し部の終了後に表示する key
      説明:

             カンマで複数指定できます。
             分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
             こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

      変更履歴:

        3.5.6.2 (2004/07/05) 先に配列に分解してからリクエスト変数の値を取得

    - #### setFooterVals

          public void setFooterVals(java.lang.String ftVals)

      【TAG】固定部のKEY に対応する値をCSV形式で複数指定します。
      パラメータ:
        `ftVals` - 繰り返し部の終了後に表示する値
      説明:

             カンマで複数指定で、リクエスト情報でも設定できます。
             分解方法は、CSV変数を先に分解してから、getRequestParameter で値を取得します。
             こうしないとデータ自身にカンマを持っている場合に分解をミスる為です。

      変更履歴:

        3.5.6.2 (2004/07/05) 先に配列に分解してからリクエスト変数の値を取得
        3.8.1.2 (2005/12/19) footer 関連の値とpageEndCut の関係を解除します。

    - #### setPageEndCut

          public void setPageEndCut(java.lang.String peCut)

      【TAG】ボディー部(繰り返し部)がなくなったときに、それ以降を表示するかどうか[true/false]を指定します(初期値:true)。
      パラメータ:
        `peCut` - 繰り返し部の終了後に継続処理するかどうか (true:処理しない/false:処理する)
      説明:

             true では、それ以降を出力しません。
             初期値は "true" (なくなった時点で、出力しない。)です。

      変更履歴:

        3.8.1.2 (2005/12/19) footer 関連の値とpageEndCut の関係を解除します。

    - #### setFileURL

          public void setFileURL(java.lang.String url)

      【TAG】雛型のHTMLファイルの保存してある ディレクトリを指定します。
      パラメータ:
        `url` - 雛型のHTMLファイルのディレクトリ
      説明:

             この属性で指定されるディレクトリのファイルを読み取ります。
             指定方法は、通常の fileURL 属性と同様に、先頭が、'/' (UNIX) または、２文字目が、
             ":" (Windows)の場合は、指定のURLそのままのディレクトリに、そうでない場合は、
             システムパラメータ の FILE_URL 属性で指定のフォルダの下に、作成されます。
             fileURL = "{@USER.ID}" と指定すると、FILE_URL 属性で指定のフォルダの下に、
             さらに、各個人ID別のフォルダを作成して、そこを操作します。

      変更履歴:

        4.0.0.0 (2005/01/31) StringUtil.urlAppend メソッドの利用
        4.0.0.0 (2007/11/20) 指定されたディレクトリ名の最後が"\"or"/"で終わっていない場合に、"/"を付加する。

    - #### setProgramFile

          public void setProgramFile(java.lang.String programFile)

      【TAG】HTMLファイルをEXCEL変換する場合に使用するBATファイルを指定します。
      パラメータ:
        `programFile` - プログラムファイル名
      説明:

             ファイルは、フルパスで指定してください。
             指定がない場合は、変換処理は行いません。
             通常は、dbdef2/def/Script/runExcelPrint.bat を呼び出してください。
             初期値は、null(変換処理しない)です。

      変更履歴:

        3.8.0.4 (2005/08/08) 新規追加

    - #### setOutFileURL

          public void setOutFileURL(java.lang.String url)

      【TAG】出力HTMLファイルの保存してあるディレクトリを指定します。
      パラメータ:
        `url` - 出力HTMLファイルのディレクトリ
      説明:

             この属性で指定されるディレクトリにファイルを出力します。
             指定方法は、通常の fileURL 属性と同様に、先頭が、'/' (UNIX) または、２文字目が、
             ":" (Windows)の場合は、指定のURLそのままのディレクトリに、そうでない場合は、
             システムパラメータ の FILE_URL 属性で指定のフォルダの下に、作成されます。
             fileURL = "{@USER.ID}" と指定すると、FILE_URL 属性で指定のフォルダの下に、
             さらに、各個人ID別のフォルダを作成して、そこに出力します。

      変更履歴:

        4.0.0.0 (2007/11/20) 指定されたディレクトリ名の最後が"\"or"/"で終わっていない場合に、"/"を付加する。

    - #### setOutFilename

          public void setOutFilename(java.lang.String filename)

      【TAG】ファイルを作成するときの出力ファイル名をセットします。
      パラメータ:
        `filename` - 出力ファイル名
      説明:

             ファイルを作成するときの出力ファイル名をセットします。

    - #### setReportClass

          public void setReportClass(java.lang.String reportClass)

      【TAG】実際に書き出すクラス名の略称(DBTableReport_**** の ****)をセットします(初期値:HTML)。
      パラメータ:
        `reportClass` - クラス名(の略称)
      関連項目:
        `DBTableReportのサブクラス`
      説明:

             これは、org.opengion.hayabusa.report 以下の DBTableReport_**** クラスの **** を
             与えます。これらは、DBTableReport インターフェースを継承したサブクラスです。
             初期値は、"HTML" です。
             属性クラス定義の DBTableReport を参照願います。

    - #### getTagName

          protected java.lang.String getTagName()

      タグの名称を、返します。 自分自身のクラス名より、自動的に取り出せないため、このメソッドをオーバーライドします。
      オーバーライド:
        `getTagName` クラス内 `CommonTagSupport`
      戻り値:
        タグの名称
      関連項目:
        `CommonTagSupport.getDocumentLink()`
      変更履歴:

        4.0.0.0 (2005/01/31) 新規追加

    - #### setStorageType

          public void setStorageType(java.lang.String storage)

      【TAG】保存先のストレージタイプを設定します。
      パラメータ:
        `storage` - 保存先ストレージタイプ
      説明:

             ファイルを保存先の、ストレージタイプを設定します。
             未設定の場合は、システムリソースの「CLOUD_TARGET」が参照されます。
             自身のサーバを指定する場合は、「default」を設定してください。

      変更履歴:

        5.10.9.0 (2019/03/01) 新規追加

    - #### setBucketName

          public void setBucketName(java.lang.String bucket)

      【TAG】バケット名を設定します。
      パラメータ:
        `bucket` - バケット名
      説明:

             バケット名を指定します。
             クラウドストレージ利用時のみ有効です。
             未設定の場合は、システムリソースの「CLOUD_BUKET」が参照されます。

      変更履歴:

        5.10.9.0 (2019/03/01) 新規追加

    - #### toString

          public java.lang.String toString()

      このオブジェクトの文字列表現を返します。 基本的にデバッグ目的に使用します。
      オーバーライド:
        `toString` クラス内 `CommonTagSupport`
      戻り値:
        このクラスの文字列表現
      変更履歴:

        5.10.9.0 (2019/03/01) storageType, bucketNameを出力対象に追加。

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.