001    /*
002     * Copyright (c) 2009 The openGion Project.
003     *
004     * Licensed under the Apache License, Version 2.0 (the "License");
005     * you may not use this file except in compliance with the License.
006     * You may obtain a copy of the License at
007     *
008     *     http://www.apache.org/licenses/LICENSE-2.0
009     *
010     * Unless required by applicable law or agreed to in writing, software
011     * distributed under the License is distributed on an "AS IS" BASIS,
012     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013     * either express or implied. See the License for the specific language
014     * governing permissions and limitations under the License.
015     */
016    package org.opengion.hayabusa.taglib;
017    
018    import org.opengion.hayabusa.common.HybsSystem;
019    import org.opengion.hayabusa.html.ViewCrossTableParam;
020    
021    import static org.opengion.fukurou.util.StringUtil.nval ;
022    
023    import java.io.ObjectOutputStream;
024    import java.io.ObjectInputStream;
025    import java.io.IOException;
026    
027    /**
028     * viewã‚¿ã‚°ã® viewFormType ã?HTMLCrossTable ã®å ´åˆã«ãƒ‘ラメータを設定ã—ã¾ã™ã?
029     *
030     * クロスé›?¨ˆã‚’行ã†ã€ViewForm_HTMLCrossTable クラスã«å¯¾ã—ã¦ã€å„種パラメータã‚?
031     * 設定ã—ã¾ã™ã?
032     * パラメータãŒè¨­å®šã•れã¦ã?ªã??åˆã?ã€ViewCrossTableParam ã®åˆæœŸå€¤ãŒä½¿ç”¨ã•れã¾ã™ã?
033     * (パラメータを使用ã™ã‚‹ã«ã¯ã€viewã‚¿ã‚°ã®useParam 属æ?ã‚’trueã«è¨­å®šã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?)
034     *
035     * SELECTæ–??ã€CROSSé›?¨ˆæ©Ÿè?を利用ã—ã¦æ±‚ã‚ã¾ã™ã?ãã?ã¨ãã?フォーマットã?ã€?
036     * ヘッãƒ??1..N,縦,横,è¨?..N ã«ãªã‚Šã¾ã™ã?<br/>
037     * ヘッãƒ??部ã¯ã€è¤?•°æŒ?®šã§ãã¾ã™ãŒã€ãƒ‡ãƒ•ォルトã§ã¯ãƒ˜ãƒƒãƒ??NãŒã‚­ãƒ¼ãƒ–レイクã™ã‚‹ã¨
038     * åˆè¨ˆç”¨ã®ãƒ˜ãƒƒãƒ??ãŒæŒ¿å…¥ã•れã¾ã™ã?ã¾ãŸã?ヘッãƒ??ã¯ã€å‰æ®µã¨åŒã˜å€¤ã®å ´åˆã?ã€è¡¨ç¤ºã—ã¾ã›ã‚“ã€?
039     * åˆè¨ˆã?ã€è¤?•°ä¸¦ã¹ã‚‹ã“ã¨ãŒã§ãã¾ã™ãŒã€sumNumber ã§æŒ?®šã—ã¦ãŠãå¿?¦ãŒã‚りã¾ã™ã?
040     *
041     * å?±žæ?ã¯ã€{&#064;XXXX} 変数ãŒä½¿ç”¨ã§ãã¾ã™ã?
042     * ã“れã¯ã€ServletRequest ã‹ã‚‰ã€XXXX をキーã«å€¤ã‚’å–りå?ã?ã“ã?変数ã«å‰²ã‚Šå½“ã¦ã¾ã™ã?
043     * ã¤ã¾ã‚Šã?ã“ã?XXXXをキーã«ãƒªã‚¯ã‚¨ã‚¹ãƒˆã™ã‚Œã?ã€ã“ã®å¤‰æ•°ã«å€¤ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã?
044     *
045     * http://localhost/query.jsp?KEY1=VLA1&amp;KEY2=VAL2
046     *
047     * ã®ã‚ˆã†ãªãƒªã‚¯ã‚¨ã‚¹ãƒˆã§ã€{&#064;KEY1} ã¨ã™ã‚Œã°ã€?VAL1 ãŒã‚»ãƒ?ƒˆã•れã¾ã™ã?
048     *
049     * @og.formSample
050     * â—å½¢å¼ï¼?lt;og:crossParam breakColumn="ZZZ" noGroupColumns="AAA,BBB" sumNumber="2" /&gt;
051     * â—body?šãªã?
052     *
053     * â—Tag定義??
054     *   &lt;og:crossParam
055     *       cubeXColumn        ã€TAG】CUBE計算ã??‘ã¤ç›®(X)カラãƒ?‚’æŒ?®šã—ã¾ã?
056     *       cubeYColumn        ã€TAG】CUBE計算ã??’ã¤ç›®(Y)カラãƒ?‚’æŒ?®šã—ã¾ã?
057     *       sumNumber          ã€TAG】åˆè¨ˆå?ã®ã‚«ãƒ©ãƒ?•°ã‚’設定ã—ã¾ã?
058     *       breakColumn        ã€TAG】ブレークã«ã‚ˆã‚Šãƒ˜ãƒƒãƒ??部をå?力ã•ã›ã‚‹ã‚«ãƒ©ãƒ?ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:ヘッãƒ??N)
059     *       noGroupColumns     ã€TAG】カラãƒ??ã‚’å‰æ®µã¨æ¯”è¼?—ã¦åŒã˜å ´åˆã§ã‚‚表示ã•ã›ã‚‹ã‚«ãƒ©ãƒ?ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?
060     *       shokeiLabel        ã€TAG】å?å°è¨ˆã?カラãƒ?«è¡¨ç¤ºã™ã‚‹ãƒ©ãƒ™ãƒ«IDを指定ã—ã¾ã?åˆæœŸå€¤:空æ–?­—å?)
061     *       gokeiLabel         ã€TAG】å?åˆè¨ˆã?カラãƒ?«è¡¨ç¤ºã™ã‚‹ãƒ©ãƒ™ãƒ«IDを指定ã—ã¾ã?åˆæœŸå€¤:空æ–?­—å?)
062     *       cubeSortType       ã€TAG】CUBE Y ã®åˆ—ã?ãƒ?ƒ€ãƒ¼ã®ã‚½ãƒ¼ãƒˆæ–¹å¼ã‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤:LOAD)
063     *       gokeiSortDir       ã€TAG】åˆè¨ˆè¡Œã?ソート有無ã¨ãã?æ–¹å‘[true:正方å?false:é€?–¹å?null:ソートã—ãªã„]を指定ã—ã¾ã?åˆæœŸå€¤:null)
064     *       useHeaderColumn    ã€TAG】ã?ãƒ?ƒ€ãƒ¼ã‚«ãƒ©ãƒ?«ãƒ¬ãƒ³ãƒ?ƒ©ãƒ¼ã€ã‚¨ãƒ?‚£ã‚¿ãƒ¼ã‚’é©ç”¨ã™ã‚‹ã‹ã‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤:false)
065     *       useClassAdd        ã€TAG】å„列情報ã®class属æ?ã«ã€ã‚«ãƒ©ãƒ?ãªã©ã‚’付与ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:false)
066     *       firstClmGokei      ã€TAG】åˆè¨ˆå?ã‚’CUBEã®å…ˆé?部åˆ?«å‡ºã™ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
067     *       saveTableId        ã€TAG】クロスé›?¨ˆçµæžœã® DBTableModel をセーブã™ã‚‹ã‚»ãƒ?‚·ãƒ§ãƒ³ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’æŒ?®šã—ã¾ã?
068     *       saveScope          ã€TAG】クロスé›?¨ˆçµæžœã® DBTableModel をセーブã™ã‚?scope を指定ã—ã¾ã?
069     *       setHeaderResource  ã€TAG】ã?ãƒ?ƒ€ãƒ¼è¡¨ç¤ºã«ãƒ©ãƒ™ãƒ«ãƒªã‚½ãƒ¼ã‚¹ã‚’é©ç”¨ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã™ã?(åˆæœŸå€¤:false)
070     *       setHeaderCodeColumnã€TAG】ã?ãƒ?ƒ€ãƒ¼è¡¨ç¤ºã«åˆ©ç”¨ã™ã‚‹ã‚³ãƒ¼ãƒ‰ã‚’æŒã¤ã‚«ãƒ©ãƒ?‚’æŒ?®šã—ã¾ã™ã?(åˆæœŸå€¤:空æ–?­—å?)
071     *       debug              ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
072     *   /&gt;
073     *
074     * â—使用ä¾?
075     *     ViewFormTag ã® viewFormType ãŒã?HTMLCrossTable ã®å ´åˆã«ä½¿ç”¨ã—ã¾ã™ã?
076     *     useParam 属æ?を設定ã—ã¦ãŠã‹ãªã?¨ã€ä½¿ç”¨ã•れã¾ã›ã‚“ã€?
077     *     &lt;og:view
078     *         viewFormType = &quot;HTMLCrossTable&quot;
079     *         command      = &quot;{&#064;command}&quot;
080     *         startNo      = &quot;0&quot;
081     *         pageSize     = &quot;20&quot;
082     *         <b>useParam     = &quot;true&quot;</b>
083     *     &gt;
084     *         &lt;og:crossParam
085     *             breakColumn    = "ZZZ"       : ブレークã«ã‚ˆã‚Šãƒ˜ãƒƒãƒ??部をå?力ã•ã›ã‚‹ã‚«ãƒ©ãƒ?
086     *             noGroupColumns = "AAA,BBB"   : カラãƒ??ã‚’å‰æ®µã¨æ¯”è¼?—ã¦åŒã˜å ´åˆã§ã‚‚表示ã•ã›ã‚‹ã‚«ãƒ©ãƒ?
087     *             cubeXColumn    = "CUBE_X"    : CUBE計算ã??‘ã¤ç›®(X)カラãƒ?‚’æŒ?®?
088     *             cubeYColumn    = "CUBE_Y"    : CUBE計算ã??’ã¤ç›®(Y)カラãƒ?‚’æŒ?®?
089     *             shokeiLabel    = "SHOKEI"    : 列å°è¨ˆã?カラãƒ?«è¡¨ç¤ºã™ã‚‹ãƒ©ãƒ™ãƒ«ID(åˆæœŸå€¤:SHOKEI)
090     *             gokeiLabel     = "GOKEI"     : 列åˆè¨ˆã?カラãƒ?«è¡¨ç¤ºã™ã‚‹ãƒ©ãƒ™ãƒ«ID(åˆæœŸå€¤:GOKEI)
091     *             sumNumber      = "2"         : åˆè¨ˆå?ã®ã‚«ãƒ©ãƒ?•°(åˆæœŸå€¤??
092     *             cubeSortType   = "NUMBER"    : CUBE Y ã®åˆ—ã?ãƒ?ƒ€ãƒ¼ã®ã‚½ãƒ¼ãƒˆæ–¹å¼ã‚’æŒ?®š[STRING/NUMBER/LOAD]
093     *             gokeiSortDir   = "false"     : åˆè¨ˆè¡Œã?ソート有無ã¨ãã?æ–¹å?正方å?é€?–¹å?を指定[true/false/null]
094     *             firstClmGokei  = "true"      : åˆè¨ˆå?ã‚’CUBEã®å…ˆé?部åˆ?«å‡ºã™ã‹ã©ã?‹ã‚’指定[false/true/null]
095     *             useHeaderColumn= "true"      : ヘッãƒ??カラãƒ?«ãƒ¬ãƒ³ãƒ?ƒ©ãƒ¼ã€ã‚¨ãƒ?‚£ã‚¿ãƒ¼ã‚’é©ç”¨ã™ã‚‹ã‹ã©ã?‹ã‚’指定[false/true/null]
096     *             saveTableId    = "DEFAULT"   : クロスé›?¨ˆçµæžœã® DBTableModel をセーブã™ã‚‹ã‚»ãƒ?‚·ãƒ§ãƒ³ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’æŒ?®?
097     *             useClassAdd    = "true"      : String å??æƒ??ã®class属æ?ã«ã€ã‚«ãƒ©ãƒ?ãªã©ã‚’付与ã™ã‚‹ã‹ã©ã?‹ã‚’指定[false/true/null]
098     *        /&gt;
099     *     &lt;/og:view &gt;
100     *
101     * @og.group ç”»é¢è¡¨ç¤º
102     *
103     * @version  4.0
104     * @author       Kazuhiko Hasegawa
105     * @since    JDK5.0,
106     */
107    public class ViewCrossParamTag extends ViewParamTag {
108            //* ã“ã?プログラãƒ??VERSIONæ–?­—å?を設定ã—ã¾ã™ã?       {@value} */
109            private static final String VERSION = "5.5.5.0 (2012/07/28)" ;
110    
111            private static final long serialVersionUID = 555020120728L ;
112    
113            /**
114             * ã€TAG】ブレークã«ã‚ˆã‚Šãƒ˜ãƒƒãƒ??部をå?力ã•ã›ã‚‹ã‚«ãƒ©ãƒ?ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:ヘッãƒ??N)ã€?
115             *
116             * @og.tag
117             * CROSSé›?¨ˆã§æ±‚ã‚ãŸãƒ•ォーマットã?ã€ã?ヘッãƒ??1..N,縦,横,è¨?..N ã€ã§ã™ã?<br/>
118             * ヘッãƒ??部ã¯ã€è¤?•°æŒ?®šã§ãã¾ã™ãŒã€ãƒ‡ãƒ•ォルトã§ã¯ãƒ˜ãƒƒãƒ??NãŒã‚­ãƒ¼ãƒ–レイクã™ã‚‹ã¨
119             * åˆè¨ˆç”¨ã®ãƒ˜ãƒƒãƒ??ãŒæŒ¿å…¥ã•れã¾ã™ã?
120             * ã“ã?ヘッãƒ??Nãã?ã‚‚ã?ãŒã?é›?¨ˆãƒ•ィールドã§ãªãã?å˜ãªã‚‹å±žæ?ã®å ´åˆã?ã€?
121             * キーブレイクã—ã¦æ¬²ã—ããªã?‚ºã€breakColumn="ヘッãƒ??N-1" を指定ã—ã¾ã™ã?
122             * åˆæœŸå€¤ã¯ã€?ヘッãƒ??N" ã§ã™ã?
123             *
124             * @param       clm ブレークã•ã›ã‚‹ã‚«ãƒ©ãƒ?
125             */
126            public void setBreakColumn( final String clm ) {
127                    putParam( ViewCrossTableParam.BREAK_COLUMN_KEY,
128                                      nval( getRequestParameter( clm ),null ) );
129            }
130    
131            /**
132             * ã€TAG】カラãƒ??ã‚’å‰æ®µã¨æ¯”è¼?—ã¦åŒã˜å ´åˆã§ã‚‚表示ã•ã›ã‚‹ã‚«ãƒ©ãƒ?ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?
133             *
134             * @og.tag
135             * CROSSé›?¨ˆã§æ±‚ã‚ãŸãƒ•ォーマットã?ã€ã?ヘッãƒ??1..N,縦,横,è¨?..N ã€ã§ã™ã?<br/>
136             * ヘッãƒ??部ã¯ã€ã‚­ãƒ¼ãƒ–レイクã™ã‚‹éƒ½åº¦ã€ã?ãƒ?ƒ€ãƒ¼ã‚’å?力ã—ã¾ã™ã?ãれã¾ã§ã¯ã€?
137             * å??ãƒ?ƒ€ãƒ¼ã®å€¤ãŒã?剿®µ(åŒä¸?‚«ãƒ©ãƒ??å…ˆã?値)ã¨åŒã˜å ´åˆã?ã€ç©ºç™½ã«ã—ã¾ã™ã?
138             * ã“ã†ã™ã‚‹äº‹ã§ã€å?ã®ã‚°ãƒ«ãƒ¼ãƒ—化ãŒä¸?›®ã§åˆ¤ã‚Šã¾ã™ã?(åˆæœŸè¨­å®?<br/>
139             * ã“ã?ヘッãƒ??ãŒã?é›?¨ˆãƒ•ィールドã§ãªãã?å˜ãªã‚‹å±žæ?ã®å ´åˆã?ã€?
140             * 空白ã§ã¯ãªãã?値ã¨ã—ã¦è¡¨ç¤ºã—ãŸã?‚ºã€ã‚°ãƒ«ãƒ¼ãƒ—化ã—ãªã?º‹ã‚’æŒ?®šã—ã¾ã™ã?
141             *
142             * @param       clms グループ化(空白åŒ?ã—ãŸããªã?‚«ãƒ©ãƒ?カンマ区åˆ?‚Š)
143             */
144            public void setNoGroupColumns( final String clms ) {
145                    putParam( ViewCrossTableParam.NO_GROUP_COLUMNS_KEY,
146                                      nval( getRequestParameter( clms ),null ) );
147            }
148    
149            /**
150             * ã€TAG】åˆè¨ˆå?ã®ã‚«ãƒ©ãƒ?•°ã‚’設定ã—ã¾ã™ã?(åˆæœŸå€¤:??ã€?
151             *
152             * @og.tag
153             * CROSSé›?¨ˆã§æ±‚ã‚ãŸãƒ•ォーマットã?ã€ã?ヘッãƒ??1..N,縦,横,è¨?..N ã€ã§ã™ã?<br/>
154             *  åˆè¨ˆã?ã€è¤?•°ä¸¦ã¹ã‚‹ã“ã¨ãŒã§ãã¾ã™ãŒã€sumNumber ã§æŒ?®šã—ã¦ãŠãå¿?¦ãŒã‚りã¾ã™ã?
155             * åˆæœŸå€¤ã¯ã€? ã§ã™ã?
156             *
157             * @param       no åˆè¨ˆå?ã®ã‚«ãƒ©ãƒ?•°(åˆæœŸå€¤??
158             */
159            public void setSumNumber( final String no ) {
160                    putParam( ViewCrossTableParam.SUM_NUMBER_KEY,
161                                      nval( getRequestParameter( no ),"1" ) );
162            }
163    
164            /**
165             * ã€TAG】å?å°è¨ˆã?カラãƒ?«è¡¨ç¤ºã™ã‚‹ãƒ©ãƒ™ãƒ«IDを指定ã—ã¾ã?åˆæœŸå€¤:空æ–?­—å?)ã€?
166             *
167             * @og.tag
168             * å??ã®å°è¨ˆã?ラベルIDを登録ã—ã¾ã™ã?登録ã™ã‚‹æ–?­—å?ã¯ã€ãƒ©ãƒ™ãƒ«ãƒªã‚½ãƒ¼ã‚¹ã«
169             * 定義ã—ã¦ãŠã„ã¦ä¸‹ã•ã??
170             * åˆæœŸå€¤ã¯ã€ç©ºæ–?­—å?("")ã§ã™ã?
171             *
172             * @og.rev 3.7.1.1 (2005/05/31) åˆæœŸå€¤ã‚?"SHOKEI" ã«è¨­å®šã—ã¾ã™ã?
173             *
174             * @param       id 列å°è¨ˆã?カラãƒ?«è¡¨ç¤ºã™ã‚‹ãƒ©ãƒ™ãƒ«ID
175             */
176            public void setShokeiLabel( final String id ) {
177                    String label = nval( getRequestParameter( id ),"SHOKEI" );
178                    putParam( ViewCrossTableParam.SHOKEI_LABEL_KEY, getLabel( label ) );
179            }
180    
181            /**
182             * ã€TAG】å?åˆè¨ˆã?カラãƒ?«è¡¨ç¤ºã™ã‚‹ãƒ©ãƒ™ãƒ«IDを指定ã—ã¾ã?åˆæœŸå€¤:空æ–?­—å?)ã€?
183             *
184             * @og.tag
185             * å??ã®åˆè¨ˆã?ラベルIDを登録ã—ã¾ã™ã?登録ã™ã‚‹æ–?­—å?ã¯ã€ãƒ©ãƒ™ãƒ«ãƒªã‚½ãƒ¼ã‚¹ã«
186             * 定義ã—ã¦ãŠã„ã¦ä¸‹ã•ã??
187             * åˆæœŸå€¤ã¯ã€ç©ºæ–?­—å?("")ã§ã™ã?
188             *
189             * @og.rev 3.7.1.1 (2005/05/31) åˆæœŸå€¤ã‚?"GOKEI" ã«è¨­å®šã—ã¾ã™ã?
190             *
191             * @param       id 列åˆè¨ˆã?カラãƒ?«è¡¨ç¤ºã™ã‚‹ãƒ©ãƒ™ãƒ«ID
192             */
193            public void setGokeiLabel( final String id ) {
194                    String label = nval( getRequestParameter( id ),"GOKEI" );
195                    putParam( ViewCrossTableParam.GOKEI_LABEL_KEY, getLabel( label ) );
196            }
197    
198            /**
199             * ã€TAG】CUBE計算ã??‘ã¤ç›®(X)カラãƒ?‚’æŒ?®šã—ã¾ã™ã?
200             *
201             * @og.tag
202             * 列方å‘ã?キーã¨ãªã‚‹ã‚«ãƒ©ãƒ?を指定ã—ã¾ã™ã?
203             * åˆæœŸå€¤ã¯ã€äº’æ›æ€§ã®é–¢ä¿‚よりã?sumNumber よりé€?¨ˆç®—ã—ã¾ã™ã?
204             *
205             * @og.rev 3.5.5.9 (2004/06/07) æ–°è¦è¿½åŠ?
206             *
207             * @param       cubeX 列åˆè¨ˆã?カラãƒ?«è¡¨ç¤ºã™ã‚‹ãƒ©ãƒ™ãƒ«ID
208             */
209            public void setCubeXColumn( final String cubeX ) {
210                    putParam( ViewCrossTableParam.CUBE_X_COLUMN_KEY,
211                                      nval( getRequestParameter( cubeX ),null ) );
212            }
213    
214            /**
215             * ã€TAG】CUBE計算ã??’ã¤ç›®(Y)カラãƒ?‚’æŒ?®šã—ã¾ã™ã?
216             *
217             * @og.tag
218             * 行方å‘ã?キーã¨ãªã‚‹ã‚«ãƒ©ãƒ?を指定ã—ã¾ã™ã?
219             * åˆæœŸå€¤ã¯ã€äº’æ›æ€§ã®é–¢ä¿‚よりã?sumNumber よりé€?¨ˆç®—ã—ã¾ã™ã?
220             *
221             * @og.rev 3.5.5.9 (2004/06/07) æ–°è¦è¿½åŠ?
222             *
223             * @param       cubeY 列åˆè¨ˆã?カラãƒ?«è¡¨ç¤ºã™ã‚‹ãƒ©ãƒ™ãƒ«ID
224             */
225            public void setCubeYColumn( final String cubeY ) {
226                    putParam( ViewCrossTableParam.CUBE_Y_COLUMN_KEY,
227                                      nval( getRequestParameter( cubeY ),null ) );
228            }
229    
230            /**
231             * ã€TAG】CUBE Y ã®åˆ—ã?ãƒ?ƒ€ãƒ¼ã®ã‚½ãƒ¼ãƒˆæ–¹å¼ã‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤:LOAD)ã€?
232             *
233             * @og.tag
234             * CUBEã®ãƒ˜ãƒƒãƒ??ã«å¯¾å¿œã™ã‚‹ã‚«ãƒ©ãƒ??をソート表示ã™ã‚‹å ´åˆã?æ–¹å¼ã‚’æŒ?®šã—ã¾ã™ã?
235             * 種類ã¨ã—ã¦ã€STRING,NUMBER,LOAD,ãŒã‚りã¾ã™ã?
236             * åˆæœŸå€¤(æŒ?®šç„¡ã?ã¯ã€LOAD(å–り込ã¿é ?«ã‚»ãƒ?ƒˆ)ã§ã™ã?
237             *
238             * @og.rev 3.5.6.3 (2004/07/12) æ–°è¦è¿½åŠ?
239             *
240             * @param       cubeSortType CUBE Y ã®åˆ—ã?ãƒ?ƒ€ãƒ¼ã®ã‚½ãƒ¼ãƒˆæ–¹å¼[STRING,NUMBER,LOAD]
241             */
242            public void setCubeSortType( final String cubeSortType ) {
243                    putParam( ViewCrossTableParam.CUBE_SORT_TYPE_KEY,
244                                      nval( getRequestParameter( cubeSortType ),null ) );
245            }
246    
247            /**
248             * ã€TAG】åˆè¨ˆè¡Œã?ソート有無ã¨ãã?æ–¹å‘[true:正方å?false:é€?–¹å?null:ソートã—ãªã„]を指定ã—ã¾ã?åˆæœŸå€¤:null)ã€?
249             *
250             * @og.tag
251             * æœ?‚‚æœ?¾Œã?åˆè¨ˆã‚«ãƒ©ãƒ?«ã‚½ãƒ¼ãƒˆã‚’行ã†ã‹ã©ã?‹ã€ãã®æ™‚ã?æ–¹å‘ã‚’æŒ?®šã—ã¾ã™ã?
252             * true/false 以外ã?æ–?­—å?ã§ã¯ã€ã‚½ãƒ¼ãƒˆã‚’行ã„ã¾ã›ã‚“。trueã¯ã€æ­£æ–¹å?æ˜??)ã§ã€?
253             * falseãŒé?æ–¹å?é™é?)ã«ãªã‚Šã¾ã™ã?
254             * åˆæœŸå€¤(æŒ?®šç„¡ã?ã¯ã€ã‚½ãƒ¼ãƒˆã—ãªã?null)ã§ã™ã?
255             *
256             * @og.rev 3.5.6.3 (2004/07/12) æ–°è¦è¿½åŠ?
257             *
258             * @param       gokeiSortDir åˆè¨ˆè¡Œã?ソート有無ã¨ãã?æ–¹å‘[true:正方å?false:é€?–¹å?null:ソートã—ãªã„]
259             */
260            public void setGokeiSortDir( final String gokeiSortDir ) {
261                    putParam( ViewCrossTableParam.GOKEI_SORT_DIR_KEY,
262                                      nval( getRequestParameter( gokeiSortDir ),null ) );
263            }
264    
265            /**
266             * ã€TAG】åˆè¨ˆå?ã‚’CUBEã®å…ˆé?部åˆ?«å‡ºã™ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)ã€?
267             *
268             * @og.tag
269             * åˆè¨ˆå?を最終å?ã«å‡ºåŠ›ã™ã‚‹ã‹ã€CUBEã®å…ˆé?列ã«å‡ºåŠ›ã™ã‚‹ã‹ã‚’指定ã—ã¾ã™ã?
270             * trueãŒæŒ‡å®šã•れãŸå ´åˆã?CUBEã®å…ˆé?列ã«å‡ºåŠ›ã—ã¾ã™ã?
271             * åˆæœŸå€¤(false)ã¯åˆè¨ˆå?を最終å?ã«å‡ºåŠ›ã—ã¾ã™ã?
272             *
273             * @og.rev 5.0.0.3 (2009/09/22) æ–°è¦è¿½åŠ?
274             *
275             * @param       firstClmGokei   åˆè¨ˆå?ã‚’CUBEã®å‡ºåŠ›å?æ‰?true:å…ˆé?列ã«å‡ºåŠ?false:æœ?µ‚å?ã«å‡ºåŠ›]
276             */
277            public void setFirstClmGokei( final String firstClmGokei ) {
278                    putParam( ViewCrossTableParam.FIRST_CLM_GOKEI_KEY,
279                                      nval( getRequestParameter( firstClmGokei ),"false" ) );
280            }
281    
282            /**
283             * ã€TAG】ã?ãƒ?ƒ€ãƒ¼ã‚«ãƒ©ãƒ?«ãƒ¬ãƒ³ãƒ?ƒ©ãƒ¼ã€ã‚¨ãƒ?‚£ã‚¿ãƒ¼ã‚’é©ç”¨ã™ã‚‹ã‹ã‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤:false)ã€?
284             *
285             * @og.tag
286             * ヘッãƒ??カラãƒ?«ãƒ¬ãƒ³ãƒ?ƒ©ãƒ¼ã€ã‚¨ãƒ?‚£ã‚¿ãƒ¼ã‚’é©ç”¨ã™ã‚‹ã‹ã‚’æŒ?®šã—ã¾ã™ã?
287             * trueãŒæŒ‡å®šã•れãŸå ´åˆã?ã€ã?ãƒ?ƒ€ãƒ¼éƒ¨åˆ??値ãã?ã‚‚ã?をカラãƒ?ã¨ã—ã¦æ‰±ã?¾ã™ã?
288             * リソースãŒå­˜åœ¨ã—ãªã??åˆã?ã€ãƒ©ãƒ™ãƒ«ã®ã¿ã‚’å„カラãƒ??値ã§ç½®ãæ›ãˆã¾ã™ã?
289             * åˆæœŸå€¤(æŒ?®šç„¡ã?ã¯ã€ãƒ¬ãƒ³ãƒ?ƒ©ãƒ¼ã€ã‚¨ãƒ?‚£ã‚¿ãƒ¼ã‚’é©ç”¨ã—ãªã?false)ã§ã™ã?
290             *
291             * @og.rev 4.0.0.0 (2007/11/27) æ–°è¦è¿½åŠ?
292             * @og.rev 5.2.2.0 (2010/11/01) キーã«ã€ViewCrossTableParam.USE_HEADER_COLUMN を使用ã™ã‚‹ã‚ˆã†ã«ä¿®æ­£
293             *
294             * @param       useHeaderColumn ヘッãƒ??カラãƒ?«ãƒ¬ãƒ³ãƒ?ƒ©ãƒ¼ã€ã‚¨ãƒ?‚£ã‚¿ãƒ¼ã‚’é©ç”¨ã™ã‚‹ã‹ã©ã?‹
295             */
296            public void setUseHeaderColumn( final String useHeaderColumn ) {
297    //              putParam( "useHeaderColumn",
298                    putParam( ViewCrossTableParam.USE_HEADER_COLUMN,
299                                      nval( getRequestParameter( useHeaderColumn ),"false" ) );
300            }
301    
302            /**
303             * ã€TAG】å„列情報ã®class属æ?ã«ã€ã‚«ãƒ©ãƒ?ãªã©ã‚’付与ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:false)ã€?
304             *
305             * @og.tag
306             * 列情報ã®é›?¨ˆå?ã«å¯¾ã—ã¦ã€class 属æ?を付与ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã™ã?
307             * class属æ?ã¯ã€ãã®åˆ—ã?オリジナルã®å±žæ?åã¨ã€ãƒ©ãƒ™ãƒ«åã?æ–?­—å?を設定ã—ã¾ã™ã?
308             * 例ãˆã°ã€?›†è¨ˆè¡Œã?計カラãƒ?Œè¤?•°ã‚ã‚‹å ´åˆã?ã€ãれãžã‚Œã«è‰²ã‚’指定ã—ã¦ã€ã‚¼ãƒ–ラ模様を
309             * 設定ã§ãã¾ã™ã?ã¾ãŸã?ラベル(表示ヘッãƒ??)も設定ã•れるã®ã§ã€ç‰¹åˆ¥ãªåˆ—ã?ã¿æŒ?®šã™ã‚‹ã“ã¨ã‚?
310             * å¯èƒ½ã«ãªã‚Šã¾ã™ã?
311             * ※ 特殊対応:cssãªã©ã§æŒ?®šã§ãã‚‹IDã‚„CLASS属æ?ã¯ã€å?é ­æ–?­—ãŒæ•°å­—ã?å ´åˆã?ã€?
312             * 無効ã«ãªã‚Šã¾ã™ã?(ã¤ã¾ã‚Šã?効ãã¾ã›ã‚“ã€?
313             * 表示ヘッãƒ??ã¯ã€å¹´æœˆã‚„ã€ç¤¾å“¡ç•ªå·(æ•°å­?ãªã©ã®ã‚±ãƒ¼ã‚¹ã‚‚ã‚りã¾ã™ã?ãã“ã§ã€å?é ­ãŒæ•°å­—ã?
314             * å ´åˆã?ã€?x"(å°æ–‡å­—ã?x)ã‚’è?å‹•çš„ã«é ­ã«è¿½åŠ?—ã¾ã™ã?ã“ã?処ç??ã€ViewForm_HTMLCrossTable
315             * ã§è¡Œã„ã¾ã™ã?
316             *
317             * @og.rev 5.2.2.0 (2010/11/01) æ–°è¦è¿½åŠ?
318             *
319             * @param       useClassAdd     å??æƒ??ã®class属æ?ã«ã€ã‚«ãƒ©ãƒ?ãªã©ã‚’付与ã™ã‚‹ã‹ã©ã?‹
320             */
321            public void setUseClassAdd( final String useClassAdd ) {
322                    putParam( ViewCrossTableParam.USE_CLASS_ADD,
323                                      nval( getRequestParameter( useClassAdd ),"false" ) );
324            }
325    
326            /**
327             * ã€TAG】クロスé›?¨ˆçµæžœã® DBTableModel をセーブã™ã‚‹ã‚»ãƒ?‚·ãƒ§ãƒ³ã‚­ãƒ¼ãƒ¯ãƒ¼ãƒ‰ã‚’æŒ?®šã—ã¾ã™ã?
328             *
329             * @og.tag
330             * 検索ã®ã¿ã®å ´åˆã?ã€ä½•も設定ã—ã¾ã›ã‚“ã€?XCEL等外部ã«ã‚¯ãƒ­ã‚¹é›?¨ˆã?å½¢ã§
331             * å–り出ã—ãŸã??åˆã«ã€è¨­å®šã—ã¾ã™ã?
332             * "DEFAULT" ã¨ã?†æ–?­—å?を指定ã™ã‚‹ã¨ã€å?部ã§ã¯ã€HybsSystem.TBL_MDL_KEY ã?
333             * 設定ã•れã¾ã™ã?(DEFAULT ã¨ã?†æ–?­—å?ã«è¨­å®šã•れるã‚ã‘ã§ã¯ã‚りã¾ã›ã‚“ã€?
334             * ãªãŠã?DEFAULT を使用ã™ã‚‹å ´åˆã?ã€æ¤œç´¢çµæžœã® DBTbleModel ã‚’ã¤ã¶ã™ã“ã¨ã«ãªã‚Šã¾ã?
335             * ã®ã§ã€NEXT ç­‰ã?使ãˆã¾ã›ã‚“ã€?BTableModel ã®ãƒ??タを利用ã—㟠forward 等も
336             * 使用ã§ãã¾ã›ã‚“ã®ã§ã€ååˆ?”注æ„ãã?•ã??
337             * DEFAULT 以外ã?æ–?­—å?ã®å ´åˆã?ã€æŒ‡å®šã—ãŸæ–‡å­—å?ãã?ã‚‚ã?ãŒã‚­ãƒ¼ã«ãªã‚Šã¾ã™ã?
338             * ä»–ã?ã‚»ãƒ?‚·ãƒ§ãƒ³ã‚­ãƒ¼ã¨åŒã˜ã«ã™ã‚‹ã¨å‹•作ãŒä¸å®‰å®šã«ãªã‚Šã¾ã™ã?ã§ã€ä½¿ç”¨ã™ã‚‹å ´åˆã?ã€?
339             * "CROSS_TABLE_SAVE_KEY" を推奨致ã—ã¾ã™ã?
340             * æŒ?®šã—ãªã??åˆã?ã€ã‚»ãƒ?‚·ãƒ§ãƒ³ã«ã‚»ãƒ¼ãƒ–ã•れã¾ã›ã‚“ã€?検索ã•れãŸã¾ã¾)
341             * 通常ã€EXCEL出力等を行ã†å ´åˆã?ã€DBTableModel をセーブã™ã‚‹å¿?¦ãŒã‚りã¾ã™ãŒã€?
342             * scope="session" ã«ã‚»ãƒ¼ãƒ–ã™ã‚‹ã¨ã€PREV,NEXT ãŒä½¿ãˆãªããªã‚Šã¾ã™ã?ã“れã¯ã€?
343             * クロスé›?¨ˆæ™‚ã«å…??カラãƒ?Œè¡¨å½¢å¼ã?別ã®ã‚«ãƒ©ãƒ?«ç½®ãæ›ãˆã‚‰ã‚Œã‚‹ãŸã‚ã§ã™ã?
344             * scope="request" ã§ã¯ã€ã‚¨ãƒ©ãƒ¼ã¯ç™ºç”Ÿã—ãªããªã‚Šã¾ã™ãŒã€å¤–部ã«å–り出ã›ãªããªã‚Šã¾ã™ã?
345             *
346             * @og.rev 5.2.2.0 (2010/11/01) キーã«ã€ViewCrossTableParam.SAVE_TABLEID_KEY を使用ã™ã‚‹ã‚ˆã†ã«ä¿®æ­£
347             *
348             * @param       id sessionã«ç™»éŒ²ã™ã‚‹æ™‚ã? ID
349             */
350            public void setSaveTableId( final String id ) {
351                    String tableId = nval( getRequestParameter( id ),null );
352                    if( "DEFAULT".equals( tableId ) ) {
353                            tableId = HybsSystem.TBL_MDL_KEY;
354                    }
355                    putParam( ViewCrossTableParam.SAVE_TABLEID_KEY , tableId );
356    //              putParam( "saveTableId", tableId );
357            }
358    
359            /**
360             * ã€TAG】クロスé›?¨ˆçµæžœã® DBTableModel をセーブã™ã‚?scope を指定ã—ã¾ã™ã?
361             *
362             * @og.tag
363             * スコープã? (request,page,session,applicaton) ãŒã‚りã¾ã™ãŒã€request ã?session ã?
364             * é€šå¸¸é¸æŠžã•れã¾ã™ã?
365             * ã¾ãŸã?ã“ã?è¨­å®šãŒæœ‰åйã«ãªã‚‹ã«ã¯ã€saveTableId を指定ã™ã‚‹å¿?¦ãŒã‚りã¾ã™ã?
366             * saveTableId を指定ã—ãªã?¨ã€ãã‚‚ãも書ãå?ã•れãªã?Ÿã‚ã?scope ã¯ç„¡è¦–ã•れã¾ã™ã?
367             *
368             * scope="session" ã«ã‚»ãƒ¼ãƒ–ã™ã‚‹ã¨ã€PREV,NEXT ãŒä½¿ãˆãªããªã‚Šã¾ã™ã?ã“れã¯ã€?
369             * クロスé›?¨ˆæ™‚ã«å…??カラãƒ?Œè¡¨å½¢å¼ã?別ã®ã‚«ãƒ©ãƒ?«ç½®ãæ›ãˆã‚‰ã‚Œã‚‹ãŸã‚ã§ã™ã?
370             * scope="request" ã§ã¯ã€ã‚¨ãƒ©ãƒ¼ã¯ç™ºç”Ÿã—ãªããªã‚Šã¾ã™ãŒã€å¤–部ã«å–り出ã›ãªããªã‚Šã¾ã™ã?
371             * 何もæŒ?®šã—ãªã??åˆã?ã€viewã‚¿ã‚°ã«æŒ?®šã•れãŸã‚ªãƒªã‚¸ãƒŠãƒ«ã®ã‚¹ã‚³ãƒ¼ãƒ—ã«æ›¸ãå?ã•れã¾ã™ã?
372             * ãã†ã§ç„¡ã??åˆã?ã€æŒ‡å®šã?ã‚¹ã‚³ãƒ¼ãƒ—ã«æ›¸ãå?ã•れã¾ã™ã?
373             *
374             * @og.rev 5.2.2.0 (2010/11/01) æ–°è¦è¿½åŠ?
375             *
376             * @param       scope scopeã«ç™»éŒ²ã™ã‚‹æ™‚ã? キー
377             * @see         #setSaveTableId( String )
378             */
379            public void setSaveScope( final String scope ) {
380                    putParam( ViewCrossTableParam.SAVE_SCOPE_KEY,
381                                      nval( getRequestParameter( scope ), null ) );
382            }
383            
384            /**
385             * ã€TAG】ã?ãƒ?ƒ€ãƒ¼ã‚«ãƒ©ãƒ?«ãƒ©ãƒ™ãƒ«ãƒªã‚½ãƒ¼ã‚¹ã‚’利用ã™ã‚‹ã‹ã‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤:false)ã€?
386             *
387             * @og.tag
388             * HTMLCrossTableViewã§ã€ã?ãƒ?ƒ€ãƒ¼ã‚«ãƒ©ãƒ??表示ã«ãƒ©ãƒ™ãƒ«ãƒªã‚½ãƒ¼ã‚¹ã‚’利用ã™ã‚‹ã‹ã©ã?‹ã‚’指定ã—ã¾ã™ã?
389             * trueãŒæŒ‡å®šã•れãŸå ´åˆã?ã€ã?ãƒ?ƒ€ãƒ¼éƒ¨ã®å€¤ã®ãƒ©ãƒ™ãƒ«ã§è¡¨ç¤ºã—ã¾ã™ã?
390             * ã“ã?属æ?ã¯useHeaderColumnã‚’trueã«ã—ãŸå ´åˆã«æœ‰åйã§ã™ã?
391             * åˆã?headerCodeを指定ã—ãŸå?åˆã?無視ã•れã¾ã™ã?
392             * åˆæœŸå€¤(æŒ?®šç„¡ã?ã¯ã€åˆ©ç”¨ã—ãªã?false)ã§ã™ã?
393             *
394             * @og.rev 5.5.5.0 (2012/07/28) æ–°è¦è¿½åŠ?
395             *
396             * @param       useHeaderResource       ヘッãƒ??ã®ãƒ©ãƒ™ãƒ«ã«ãƒªã‚½ãƒ¼ã‚¹ã‚’利用ã™ã‚‹ã‹ã©ã?‹
397             */
398            public void setUseHeaderResource( final String useHeaderResource ) {
399    //              putParam( "useHeaderColumn",
400                    putParam( ViewCrossTableParam.USE_HEADER_RSC,
401                                      nval( getRequestParameter( useHeaderResource ),"false" ) );
402            }
403            
404            /**
405             * ã€TAG】ã?ãƒ?ƒ€ãƒ¼ã®ãƒ©ãƒ™ãƒ«ã«åˆ©ç”¨ã™ã‚‹ã‚³ãƒ¼ãƒ‰ãƒªã‚½ãƒ¼ã‚¹ã‚’指定ã—ã¾ã™ã?
406             *
407             * @og.tag
408             * ã“ã?値を指定ã™ã‚‹ã¨ä¸Šéƒ¨ãƒ˜ãƒƒãƒ??ã®è¡¨ç¤ºã‚’対象カラãƒ??コードã«å¯¾å¿œã™ã‚‹ãƒ©ãƒ™ãƒ«ã§è¡¨ç¤ºã—ã¾ã™ã?
409             * カラãƒ?ƒªã‚½ãƒ¼ã‚¹ãŒMENUã‚??DBMENUã®ã‚ˆã†ã«Selectionã‚’è¿”ã™å½¢ã§ã‚ã‚‹å¿?¦ãŒã‚りã¾ã™ã?
410             * useHeaderColumnãŒtrueã®å ´åˆã?ã¿å‹•作ã—ã¾ã™ã?
411             * ã“ã?å€¤ãŒæŒ‡å®šã•れãŸå ´åˆã?ã€useHeaderResourceã¯ç„¡è¦–ã•れã¾ã™ã?
412             * åˆæœŸå€¤ã¯nullã§ã™ã?
413             *
414             * @og.rev 5.5.5.0 (2012/07/28) æ–°è¦è¿½åŠ?
415             *
416             * @param       headerCode コードリソースã®ã‚­ãƒ¼
417             */
418            public void setHeaderCodeColumn( final String headerCode ) {
419                    putParam( ViewCrossTableParam.HEADER_CODE_KEY,
420                                      nval( getRequestParameter( headerCode ),null ) );
421            }
422    
423            /**
424             * ã‚¿ã‚°ã®åç§°ã‚’ã?è¿”ã—ã¾ã™ã?
425             * 自åˆ??身ã®ã‚¯ãƒ©ã‚¹åよりã?自動的ã«å–り出ã›ãªã?Ÿã‚ã?ã“ã?メソãƒ?ƒ‰ã‚’オーãƒã?ライドã—ã¾ã™ã?
426             *
427             * @og.rev 4.0.0.0 (2005/01/31) æ–°è¦è¿½åŠ?
428             *
429             * @return  ã‚¿ã‚°ã®åç§°
430             */
431            @Override
432            protected String getTagName() {
433                    return "crossParam" ;
434            }
435    
436            /**
437             * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºæ›¸ãè¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
438             *
439             * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ?
440             * @serialData
441             *
442             * @param       strm    ObjectOutputStreamオブジェク�
443             */
444            private void writeObject( final ObjectOutputStream strm ) throws IOException {
445                    strm.defaultWriteObject();
446            }
447    
448            /**
449             * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèª­ã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
450             *
451             * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨­å®šã—ã¾ã™ã?
452             *
453             * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ?
454             * @serialData
455             *
456             * @param       strm    ObjectInputStreamオブジェク�
457             * @see #release2()
458             */
459            private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
460                    strm.defaultReadObject();
461            }
462    }