org.opengion.hayabusa.taglib

## クラス ViewCrossParamTag

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

- すべての実装されたインタフェース:
    Serializable, BodyTag, IterationTag, JspTag, Tag, TryCatchFinally

      public class ViewCrossParamTag
      extends ViewParamImpl

       viewタグの viewFormType が HTMLCrossTable の場合にパラメータを設定します。

       クロス集計を行う、ViewForm_HTMLCrossTable クラスに対して、各種パラメータを
       設定します。
       パラメータが設定されていない場合は、ViewCrossTableParam の初期値が使用されます。
       (パラメータを使用するには、viewタグのuseParam 属性をtrueに設定する必要があります。)

       SELECT文は、CROSS集計機能を利用して求めます。そのときのフォーマットは、
       ヘッダー1..N,縦,横,計1..N になります。
       ヘッダー部は、複数指定できますが、デフォルトではヘッダーNがキーブレイクすると
       合計用のヘッダーが挿入されます。また、ヘッダーは、前段と同じ値の場合は、表示しません。
       合計は、複数並べることができますが、sumNumber で指定しておく必要があります。

       各属性は、{@XXXX} 変数が使用できます。
       これは、ServletRequest から、XXXX をキーに値を取り出し,この変数に割り当てます。
       つまり、このXXXXをキーにリクエストすれば、この変数に値をセットすることができます。

       http://localhost/query.jsp?KEY1=VLA1&KEY2=VAL2

       のようなリクエストで、{@KEY1} とすれば、 VAL1 がセットされます。

  関連項目:
    直列化された形式
  形式サンプル:

         ●形式：<og:crossParam breakColumn="ZZZ" noGroupColumns="AAA,BBB" sumNumber="2" />
         ●body：なし

         ●Tag定義：
           <og:crossParam
               cubeXColumn        【TAG】CUBE計算の１つ目(X)カラムを指定します
               cubeYColumn        【TAG】CUBE計算の２つ目(Y)カラムを指定します
               sumNumber          【TAG】合計値のカラム数を設定します
               breakColumn        【TAG】ブレークによりヘッダー部を出力させるカラム名をセットします(初期値:ヘッダーN)
               noGroupColumns     【TAG】カラム値を前段と比較して同じ場合でも表示させるカラム名をセットします
               shokeiLabel        【TAG】列小計のカラムに表示するラベルIDを指定します(初期値:空文字列)
               gokeiLabel         【TAG】列合計のカラムに表示するラベルIDを指定します(初期値:空文字列)
               cubeSortType       【TAG】CUBE Y の列ヘッダーのソート方式を指定します(初期値:LOAD)
               gokeiSortDir       【TAG】合計行のソート有無とその方向[true:正方向/false:逆方向/null:ソートしない]を指定します(初期値:null)
               useHeaderColumn    【TAG】ヘッダーカラムにレンデラー、エディターを適用するかを指定します(初期値:false)
               useClassAdd        【TAG】各列情報のclass属性に、カラム名などを付与するかどうかを指定します(初期値:false)
               firstClmGokei      【TAG】合計列をCUBEの先頭部分に出すかどうか[true/false]を指定します(初期値:false)
               saveTableId        【TAG】クロス集計結果の DBTableModel をセーブするセッションキーワードを指定します
               saveScope          【TAG】クロス集計結果の DBTableModel をセーブする scope を指定します
               useHeaderResource  【TAG】ヘッダー表示にラベルリソースを適用するかどうかを指定します(初期値:false)
               headerCodeColumn   【TAG】ヘッダー表示に利用するコードを持つカラムを指定します(初期値:空文字列)
               debug              【TAG】デバッグ情報を出力するかどうか[true/false]を指定します(初期値:false)
           />

         ●使用例
             ViewFormTag の viewFormType が、HTMLCrossTable の場合に使用します。
             useParam 属性を設定しておかないと、使用されません。
             <og:view
                 viewFormType = "HTMLCrossTable"
                 command      = "{@command}"
                 startNo      = "0"
                 pageSize     = "20"
                 useParam     = "true"
             >
                 <og:crossParam
                     breakColumn    = "ZZZ"       : ブレークによりヘッダー部を出力させるカラム名
                     noGroupColumns = "AAA,BBB"   : カラム値を前段と比較して同じ場合でも表示させるカラム名
                     cubeXColumn    = "CUBE_X"    : CUBE計算の１つ目(X)カラムを指定
                     cubeYColumn    = "CUBE_Y"    : CUBE計算の２つ目(Y)カラムを指定
                     shokeiLabel    = "SHOKEI"    : 列小計のカラムに表示するラベルID(初期値:SHOKEI)
                     gokeiLabel     = "GOKEI"     : 列合計のカラムに表示するラベルID(初期値:GOKEI)
                     sumNumber      = "2"         : 合計値のカラム数(初期値１)
                     cubeSortType   = "NUMBER"    : CUBE Y の列ヘッダーのソート方式を指定[STRING/NUMBER/LOAD]
                     gokeiSortDir   = "false"     : 合計行のソート有無とその方向(正方向/逆方向)を指定[true/false/null]
                     firstClmGokei  = "true"      : 合計列をCUBEの先頭部分に出すかどうかを指定[false/true/null]
                     useHeaderColumn= "true"      : ヘッダーカラムにレンデラー、エディターを適用するかどうかを指定[false/true/null]
                     saveTableId    = "DEFAULT"   : クロス集計結果の DBTableModel をセーブするセッションキーワードを指定
                     useClassAdd    = "true"      : String 各列情報のclass属性に、カラム名などを付与するかどうかを指定[false/true/null]
                />
             </og:view >

  機能分類
    画面表示
  バージョン
    4.0
  作成者
    Kazuhiko Hasegawa
  導入されたバージョン:
    JDK5.0,

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

    - ### クラスから継承されたフィールド org.opengion.hayabusa.taglib.CommonTagSupport

      `BR, BUFFER_MIDDLE, CR`

    - ### クラスから継承されたフィールド 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`

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

    コンストラクタ
    コンストラクタと説明
    `ViewCrossParamTag()` デフォルトコンストラクター

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

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `protected String` | `getTagName()` タグの名称を、返します。
    `void` | `setBreakColumn(String clm)` 【TAG】ブレークによりヘッダー部を出力させるカラム名をセットします(初期値:ヘッダーN)。
    `void` | `setCubeSortType(String cubeSortType)` 【TAG】CUBE Y の列ヘッダーのソート方式を指定します(初期値:LOAD)。
    `void` | `setCubeXColumn(String cubeX)` 【TAG】CUBE計算の１つ目(X)カラムを指定します。
    `void` | `setCubeYColumn(String cubeY)` 【TAG】CUBE計算の２つ目(Y)カラムを指定します。
    `void` | `setFirstClmGokei(String firstClmGokei)` 【TAG】合計列をCUBEの先頭部分に出すかどうか[true/false]を指定します(初期値:false)。
    `void` | `setGokeiLabel(String id)` 【TAG】列合計のカラムに表示するラベルIDを指定します(初期値:空文字列)。
    `void` | `setGokeiSortDir(String gokeiSortDir)` 【TAG】合計行のソート有無とその方向[true:正方向/false:逆方向/null:ソートしない]を指定します(初期値:null)。
    `void` | `setHeaderCodeColumn(String headerCode)` 【TAG】ヘッダーのラベルに利用するコードリソースを指定します。
    `void` | `setNoGroupColumns(String clms)` 【TAG】カラム値を前段と比較して同じ場合でも表示させるカラム名をセットします。
    `void` | `setSaveScope(String scope)` 【TAG】クロス集計結果の DBTableModel をセーブする scope を指定します。
    `void` | `setSaveTableId(String id)` 【TAG】クロス集計結果の DBTableModel をセーブするセッションキーワードを指定します。
    `void` | `setShokeiLabel(String id)` 【TAG】列小計のカラムに表示するラベルIDを指定します(初期値:空文字列)。
    `void` | `setSumNumber(String no)` 【TAG】合計値のカラム数を設定します(初期値:１)。
    `void` | `setUseClassAdd(String useClassAdd)` 【TAG】各列情報のclass属性に、カラム名などを付与するかどうかを指定します(初期値:false)。
    `void` | `setUseHeaderColumn(String useHeaderColumn)` 【TAG】ヘッダーカラムにレンデラー、エディターを適用するかを指定します(初期値:false)。
    `void` | `setUseHeaderResource(String useHeaderResource)` 【TAG】ヘッダーカラムにラベルリソースを利用するかを指定します(初期値:false)。

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

      `doEndTag, initParam, putParam, release2, toString`

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

      `add, add, addEventColumn, addEventColumn, check, commitTableObject, debugPrint, doAfterBody, doCatch, doFinally, doStartTag, get, getApplicationInfo, getAttributes, getBodyRawString, getBodyString, getContextAttribute, getContextPath, getCookie, getCSVParameter, getCSVParameter, getDataCondition, getDateFormat, getDBColumn, getDBFunctionName, getDocumentLink, getGUIInfo, getGUIInfoAttri, getHostName, getLabel, getLabelInterface, getLanguage, getLASTAttri, getLongLabel, getMsg, getMsglbl, getNVLAttri, getObject, getParameterNames, getParameterRows, getRequest, getRequestAttribute, getRequestCacheData, getRequestMethod, getRequestParameter, getRequestParameterValues, getRequestValue, getRequestValue, getRequestValues, getReservedParameter, getReservedValue, getResource, getSanitizedBodyString, getScope, getSessionAttribute, getSumRequestValue, getTransaction, getUser, getUserEditInfo, getUserInfo, isAjaxSubmitRequest, isDebug, isNoTransitionRequest, isNull, jspPrint, makeUrl, removeContextAttribute, removeObject, removeRequestAttribute, removeSessionAttribute, set, setAjaxSubmitRequest, setCaseIf, 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`

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

    - #### ViewCrossParamTag

          public ViewCrossParamTag()

      デフォルトコンストラクター
      変更履歴:

        6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

  - ### メソッドの詳細

    - #### setBreakColumn

          public void setBreakColumn(String clm)

      【TAG】ブレークによりヘッダー部を出力させるカラム名をセットします(初期値:ヘッダーN)。
      パラメータ:
        `clm` - ブレークカラム
      説明:

             CROSS集計で求めたフォーマットは、『ヘッダー1..N,縦,横,計1..N 』です。
             ヘッダー部は、複数指定できますが、デフォルトではヘッダーNがキーブレイクすると
             合計用のヘッダーが挿入されます。
             このヘッダーNそのものが、集計フィールドでなく、単なる属性の場合は、
             キーブレイクして欲しくない為、breakColumn="ヘッダーN-1" を指定します。
             初期値は、"ヘッダーN" です。

    - #### setNoGroupColumns

          public void setNoGroupColumns(String clms)

      【TAG】カラム値を前段と比較して同じ場合でも表示させるカラム名をセットします。
      パラメータ:
        `clms` - 非グループ化カラム (CSV形式)
      説明:

             CROSS集計で求めたフォーマットは、『ヘッダー1..N,縦,横,計1..N 』です。
             ヘッダー部は、キーブレイクする都度、ヘッダーを出力します。それまでは、
             各ヘッダーの値が、前段(同一カラムの先の値)と同じ場合は、空白にします。
             こうする事で、値のグループ化が一目で判ります。(初期設定)
             このヘッダーが、集計フィールドでなく、単なる属性の場合は、
             空白ではなく、値として表示したい為、グループ化しない事を指定します。

    - #### setSumNumber

          public void setSumNumber(String no)

      【TAG】合計値のカラム数を設定します(初期値:１)。
      パラメータ:
        `no` - 合計値カラム数 (初期値１)
      説明:

             CROSS集計で求めたフォーマットは、『ヘッダー1..N,縦,横,計1..N 』です。
              合計は、複数並べることができますが、sumNumber で指定しておく必要があります。
             初期値は、1 です。

    - #### setShokeiLabel

          public void setShokeiLabel(String id)

      【TAG】列小計のカラムに表示するラベルIDを指定します(初期値:空文字列)。
      パラメータ:
        `id` - 小計ラベルID
      説明:

             各列の小計のラベルIDを登録します。登録する文字列は、ラベルリソースに
             定義しておいて下さい。
             初期値は、空文字列("")です。

      変更履歴:

        3.7.1.1 (2005/05/31) 初期値を "SHOKEI" に設定します。

    - #### setGokeiLabel

          public void setGokeiLabel(String id)

      【TAG】列合計のカラムに表示するラベルIDを指定します(初期値:空文字列)。
      パラメータ:
        `id` - 合計ラベルID
      説明:

             各列の合計のラベルIDを登録します。登録する文字列は、ラベルリソースに
             定義しておいて下さい。
             初期値は、空文字列("")です。

      変更履歴:

        3.7.1.1 (2005/05/31) 初期値を "GOKEI" に設定します。

    - #### setCubeXColumn

          public void setCubeXColumn(String cubeX)

      【TAG】CUBE計算の１つ目(X)カラムを指定します。
      パラメータ:
        `cubeX` - 列(X)ラベルID
      説明:

             列方向のキーとなるカラム名を指定します。
             初期値は、互換性の関係より、sumNumber より逆計算します。

      変更履歴:

        3.5.5.9 (2004/06/07) 新規追加

    - #### setCubeYColumn

          public void setCubeYColumn(String cubeY)

      【TAG】CUBE計算の２つ目(Y)カラムを指定します。
      パラメータ:
        `cubeY` - 行(Y)ラベルID
      説明:

             行方向のキーとなるカラム名を指定します。
             初期値は、互換性の関係より、sumNumber より逆計算します。

      変更履歴:

        3.5.5.9 (2004/06/07) 新規追加

    - #### setCubeSortType

          public void setCubeSortType(String cubeSortType)

      【TAG】CUBE Y の列ヘッダーのソート方式を指定します(初期値:LOAD)。
      パラメータ:
        `cubeSortType` - 列ヘッダーソート方式 [STRING/NUMBER/LOAD]
      説明:

             CUBEのヘッダーに対応するカラム列をソート表示する場合の方式を指定します。
             種類として、[STRING/NUMBER/LOAD] があります。
             初期値(指定無し)は、LOAD(取り込み順にセット)です。

      変更履歴:

        3.5.6.3 (2004/07/12) 新規追加

    - #### setGokeiSortDir

          public void setGokeiSortDir(String gokeiSortDir)

      【TAG】合計行のソート有無とその方向[true:正方向/false:逆方向/null:ソートしない]を指定します(初期値:null)。
      パラメータ:
        `gokeiSortDir` - 合計行ソート処理 [true:正方向/false:逆方向/null:ソートしない]
      説明:

             最も最後の合計カラムにソートを行うかどうか、その時の方向を指定します。
             true/false 以外の文字列では、ソートを行いません。trueは、正方向(昇順)で、
             falseが逆方向(降順)になります。
             初期値(指定無し)は、ソートしない(null)です。

      変更履歴:

        3.5.6.3 (2004/07/12) 新規追加

    - #### setFirstClmGokei

          public void setFirstClmGokei(String firstClmGokei)

      【TAG】合計列をCUBEの先頭部分に出すかどうか[true/false]を指定します(初期値:false)。
      パラメータ:
        `firstClmGokei` - 合計列の出力場所 [true:先頭列に出力/false:最終列に出力]
      説明:

             合計列を最終列に出力するか、CUBEの先頭列に出力するかを指定します。
             trueが指定された場合はCUBEの先頭列に出力します。
             初期値(false)は合計列を最終列に出力します。

      変更履歴:

        5.0.0.3 (2009/09/22) 新規追加

    - #### setUseHeaderColumn

          public void setUseHeaderColumn(String useHeaderColumn)

      【TAG】ヘッダーカラムにレンデラー、エディターを適用するかを指定します(初期値:false)。
      パラメータ:
        `useHeaderColumn` - 適用可否 [true:適用する/false:適用しない]
      説明:

             ヘッダーカラムにレンデラー、エディターを適用するかを指定します。
             trueが指定された場合は、ヘッダー部分の値そのものをカラム名として扱います。
             リソースが存在しない場合は、ラベルのみを各カラムの値で置き換えます。
             初期値(指定無し)は、レンデラー、エディターを適用しない(false)です。

      変更履歴:

        4.0.0.0 (2007/11/27) 新規追加
        5.2.2.0 (2010/11/01) キーに、ViewCrossTableParam.USE_HEADER_COLUMN を使用するように修正

    - #### setUseClassAdd

          public void setUseClassAdd(String useClassAdd)

      【TAG】各列情報のclass属性に、カラム名などを付与するかどうかを指定します(初期値:false)。
      パラメータ:
        `useClassAdd` - 付与するかどうか [true:する/false:しない]
      説明:

             列情報の集計列に対して、class 属性を付与するかどうかを指定します。
             class属性は、その列のオリジナルの属性名と、ラベル名の文字列を設定します。
             例えば、集計行の計カラムが複数ある場合は、それぞれに色を指定して、ゼブラ模様を
             設定できます。また、ラベル(表示ヘッダー)も設定されるので、特別な列のみ指定することも
             可能になります。
             ※ 特殊対応：cssなどで指定できるIDやCLASS属性は、先頭文字が数字の場合は、
             無効になります。(つまり、効きません。)
             表示ヘッダーは、年月や、社員番号(数字)などのケースもあります。そこで、先頭が数字の
             場合は、"x"(小文字のx)を自動的に頭に追加します。この処理は、ViewForm_HTMLCrossTable
             で行います。

      変更履歴:

        5.2.2.0 (2010/11/01) 新規追加

    - #### setSaveTableId

          public void setSaveTableId(String id)

      【TAG】クロス集計結果の DBTableModel をセーブするセッションキーワードを指定します。
      パラメータ:
        `id` - セッション登録ID
      説明:

             検索のみの場合は、何も設定しません。EXCEL等外部にクロス集計の形で
             取り出したい場合に、設定します。
             "DEFAULT" という文字列を指定すると、内部では、HybsSystem.TBL_MDL_KEY が
             設定されます。(DEFAULT という文字列に設定されるわけではありません。)
             なお、DEFAULT を使用する場合は、検索結果の DBTbleModel をつぶすことになります
             ので、NEXT 等は使えません。DBTableModel のデータを利用した forward 等も
             使用できませんので、十分ご注意ください。
             DEFAULT 以外の文字列の場合は、指定した文字列そのものがキーになります。
             他のセッションキーと同じにすると動作が不安定になりますので、使用する場合は、
             "CROSS_TABLE_SAVE_KEY" を推奨致します。
             指定しない場合は、セッションにセーブされません。(検索されたまま)
             通常、EXCEL出力等を行う場合は、DBTableModel をセーブする必要がありますが、
             scope="session" にセーブすると、PREV,NEXT が使えなくなります。これは、
             クロス集計時に元のカラムが表形式の別のカラムに置き換えられるためです。
             scope="request" では、エラーは発生しなくなりますが、外部に取り出せなくなります。

      変更履歴:

        5.2.2.0 (2010/11/01) キーに、ViewCrossTableParam.SAVE_TABLEID_KEY を使用するように修正

    - #### setSaveScope

          public void setSaveScope(String scope)

      【TAG】クロス集計結果の DBTableModel をセーブする scope を指定します。
      パラメータ:
        `scope` - scope指定 [request/page/session/applicaton]
      関連項目:
        `setSaveTableId( String )`
      説明:

             スコープは (request,page,session,applicaton) がありますが、request か session が
             通常選択されます。
             また、この設定が有効になるには、saveTableId を指定する必要があります。
             saveTableId を指定しないと、そもそも書き出されないため、scope は無視されます。

             scope="session" にセーブすると、PREV,NEXT が使えなくなります。これは、
             クロス集計時に元のカラムが表形式の別のカラムに置き換えられるためです。
             scope="request" では、エラーは発生しなくなりますが、外部に取り出せなくなります。
             何も指定しない場合は、viewタグに指定されたオリジナルのスコープに書き出されます。
             そうで無い場合は、指定のスコープに書き出されます。

      変更履歴:

        5.2.2.0 (2010/11/01) 新規追加

    - #### setUseHeaderResource

          public void setUseHeaderResource(String useHeaderResource)

      【TAG】ヘッダーカラムにラベルリソースを利用するかを指定します(初期値:false)。
      パラメータ:
        `useHeaderResource` - リソース使用可否 [true:する/false:しない]
      説明:

             HTMLCrossTableViewで、ヘッダーカラムの表示にラベルリソースを利用するかどうかを指定します。
             trueが指定された場合は、ヘッダー部の値のラベルで表示します。
             初期値(指定無し)は、利用しない(false)です。

      変更履歴:

        5.5.5.0 (2012/07/28) 新規追加

    - #### setHeaderCodeColumn

          public void setHeaderCodeColumn(String headerCode)

      【TAG】ヘッダーのラベルに利用するコードリソースを指定します。
      パラメータ:
        `headerCode` - コードリソースのキー
      説明:

             この値を指定すると上部ヘッダーの表示を対象カラムのコードに対応するラベルで表示します。
             カラムリソースがMENUや、DBMENUのようにSelectionを返す形である必要があります。
             初期値はnullです。

      変更履歴:

        5.5.5.0 (2012/07/28) 新規追加

    - #### getTagName

          protected String getTagName()

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

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

      このメソッドは、nullを返しません

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