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 になりますã?
037     * ヘッãƒ??部は、è¤?•°æŒ?®šできますが、デフォルトではヘッãƒ??Nがキーブレイクすると
038     * 合計用のヘッãƒ??が挿入されますã?またã?ヘッãƒ??は、前段と同じ値の場合ã?、表示しませんã€?
039     * 合計ã?、è¤?•°並べることができますが、sumNumber でæŒ?®šしておくå¿?¦�がありますã?
040     *
041     * å�?±žæ?は、{@XXXX} 変数が使用できますã?
042     * これは、ServletRequest から、XXXX をキーに値を取りå?ã�?こã?変数に割り当てますã?
043     * つまりã?こã?XXXXをキーにリクエストすれã?、この変数に値をセãƒ?ƒˆすることができますã?
044     *
045     * http://localhost/query.jsp?KEY1=VLA1&KEY2=VAL2
046     *
047     * のようなリクエストで、{@KEY1} とすればã€?VAL1 がセãƒ?ƒˆされますã?
048     *
049     * @og.formSample
050     * ●形式ï¼?lt;og:crossParam breakColumn="ZZZ" noGroupColumns="AAA,BBB" sumNumber="2" />
051     * ●body?šなã�?
052     *
053     * ●Tag定義??
054     *   <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     *       useHeaderResource  【TAG】ã?ãƒ?ƒ€ー表示にラベルリソースを適用するかどã�?�‹を指定しまã�?初期値:false)
070     *       headerCodeColumn   【TAG】ã?ãƒ?ƒ€ー表示に利用するコードを持つカラãƒ?‚’æŒ?®šしまã�?初期値:空æ–?­—å?)
071     *       debug              【TAG】デバッグæƒ??をå?力するかどã�?�‹[true/false]を指定しまã�?初期値:false)
072     *   />
073     *
074     * ●使用ä¾?
075     *     ViewFormTag の viewFormType がã?HTMLCrossTable の場合に使用しますã?
076     *     useParam 属æ?を設定しておかなã�?�¨、使用されませんã€?
077     *     <og:view
078     *         viewFormType = "HTMLCrossTable"
079     *         command      = "{@command}"
080     *         startNo      = "0"
081     *         pageSize     = "20"
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 』ですã?
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 』ですã?
136             * ヘッãƒ??部は、キーブレイクする都度、ã?ãƒ?ƒ€ーをå?力しますã?それまではã€?
137             * å�??ãƒ?ƒ€ーの値がã?前段(同ä¸?‚«ラãƒ??先ã?値)と同じ場合ã?、空白にしますã?
138             * こうする事で、å?のグループ化がä¸?›®で判りますã?(初期設å®?
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 』ですã?
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             * 初期値(æŒ?®š無ã�?は、利用しなã�?false)ですã?
391             *
392             * @og.rev 5.5.5.0 (2012/07/28) 新規追åŠ?
393             *
394             * @param       useHeaderResource       ヘッãƒ??のラベルにリソースを利用するかどã�?�‹
395             */
396            public void setUseHeaderResource( final String useHeaderResource ) {
397    //              putParam( "useHeaderColumn",
398                    putParam( ViewCrossTableParam.USE_HEADER_RSC,
399                                      nval( getRequestParameter( useHeaderResource ),"false" ) );
400            }
401            
402            /**
403             * 【TAG】ã?ãƒ?ƒ€ーのラベルに利用するコードリソースを指定しますã?
404             *
405             * @og.tag
406             * こã?値を指定すると上部ヘッãƒ??の表示を対象カラãƒ??コードに対応するラベルで表示しますã?
407             * カラãƒ?ƒªソースがMENUã‚??DBMENUのようにSelectionを返す形であるå¿?¦�がありますã?
408             * 初期値はnullですã?
409             *
410             * @og.rev 5.5.5.0 (2012/07/28) 新規追åŠ?
411             *
412             * @param       headerCode コードリソースのキー
413             */
414            public void setHeaderCodeColumn( final String headerCode ) {
415                    putParam( ViewCrossTableParam.HEADER_CODE_KEY,
416                                      nval( getRequestParameter( headerCode ),null ) );
417            }
418    
419            /**
420             * タグの名称をã?返しますã?
421             * 自åˆ??身のクラス名よりã?自動的に取り出せなã�?�Ÿめã?こã?メソãƒ?ƒ‰をオーバã?ライドしますã?
422             *
423             * @og.rev 4.0.0.0 (2005/01/31) 新規追åŠ?
424             *
425             * @return  タグの名称
426             */
427            @Override
428            protected String getTagName() {
429                    return "crossParam" ;
430            }
431    
432            /**
433             * シリアライズ用のカスタãƒ?‚·リアライズ書き込みメソãƒ?ƒ‰
434             *
435             * @og.rev 4.0.0.0 (2006/09/31) 新規追åŠ?
436             * @serialData ä¸?ƒ¨のオブジェクトã?、シリアライズされませんã€?
437             *
438             * @param       strm    ObjectOutputStreamオブジェクãƒ?
439             * @throws IOException  入出力エラーが発生したå?å�?
440             */
441            private void writeObject( final ObjectOutputStream strm ) throws IOException {
442                    strm.defaultWriteObject();
443            }
444    
445            /**
446             * シリアライズ用のカスタãƒ?‚·リアライズ読み込みメソãƒ?ƒ‰
447             *
448             * ここでは、transient 宣è¨?�•れたå†?ƒ¨変数のå†??初期化がå¿?¦�なフィールドã?み設定しますã?
449             *
450             * @og.rev 4.0.0.0 (2006/09/31) 新規追åŠ?
451             * @serialData ä¸?ƒ¨のオブジェクトã?、シリアライズされませんã€?
452             *
453             * @param       strm    ObjectInputStreamオブジェクãƒ?
454             * @see #release2()
455             * @throws IOException  シリアライズに関する入出力エラーが発生したå?å�?
456             * @throws ClassNotFoundException       クラスを見つけることができなかったå?å�?
457             */
458            private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
459                    strm.defaultReadObject();
460            }
461    }