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 static org.opengion.fukurou.util.StringUtil.nval;
019    
020    import java.io.IOException;
021    import java.io.ObjectInputStream;
022    import java.io.ObjectOutputStream;
023    import java.util.ArrayList;
024    import java.util.List;
025    import java.util.Locale;
026    import java.util.Map;
027    
028    import org.opengion.fukurou.util.StringUtil;
029    import org.opengion.fukurou.util.XHTMLTag;
030    import org.opengion.hayabusa.common.HybsSystem;
031    import org.opengion.hayabusa.common.HybsSystemException;
032    import org.opengion.hayabusa.db.DBColumn;
033    import org.opengion.hayabusa.db.DBColumnConfig;
034    import org.opengion.hayabusa.db.DBEditConfig;
035    import org.opengion.hayabusa.db.DBLastSql;
036    import org.opengion.hayabusa.db.DBTableModel;
037    import org.opengion.hayabusa.db.DBTableModelSorter;
038    import org.opengion.hayabusa.html.FormatterType;
039    import org.opengion.hayabusa.html.TableFormatter;
040    import org.opengion.hayabusa.html.ViewCrossTableParam;
041    import org.opengion.hayabusa.html.ViewForm;
042    import org.opengion.hayabusa.html.ViewFormFactory;
043    import org.opengion.hayabusa.html.ViewMarker;
044    import org.opengion.hayabusa.resource.RoleMode;
045    import org.opengion.hayabusa.resource.UserInfo;
046    import org.opengion.hayabusa.resource.GUIInfo;
047    
048    /**
049     * ãƒ??タベã?スの検索結果を表示するタグですã?
050     *
051     * 検索結果は、DBTableModel にセãƒ?ƒˆされますã?
052     * こã?タグに、データ(DBTableModel)とã€?
053     * コントローラ(ViewForm)を与えてã€?外部からコントロールすることで、テキストフィールドやãƒ??ブルの形で表示したりã?
054     * 入力可/不可、表示可/不可の設定を行うことができますã?
055     *
056     * @og.formSample
057     * ●形式ï¼?lt;og:view />
058     *     <og:view
059     *         viewFormType = "HTMLTable"
060     *         command      = "{@command}"
061     *         startNo      = "0"
062     *         pageSize     = "20"
063     *         language     = "ja" />
064     *
065     *     viewFormType : ViewFormオブジェクトを作æ?する時ã?キー(オプション)     ViewFormFactory参ç?
066     *     command      : 処ç�?‚³マンãƒ? PREV,NEXT,FIRST,LAST,VIEW )(オプション)
067     *     startNo      : ãƒ??タの書き始めの初期値を指å®?オプション)
068     *     pageSize     : ãƒ??タのペã?ジ数(画面表示件数)を指å®?オプション)
069     *     language     : ロケール(オプション)
070     *
071     * ●body?šあã‚?EVAL_BODY_BUFFERED:BODYを評価しã?{@XXXX} を解析しまã�?
072     *
073     * ●Tag定義??
074     *   <og:view
075     *       viewFormType       【TAG】ViewForm オブジェクトを作æ?するクラス({@og.doc03Link viewFormType ViewForm_**** クラス})を指定しまã�?
076     *       command            【TAG】コマンãƒ?PREV,NEXT,FIRST,LAST,NEW,RENEW,VIEW,REVIEW,RESET)をセãƒ?ƒˆしまã�?
077     *       scope              【TAG】キャãƒ?‚·ュする場合ã?スコープ[request/page/session/applicaton]を指定しまã�?初期値:session)
078     *       startNo            【TAG】表示ãƒ??タを作æ?する場合ã?表示の開始行番号をセãƒ?ƒˆしまã�?
079     *       pageSize           【TAG】表示ãƒ??タを作æ?する場合ã??‘ã?ージの行数をセãƒ?ƒˆしまã�?
080     *       pagePlus           【TAG】1ã?ージの行数の増加åˆ?‚’セãƒ?ƒˆしまã�?初期値:0)
081     *       writable           【TAG】行が書き込み可能かどã�?�‹[true/false]を設定しまã�?(初期値:DBTableModel#DEFAULT_WRITABLE[=true])
082     *       checked            【TAG】行ã?チェãƒ?‚¯ボックスの初期値を設定するかどã�?�‹[true/false]を指定しまã�?初期値:null)
083     *       rowspan            【TAG】表示ãƒ??タを作æ?する場合ã?フォーマットã?行数をセãƒ?ƒˆしまã�?初期値:2)
084     *       skip               【TAG】NEXT等でã€?�¸択行以外をスキãƒ??するのかどã�?�‹[true/false]を指定しまã�?(初期値:ViewForm#DEFAULT_SKIP[=false])
085     *       columnWritable     【TAG】書き込み可能カラãƒ?��をã?カンマ区åˆ?‚Šで与えまã�?
086     *       noWritable         【TAG】書き込み不可カラãƒ?��をã?カンマ区åˆ?‚Šで与えまã�?
087     *       columnDisplay      【TAG】表示可能カラãƒ?��をã?カンマ区åˆ?‚Šで与えまã�?
088     *       clmSeqDisplay      【TAG】表示可能カラãƒ?��をã?カラãƒ??に、カンマ区åˆ?‚Šで与えまã�?
089     *       noDisplay          【TAG】表示不可カラãƒ?��をã?カンマ区åˆ?‚Šで与えまã�?
090     *       columnGroup        【TAG】同ä¸?¡¨示ãƒ??タをまとめる(表示しなã�?カラãƒ?��をã?カンマ区åˆ?‚Šで与えまã�?
091     *       noGroup            【TAG】同ä¸?¡¨示ãƒ??タをまとめなã�?‚«ラãƒ?��をã?カンマ区åˆ?‚Šで与えまã�?
092     *       groupClass         【TAG】同ä¸?¡¨示ãƒ??タをまとめる場合ã?、表示方法をæŒ?®šしまã�?
093     *       tableSorterKeys    【TAG】カラãƒ?��リンクソートを表示するカラãƒ?��をã?カンマ区åˆ?‚Šで与えまã�?
094     *       tableId            【TAGã€?通常使ã�?�¾せん)sessionからæ‰?¾—すã‚?DBTableModelオブジェクトã? ID
095     *       viewFormId         【TAGã€?通常使ã�?�¾せん)sessionから取得すã‚?ViewForm オブジェクトã? ID
096     *       viewLinkId         【TAGã€?通常つかいません)requestから取得すã‚?ViewLink に対応すã‚?Attributes オブジェクトã? ID
097     *       viewMarkerId       【TAGã€?通常使ã�?�¾せん)requestから取得すã‚?ViewMarker に対応すã‚?Attributes オブジェクトã? ID
098     *       editMarkerId       【TAGã€?通常使ã�?�¾せん)requestから取得すã‚?EditMarker に対応すã‚?Attributes オブジェクトã? ID
099     *       selectedType       【TAG】表示時ã?選択用オブジェクトã?タイプ[checkbox/radio/hidden]を指定しまã�?初期値:checkbox)
100     *       numberType         【TAG】表示時ã?行番号の表示方法[sequence/none/delete/skip=カラãƒ?��/view=カラãƒ?��]を指定しまã�?初期値:sequence)
101     *       optionTypeAttributes        【TAG】テーブル等ã?チェãƒ?‚¯ボックスに属æ?を付加しまã�?
102     *       noMessage          【TAG】検索結果メãƒ?‚»ージを表示しなã�?�‹どã�?�‹[true/false]を設定しまã�?初期値:false[表示する])
103     *       backLinkCount      【TAG】ã?ージの先é?へのリンクの間隔をセãƒ?ƒˆしまã�?(初期値:VIEW_BACK_LINK_COUNT[=0])
104     *       headerSkipCount    【TAG】ã?ãƒ?ƒ€ーをå?力する間隔をセãƒ?ƒˆしまã�?初期値:シスãƒ?ƒ パラメータ の VIEW_HEADER_SKIP_COUNT)
105     *       useCheckControl    【TAG】チェãƒ?‚¯ボックスの全チェãƒ?‚¯を選択するJavaScript の機è?を使用するかどã�?�‹を指定しまã�?(初期値:VIEW_USE_CHECK_CONTROL[=true])
106     *       useTableSorter     【TAG】ã?ãƒ?ƒ€ーにソート用リンクを作æ?するかどã�?�‹[true/false]を指定しまã�?(初期値:VIEW_USE_TABLE_SORTER[=true])
107     *       useParam           【TAG】パラメーターファイルの使用をするかどã�?�‹[true/false]を指定しまã�?初期値:false)
108     *       useConsistency     【TAG】Consistency キー による整合æ?チェãƒ?‚¯を行うかどã�?�‹[true/false]を指定しまã�?初期値:true)
109     *       bgColorCycle       【TAG】テーブルのバックグラウンドカラーの入れ替えã?サイクルをセãƒ?ƒˆしまã�?初期値はã€?:ゼブラ)
110     *       bgColorClsClm      【TAG】テーブルのバックグラウンドカラーのクラスにæŒ?®šするカラãƒ?��を指定しまã�?
111     *       useScrollBar       【TAG】スクロールバã?用のDIV要ç´?‚’出力するかどã�?�‹[true/false]を指定しまã�?(初期値:VIEW_USE_SCROLLBAR[=true])
112     *       loadMarker         【TAG】viewLink ã‚?viewMarker のæƒ??取り込みを制御する(初期値は、NEW,RENEW,REVIEW,RESET)
113     *       useSelectedRow     【TAG】SEL_ROW機è?[true:有効/false:無効]を指定しまã�?(初期値:VIEW_USE_SELECTED_ROW[=true])
114     *       useSelRowColor     【TAG】SEL_ROW使用時ã?選択行色変更[true:有効/false:無効]を指定しまã�?(初期値:VIEW_USE_SELROW_COLOR[=true])
115     *       useHilightRow      【TAG】HILIGHT_ROW機è?[true:有効/false:無効]を指定しまã�?(初期値:VIEW_USE_HILIGHT_ROW[=true])
116     *       useAfterHtmlTag    【TAGã€?処ç�?™‚間やペã?ジサイズなどのæƒ??出力[true:有効/false:無効]を指定しまã�?初期値:true)
117     *       writableControl    【TAG】設定å?に "_" が含まれてã�?‚‹場合にレンãƒ?ƒ©ーを使用するカラãƒ?‚’CSV形式でæŒ?®šしまã�?
118     *       popupReturnKeys    【TAG】ogPopup で検索結果の値を返すキーをã?CSV形式でæŒ?®šしまã�?
119     *       clazz              【TAG】table要ç´?�«対して class 属æ?を設定しまã�?初期値:viewTable)
120     *       language           【TAG】タグå†?ƒ¨で使用するè¨?ªžコード[ja/en/zh/…]を指定しまã�?
121     *       height             【TAG】ビューの高さを指定しまã�?
122     *       width              【TAG】ビューのå¹?‚’æŒ?®šしまã�?
123     *       fileDwnClms        【TAG】ファイルãƒ?‚¦ンロード時の抜å?カラãƒ?��(CSV形å¼?を指定しまã�?
124     *       skipNoEdit         【TAG】編é›?¡Œã?みを表示するかをæŒ?®šしまã�?
125     *       noTransition       【TAGã€?通常は使ã�?�¾せん)画面遷移を行わなã�?½¢式ã?登録方法を使用するかをæŒ?®šしまã�?
126     *       useHilightCheckOnly【TAG】選択行ハイライトã?制御をチェãƒ?‚¯ボックスのみで有効にするかをæŒ?®šしまã�?(初期値:VIEW_USE_HILIGHT_CHECK_ONLY[=false])
127     *       columnBulkSet      【TAG】ä¸?‹¬入力カラãƒ??アシスト機è?を利用するカラãƒ?��をã?カンマ区åˆ?‚Šで与えまã�?
128     *       caseKey            【TAG】このタグ自体を利用するかどã�?�‹の条件キーを指定しまã�?初期値:null)
129     *       caseVal            【TAG】このタグ自体を利用するかどã�?�‹の条件値を指定しまã�?初期値:null)
130     *       caseNN             【TAG】指定ã?値がã?null/ゼロæ–?­—å? でなã�??å�?Not Null=NN)は、このタグは使用されまã�?初期値:true)
131     *       caseNull           【TAG】指定ã?値がã?null/ゼロæ–?­—å? の場合ã?、このタグは使用されまã�?初期値:true)
132     *       mainView           【TAGã€?通常は使ã�?�¾せん)セãƒ?‚·ョンにæƒ??を登録するかどã�?�‹[true/false]æŒ?®šしますã?(初期値:true)
133     *       debug              【TAG】デバッグæƒ??をå?力するかどã�?�‹[true/false]を指定しまã�?初期値:false)
134     *   >   ... Body ...
135     *   </og:view>
136     *
137     * ●使用ä¾?
138     *       <og:view viewFormId="HTMLTable" command="NEW" startNo="0" pageSize="5" / >
139     *
140     * @og.group 画面表示
141     *
142     * @version  4.0
143     * @author       Kazuhiko Hasegawa
144     * @since    JDK5.0,
145     */
146    public class ViewFormTag extends CommonTagSupport {
147            //* こã?プログラãƒ??VERSIONæ–?­—å?を設定しますã?       {@value} */
148            private static final String VERSION = "5.7.7.3 (2014/06/27)" ;
149    
150            private static final long serialVersionUID = 577320140627L ;
151    
152            /** command 引数に渡す事ã?出来ã‚?コマンãƒ? プレビュー {@value}  */
153            public static final String CMD_PREV  = "PREV" ;
154            /** command 引数に渡す事ã?出来ã‚?コマンãƒ? ネクスãƒ?{@value}  */
155            public static final String CMD_NEXT  = "NEXT" ;
156            /** command 引数に渡す事ã?出来ã‚?コマンãƒ? ファースãƒ?{@value}  */
157            public static final String CMD_FIRST = "FIRST";
158            /** command 引数に渡す事ã?出来ã‚?コマンãƒ? ラスãƒ?{@value}  */
159            public static final String CMD_LAST  = "LAST" ;
160            /** command 引数に渡す事ã?出来ã‚?コマンãƒ? 新è¦?{@value}  */
161            public static final String CMD_NEW       = "NEW" ;
162            /** command 引数に渡す事ã?出来ã‚?コマンãƒ? 再検索 {@value}  */
163            public static final String CMD_RENEW = "RENEW" ;
164            /** command 引数に渡す事ã?出来ã‚?コマンãƒ? 表示 {@value}  */
165            public static final String CMD_VIEW  = "VIEW" ;
166            /** command 引数に渡す事ã?出来ã‚?コマンãƒ? 再表示 {@value}  */
167            public static final String CMD_REVIEW  = "REVIEW" ;
168            /** command 引数に渡す事ã?出来ã‚?コマンãƒ? リセãƒ?ƒˆ {@value}  */
169            public static final String CMD_RESET  = "RESET" ;
170            /** command 引数に渡す事ã?出来ã‚?コマンãƒ?リスãƒ? */
171            private static final String[] COMMAND_LIST = new String[] {
172                            CMD_PREV , CMD_NEXT , CMD_FIRST , CMD_LAST , CMD_NEW , CMD_RENEW , CMD_VIEW , CMD_REVIEW , CMD_RESET };
173    
174            // 3.8.0.8 (2005/10/03)
175            /** コマンドリストに存在しなã�??合ã?値 従来の CMD_VIEW と区別させるためã? */
176            private static final String CMD_XXX  = "XXX" ;
177    
178            private   static final String START_NO_KEY              = "startNo";
179            private   static final String PAGE_SIZE_KEY     = "pageSize";
180            private   static final String PAGE_PLUS_KEY     = "pagePlus";
181    
182            // 3.5.6.3 (2004/07/12) スクロールバã?用のDIV 要ç´?±žæ?定義
183    
184            private String          tableId                 = HybsSystem.TBL_MDL_KEY;
185            private String          viewFormId              = HybsSystem.VIEWFORM_KEY;
186            private String          viewFormType    = null;
187            private String          viewLinkId              = HybsSystem.VIEWLINK_KEY;
188            private String          viewMarkerId    = HybsSystem.VIEW_MARK_KEY;
189            private String          editMarkerId    = HybsSystem.EDIT_MARK_KEY;             // 3.8.6.1 (2006/10/20)
190            private String          command                 = null;
191            private int                     startNo                 = -1;           // HTML画面上ã?表示開始位置(初期値)
192            private int                     tempStartNo             = -1;           // 再検索時ã?表示開始位置
193            private int                     pageSize                = -1;           // HTML画面上に表示する件数
194            private int                     pagePlus                = -1;           // 3.5.6.4 (2004/07/16)
195            private transient DBTableModel  table           = null;
196            private transient ViewForm              form            = null;
197            private String          columnWritable  = null;
198            private String          noWritable              = null;
199            private String          columnDisplay   = null;
200            private String          noDisplay               = null;
201            private String          clmSeqDisplay   = null;         // 5.1.6.0 (2010/05/01) ViewForm_HTMLSeqClmTable 対å¿?
202            private String          columnGroup             = null;         // 3.8.5.0 (2006/03/20)
203            private String          noGroup                 = null;         // 5.1.8.0 (2010/07/01)
204            private String          groupClass              = null;         // 5.1.8.0 (2010/07/01)
205            private boolean         noMessage               = false;
206            private String          writable                = null;
207            private String          checked                 = null;
208            private boolean         skip                    = ViewForm.DEFAULT_SKIP;
209            private String          rowspan                 = "2";
210            private String          selectedType    = "checkbox";
211            private String          numberType              = "sequence";           // 3.5.1.0 (2003/10/03) 追åŠ?
212            private String          optTypeAttri    =  null;
213            private int                     backLinkCount   = HybsSystem.sysInt( "VIEW_BACK_LINK_COUNT" );
214            private int                     headerSkipCount = HybsSystem.sysInt( "VIEW_HEADER_SKIP_COUNT" );        // 0:通常ヘッãƒ??n:n回ごとに現れる
215            private List<TableFormatter>              values                  = null;
216            private String          bodyString              = null;
217            private int                     useCheckControl = -1 ;
218            private String          useTableSorter  = null ;        // 3.5.4.7 (2004/02/06)
219    
220            private long dyStart = 0;       // 3.5.4.7 (2004/02/06) 実行時間測定用のDIV要ç´?‚’出力しますã?
221            private boolean         useParam                = false;        // 3.5.4.8 (2004/02/23) パラメータTagの使用を宣è¨?�—ますã?
222            private Map<String,String> viewParam = null;      // 3.5.4.8 (2004/02/23) ViewParamTag のパラメータを受け取りますã?
223            private List<String[]> viewArrayList = null; // 5.5.9.0 (2012/12/03) viewObjectから変更
224    
225            // 3.5.5.8 (2004/05/20) 整合æ?チェãƒ?‚¯を行う為の、Consistency キー をå?力するかどã�?�‹を指定しますã?
226            private boolean         useConsistency  = HybsSystem.sysBool( "USE_CONSISTENCY" ) ;
227    
228            // 3.5.6.2 (2004/07/05) ゼブラ模様ã?æŒ?®šを、ViewForm としてサポã?ãƒ?
229            // 0(ゼブラなã�?ã€?1(ワーニング)ã€?2以ä¸?エラー)ã€?(ゼブラ)ã€?以ä¸?行数まとã‚?
230            private int bgColorCycle = 1 ;
231    
232            // 5.1.8.0 (2010/07/01) 行に対して、動çš?�«クラス属æ?を付与するカラãƒ?��を指定しますã?
233            private String bgColorClsClm = null;
234    
235            private String          useScrollBar    = null ;
236    
237            // 3.6.0.0 (2004/09/17) カラãƒ?‚½ートリンクをå?すカラãƒ?��を指定ã?
238            private String          sortKeys        = null;
239    
240            // 3.6.0.4 (2004/10/14) viewLink ã‚?viewMarker のæƒ??取り込みを制御
241            // 前後ã? , が重要ですï¼?
242            private String          loadMarker      = ",NEW,RENEW,REVIEW,RESET,";
243    
244            // 3.7.1.1 (2005/05/23) SEL_ROW機è?の有効/無効を指定しますã?
245            private String          useSelectedRow  = null ;
246    
247            // 3.7.1.1 (2005/05/31) SEL_ROW機è?使用時に、BG_COLOR_ROWSEL の使用 æœ?無を指定しますã?
248            private String          useSelRowColor  = null;
249    
250            // 3.7.1.1 (2005/05/23) 処ç�?™‚間やペã?ジサイズなどのæƒ??出力ã?有効/無効を指定しますã?
251            private boolean         useAfterHtmlTag = true ;
252    
253            // 3.8.0.9 (2005/10/17) 設定å?に "_" が含まれてã�?‚‹場合に、レンãƒ?ƒ©ーを使用しますã?
254            private String          writableControl = null;
255    
256            // 3.8.6.0 (2006/09/29) HILIGHT_ROW機è?の有効/無効を指定しますã?
257            private String          useHilightRow   = null;
258    
259            // 3.8.6.1 (2006/10/20) ogPopup で検索結果の値を返すキーをã?CSV形式でæŒ?®šしますã?
260            private String          popupReturnKeys = null ;
261    
262            // 4.0.0 (2007/04/16) tableタグをå?力するときに付与しますã?
263            private String          clazz                   = "viewTable";
264    
265            // 4.2.0.0 (2008/03/18) ビューのå¹?�¨高さを指定できるようにしますã?
266            private String          height                  = null;
267            private String          width                   = null;
268    
269            // 4.3.0.0 (2008/07/04) fileUD ファイルãƒ?‚¦ンロード時の抜å?カラãƒ?��(CSV形å¼?
270            private String          fileDwnClms             = null ;
271    
272            // 4.3.1.0 (2008/09/08)
273            private boolean         skipNoEdit              = false;
274    
275            // 4.3.3.0 (2008/10/01)
276            private boolean         noTransition    = false;
277    
278            // 4.3.7.0 (2009/06/01) HILIGHT_ROW機è?有効時に制御を行チェãƒ?‚¯ボックスのみにしますã?
279            private String          useHilightCheckOnly     = null;
280    
281            // 5.2.1.0 (2010/10/01) ä¸?‹¬入力カラãƒ??アシスト機è?を利用するカラãƒ?‚’æŒ?®šしますã?
282            private String          columnBulkSet   = null;
283            private boolean         useDefBulkset   = HybsSystem.sysBool( "VIEW_USE_DEFAULT_BULKSET" ) ;
284    
285            // 5.7.6.1 (2014/05/09) startNoのセãƒ?‚·ョン保存をæŒ?®šしますã?
286            private boolean         isMainView              = true; 
287    
288            // 5.7.7.3 (2014/06/27) MSG0085 Edit機è?でæŒ?®šしてã�?‚‹カラãƒ?{0})が検索結果に存在しません。削除後ã?再作æ?して下さã�??
289            private   String        editWarnwMsg    = "MSG0085";
290    
291            /**
292             * Taglibの開始タグが見つかったときに処ç�?�™ã‚?doStartTag() ã‚?オーバã?ライドしますã?
293             *
294             * @og.rev 3.5.4.7 (2004/02/06) DBTableModelのソート機è? useTableSorter を追åŠ?
295             * @og.rev 3.5.4.7 (2004/02/06) 実行時間測定用にã€?–‹始時刻を取得しますã?
296             * @og.rev 3.5.4.8 (2004/02/23) useParam をã?BODY部の処ç�?ˆ¤定にåŠ?�ˆますã?
297             * @og.rev 3.5.6.0 (2004/06/18) DBRowHeader のパッケージプライベã?ト化に伴なã�?¤‰更
298             * @og.rev 3.5.6.1 (2004/06/25) viewFormType変更時ã?viewForm 再セãƒ?ƒˆ
299             * @og.rev 3.5.6.2 (2004/07/05) command="VIEW" などで、ありえなã�?�¨してã�?�Ÿ処ç�?‚’追åŠ?
300             * @og.rev 3.5.6.3 (2004/07/12) markerSet で table の整合æ?もチェãƒ?‚¯するã€?
301             * @og.rev 3.5.6.4 (2004/07/16) DBTableModelのソート時には、viewをå?期設定するã?
302             * @og.rev 3.6.0.0 (2004/09/17) scope ã�?request の場å�?検索)ヘッãƒ??ソートリンクは使えなã�??
303             * @og.rev 3.6.0.0 (2004/09/22) pageSize の form への設定見直しã?
304             * @og.rev 3.6.0.0 (2004/09/25) viewLink , viewMarker のリクエストメモリ削除の中止
305             * @og.rev 3.6.0.4 (2004/10/14) viewLink ã‚?viewMarker のæƒ??取り込みを制御する loadMarker を追åŠ?
306             * @og.rev 3.6.0.5 (2004/10/18) viewLink , viewMarker のリクエストメモリ削除を復活しますã?
307             * @og.rev 3.8.0.8 (2005/10/03) ヘッãƒ??ソート時に、startNo ã‚?0 に戻しますã?
308             * @og.rev 3.8.8.5 (2007/03/09) markerSet する条件を強化するã?
309             * @og.rev 3.8.8.9 (2007/05/29) ソート時のviewLink,viewMarker の取り込み
310             * @og.rev 3.8.9.3 (2007/08/28) soryKeysのみを指定したå?合に、ソート用のãƒ??ブルモãƒ?ƒ«が作æ?されなã�?ƒ�グを修正ã€?
311             * @og.rev 4.1.0.0(2008/01/11)シスãƒ?ƒ パラメータ(useCheckControl)の読取ã? doEndTag 関数から doStartTag 関数に移動しますã?
312             * @og.rev 5.1.6.0 (2010/05/01) ViewForm_HTMLSeqClmTable クラス によるカラãƒ?¡¨示é ??ç�?‚’行いますã?
313             * @og.rev 5.1.6.0 (2010/05/01) 左右åˆ?‰²スクロール画面でヘッãƒ??スクロールã�?回å?ç�?�•れるバグを修正
314             * @og.rev 5.1.6.0 (2010/05/01) ユーザー毎ã?画面é ?›®並び替え対å¿?
315             * @og.rev 5.1.7.0 (2010/06/01) ViewFormに画面IDをセãƒ?ƒˆしã?セãƒ?ƒˆされた画面IDと同じ場合ã?みViewFormを復å…?�™るã?
316             * @og.rev 5.1.7.0 (2010/06/01) DBColumnの{&#064;XXXX}変数対å¿?
317             * @og.rev 5.1.7.0 (2010/06/01) ヘッãƒ??ソート後に画面遷移しã?戻ってきた際にstartNoがクリアされるバグを修正
318             * @og.rev 5.1.8.0 (2010/07/01) 全チェãƒ?‚¯を押した状態で画面遷移した場合にチェãƒ?‚¯状態を保持するã€?
319             * @og.rev 5.1.8.0 (2010/07/01) 同時設定不可(columnWritable,noWritable,columnDisplay,noDisplay,columnGroup,noGroup) チェãƒ?‚¯
320             * @og.rev 5.2.2.0 (2010/11/01) caseKey 、caseVal 属æ?対å¿?
321             * @og.rev 5.3.0.0 (2010/12/01) 左右åˆ?‰²スクロール(SplitViewTag)対å¿?
322             * @og.rev 5.3.6.0 (2011/06/01) Edit機è?見直ã�?
323             * @og.rev 5.4.1.0 (2011/11/01) 5.1.8.0 (2010/07/01)の全チェãƒ?‚¯保持機è?をå»?­¢
324             *
325             * @return      後続å?ç�??æŒ?¤º
326             */
327            @Override
328            public int doStartTag() {
329                    // 5.3.0.0 (2010/12/01) 左右åˆ?‰²スクロール(SplitViewTag)対å¿?
330                    splitViewParamSet();
331    
332                    // 5.2.2.0 (2010/11/01) caseKey 、caseVal 属æ?対å¿?
333                    if( !useTag() ) { return SKIP_BODY ; }  // Body を評価しなã�?
334    
335                    // 5.1.8.0 (2010/07/01) 同時設定不可(columnWritable,noWritable,columnDisplay,noDisplay,columnGroup,noGroup) チェãƒ?‚¯
336                    if( columnWritable != null && noWritable != null ) {
337                            String errMsg = "columnWritable と noWritable は同時にæŒ?®šできませんã€?
338                                                            + "columnWritable = [" + columnWritable
339                                                            + "] , noWritable = [" + noWritable
340                                                            + "]";
341                            throw new HybsSystemException( errMsg );
342                    }
343    
344                    if( columnDisplay != null && noDisplay != null ) {
345                            String errMsg = "columnDisplay と noDisplay は同時にæŒ?®šできませんã€?
346                                                            + "columnDisplay = [" + columnDisplay
347                                                            + "] , noDisplay = [" + noDisplay
348                                                            + "]";
349                            throw new HybsSystemException( errMsg );
350                    }
351    
352                    if( columnGroup != null && noGroup != null ) {
353                            String errMsg = "columnGroup と noGroup は同時にæŒ?®šできませんã€?
354                                                            + "columnGroup = [" + columnGroup
355                                                            + "] , noGroup = [" + noGroup
356                                                            + "]";
357                            throw new HybsSystemException( errMsg );
358                    }
359    
360                    dyStart = System.currentTimeMillis();
361                    table = (DBTableModel)getObject( tableId );
362                    if( table == null ) { return SKIP_BODY ; }
363    
364                    // 5.1.6.0 (2010/05/01)ViewForm_HTMLSeqClmTable クラス によるカラãƒ?¡¨示é ??ç�?‚’行いますã?
365                    // clmSeqDisplay 属æ?が設定されてã�?‚‹と、クラスæŒ?®šを変更しã?columnDisplay に、clmSeqDisplay ã‚?
366                    // 設定し、noDisplay をã?削除(null をセãƒ?ƒˆ)しますã?
367                    if( clmSeqDisplay != null ) {
368                            viewFormType    = "HTMLSeqClmTable" ;
369                            columnDisplay   = clmSeqDisplay;
370                            noDisplay               = null;
371                    }
372                    // 5.1.6.0 (2010/05/01) seqClmTableを使用するかどã�?�‹をチェãƒ?‚¯しまã�?
373                    // 5.3.6.0 (2011/06/01) Edit機è?見直しによりメソãƒ?ƒ‰名変更
374                    String editName = getRequestValue( "editName" );
375                    if( editName != null ) {
376                            String guikey = getGUIInfoAttri( "KEY" );
377                            DBEditConfig config = getUser().getEditConfig( guikey, editName );
378                            if( config != null ) {
379                                    makeEditTable( config );
380                            }
381                    }
382    
383                    // 5.1.7.0 (2010/06/01) DBColumnの{@XXXX}変数対å¿?
384                    int clmSize = table.getColumnCount();
385                    for( int clmNo=0; clmNo<clmSize; clmNo++ ) {
386                            DBColumn dbColumn = table.getDBColumn( clmNo );
387                            if ( dbColumn.isNeedsParamParse() ){
388                                    DBColumnConfig config = dbColumn.getConfig();
389                                    config.setRendererParam( getRequestParameter( config.getRendererParam() ) );
390                                    config.setEditorParam( getRequestParameter( config.getEditorParam() ) );
391                                    DBColumn newColumn = new DBColumn( config );
392                                    table.setDBColumn( clmNo, newColumn );
393                            }
394                    }
395    
396                    // 3.8.8.9 (2007/05/29) ソート時の viewLink,viewMarker の取り込み
397                    boolean useSorter = false;
398    
399                    // 3.5.4.7 (2004/02/06) DBTableModelのソート機è? 追åŠ?
400                    // 登録後に同じソートé?で再表示させるために、リクエストキャãƒ?‚·ュに登録しますã?
401                    // 3.8.9.3 (2007/08/28) soryKeysのみを指定したå?合に、ソート用のãƒ??ブルモãƒ?ƒ«が作æ?されなã�?ƒ�グを修正ã€?
402                    // 5.1.6.0 (2010/05/01) 左右åˆ?‰²スクロール画面でヘッãƒ??スクロールã�?回å?ç�?�•れるバグを修正
403                    if( "session".equals( getScope() )
404                            && ( nval( useTableSorter,sysBool( "VIEW_USE_TABLE_SORTER" ) ) || sortKeys != null )
405                            && !( table.getConsistencyKey().equals( getRequestAttribute( HybsSystem.VIEW_SORT_KEY ) ) ) ) {
406    
407                            String clm = getRequestValue( HybsSystem.SORT_COLUMNS );
408                            // 若干トリãƒ?‚­ー。å?めてクリãƒ?‚¯されるまで、DBTableModelSorter は作æ?しなã�??
409                            if( clm != null && clm.length() > 0 ) {
410                                    useSorter = true;       // 3.8.8.9 (2007/05/29)
411                                    startQueryTransaction( tableId );               // 3.6.0.8 (2004/11/19)
412                                    int clmNo = table.getColumnNo( clm );
413                                    boolean sortAscending = nval( getRequestValue( HybsSystem.SORT_ASCENDING ),true );
414                                    if( table instanceof DBTableModelSorter ) {
415                                            if( !CMD_RESET.equals( command ) ) {
416                                                    ((DBTableModelSorter)table).sortByColumn( clmNo );
417                                            }
418                                            sortAscending = ((DBTableModelSorter)table).isAscending() ;     // ソート方å�?
419                                    }
420                                    else {
421                                            DBTableModelSorter temp = new DBTableModelSorter();
422                                            temp.setModel( table );
423                                            temp.sortByColumn( clmNo,sortAscending );
424                                            table = temp;
425                                    }
426                                    // 3.6.0.8 (2004/11/19) トランザクションチェãƒ?‚¯を行いますã?
427                                    if( ! commitTableObject( tableId, table ) ) {
428                                            jspPrint( "ViewFormTag Query処ç�?�Œ割り込まれましたã€?BTableModel は登録しませんã€? );
429                                            return SKIP_PAGE;
430                                    }
431                                    if( CMD_VIEW.equals( command ) ) {
432                                            setRequestCacheData( HybsSystem.SORT_COLUMNS,clm );
433                                            setRequestCacheData( HybsSystem.SORT_ASCENDING,String.valueOf( sortAscending ) );
434                                    }
435    
436                                    // 5.1.6.0 (2010/05/01)
437                                    setRequestAttribute( HybsSystem.VIEW_SORT_KEY, table.getConsistencyKey() );
438    
439                                    // 3.8.0.8 (2005/10/03) ヘッãƒ??ソート時に、startNo ã‚?0 に戻しますã?
440                                    // 5.1.7.0 (2010/06/01) ヘッãƒ??ソート後に画面遷移しã?戻ってきた際にstartNoがクリアされるバグを修正
441                                    if( !CMD_RENEW.equals( command ) ) {
442                                            startNo = 0;
443                                            tempStartNo = startNo;
444                                    }
445                            }
446                    }
447    
448                    if( CMD_NEW.equals( command ) || CMD_RENEW.equals( command ) || CMD_REVIEW.equals( command ) || CMD_RESET.equals( command ) ) {
449                            form = ViewFormFactory.newInstance( viewFormType );             // 3.5.6.1 (2004/06/25)
450                            form.init( table );
451                            table.setDefaultRowWritable( DBTableModel.DEFAULT_WRITABLE );
452                            table.setDefaultRowChecked(  DBTableModel.DEFAULT_CHECKED );
453                    }
454                    else {
455                            // 3.5.6.1 (2004/06/25) viewFormType変更時ã?viewForm 再セãƒ?ƒˆ
456                            ViewForm oldForm = (ViewForm)getObject( viewFormId );
457                            // 5.1.7.0 (2010/06/01) ViewFormに画面IDをセãƒ?ƒˆしã?セãƒ?ƒˆされた画面IDと同じ場合ã?みViewFormを復å…?�™るã?
458                            if( oldForm != null && getGUIInfoAttri( "KEY" ).equals( oldForm.getGamenId() ) ) {
459                                    if( oldForm.getViewFormType().equals( viewFormType ) ) {
460                                            form = oldForm ;
461                                    }
462                                    else {
463                                            form = ViewFormFactory.newInstance( viewFormType );
464                                    }
465                                    form.init( table );
466                                    // 3.5.6.3 (2004/07/12) markerSet で table の整合æ?もチェãƒ?‚¯するã€?
467                                    DBTableModel oldTable = oldForm.getDBTableModel();
468                                    if( table.getConsistencyKey().equals( oldTable.getConsistencyKey() ) ) {
469                                            // 3.8.8.5 (2007/03/09) markerSet する条件を強化するã?
470                                            // 3.8.8.9 (2007/05/29) ソート時の viewLink,viewMarker の取り込み
471                                            if( "true".equalsIgnoreCase( loadMarker ) ||
472                                                    loadMarker.indexOf( "," + command + "," ) >= 0 ||
473                                                    useSorter ) {
474                                                            form.markerSet( oldForm );
475                                            }
476                                    }
477                            }
478                            else {
479                                    // 3.5.6.2 (2004/07/05) command="VIEW" などで、ありえなã�?�¨してã�?�Ÿ処ç�?‚’追åŠ?
480                                    form = ViewFormFactory.newInstance( viewFormType );
481                                    form.init( table );
482                            }
483                    }
484    
485                    // 5.1.7.0 (2010/06/01) ViewFormに画面IDをセãƒ?ƒˆしã?セãƒ?ƒˆされた画面IDと同じ場合ã?みViewFormを復å…?�™るã?
486                    form.setGamenId( getGUIInfoAttri( "KEY" ) );
487    
488                    // 3.6.0.4 (2004/10/14) ViewMarker 等ã?セãƒ?ƒˆは、loadMarker で制御しますã?
489                    if( "true".equalsIgnoreCase( loadMarker ) ||
490                            loadMarker.indexOf( "," + command + "," ) >= 0 ) {
491                            ViewMarker viewLink = (ViewMarker)getRequestAttribute( viewLinkId );
492                            if( viewLink != null ) {
493                                    form.setViewLink( viewLink );
494                                    removeRequestAttribute( viewLinkId );   // 3.6.0.5 (2004/10/18) 復活
495                            }
496    
497                            ViewMarker viewMarker = (ViewMarker)getRequestAttribute( viewMarkerId );
498                            if( viewMarker != null ) {
499                                    form.setViewMarker( viewMarker );
500                                    removeRequestAttribute( viewMarkerId ); // 3.6.0.5 (2004/10/18) 復活
501                            }
502    
503                            // 3.8.6.1 (2006/10/24) editMarker を追åŠ?�™るã?
504                            ViewMarker editMarker = (ViewMarker)getRequestAttribute( editMarkerId );
505                            if( editMarker != null ) {
506                                    form.setEditMarker( editMarker );
507                                    removeRequestAttribute( editMarkerId );
508                            }
509                    }
510                    // 3.8.0.5 (2005/08/26) false の場合ã?、無条件に、form のviewLinkとViewMarkerをクリアしますã?
511                    if( "false".equalsIgnoreCase( loadMarker ) ) {
512                            form.setViewLink( null );
513                            form.setViewMarker( null );
514                            form.setEditMarker( null );             // 3.8.6.1 (2006/10/24)
515                    }
516                    // 4.1.0.0(2008/01/11)シスãƒ?ƒ パラメータ(useCheckControl)の読取ã? doEndTag 関数から doStartTag 関数に移動しますã?
517                    if( useCheckControl < 0 ) {
518                            useCheckControl = intCase( sys( "VIEW_USE_CHECK_CONTROL" ) ) ;
519                    }
520                    setTableRowWritable( table );
521    
522                    setDefaultParameter();
523    
524            //      if( pagePlus != 0 ) {   ※ なã�?!= ã�?�£たã?か謎ã?pagePlusがã?イナス時ã???
525                    if( pagePlus > 0 ) {
526                            form.setPageSize( pageSize + pagePlus );
527                    }
528                    else {
529                            form.setPageSize( pageSize );                           // 3.6.0.0 (2004/09/22) 追åŠ?
530                    }
531    
532                    // 3.5.4.8 (2004/02/23)
533                    if( form.canUseFormat() || useParam ) { return EVAL_BODY_BUFFERED ; }   // JSP API 1.2
534    
535                    return SKIP_BODY ;
536            }
537    
538            /**
539             * Taglibのタグ本体を処ç�?�™ã‚?doAfterBody() ã‚?オーバã?ライドしますã?
540             *
541             * @og.rev 3.1.1.0 (2003/03/28) ボディのå†?®¹を取得するå?ç�?‚’、CommonTagSupport で行vうã€?
542             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?ボディが存在する場合ã?みボディが呼ばれる対応ã?
543             * @og.rev 3.5.4.0 (2003/11/25) 外部からフォーマットがæŒ?®šされなã�??合ã?、å?部のフォーマットを登録するã€?
544             * @og.rev 5.1.7.0 (2010/06/01) フォーマットã?{&#064;XXXX}の値に[が含まれる場合ã?、サイニタイズ("\\]\\"に変換)するã€?
545             *
546             * @return      後続å?ç�??æŒ?¤º(SKIP_BODY)
547             */
548            @Override
549            public int doAfterBody() {
550                    bodyString = getSanitizedBodyString();
551                    return SKIP_BODY ;
552            }
553    
554            /**
555             * Taglibの終äº?‚¿グが見つかったときに処ç�?�™ã‚?doEndTag() ã‚?オーバã?ライドしますã?
556             *
557             * @og.rev 3.0.1.3 (2003/03/11) startNo を隠しフィールドに持つ処ç�?‚’、追åŠ?
558             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()で呼ぶã€?
559             * @og.rev 3.5.0.0 (2003/03/28) noClass 属æ?の追åŠ??および、ロジãƒ?‚¯整ç�??
560             * @og.rev 3.5.1.0 (2003/10/03) numberType 属æ?の追åŠ?
561             * @og.rev 3.5.2.0 (2003/10/20) headerSkipCount属æ?を追åŠ?
562             * @og.rev 3.5.2.0 (2003/10/20) form ã�?null の場合ã?条件åˆ?²�を追åŠ?
563             * @og.rev 3.5.3.1 (2003/10/31) Table系のViewで、skip属æ?を使用するã€?
564             * @og.rev 3.5.4.0 (2003/11/25) command="RESET"時に、戻った画面のpageSize がクリアされてしまã�?¯¾応ã?
565             * @og.rev 3.5.4.0 (2003/11/25) フォーマット文字å?をã?TableFormatter オブジェクトを使用するように変更ã€?
566             * @og.rev 3.5.4.1 (2003/12/01) startNo を隠しフィールドに持つ処ç�?‚’å»?­¢ã€?キャãƒ?‚·ュを使用)
567             * @og.rev 3.5.4.3 (2004/01/05) useCheckControl属æ?を追åŠ?
568             * @og.rev 3.5.4.7 (2004/02/06) DBTableModelのソート機è? useTableSorter を追åŠ?
569             * @og.rev 3.5.4.7 (2004/02/06) makeStartNoKeyメソãƒ?ƒ‰のå»?­¢(setRequestCacheDataを利用)
570             * @og.rev 3.5.4.7 (2004/02/06) 実行時間測定用のDIV要ç´?‚’出力しておきますã?
571             * @og.rev 3.5.4.8 (2004/02/23) ViewParamTag のパラメータを追åŠ?�—ますã?
572             * @og.rev 3.5.5.5 (2004/04/23) DBTableModel の整合æ?パラメータã‚?hidden で出力しますã?
573             * @og.rev 3.5.5.8 (2004/05/20) makeConsistencyKey メソãƒ?ƒ‰に処ç�?ƒ­ジãƒ?‚¯を移しますã?
574             * @og.rev 3.5.6.2 (2004/07/05) bgColorCycle 変数の追åŠ??
575             * @og.rev 3.5.6.4 (2004/07/16) スクロールバã?用のDIV要ç´??出åŠ?開å§?
576             * @og.rev 3.6.0.0 (2004/09/17) カラãƒ?‚½ートリンクをå?すカラãƒ?��を指定ã?
577             * @og.rev 3.6.0.0 (2004/09/22) pageSize の hidden 出力ã?、å?期設定å?としますã?
578             * @og.rev 3.7.0.3 (2005/03/01) æŒ?®šã?行番号まで画面をスクロールさせる機è?を追åŠ??
579             * @og.rev 3.7.1.1 (2005/05/23) 処ç�?™‚間やペã?ジサイズなどのæƒ??出力ã?有効/無効を指定しますã?
580             * @og.rev 3.8.0.3 (2005/07/15) ヘッãƒ??固定ã?スクロールタイプをセãƒ?ƒˆしますã?
581             * @og.rev 3.8.0.9 (2005/10/17) writableControl 属æ?を追åŠ?�—ますã?
582             * @og.rev 3.8.6.0 (2006/09/29) useHilightRow 属æ?を追åŠ?�—ますã?
583             * @og.rev 3.8.6.1 (2006/10/20) ポップアãƒ??で値を返すカラãƒ?–‡字å?(CSV形å¼?
584             * @og.rev 4.0.0.0 (2007/11/27) ヘッãƒ??カラãƒ??エãƒ?‚£ター、レンãƒ?ƒ©ー適用対å¿?
585             * @og.rev 4.1.2.0 (2008/03/12) columnWritable,noWritable にã€?null" を指定可能とするã€?
586             * @og.rev 4.2.0.0 (2008/03/18) ビューの高さ、å¹??æŒ?®šを可能にしますã?
587             * @og.rev 4.2.1.0 (2008/04/11) null チェãƒ?‚¯方法変更
588             * @og.rev 4.3.0.0 (2008/07/04) ロールモードによる設å®?
589             * @og.rev 4.3.0.0 (2008/07/04) fileUD 対応ã?抜き出すカラãƒ?‚’æŒ?®šしますã?
590             * @og.rev 4.3.1.0 (2008/09/08) canUseFormatのエラーハンドリングはå�?‚µブクラスで行う。editOnly属æ?対応ã?
591             * @og.rev 4.3.3.0 (2008/10/01) noTransition 属æ?を追åŠ?�—ますã?
592             * @og.rev 4.3.6.0 (2009/04/01) eventColumn対å¿?
593             * @og.rev 4.3.7.0 (2009/06/01) 行ハイライト機è?でチェãƒ?‚¯ボックスでのみON/OFFができるオプションを追åŠ?
594             * @og.rev 4.3.8.0 (2009/08/01) noTransition値取得メソãƒ?ƒ‰名変更
595             * @og.rev 5.1.3.0 (2010/02/01) noTransitionのコントロールは、requestで行うã€?
596             * @og.rev 5.1.6.0 (2010/05/01) fileDwnClmsが指定されなã�??合ã?、Viewで表示されたカラãƒ?‚’セãƒ?ƒˆ
597             * @og.rev 5.1.7.0 (2010/06/01) 動的プルãƒ?‚¦ン実è£?¦‹直ã�?
598             * @og.rev 5.1.7.0 (2010/06/01) HilightRow用のDivはå¿?�š出ã�?画面遷移なし登録(JavaScript)の正規表現でマッチさせるため))
599             * @og.rev 5.1.8.0 (2010/07/01) form.setNoGroup( noGroup ) , form.setGroupClass( groupClass ) 追åŠ?
600             * @og.rev 5.1.8.0 (2010/07/01) form.setBgColorClsClm( bgColorClsClm ) 追åŠ?
601             * @og.rev 5.1.8.0 (2010/07/01) Divをå¿?�š出すã?は、画面遷移なし登録の場合ã?みとする(CustomData対å¿?
602             * @og.rev 5.2.1.0 (2010/10/01) ä¸?‹¬入力カラãƒ??アシスト機è?を利用するカラãƒ?‚’æŒ?®šしますã?(columnBulkSet)
603             * @og.rev 5.2.2.0 (2010/11/01) useHeaderColumn 属æ?をã?ViewCrossTableParam.USE_HEADER_COLUMN をキーに、取得すã‚?
604             * @og.rev 5.2.2.0 (2010/11/01) caseKey 、caseVal 属æ?対å¿?
605             * @og.rev 5.5.8.3 (2012/11/17) viewObject追åŠ?
606             * @og.rev 5.5.9.0 (2012/12/03) viewObjectをviewArrayListに変更
607             * @og.rev 5.7.6.1 (2014/05/09) mainView対å¿?
608             *
609             * @return      後続å?ç�??æŒ?¤º
610             */
611            @Override
612            public int doEndTag() {
613                    debugPrint();           // 4.0.0 (2005/02/28)
614                    // 5.2.2.0 (2010/11/01) caseKey 、caseVal 属æ?対å¿?
615                    if( !useTag() ) { return EVAL_PAGE ; }
616    
617                    // noTransition = isNoTransitionRequest() || noTransition; // 4.3.3.0 (2008/10/01) 追åŠ?
618                    noTransition = isNoTransitionRequest(); // 5.1.3.0 (2010/02/01)
619                    if( form == null ) { return EVAL_PAGE ; }       // 3.5.2.0 (2003/10/20)
620                    if( form.canUseFormat() ) {
621                            if( values == null && bodyString != null && !useParam ) {
622                                    TableFormatter format = new TableFormatter();
623                                    format.setFormatType( FormatterType.TYPE_HEAD );
624                                    format.setFormat( bodyString );
625                                    format.setRowspan( rowspan );
626                                    values = new ArrayList<TableFormatter>();
627                                    values.add( format );
628                                    form.setFormatterList( values );
629                            }
630                            else if( values != null ) {
631                                    form.setFormatterList( values );
632                            }
633                    }
634    
635                    if( table != null ) {
636                            // 4.2.0.0 (2008/03/18) ビューの高さ、å¹?‚’æŒ?®šするã?null回避はAbstractViewFormで行う
637                            form.setHeight( height );
638                            form.setWidth( width );
639    
640                            form.setColumnWritable( columnWritable );
641                            form.setNoWritable( noWritable );
642                            form.setColumnDisplay( columnDisplay );
643                            form.setNoDisplay( noDisplay );
644                            form.setColumnGroup( columnGroup );                             // 3.8.5.0 (2006/03/20)
645                            form.setNoGroup( noGroup );                                             // 5.1.8.0 (2010/07/01) 追åŠ?
646                            form.setGroupClass( groupClass );                               // 5.1.8.0 (2010/07/01) 追åŠ?
647                            form.setTableSorterKeys( sortKeys );                    // 3.6.0.0 (2004/09/17) 追åŠ?
648                            form.setNoMessage( noMessage );
649                            form.setSelectedType( selectedType );
650                            form.setUseCheckControl( useCheckControl );             // 3.5.4.3 (2004/01/05) 追åŠ?
651                            form.setNumberType( numberType );                               // 3.5.1.0 (2003/10/03) 追åŠ?
652                            form.setOptionTypeAttributes( optTypeAttri );
653                            form.setBackLinkCount( backLinkCount );
654                            form.setHeaderSkipCount( headerSkipCount );             // 3.5.2.0 (2003/10/20) 追åŠ?
655                            if( useParam ) { 
656                                    form.setParam( viewParam );     // 3.5.4.8 (2004/02/23)
657                                    form.setViewArrayList( viewArrayList ); // 5.5.9.0 (2012/12/03)
658                            }
659                            form.setBgColorCycle( bgColorCycle );                   // 3.5.6.2 (2004/07/05) 追åŠ?
660                            form.setBgColorClsClm( bgColorClsClm );                 // 5.1.8.0 (2010/07/01) 追åŠ?
661                            form.setWritableControl( writableControl );             // 3.8.0.9 (2005/10/17) 追åŠ?
662    
663                            // 5.2.1.0 (2010/10/01) 初期バルクセãƒ?ƒˆã�?true で、かつ、変数が未設定ã?場合ã?、å?カラãƒ?*)選択とするã€?
664                            if( useDefBulkset && columnBulkSet == null ) { columnBulkSet = "*"; }
665                            // selectedType ã�?radio の場合ã?、カラãƒ??設定を行わなã�??
666                            if( "radio".equalsIgnoreCase( selectedType ) ) { columnBulkSet = null; }
667                            form.setColumnBulkSet( columnBulkSet );                 // 5.2.1.0 (2010/10/01) 追åŠ?
668    
669                            // 3.6.0.0 (2004/09/22) pageSize の hidden 出力ã?、å?期設定å?としますã?
670                            int oldPageSize = pageSize;
671                            pageSize = form.getPageSize();
672                            commandExec( command );
673    
674                            form.setStartNo( startNo );
675                            form.setSkip( skip );                                                   // 3.5.3.1 (2003/10/31)
676                            form.setSkipNoEdit( skipNoEdit );                               // 4.3.1.0 (2008/09/08)
677                            boolean useTblSorter = "session".equals( getScope() ) &&
678                                                    nval( useTableSorter,sysBool( "VIEW_USE_TABLE_SORTER" ) );
679                            form.setUseTableSorter( useTblSorter );         // 3.5.4.7 (2004/02/06)
680    
681                            // 3.6.0.0 (2004/09/17)
682                            // tableSorter 時ã?リンクに追åŠ?�™るリクエスト変数のキャãƒ?‚·ュMapを追åŠ?�™るã?
683                            if( useTblSorter || sortKeys != null ) {
684                                    // 4.0.0 (2005/01/31)
685                                    String memKey = HybsSystem.REQ_CACHE_KEY + getGUIInfoAttri( "KEY" );
686                                    Map<?,?> mem = (Map<?,?>)getSessionAttribute( memKey );             // 4.3.3.6 (2008/11/15) Generics警告対å¿?
687                                    form.makeTableSorterQuery( mem );
688                            }
689    
690                            // 3.5.6.4 (2004/07/16) スクロールバã?用のDIV要ç´??出åŠ?開å§?
691                            // 3.8.0.3 (2005/07/15) ヘッãƒ??固定ã?スクロールタイプをセãƒ?ƒˆしますã?
692                            // 4.0.0 (2007/04/10) ヘッãƒ??固定ã?スクロールタイプã?、ä¸?�¤にするã€?
693            //              String hctype = (String)getRequest().getAttribute( HybsSystem.HEADER_FIX_TYPE );
694                            boolean useScBar = nval( useScrollBar,sysBool( "VIEW_USE_SCROLLBAR" ) );
695            //              form.setUseScrollBar( useScBar,hctype );
696                            form.setUseScrollBar( useScBar );
697    
698                            // 3.8.6.1 (2006/10/20) ポップアãƒ??で値を返すカラãƒ?–‡字å?(CSV形å¼?
699                            form.setPopupReturnKeys( popupReturnKeys );
700                            form.setTableClass( clazz );            // 4.0.0 (2007/04/16)
701    
702                            // 3.7.0.3 (2005/03/01) æŒ?®šã?行番号まで画面をスクロールさせる機è?を追åŠ??{I} は無視するã?
703                            String rowval = nval( getRequestValue( "SEL_ROW" ),null ) ;
704    
705                            boolean useSelRow = nval( useSelectedRow,sysBool( "VIEW_USE_SELECTED_ROW" ) );
706                            if( useSelRow && rowval != null && !rowval.equalsIgnoreCase( "{I}" ) ) {
707                                    boolean useSelRowClr = nval( useSelRowColor,sysBool( "VIEW_USE_SELROW_COLOR" ) ) ;
708                                    form.setScrollRowNo( Integer.parseInt( rowval ),useSelRowClr );
709                            }
710    
711                            // 4.0.0 (2005/11/30) カラãƒ?ƒ­ールを判定して、アクセス不可の場合ã?表示させなã�?‚ˆã�?�«するã€?
712                            int clmSize = table.getColumnCount();
713                            UserInfo userInfo = getUser();
714                            for( int clmNo=0; clmNo<clmSize; clmNo++ ) {
715                                    DBColumn dbColumn = table.getDBColumn( clmNo );
716    
717                                    // 4.3.6.0 (2009/04/01) セãƒ?‚·ョンに生SQLを登録
718                                    // 5.1.7.0 (2010/06/01) 動的プルãƒ?‚¦ン実è£?¦‹直ã�?
719                                    String evCol = dbColumn.getEventColumn();
720                                    if( evCol != null && evCol.length() > 0 ){
721                                            addEventColumn( dbColumn );
722                                    }
723    
724                                    // 4.3.0.0 (2008/07/04) ロールモードによる設å®?
725                                    byte bitMode = userInfo.getAccessBitMode( dbColumn.getRoleMode() );
726                                    // アクセス不許可の場合ã?み、セãƒ?ƒˆするã€?
727                                    // それ以外ã?、columnDisplay ,noDisplay 属æ?が適用されてã�?‚‹ã€?
728                                    if( !RoleMode.isRead( bitMode ) ) {
729                                            form.setColumnDisplay( clmNo,false );
730                                    }
731                                    // 書込み不許可の場合ã?み、セãƒ?ƒˆするã€?
732                                    // それ以外ã?、columnWritable ,noWritable 属æ?が適用されてã�?‚‹ã€?
733                                    if( !RoleMode.isWrite( bitMode ) ) {
734                                            form.setColumnWritable( clmNo,false );
735                                    }
736                            }
737    
738                            // 3.8.6.0 (2006/09/29) useHilightRow 属æ?追åŠ?
739                            boolean useHiRow = nval( useHilightRow,sysBool( "VIEW_USE_HILIGHT_ROW" ) );
740                            // 5.1.7.0 (2010/06/01) HilightRow用のDivはå¿?�š出ã�?画面遷移なし登録(JavaScript)の正規表現でマッチさせるため))
741                            // 5.1.8.0 (2010/07/01) Divをå¿?�š出すã?は、画面遷移なし登録の場合ã?みとする(CustomData対å¿?
742                            if( useHiRow || noTransition ) {
743                                    jspPrint( "<div id=\"divHlr\"" );
744                                    if( useHiRow ) {
745                                            // 4.3.7.0 (2009/06/01)
746                                            boolean useHiCkOnly = nval( useHilightCheckOnly,sysBool( "VIEW_USE_HILIGHT_CHECK_ONLY" ) );
747                                            jspPrint( " onclick=\"hilightRow( event, " + useHiCkOnly + ");\"" );
748                                    }
749                                    jspPrint( ">" );
750                            }
751    
752                            // 5.2.2.0 (2010/11/01) useHeaderColumn 属æ?をã?ViewCrossTableParam.USE_HEADER_COLUMN をキーに、取得すã‚?
753                            if( viewParam != null &&
754                                            "true".equalsIgnoreCase( viewParam.get( ViewCrossTableParam.USE_HEADER_COLUMN ) ) ) {
755                                    form.setResourceManager( getResource() );
756                            }
757    
758                            form.setNoTransition( noTransition ); // 4.3.3.0 (2008/10/01) 追åŠ?
759    
760                            jspPrint( form.create( startNo,pageSize ) );
761    
762                            // 5.1.8.0 (2010/07/01) Divをå¿?�š出すã?は、画面遷移なし登録の場合ã?みとする(CustomData対å¿?
763                            if( useHiRow || noTransition ) {
764                                    jspPrint( "</div>" );
765                            }
766    
767                            // 5.7.6.1 (2014/05/09) mainView時ã?みstartNoを登録する
768                            if( isMainView ){
769                                    setRequestCacheData( START_NO_KEY,String.valueOf( tempStartNo ) );      // 3.5.4.7 (2004/02/06)
770                            }
771    
772                            // 3.6.0.0 (2004/09/22) pageSize の hidden 出力ã?、å?期設定å?としますã?
773                            if( useAfterHtmlTag ) { // 3.7.1.1 (2005/05/23)
774                                    jspPrint( makePageSize( oldPageSize ) );                // 3.6.0.0 (2004/09/22)
775                            }
776    
777                            makeConsistencyKey();           // 3.5.5.8 (2004/05/20)
778    
779                            setObject( viewFormId, form );
780    
781                            // 3.5.4.8 (2004/02/23) è¶?‰¹殊å?ç�?DBTableModel ã‚?View で置き換えますã?
782                            // 5.2.2.0 (2010/11/01) saveTableId 属æ?をã?ViewCrossTableParam.SAVE_SCOPE_KEY をキーに、取得すã‚?
783                            if( viewParam != null ) {
784                                    String saveTableId = viewParam.get( ViewCrossTableParam.SAVE_TABLEID_KEY );     // 5.2.2.0 (2010/11/01)
785                                    if( saveTableId != null ) {
786                                            String saveScope = viewParam.get( ViewCrossTableParam.SAVE_SCOPE_KEY );
787                                            setObject( saveTableId, form.getDBTableModel() , saveScope );
788                                    }
789                            }
790    
791                            // 5.1.6.0 (2010/05/01) Viewで表示したé ?›®をDBLastSqlにセãƒ?ƒˆしますã?
792                            if( table.getRowCount() > 0 ) {
793                                    setViewClms();
794                            }
795                    }
796    
797                    if( useAfterHtmlTag ) { // 3.7.1.1 (2005/05/23)
798                            // 3.5.4.7 (2004/02/06)
799                            long dyTime = System.currentTimeMillis()-dyStart;
800                            jspPrint( "<div id=\"viewTime\" value=\"" + (dyTime) + "\"></div>" );       // 3.5.6.3 (2004/07/12)
801                    }
802    
803                    return EVAL_PAGE ;
804            }
805    
806            /**
807             * タグリブオブジェクトをリリースしますã?
808             * キャãƒ?‚·ュされて再利用されるã?で、フィールドã?初期設定を行いますã?
809             *
810             * @og.rev 2.0.0.4 (2002/09/27) カスタãƒ?‚¿グの release() メソãƒ?ƒ‰をã?追åŠ?
811             * @og.rev 2.0.0.4 (2002/09/27) カスタãƒ?‚¿グの release() メソãƒ?ƒ‰をã?追åŠ?
812             * @og.rev 3.0.1.3 (2003/03/11) startNo を隠しフィールドに持つ処ç�?‚’、追åŠ?
813             * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()で呼ぶã€?
814             * @og.rev 3.5.2.0 (2003/10/20) headerSkipCount属æ?を追åŠ?
815             * @og.rev 3.5.3.0 (2003/10/27) backLinkCount,headerSkipCount属æ?の初期値をPropertyファイルから設å®?
816             * @og.rev 3.5.4.0 (2003/11/25) format 関係ã?æ–?­—å?をå»?­¢。TableFormatter クラスを使用するã€?
817             * @og.rev 3.5.4.3 (2004/01/05) useCheckControl属æ?を追åŠ?
818             * @og.rev 3.5.4.7 (2004/02/06) DBTableModelのソート機è? useTableSorter を追åŠ?
819             * @og.rev 3.5.4.7 (2004/02/06) 実行時間測定用に、dyStart を追åŠ?�—ますã?
820             * @og.rev 3.5.4.8 (2004/02/23) ViewParamTag のパラメータを追åŠ?�—ますã?
821             * @og.rev 3.5.5.8 (2004/05/20) useConsistency 属æ?を追åŠ?�—ますã?
822             * @og.rev 3.5.6.2 (2004/07/05) bgColorCycle 変数の追åŠ??
823             * @og.rev 3.5.6.3 (2004/07/12) useScrollBar 変数の追åŠ??
824             * @og.rev 3.6.0.0 (2004/09/17) sortKeys 変数の追åŠ??カラãƒ?‚½ートリンクをå?すカラãƒ?��を指定ã?
825             * @og.rev 3.6.0.4 (2004/10/14) loadMarker 変数の追åŠ??
826             * @og.rev 3.7.0.1 (2005/01/31) 全件チェãƒ?‚¯コントロール変更(useCheckControl)
827             * @og.rev 3.7.1.1 (2005/05/23) SEL_ROW機è?の有効/無効を指定しますã?
828             * @og.rev 3.7.1.1 (2005/05/23) 処ç�?™‚間やペã?ジサイズなどのæƒ??出力ã?有効/無効を指定しますã?
829             * @og.rev 3.8.0.9 (2005/10/17) writableControl 属æ?を追åŠ?�—ますã?
830             * @og.rev 3.8.6.0 (2006/09/29) useHilightRow 属æ?を追åŠ?�—ますã?
831             * @og.rev 3.8.6.1 (2006/10/20) editMarkerId , popupReturnKeys属æ?を追åŠ?�—ますã?
832             * @og.rev 4.3.0.0 (2008/07/04) fileUD ファイルãƒ?‚¦ンロード時の抜å?カラãƒ?��(CSV形å¼?
833             * @og.rev 4.3.1.0 (2008/09/08) isSkipNoEdit属æ?対å¿?
834             * @og.rev 4.3.3.0 (2008/10/01) noTransition 属æ?を追åŠ?�—ますã?
835             * @og.rev 4.3.7.0 (2009/06/01) useHilightCheckOnly 属æ?を追åŠ?�—ますã?
836             * @og.rev 5.1.6.0 (2010/05/01) clmSeqDisplay 属æ?を追åŠ?�—ますã?
837             * @og.rev 5.1.8.0 (2010/07/01) noGroup , noGroup 属æ?を追åŠ?�—ますã?
838             * @og.rev 5.1.8.0 (2010/07/01) bgColorClsClm 属æ?を追åŠ?�—ますã?
839             * @og.rev 5.2.1.0 (2010/10/01) ä¸?‹¬入力カラãƒ??アシスト機è?を利用する、columnBulkSet 属æ?を追åŠ?�—ますã?
840             * @og.rev 5.5.9.0 (2012/12/03) viewArrayList追åŠ?
841             * @og.rev 5.7.6.1 (2014/05/09) mainView追åŠ?
842             */
843            @Override
844            protected void release2() {
845                    super.release2();
846                    tableId                         = HybsSystem.TBL_MDL_KEY;
847                    viewFormId                      = HybsSystem.VIEWFORM_KEY;
848                    viewFormType            = null;
849                    viewLinkId                      = HybsSystem.VIEWLINK_KEY;
850                    viewMarkerId            = HybsSystem.VIEW_MARK_KEY;
851                    editMarkerId            = HybsSystem.EDIT_MARK_KEY;             // 3.8.6.1 (2006/10/20)
852                    command                         = null;
853                    startNo                         = -1;           // HTML画面上ã?表示開始位置(初期値)
854                    tempStartNo                     = -1;           // 再検索時ã?表示開始位置
855                    pageSize                        = -1;           // HTML画面上に表示する件数
856                    pagePlus                        = -1;           // 3.5.6.4 (2004/07/16)
857                    table                           = null;
858                    form                            = null;
859                    columnWritable          = null;
860                    noWritable                      = null;
861                    columnDisplay           = null;
862                    noDisplay                       = null;
863                    clmSeqDisplay           = null;         // 5.1.6.0 (2010/05/01) ViewForm_HTMLSeqClmTable 対å¿?
864                    columnGroup                     = null;         // 3.8.5.0 (2006/03/20)
865                    noGroup                         = null;         // 5.1.8.0 (2010/07/01)
866                    groupClass                      = null;         // 5.1.8.0 (2010/07/01)
867                    noMessage                       = false;
868                    writable                        = null;
869                    checked                         = null;
870                    skip                            = ViewForm.DEFAULT_SKIP;
871                    rowspan                         = "2";
872                    selectedType            = "checkbox";
873                    numberType                      = "sequence";
874                    optTypeAttri            = null;
875                    values                          = null;
876                    backLinkCount           = HybsSystem.sysInt( "VIEW_BACK_LINK_COUNT" );
877                    headerSkipCount         = HybsSystem.sysInt( "VIEW_HEADER_SKIP_COUNT" );        // 0:通常ヘッãƒ??n:n回ごとに現れる
878                    bodyString                      = null;
879                    useCheckControl         = -1 ;
880                    useTableSorter          = null ;        // 3.5.4.7 (2004/02/06)
881                    dyStart                         = 0;            // 3.5.4.7 (2004/02/06)
882                    viewParam                       = null;         // 3.5.4.8 (2004/02/23)
883                    useParam                        = false;        // 3.5.4.8 (2004/02/23)
884                    useConsistency          = HybsSystem.sysBool( "USE_CONSISTENCY" );              // 3.5.5.8 (2004/05/20)
885                    bgColorCycle            = 1 ;           // 3.5.6.2 (2004/07/05)
886                    bgColorClsClm           = null;         // 5.1.8.0 (2010/07/01)
887                    useScrollBar            = null;
888                    sortKeys                        = null;         // 3.6.0.0 (2004/09/17)
889                    loadMarker                      = ",NEW,RENEW,REVIEW,RESET,";                                   // 4.0.0.0 (2007/11/26)
890                    useSelectedRow          = null;
891                    useSelRowColor          = null;
892                    useAfterHtmlTag         = true;         // 3.7.1.1 (2005/05/23)
893                    writableControl         = null;         // 3.8.0.9 (2005/10/17)
894                    useHilightRow           = null;         // 3.8.6.0 (2006/09/29)
895                    popupReturnKeys         = null ;        // 3.8.6.1 (2006/10/20)
896                    clazz                           = "viewTable";  // 4.0.0 (2007/04/16)
897                    height                          = null;         // 4.2.0.0 (2008/03/18)
898                    width                           = null;         // 4.2.0.0 (2008/03/18)
899                    fileDwnClms                     = null ;        // 4.3.0.0 (2008/07/04)
900                    skipNoEdit                      = false;        // 4.3.1.0 (2008/09/08)
901                    noTransition            = false;        // 4.3.3.0 (2008/10/01)
902                    useHilightCheckOnly     = null;         // 4.3.7.0 (2009/06/01)
903                    columnBulkSet           = null;         // 5.2.1.0 (2010/10/01)
904                    useDefBulkset           = HybsSystem.sysBool( "VIEW_USE_DEFAULT_BULKSET" ) ;            // 5.2.1.0 (2010/10/01)
905                    viewArrayList           = null;         // 5.5.9.0 (2012/12/03)
906                    isMainView                      = true;         // 5.7.6.1 (2014/05/09)
907            }
908    
909            /**
910             * 左右åˆ?‰²スクロール(SplitViewTag)が存在すれば、パラメータの初期値設定などを行いますã?
911             *
912             * @og.rev 5.3.0.0 (2010/12/01) 左右åˆ?‰²スクロール(SplitViewTag)対å¿?
913             * @og.rev 5.5.4.0 (2012/07/02) 2回目のnoDisplayを追記型に変更
914             */
915            private void splitViewParamSet() {
916                    SplitViewTag splitView = (SplitViewTag)findAncestorWithClass( this,SplitViewTag.class );
917                    if( splitView != null ) {
918                            String  fixDisplay  = splitView.getFixDisplay();
919                            boolean isFirstStep = splitView.isFirstStep();
920    
921                            if( isFirstStep ) {     // ?‘回目(左側:固定部)
922                                    // Viewタグの左側には、fixDisplay のカラãƒ?‚’ columnDisplay に設定するã?
923                                    columnDisplay = fixDisplay;
924                                    noDisplay     = null;
925                            }
926                            else {                          // ?’回目(右側:可変部)
927                                    // Viewタグの右側には、command="VIEW" , noMessage="true" , useSelectedRow="false"
928                                    // numberType="delete" をセãƒ?ƒˆするとともに、fixDisplay のカラãƒ?‚’ noDisplay の
929                                    columnDisplay = null;
930                                    if( noDisplay != null && noDisplay.length() > 0 ){
931                                            noDisplay     += ","+fixDisplay; // 5.5.4.0 (2012/07/02) カンマ区åˆ?‚Šで追記すã‚?
932                                    }
933                                    else{
934                                            noDisplay     = fixDisplay;
935                                    }
936    
937                                    command                 = "VIEW";
938                                    numberType              = "delete" ;
939                                    noMessage               = true;
940                                    useSelectedRow  = "false";
941                            }
942                    }
943            }
944    
945            /**
946             * 【TAGã€?通常は使ã�?�¾せん)結果のDBTableModelをã?sessionに登録するときã?キーを指定しまã�?
947             *              (初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])ã€?
948             *
949             * @og.tag
950             * 検索結果より、DBTableModelオブジェクトを作æ?しますã?これをã?下流ã?viewタグ等に
951             * 渡すå?合にã€??常は、session を利用しますã?そã?場合ã?登録キーですã?
952             * query タグを同時に実行して、結果を求めるå?合ã?同ä¸?ƒ¡モリに配置される為ã€?
953             * こã? tableId 属æ?を利用して、メモリ空間をåˆ?�‘ますã?
954             *              (初期値:HybsSystem#TBL_MDL_KEY[={@og.value org.opengion.hayabusa.common.HybsSystem#TBL_MDL_KEY}])ã€?
955             *
956             * @param       id sessionに登録する時ã? ID
957             */
958            public void setTableId( final String id ) {
959                    tableId   = nval( getRequestParameter( id ),tableId );  // 3.8.0.9 (2005/10/17)
960            }
961    
962            /**
963             * 【TAGã€?通常使ã�?�¾せん)sessionから取得すã‚?ViewForm オブジェクトã? IDã€?
964             *
965             * @og.tag
966             * 表示処ç�?¾Œに??å†?ƒ¨ポインタを書き換えた)ViewForm オブジェクトを
967             * 同じキーで、sessionに登録しますã?
968             * 初期値は、HybsSystem.VIEWFORM_KEY ですã?
969             *
970             * @og.rev 3.3.1.1 (2003/07/03) {&#064;XXXX} 変数が使用できるように修正ã€?
971             * @og.rev 3.5.6.4 (2004/07/16) VIEW_ID を付加して、他ã?id と混同しなã�?‚ˆã�?�«しますã?
972             *
973             * @param       id ViewForm オブジェクãƒ?D
974             */
975            public void setViewFormId( final String id ) {
976                    String temp = getRequestParameter( id ) ;
977                    if( temp != null && temp.length() > 0 ) {
978                            viewFormId = temp + TaglibUtil.VIEW_ID;
979                    }
980            }
981    
982            /**
983             * 【TAGã€?通常つかいません)requestから取得すã‚?ViewLink に対応すã‚?Attributes オブジェクトã? IDã€?
984             *
985             * @og.tag
986             * ViewForm オブジェクトに、ViewLink オブジェクトをこã?キーより取得することによりã€?
987             * カラãƒ?�«対して、リンクæƒ??を付加して表示させるã?
988             * 初期値は、HybsSystem.VIEWLINK_KEY ですã?
989             *
990             * @og.rev 3.1.4.0 (2003/04/18) 初期値をè?慮して、属æ?登録を行うように変更ã€?
991             * @og.rev 3.3.1.1 (2003/07/03) {&#064;XXXX} 変数が使用できるように修正ã€?
992             * @og.rev 3.5.6.4 (2004/07/16) LINK_ID を付加して、他ã?id と混同しなã�?‚ˆã�?�«しますã?
993             *
994             * @param       id ViewLink オブジェクãƒ?D
995             */
996            public void setViewLinkId( final String id ) {
997                    String temp = getRequestParameter( id ) ;
998                    if( temp != null && temp.length() > 0 ) {
999                            viewLinkId = temp + TaglibUtil.LINK_ID;
1000                    }
1001            }
1002    
1003            /**
1004             * 【TAGã€?通常使ã�?�¾せん)requestから取得すã‚?ViewMarker に対応すã‚?Attributes オブジェクトã? IDã€?
1005             *
1006             * @og.tag
1007             * ViewForm オブジェクトに、ViewMarker オブジェクトをこã?キーより取得することによりã€?
1008             * カラãƒ?�«対して、ã?ーカーæƒ??を付加して表示させるã?
1009             * 初期値は、HybsSystem.VIEW_MARK_KEY ですã?
1010             *
1011             * @og.rev 3.1.4.0 (2003/04/18) 新規追åŠ?
1012             * @og.rev 3.3.1.1 (2003/07/03) {&#064;XXXX} 変数が使用できるように修正ã€?
1013             * @og.rev 3.5.6.4 (2004/07/16) MARK_ID を付加して、他ã?id と混同しなã�?‚ˆã�?�«しますã?
1014             *
1015             * @param       id ViewMarker オブジェクãƒ?D
1016             */
1017            public void setViewMarkerId( final String id ) {
1018                    String temp = getRequestParameter( id ) ;
1019                    if( temp != null && temp.length() > 0 ) {
1020                            viewMarkerId = temp + TaglibUtil.MARK_ID;
1021                    }
1022            }
1023    
1024            /**
1025             * 【TAGã€?通常使ã�?�¾せん)requestから取得すã‚?EditMarker に対応すã‚?Attributes オブジェクトã? IDã€?
1026             *
1027             * @og.tag
1028             * ViewForm オブジェクトに、EditMarker オブジェクãƒ?実際は、ViewMarker オブジェクãƒ?ã‚?
1029             * こã?キーより取得することにより、カラãƒ?�«対して、ã?ーカーæƒ??を付加して表示させるã?
1030             * 初期値は、HybsSystem.EDIT_MARK_KEY ですã?
1031             *
1032             * @og.rev 3.8.6.1 (2006/10/20) 新規追åŠ?
1033             *
1034             * @param       id EditMarker オブジェクãƒ?D(実際は、ViewMarker オブジェクãƒ?
1035             */
1036            public void setEditMarkerId( final String id ) {
1037                    String temp = getRequestParameter( id ) ;
1038                    if( temp != null && temp.length() > 0 ) {
1039                            editMarkerId = temp + TaglibUtil.MARK_ID;
1040                    }
1041            }
1042    
1043            /**
1044             * 【TAG】ViewForm オブジェクトを作æ?するクラス({@og.doc03Link viewFormType ViewForm_**** クラスの ****})を指定しますã?
1045             *
1046             * @og.tag
1047             * これは、org.opengion.hayabusa.html 以下ã? ViewForm_**** クラスの **** ã‚?
1048             * 与えますã?これらã?、ViewForm インターフェースを継承したサブクラスですã?
1049             * 属æ?クラス定義の {@link org.opengion.hayabusa.html.ViewForm  ViewForm} を参照願いますã?
1050             * {@og.doc03Link viewFormType ViewForm_**** クラス}
1051             *
1052             * @param       id ViewForm タイãƒ?
1053             * @see         org.opengion.hayabusa.html.ViewForm  ViewFormのサブクラス
1054             */
1055            public void setViewFormType( final String id ) {
1056                    viewFormType = getRequestParameter( id );
1057    
1058                    if( viewFormType == null || viewFormType.length() == 0 ) {
1059                            String errMsg = "viewForm の id が設定されてã�?�¾せんã€?;
1060                            throw new HybsSystemException( errMsg );
1061                    }
1062            }
1063    
1064            /**
1065             * 【TAG】コマンãƒ?PREV,NEXT,FIRST,LAST,NEW,RENEW,VIEW,REVIEW,RESET)をセãƒ?ƒˆしますã?
1066             *
1067             * @og.tag
1068             * コマンドã?,HTMLから(get/post)æŒ?®šされますã?で,CMD_xxx で設定される
1069             * フィールド定数値のã�?�¥れかをã?æŒ?®šできますã?
1070             *
1071             * @og.rev 3.8.0.8 (2005/10/03) そã?他ã?コマンドを CMD_XXX にしますã?
1072             *
1073             * @param       cmd コマンãƒ?public static final 宣è¨?�•れてã�?‚‹æ–?­—å?)
1074             * @see         <a href="../../../../constant-values.html#org.opengion.hayabusa.taglib.ViewFormTag.CMD_PREV">コマンド定数</a>
1075             */
1076            public void setCommand( final String cmd ) {
1077                    String cmd2 = getRequestParameter( cmd );
1078                    if( cmd2 != null && cmd2.length() > 0 ) { command = cmd2.toUpperCase(Locale.JAPAN); }
1079    
1080                    if( command == null ||
1081                             (command.trim()).length() == 0 ||
1082                            ! check( command, COMMAND_LIST ) ) {
1083                                    // 3.8.0.8 (2005/10/03) そã?他ã?コマンドを CMD_XXX にしますã?
1084                                    command = CMD_XXX ;
1085                    }
1086            }
1087    
1088            /**
1089             * 【TAG】表示ãƒ??タを作æ?する場合ã?表示の開始行番号をセãƒ?ƒˆしますã?
1090             *
1091             * @og.tag
1092             * セãƒ?ƒˆされてã�?�ªã�??合ã??Œ変更しませんã€?
1093             *
1094             * @og.rev 3.0.1.3 (2003/03/11) startNo を隠しフィールドに持つ処ç�?‚’、追åŠ?
1095             *
1096             * @param       no 表示開始行番号(先é?は ??
1097             */
1098            public void setStartNo( final String no ) {
1099                    startNo = nval( getRequestParameter( no ),startNo );
1100                    tempStartNo = startNo;
1101            }
1102    
1103            /**
1104             * 【TAG】表示ãƒ??タを作æ?する場合ã??‘ã?ージの行数をセãƒ?ƒˆしますã?
1105             *
1106             * @og.tag
1107             * セãƒ?ƒˆされてã�?�ªã�??合ã??Œ変更しませんã€?
1108             *
1109             * @param       sz ?‘ã?ージの行数
1110             */
1111            public void   setPageSize( final String sz ) {
1112                    pageSize = nval( getRequestParameter( sz ),pageSize );
1113            }
1114    
1115            /**
1116             * 【TAG】1ã?ージの行数の増加åˆ?‚’セãƒ?ƒˆしまã�?初期値:0)ã€?
1117             *
1118             * @og.tag
1119             * セãƒ?ƒˆされてã�?�ªã�??合ã??Œï¼?増加なã�?ですã?
1120             *
1121             * @param       pp ?‘ã?ージの行数
1122             */
1123            public void   setPagePlus( final String pp ) {
1124                    pagePlus = nval( getRequestParameter( pp ),pagePlus );
1125            }
1126    
1127            /**
1128             * 【TAG】ã?ージの先é?へのリンクの間隔をセãƒ?ƒˆしまã�?
1129             *              (初期値:VIEW_BACK_LINK_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_BACK_LINK_COUNT}])ã€?
1130             *
1131             * @og.tag
1132             * 0 にセãƒ?ƒˆすると、リンクは作æ?されませんã€?
1133             * ãƒ??ブルのヘッãƒ??固定ができなã�?‚±ースでは、データ件数が多いと、登録ボタンが見えなくなりますã?
1134             * そã?場合ã?スクロールして上に上がるよりã?行番号に作æ?されリンクで、ä¸?°—に上に戻るほã�?�Œ早くå?ç�?�§きますã?
1135             * そã?場合ã?段çµ?�¿等してã�?‚‹とã€?–“隔を少なくしておくå¿?¦�が出てきますã?
1136             * ヘッãƒ??固定を利用する場合ã?、不要ですã?
1137             * (初期値:シスãƒ?ƒ 定数のVIEW_BACK_LINK_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_BACK_LINK_COUNT}])ã€?
1138             *
1139             * @param       blc リンクの間隔
1140             * @see         org.opengion.hayabusa.common.SystemData#VIEW_BACK_LINK_COUNT
1141             */
1142            public void   setBackLinkCount( final String blc ) {
1143                    backLinkCount = nval( getRequestParameter( blc ),backLinkCount );
1144            }
1145    
1146            /**
1147             * 【TAG】ã?ãƒ?ƒ€ーをå?力する間隔をセãƒ?ƒˆしまã�?
1148             *              (初期値:VIEW_HEADER_SKIP_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_HEADER_SKIP_COUNT}])ã€?
1149             *
1150             * @og.tag
1151             * 0を指定すると、繰り返しません(つまりã?ヘッãƒ??を最初に表示するã�?�‘ですã?)
1152             * 数字をæŒ?®šすると、その回数毎に、ã?ãƒ?ƒ€ーをデータの行に挿入しますã?
1153             * (初期値:シスãƒ?ƒ 定数のVIEW_HEADER_SKIP_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_HEADER_SKIP_COUNT}])ã€?
1154             *
1155             * @og.rev 3.5.2.0 (2003/10/20) 新規作æ?
1156             *
1157             * @param       hsc ヘッãƒ??の表示間隔 ( 0:通常ヘッãƒ??n:n回ごとに現れる )
1158             * @see         org.opengion.hayabusa.common.SystemData#VIEW_HEADER_SKIP_COUNT
1159             */
1160            public void   setHeaderSkipCount( final String hsc ) {
1161                    headerSkipCount = nval( getRequestParameter( hsc ),headerSkipCount );
1162            }
1163    
1164            /**
1165             * 【TAG】書き込み可能カラãƒ?��をã?カンマ区åˆ?‚Šで与えますã?
1166             *
1167             * @og.tag
1168             * これは、書き込み不可カラãƒ?��のæŒ?®?noWritable)と同時にセãƒ?ƒˆする
1169             * ことは出来ませんã€?
1170             * "*" を指定すると、すべてのカラãƒ?‚’(columnWritable)æŒ?®šしたことになりますã?
1171             *
1172             * @og.rev 3.3.1.1 (2003/07/03) {&#064;XXXX} 変数が使用できるように修正ã€?
1173             * @og.rev 4.1.2.0 (2008/03/12) 引数にã€?null" を指定可能とするã€?
1174             * @og.rev 4.2.1.0 (2008/04/11) null チェãƒ?‚¯方法変更
1175             * @og.rev 4.2.1.1 (2008/04/30) 引数にA,B,{&#064;XXXX}等がæŒ?®šされた場合に{&#064;XXXX}の変換が行われなã�?ƒ�グを修正
1176             * @og.rev 5.1.8.0 (2010/07/01) noWritable 同時セãƒ?ƒˆチェãƒ?‚¯をã?メソãƒ?ƒ‰ではなくã?本体で行うã€?
1177             *
1178             * @param       columnName      例ï¼?OYA,KO,HJO,SU,DYSET,DYUPD"
1179             * @see         #setNoWritable( String )
1180             */
1181            public void setColumnWritable( final String columnName ) {
1182                    columnWritable = nval( getRequestParameter(columnName),null );
1183                    if( "null".equalsIgnoreCase( columnWritable ) ) { columnWritable = ""; }
1184            }
1185    
1186            /**
1187             * 【TAG】書き込み不可カラãƒ?��をã?カンマ区åˆ?‚Šで与えますã?
1188             *
1189             * @og.tag
1190             * これは、書き込み可能カラãƒ?��のæŒ?®?columnWritable)と同時にセãƒ?ƒˆする
1191             * ことは出来ませんã€?
1192             * "*" を指定すると、すべてのカラãƒ?‚’(noWritable)æŒ?®šしたことになりますã?
1193             *
1194             * @og.rev 3.3.1.1 (2003/07/03) {&#064;XXXX} 変数が使用できるように修正ã€?
1195             * @og.rev 4.1.2.0 (2008/03/12) 引数にã€?null" を指定可能とするã€?
1196             * @og.rev 4.2.1.0 (2008/04/11) null チェãƒ?‚¯方法変更
1197             * @og.rev 4.2.1.1 (2008/04/30) 引数にA,B,{&#064;XXXX}等がæŒ?®šされた場合に{&#064;XXXX}の変換が行われなã�?ƒ�グを修正
1198             * @og.rev 5.1.8.0 (2010/07/01) noWritable 同時セãƒ?ƒˆチェãƒ?‚¯をã?メソãƒ?ƒ‰ではなくã?本体で行うã€?
1199             *
1200             * @param       columnName      例ï¼?OYA,KO,HJO,SU,DYSET,DYUPD"
1201             * @see         #setColumnWritable( String )
1202             */
1203            public void setNoWritable( final String columnName ) {
1204                    noWritable = nval( getRequestParameter(columnName),null );
1205                    if( "null".equalsIgnoreCase( noWritable ) ) { noWritable = ""; }
1206            }
1207    
1208            /**
1209             * 【TAG】表示可能カラãƒ?��をã?カンマ区åˆ?‚Šで与えますã?
1210             *
1211             * @og.tag
1212             * これは、表示不可カラãƒ?��のæŒ?®?noDisplay)と同時にセãƒ?ƒˆする
1213             * ことは出来ませんã€?
1214             * "*" を指定すると、すべてのカラãƒ?‚’(columnDisplay)æŒ?®šしたことになりますã?
1215             *
1216             * @og.rev 3.3.1.1 (2003/07/03) {&#064;XXXX} 変数が使用できるように修正ã€?
1217             * @og.rev 5.1.8.0 (2010/07/01) noWritable 同時セãƒ?ƒˆチェãƒ?‚¯をã?メソãƒ?ƒ‰ではなくã?本体で行うã€?
1218             *
1219             * @param       columnName      例ï¼?OYA,KO,HJO,SU,DYSET,DYUPD"
1220             * @see         #setNoDisplay( String )
1221             */
1222            public void setColumnDisplay( final String columnName ) {
1223                    columnDisplay = nval( getRequestParameter(columnName),null );
1224                    if( "null".equalsIgnoreCase( columnDisplay ) ) { columnDisplay = ""; }
1225            }
1226    
1227            /**
1228             * 【TAG】表示不可カラãƒ?��をã?カンマ区åˆ?‚Šで与えますã?
1229             *
1230             * @og.tag
1231             * これは、表示可能カラãƒ?��のæŒ?®?columnDisplay)と同時にセãƒ?ƒˆする
1232             * ことは出来ませんã€?
1233             * "*" を指定すると、すべてのカラãƒ?‚’(noDisplay)æŒ?®šしたことになりますã?
1234             *
1235             * @og.rev 3.3.1.1 (2003/07/03) {&#064;XXXX} 変数が使用できるように修正ã€?
1236             * @og.rev 5.1.8.0 (2010/07/01) noWritable 同時セãƒ?ƒˆチェãƒ?‚¯をã?メソãƒ?ƒ‰ではなくã?本体で行うã€?
1237             *
1238             * @param       columnName      例ï¼?OYA,KO,HJO,SU,DYSET,DYUPD"
1239             * @see         #setColumnDisplay( String )
1240             */
1241            public void setNoDisplay( final String columnName ) {
1242                    noDisplay = nval( getRequestParameter(columnName),null );
1243                    if( "null".equalsIgnoreCase( noDisplay ) ) { noDisplay = ""; }
1244            }
1245    
1246            /**
1247             * 【TAG】表示可能カラãƒ?��をã?カラãƒ??に、カンマ区åˆ?‚Šで与えますã?
1248             *
1249             * @og.tag
1250             * これは、ViewForm_HTMLSeqClmTable 用に特別に用意された属æ?ですã?
1251             * 機è?çš?�«は、columnDisplay 属æ?で、カラãƒ??表示é ?�¾でæŒ?®šできる機è?ã‚?
1252             * 用意すべきですがã€?�Ž去のタグとの互換性の関係で、別に用意してã�?�¾すã?
1253             * (こã?属æ?を使用するとã€??常の表示より、å?ç�??度が低下しますã?)
1254             *  例ï¼?OYA,KO,HJO,SU,DYSET,DYUPD" こã?é ?•ªで表示され、指定以外ã?カラãƒ??表示されませんã€?
1255             *
1256             * @og.rev 5.1.6.0 (2010/05/01) clmSeqDisplay 属æ?を追åŠ?�—ますã?
1257             *
1258             * @param       columnName      カラãƒ?��
1259             */
1260            public void setClmSeqDisplay( final String columnName ) {
1261                    clmSeqDisplay = nval( getRequestParameter(columnName),null );
1262            }
1263    
1264            /**
1265             * 【TAG】同ä¸?¡¨示ãƒ??タをまとめる(表示しなã�?カラãƒ?��をã?カンマ区åˆ?‚Šで与えますã?
1266             *
1267             * @og.tag
1268             * これは、カラãƒ??グループ化æŒ?®šを行いますã?
1269             * 同じカラãƒ?•ª号でä¸?�¤上ã?行番号と同じå†?®¹の場合に、特殊な表示方法で表示しますã?
1270             * 対応ã?、表示(Renderer)時ã?みとしますã?
1271             * 特殊な表示方法ã?æŒ?®šã?、groupClass 属æ?でæŒ?®šしますã?
1272             * (例:groupClass にアルファベット以外ã?æ–?­—ã?・そã?まま表示、アルファベットã?クラス属æ?を付与しますã?)
1273             * カラãƒ?�˜位なので、新しいゼブラによる色åˆ?�‘は行いませんã€?任意ã?カラãƒ?�«適用できる為)
1274             * またã?ファイル出力などのãƒ??タ自身は変更されてã�?�¾せんので、そのままãƒ??タが落ちますã?
1275             *
1276             * これは、同ä¸?¡¨示ãƒ??タをまとめなã�?‚«ラãƒ?��のæŒ?®?noGroup)と同時にセãƒ?ƒˆする
1277             * ことは出来ませんã€?
1278             * "*" を指定すると、すべてのカラãƒ?‚’(columnGroup)æŒ?®šしたことになりますã?
1279             *
1280             * @og.rev 3.8.5.0 (2006/03/20) 新規追åŠ?
1281             * @og.rev 5.1.8.0 (2010/07/01) noWritable 同時セãƒ?ƒˆチェãƒ?‚¯をã?メソãƒ?ƒ‰ではなくã?本体で行うã€?
1282             *
1283             * @param       group   例ï¼?OYA,KO,HJO,SU,DYSET,DYUPD"
1284             * @see         #setNoGroup( String )
1285             * @see         #setGroupClass( String )
1286             */
1287            public void setColumnGroup( final String group ) {
1288                    columnGroup = nval( getRequestParameter( group ),null );
1289                    if( "null".equalsIgnoreCase( columnGroup ) ) { columnGroup = ""; }
1290            }
1291    
1292            /**
1293             * 【TAG】同ä¸?¡¨示ãƒ??タをまとめなã�?‚«ラãƒ?��をã?カンマ区åˆ?‚Šで与えますã?
1294             *
1295             * @og.tag
1296             * これは、カラãƒ??グループ化æŒ?®šで、同ä¸?�§もまとめなã�?‚«ラãƒ?‚’æŒ?®šするほã�?�Œ簡単な場合に
1297             * 使用しますã?例えば、キーæƒ??以外ã?、グループ化æŒ?®šしたい場合などに便利ですã?
1298             * 動作ã?、columnGroup の動きと同じですã?(まとめなã�?‚«ラãƒ?‚’æŒ?®šするだけですã?)
1299    
1300             * これは、同ä¸?¡¨示ãƒ??タをまとめるカラãƒ?��のæŒ?®?columnGroup)と同時にセãƒ?ƒˆする
1301             * ことは出来ませんã€?
1302             * "*" を指定すると、すべてのカラãƒ?‚’(noGroup)æŒ?®šしたことになりますã?
1303             *
1304             * @og.rev 5.1.8.0 (2010/07/01) 新規追åŠ?
1305             *
1306             * @param       group   例ï¼?OYA,KO,HJO,SU,DYSET,DYUPD"
1307             * @see         #setColumnGroup( String )
1308             * @see         #setGroupClass( String )
1309             */
1310            public void setNoGroup( final String group ) {
1311                    noGroup = nval( getRequestParameter( group ),null );
1312                    if( "null".equalsIgnoreCase( noGroup ) ) { noGroup = ""; }
1313            }
1314    
1315            /**
1316             * 【TAG】同ä¸?¡¨示ãƒ??タをまとめる場合ã?、表示方法をæŒ?®šしますã?
1317             *
1318             * @og.tag
1319             * これは、カラãƒ??グループ化æŒ?®?columnGroup)を行う場合ã?、まとめ表示の方法をæŒ?®šしますã?
1320             * なにも指定しなã�??合ã?、まとめカラãƒ??、表示しなã�?ゼロæ–?­—å?)になりますã?
1321             * そã?場合ã?先ã?行と同じ場合も、変更されたカラãƒ?�Œ、NULL(ゼロæ–?­—å?)であったå?合もã€?
1322             * 同じ用に表示されるためã?区別が付きませんã€?
1323             * そこで、前の行と同じãƒ??タの場合に、特殊な処ç�?‚’行うことで、区別できるようにしますã?
1324             * æŒ?®š方法が特殊なので、注意がå¿?¦�ですã?
1325             *   記号の場合ï¼?
1326             *       記号(-- , â†?, â†?, * など)が指定された場合ã?、そのままのæ–?­—に置き換えられますã?
1327             *       初期値は、空æ–?­—å?(ゼロæ–?­—å?)ですã?
1328             *   アルファベットã?場合ï¼?
1329             *       アルファベッãƒ?a-z,A-Z)の場合ã?ã€?lt;span class="アルファベッãƒ?&gt;å…??æ–?­?lt;/span&gt;
1330             * 例えば、バãƒ?‚¯カラーに色を付けるã?æ–?­—をè–?�„灰色にする、などできますã?
1331             * ただしã?ãƒ??タ量が圧倒的に増えるためã?大量ã?ãƒ??タ等で使用するのは避けたほã�?�Œ良ã�?�¨思いますã?
1332             *
1333             * @og.rev 3.8.5.0 (2006/03/20) 新規追åŠ?
1334             *
1335             * @param       grpCls まとめ表示の方æ³?
1336             */
1337            public void setGroupClass( final String grpCls ) {
1338                    groupClass = nval( getRequestParameter(grpCls),null );
1339            }
1340    
1341            /**
1342             * 【TAG】カラãƒ?��リンクソートを表示するカラãƒ?��をã?カンマ区åˆ?‚Šで与えますã?
1343             *
1344             * @og.tag
1345             * ヘッãƒ??にソート用リンクを作æ?する useTableSorter 属æ? に対してã€?
1346             * カラãƒ??別に作æ?する場合ã?カラãƒ?��をカンマ区åˆ?‚Šæ–?­—でæŒ?®šしますã?
1347             * こã? sortKeys 属æ?は、useTableSorter 属æ? と無関係に、指定しã�?
1348             * カラãƒ??み、リンクを表示しますã?
1349             * "*" を指定すると、すべてのカラãƒ?‚’(tableSorterKeys)æŒ?®šしたことになりますã?
1350             * 例ï¼?OYA,KO,HJO,SU,DYSET,DYUPD"
1351             *
1352             * @og.rev 3.6.0.0 (2004/09/17) 新規作æ?
1353             *
1354             * @param       columnName      カラãƒ?��
1355             */
1356            public void setTableSorterKeys( final String columnName ) {
1357                    sortKeys = nval( getRequestParameter(columnName),null );
1358            }
1359    
1360            /**
1361             * 【TAG】検索結果メãƒ?‚»ージを表示しなã�?�‹どã�?�‹[true/false]を設定しまã�?初期値:false[表示する])ã€?
1362             *
1363             * @og.tag
1364             * 初期値は、表示する(true以å¤?ですã?
1365             *
1366             * @param       flag 検索結果メãƒ?‚»ージの制御 [true:表示しなã�?それ以å¤?表示する]
1367             */
1368            public void setNoMessage( final String flag ) {
1369                    noMessage = nval( getRequestParameter( flag ),noMessage );
1370            }
1371    
1372            /**
1373             * 【TAG】行が書き込み可能かどã�?�‹[true/false]を設定しまã�?
1374             *              (初期値:DBTableModel#DEFAULT_WRITABLE[={@og.value DBTableModel#DEFAULT_WRITABLE}])ã€?
1375             *
1376             * @og.tag
1377             * 書込み許可する場合ã?, true、許可しなã�??合ã?, true 以外を設定しますã?
1378             * ここで、false を設定すると全行書込み禁止になりますã?true を設定しã�?
1379             * 場合ã?ãƒ?ƒ•ォルトで書込み許可が与えられ、å?頭カラãƒ?�Œ writable であればã€?
1380             * そã?値を取り込んで、行ごとの書込み許可/不許可が決定されますã?
1381             * writable,checked,useCheckControl につã�?�¦は、writable が最優先で
1382             * 次に、useCheckControl="2"(またã?、checked)、次に、checked を判定しますã?
1383             * checked="true"の場合ã?、useCheckControl がã?"1"(true)以上ã?場合ã?
1384             * "2"(checked)に設定されますã?
1385             * (初期値:DBTableModel#DEFAULT_WRITABLE[={@og.value DBTableModel#DEFAULT_WRITABLE}])ã€?
1386             *
1387             * @param       flag [true:書込み許可/true以å¤?書込み禁止]
1388             * @see         org.opengion.hayabusa.db.DBTableModel#DEFAULT_WRITABLE
1389             */
1390            public void setWritable( final String flag ) {
1391                    writable = getRequestParameter( flag );
1392            }
1393    
1394            /**
1395             * ãƒ??ブルãƒ??タに書込み許可?�チェãƒ?‚¯状態を設定しますã?
1396             *
1397             * @og.rev 3.6.0.0 (2004/09/17) writable ã�?false の場合å?件チェãƒ?‚¯用チェãƒ?‚¯ボックスをå?さなã�??
1398             * @og.rev 3.7.0.1 (2005/01/31) 全件チェãƒ?‚¯コントロールのロジãƒ?‚¯変更(useCheckControl)
1399             * @og.rev 3.8.8.5 (2007/03/09) 全件チェãƒ?‚¯(useCheckControl)と、å?別チェãƒ?‚¯(checked)の整合æ?
1400             * @og.rev 5.5.5.6 (2012/08/31) ユーザーと画面の関係が、リードオンリーの場合ã?、writable=falseをå?部設定するã?
1401             * @og.rev 5.5.6.1 (2012/09/03) writable自動セãƒ?ƒˆはæŒ?®šコマンドã?み
1402             *
1403             * @param       table   DBTableModelオブジェクãƒ?
1404             */
1405            private void setTableRowWritable( final DBTableModel table ) {
1406    
1407                    // 5.5.5.6 (2012/08/31) リードオンリーの場合ã?、writable=falseをå?部設定するã?
1408                    // こã?タグで、writable が指定された場合ã?、そちらを優先するã?(つまりã?null の場合ã?、å?部設定するã?)
1409                    // 5.5.6.1 (2012/09/03) こã?処ç�?‚’行うのはæŒ?®šコマンドã?み
1410                    if( ( writable == null || writable.length() == 0 ) && check( command, COMMAND_LIST ) ) {
1411                            GUIInfo guiInfo = (GUIInfo)getSessionAttribute( HybsSystem.GUIINFO_KEY );
1412                            if ( ! guiInfo.isWrite() ){
1413                                    writable = "FALSE" ;
1414                            }
1415                    }
1416    
1417                    if( writable != null && writable.length() > 0 ) {
1418                            boolean flag = "TRUE".equalsIgnoreCase( writable );
1419                            table.setDefaultRowWritable( flag );
1420                            if( ! flag ) { useCheckControl = 0; }                   // 3.7.0.1 (2005/01/31)
1421                    }
1422    
1423                    // 全チェãƒ?‚¯ONの場合ã?、å?別チェãƒ?‚¯もONにするã€?
1424                    if( useCheckControl == 2 ) { checked = "true"; }        // 3.8.8.5 (2007/03/09)
1425    
1426                    if( checked != null && checked.length() > 0 ) {
1427                            boolean flag = "TRUE".equalsIgnoreCase( checked );
1428                            table.setDefaultRowChecked( flag );
1429                            // 個別チェãƒ?‚¯ONの場合ã?、å?チェãƒ?‚¯もONにするã€?
1430                            if( flag && useCheckControl >= 1 ) { useCheckControl = 2; }                  // 3.8.8.5 (2007/03/09)
1431                    }
1432            }
1433    
1434            /**
1435             * 【TAG】行ã?チェãƒ?‚¯ボックスの初期値を設定するかどã�?�‹[true/false]を指定しまã�?初期値:null)ã€?
1436             *
1437             * @og.tag
1438             * 書き込み可能なè¡?rowWritable == true)のチェãƒ?‚¯ボックスに対して
1439             * 初期値ã‚?選択済みにするかã?非選択済みにするかをæŒ?®šしますã?
1440             * writable,checked,useCheckControl につã�?�¦は、writable が最優先で
1441             * 次に、useCheckControl="2"(またã?、checked)、次に、checked を判定しますã?
1442             * checked="true"の場合ã?、useCheckControl がã?"1"(true)以上ã?場合ã?
1443             * "2"(checked)に設定されますã?
1444             *
1445             * @param       flag [true:書込み許可/それ以å¤?書込み禁止]
1446             */
1447            public void setChecked( final String flag ) {
1448                    checked = getRequestParameter( flag );
1449            }
1450    
1451            /**
1452             * 【TAG】NEXT等でã€?�¸択行以外をスキãƒ??するのかどã�?�‹[true/false]を指定しまã�?
1453             *              (初期値:ViewForm#DEFAULT_SKIP[={@og.value ViewForm#DEFAULT_SKIP}])ã€?
1454             *
1455             * @og.tag
1456             * 明細æƒ??の登録/編é›?™‚に、å¿?¦�な個所のみをé?番に処ç�?�™るå?合に使用しますã?
1457             * (初期値:ViewForm#DEFAULT_SKIP[={@og.value ViewForm#DEFAULT_SKIP}])ã€?
1458             *
1459             * @param       flag スキãƒ??  [true:する/それ以å¤?しない]
1460             * @see         org.opengion.hayabusa.html.ViewForm#DEFAULT_SKIP
1461             */
1462            public void setSkip( final String flag ) {
1463                    skip = nval( getRequestParameter( flag ),skip );
1464            }
1465    
1466            /**
1467             * 【TAG】表示ãƒ??タを作æ?する場合ã?フォーマットã?行数をセãƒ?ƒˆしまã�?初期値:2)ã€?
1468             *
1469             * @og.tag 表示ãƒ??タを作æ?する場合ã?フォーマットã?行数をセãƒ?ƒˆしますã?
1470             *
1471             * @og.rev 3.3.1.1 (2003/07/03) {&#064;XXXX} 変数が使用できるように修正ã€?
1472             *
1473             * @param       rowspan フォーマットã?行数
1474             */
1475            public void setRowspan( final String rowspan ) {
1476                    this.rowspan = getRequestParameter(rowspan);
1477            }
1478    
1479            /**
1480             * 【TAG】表示時ã?選択用オブジェクトã?タイプ[checkbox/radio/hidden]を指定しまã�?初期値:checkbox)ã€?
1481             *
1482             * @og.tag
1483             * è¤?•°選択可能時ã? "checkbox" を指定しますã?
1484             * ä¸?�¤ã�?�‘選ばせる場合ã?, "radio" を指定しますã?
1485             * éš?�—フィールドで全件を選ぶ場合ã?ã€?hidden" を指定しますã?
1486             * 初期値はã€?checkbox" ですã?
1487             *
1488             * @og.rev 3.3.1.1 (2003/07/03) {&#064;XXXX} 変数が使用できるように修正ã€?
1489             *
1490             * @param       type 選択用オブジェクトã?タイプ[checkbox:è¤?•°選æŠ?radio:ä¸?�¤ã�?�‘/hidden:全件選択]
1491             */
1492            public void setSelectedType( final String type ) {
1493                    selectedType = nval( getRequestParameter(type),selectedType );
1494            }
1495    
1496            /**
1497             * 【TAG】表示時ã?行番号の表示方法[sequence/none/delete/skip=カラãƒ?��/view=カラãƒ?��]を指定しまã�?初期値:sequence)ã€?
1498             *
1499             * @og.tag
1500             * ・sequenceはã€?¼‘から始まるé?番ですã?
1501             * ・none を指定すると、番号は表示されませんã€?
1502             * ・delete を指定すると、行番号表示そã?もã?のタグを取り除きますã?(3.5.5.0 追åŠ?
1503             * ・skip=カラãƒ?��を指定すると、そのカラãƒ??値ã�?NULL の場合ã?、番号をスキãƒ??しますã?
1504             * ・view=カラãƒ?��を指定すると、そのカラãƒ??値がã?使用されますã?(ラベルは付きません)
1505             * skip=XX と、view=XX はã€?の前後にスペã?スをå?れなã�?�§下さã�??
1506             * 初期値はã€?sequence" ですã?
1507             *
1508             * @og.rev 3.5.1.0 (2003/10/03) 新規作æ?
1509             *
1510             * @param       type 行番号の表示方法ã?タイãƒ?[sequence:連番/none:非表示/delete:タグ削除/skip=カラãƒ?��/view=カラãƒ?��]
1511             */
1512            public void setNumberType( final String type ) {
1513                    numberType = nval( getRequestParameter(type),numberType );
1514            }
1515    
1516            /**
1517             * 【TAG】テーブル等ã?チェãƒ?‚¯ボックスに属æ?を付加しますã?
1518             *
1519             * @og.tag
1520             * JavaScript などの HTML基本タグ以外ã?属æ?をã?そã?まま
1521             * チェãƒ?‚¯ボックス/ラジオボタン等に使用しますã?
1522             * そã?ときにã€?')はã€?")に置き換えますã?
1523             *
1524             * @param       attributes HTML基本タグ以外ã?属æ?
1525             */
1526            public void setOptionTypeAttributes( final String attributes ) {
1527                    String optAttri = getRequestParameter( attributes );
1528                    if( optAttri != null && optAttri.length() > 0 ) {
1529                            optTypeAttri = optAttri.replace( '\'', '\"' );
1530                    }
1531            }
1532    
1533            /**
1534             * 【TAG】チェãƒ?‚¯ボックスの全チェãƒ?‚¯を選択するJavaScript の機è?を使用するかどã�?�‹を指定しまã�?
1535             *              (初期値:VIEW_USE_CHECK_CONTROL[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_CHECK_CONTROL}])ã€?
1536             *
1537             * @og.tag
1538             * "true" で、コントロール用のチェãƒ?‚¯ボックスが現れて、この機è?を使用することができるようになりますã?
1539             * false は、従来どおりですã?
1540             * 使用するにあたりã?jsp/commpn/default.js にJavaScriptを設定しておきますã?(設定済み)
1541             * false はã€?でも代用可能ですã?true はã€?でも代用可能ですã?
1542             * checked はã€?でも代用可能ですã?checked は、å?期å?をã?チェãƒ?‚¯済みにしますã?
1543             * 注意ï¼?,1,2,true,false,checked 以外ã?æ–?­—をセãƒ?ƒˆすると、エラーが発生しますã?
1544             * writable,checked,useCheckControl につã�?�¦は、writable が最優先で
1545             * 次に、useCheckControl="2"(またã?、checked)、次に、checked を判定しますã?
1546             * checked="true"の場合ã?、useCheckControl がã?"1"(true)以上ã?場合ã?
1547             * "2"(checked)に設定されますã?
1548             * (初期値:ユーザー定数のVIEW_USE_CHECK_CONTROL[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_CHECK_CONTROL}])ã€?
1549             *
1550             * @og.rev 3.5.4.3 (2004/01/05) 新規追åŠ?
1551             * @og.rev 3.7.0.1 (2005/01/31) 全件チェãƒ?‚¯コントロールのロジãƒ?‚¯変更(useCheckControl)
1552             *
1553             * @param       flag チェãƒ?‚¯ボックスの全チェãƒ?‚¯を選択する機è?を使用するかどã�?�‹
1554             *                      (true,1:使用する/false,0:使用しなã�?checked,2:初期値チェãƒ?‚¯済み)
1555             * @see         org.opengion.hayabusa.common.SystemData#VIEW_USE_CHECK_CONTROL
1556             */
1557            public void setUseCheckControl( final String flag ) {
1558                    useCheckControl = intCase( getRequestParameter(flag) );
1559    
1560                    if( useCheckControl < 0 ) {
1561                            String errMsg = "useCheckControl は、false(0)/true(1)/2 のã�?�šれかしか登録できませんã€?"
1562                                                     + flag + "]";
1563                            throw new HybsSystemException( errMsg );
1564                    }
1565            }
1566    
1567            /**
1568             * 【TAG】ã?ãƒ?ƒ€ーにソート用リンクを作æ?するかどã�?�‹[true/false]を指定しまã�?
1569             *              (初期値:VIEW_USE_TABLE_SORTER[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_TABLE_SORTER}])ã€?
1570             *
1571             * @og.tag
1572             * "true" で、ã?ãƒ?ƒ€ーにソート用リンクを作æ?しますã?
1573             * false は、従来どおりですã?
1574             * 検索済みのDBTableModelをã?メモリ上でソートし、å?表示させますã?
1575             *              (初期値:ユーザー定数のVIEW_USE_TABLE_SORTER[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_TABLE_SORTER}])ã€?
1576             *
1577             * @og.rev 3.5.4.7 (2004/02/06) 新規追åŠ?
1578             *
1579             * @param       flag ヘッãƒ??にソート用リンクを作æ?するかどã�?�‹ [true:作æ?する/false:作æ?しない]
1580             * @see         org.opengion.hayabusa.common.SystemData#VIEW_USE_TABLE_SORTER
1581             */
1582            public void setUseTableSorter( final String flag ) {
1583                    useTableSorter = nval( getRequestParameter(flag),useTableSorter );
1584            }
1585    
1586            /**
1587             * 表示ãƒ??タをã?レビュー可能かどã�?�‹を返しますã?
1588             *
1589             * 不可能な状態とは,すでにä¸?•ª先é?から表示されてã�?‚‹場合ですã?
1590             *
1591             * @return      プレビュー可能(true)?�不可能(false)
1592             */
1593            private boolean isPrev() {
1594                    if( startNo <= 0 ) {
1595                            return false;
1596                    }
1597                    return true;
1598            }
1599    
1600            /**
1601             * 表示ãƒ??タをネクスト可能かどã�?�‹を返しますã?
1602             *
1603             * 不可能な状態とは,すでにä¸?•ª後ろが表示されてã�?‚‹場合ですã?
1604             *
1605             * @return      ネクスト可能(true)?�不可能(false)
1606             */
1607            private boolean  isNext() {
1608                    if( (startNo + pageSize) >= table.getRowCount() ) {
1609                            return false;
1610                    }
1611                    return true;
1612            }
1613    
1614            /**
1615             * コマンドを実行しますã?
1616             *
1617             * コマンドã?,HTMLから(get/post)æŒ?®šされますã?で,setCommand()メソãƒ?ƒ‰で
1618             * 登録しますã?
1619             * コマンドを登録すると同時に,実行も行なã�?�¾すã?
1620             *
1621             * @og.rev 3.8.0.8 (2005/10/03) そã?他ã?コマンドを CMD_XXX にしますã?
1622             *
1623             * @param       command コマンãƒ?public static final 宣è¨?�•れてã�?‚‹æ–?­—å?)
1624             * @see         <a href="../../../../constant-values.html#org.opengion.hayabusa.taglib.ViewFormTag.CMD_PREV">コマンド定数</a>
1625             */
1626            private void commandExec( final String command ) {
1627                    if(      CMD_PREV.equals(       command ) ) { prev() ;  }
1628                    else if( CMD_NEXT.equals(       command ) ) { next() ;  }
1629                    else if( CMD_FIRST.equals(      command ) ) { first() ; }
1630                    else if( CMD_LAST.equals(       command ) ) { last() ;  }
1631            //      else if( CMD_NEW.equals(        command ) ) {}          // 何もしなã�?
1632            //      else if( CMD_REVIEW.equals( command ) ) {}              // 何もしなã�?
1633            //      else if( CMD_RESET.equals(      command ) ) {}          // 何もしなã�?
1634                    else if( CMD_VIEW.equals(       command ) ) { view() ;  }
1635                    // 3.8.0.8 (2005/10/03) そã?他ã?コマンドを CMD_XXX にしますã?
1636                    else if( CMD_XXX.equals(        command ) ) { view() ;  }
1637                    this.command = null;
1638            }
1639    
1640            /**
1641             * HTMLãƒ??タの表示をã?レビュー(戻ã�?しますã?
1642             *
1643             * @og.rev 3.0.1.3 (2003/03/11) startNo を隠しフィールドに持つ処ç�?‚’、追åŠ?
1644             *
1645             */
1646            private void prev() {
1647                    if( ! isPrev() ) { return ; }                   // prev 出来なã�??
1648                    tempStartNo = tempStartNo - pageSize;
1649                    if( tempStartNo < 0 ) { tempStartNo = 0; }
1650                    if( skip ) {
1651                            for( int i=startNo-1; i>=0; i-- ) {
1652                                    if( form.isMarked( i ) ) {
1653                                            startNo = i;
1654                                            break;
1655                                    }
1656                            }
1657                            return ;
1658                    }
1659    
1660                    startNo = startNo - pageSize;
1661                    if( startNo < 0 ) {
1662                            startNo = 0;
1663                    }
1664            }
1665    
1666            /**
1667             * HTMLãƒ??タの表示をネクスãƒ?先é?ã‚?しますã?
1668             *
1669             * @og.rev 3.0.1.3 (2003/03/11) startNo を隠しフィールドに持つ処ç�?‚’、追åŠ?
1670             *
1671             */
1672            private void next() {
1673                    if( ! isNext() ) { return ; }                   // next 出来なã�??
1674                    tempStartNo = tempStartNo + pageSize;
1675                    if( skip ) {
1676                            int end  = table.getRowCount();
1677                            for( int i=startNo+1; i<end; i++ ) {
1678                                    if( form.isMarked( i ) ) {
1679                                            startNo = i;
1680                                            break;
1681                                    }
1682                            }
1683                            return ;
1684                    }
1685    
1686                    startNo = startNo + pageSize;
1687            }
1688    
1689            /**
1690             * HTMLãƒ??タの表示をファースãƒ?æœ??)しますã?
1691             *
1692             * @og.rev 3.0.1.3 (2003/03/11) startNo を隠しフィールドに持つ処ç�?‚’、追åŠ?
1693             *
1694             */
1695            private void first() {
1696                    tempStartNo = 0;
1697                    if( tempStartNo < 0 ) { tempStartNo = 0; }
1698                    if( skip ) {
1699                            int end  = table.getRowCount();
1700                            for( int i=startNo; i<end; i++ ) {
1701                                    if( form.isMarked( i ) ) {
1702                                            startNo = i;
1703                                            break;
1704                                    }
1705                            }
1706                            return ;
1707                    }
1708    
1709                    startNo = 0;
1710            }
1711    
1712            /**
1713             * HTMLãƒ??タの表示をラスãƒ?æœ?¾?しますã?
1714             *
1715             * @og.rev 3.0.1.3 (2003/03/11) startNo を隠しフィールドに持つ処ç�?‚’、追åŠ?
1716             *
1717             */
1718            private void last() {
1719                    tempStartNo = table.getRowCount() - pageSize;
1720                    if( tempStartNo < 0 ) { tempStartNo = 0; }
1721                    if( skip ) {
1722                            for( int i=startNo; i>=0; i-- ) {
1723                                    if( form.isMarked( i ) ) {
1724                                            startNo = i;
1725                                            break;
1726                                    }
1727                            }
1728                            return ;
1729                    }
1730    
1731                    startNo = table.getRowCount() - pageSize;
1732                    if( startNo < 0 ) { startNo = 0; }
1733            }
1734    
1735            /**
1736             * HTMLãƒ??タの表示をしますã?
1737             *
1738             */
1739            private void view() {
1740                    if( skip ) {
1741                            int end  = table.getRowCount();
1742                            for( int i=startNo; i<end; i++ ) {
1743                                    if( form.isMarked( i ) ) {
1744                                            startNo = i;
1745                                            break;
1746                                    }
1747                            }
1748                            return ;
1749                    }
1750            }
1751    
1752            /**
1753             * startNo,pageSize,pagePlus の初期値を設定するã?
1754             *
1755             * @og.rev 3.0.1.3 (2003/03/11) startNo を隠しフィールドに持つ処ç�?‚’、追åŠ?
1756             * @og.rev 3.5.4.1 (2003/12/01) startNo をキャãƒ?‚·ュから取り出すよã�?�«変更ã€?
1757             * @og.rev 3.5.4.7 (2004/02/06) getStartNoKeyメソãƒ?ƒ‰のå»?­¢(getRequestCacheDataを利用)
1758             * @og.rev 3.7.0.2 (2005/02/14) NEXT 時に何も選択しなã�?�§追åŠ?�—たå?合ã?ã€?¼‘件目から表示するã€?
1759             * @og.rev 3.8.0.8 (2005/10/03) そã?他ã?コマンドを CMD_XXX にしますã?
1760             *
1761             */
1762            private void setDefaultParameter() {
1763                    // 3.7.0.2 (2005/02/14)
1764                    // 3.8.0.8 (2005/10/03) そã?他ã?コマンドを CMD_XXX にしますã?
1765                    if( CMD_XXX.equals( command ) ) {
1766                            String[] selected = getRequestValues( HybsSystem.ROW_SEL_KEY ) ;
1767                            if( selected == null || selected.length == 0 ) {
1768                                    startNo = 0;
1769                                    tempStartNo = startNo;
1770                            }
1771                    }
1772    
1773                    if( startNo<0 ) {
1774                            startNo = nval( getRequestCacheData( START_NO_KEY ),form.getStartNo() ) ;
1775                            tempStartNo = startNo;
1776                    }
1777    
1778                    if( pageSize<0 ) {
1779                            pageSize = nval( getRequestValue( PAGE_SIZE_KEY ),form.getPageSize() ) ;
1780                    }
1781    
1782                    if( pagePlus<0 ) {
1783                            pagePlus = nval( getRequestValue( PAGE_PLUS_KEY ),0 ) ;
1784                    }
1785    
1786            }
1787    
1788            /**
1789             * å†?ƒ¨タグの TheadTag / TbodyTag / TfootTag より、å?ã€??フォーマットを定義する
1790             * 為のTableFormatter オブジェクトを受け取るã€?
1791             *
1792             * @og.rev 3.5.4.0 (2003/11/25) 新規登録(setAttributes メソãƒ?ƒ‰より移è¡?
1793             *
1794             * @param       form TableFormatterオブジェクãƒ?
1795             */
1796            protected void addFormatter( final TableFormatter form ) {
1797                    if( values == null ) { values = new ArrayList<TableFormatter>(); }
1798                    values.add( form );
1799            }
1800    
1801            /**
1802             * pageSize をhidden属æ?で出力するタグを作æ?しますã?
1803             *
1804             * @og.rev 3.5.4.0 (2003/11/25) command="RESET"時に、戻った画面のpageSize がクリアされてしまã�?¯¾応ã?
1805             * @og.rev 3.5.5.5 (2004/04/23) hidden の出力に、XHTMLTag.hidden を使用しますã?
1806             *
1807             * @param       pageSize        ペã?ジサイズ
1808             *
1809             * @return      hidden属æ?で出力するタグ
1810             */
1811            private String makePageSize( final int pageSize ) {
1812                    String name   = PAGE_SIZE_KEY;
1813                    String value  = String.valueOf( pageSize );
1814    
1815                    return XHTMLTag.hidden( name,value );   // 3.5.5.5 (2004/04/23)
1816            }
1817    
1818            /**
1819             * consistencyKey をhidden属æ?で出力するタグを作æ?しますã?
1820             * 出力する条件は、useConsistency="true" (初期値)、で
1821             * scope がã? request 以外ã?場合ですã?
1822             * tableId が設定された場合ã?、consistencyKey に、tableId を加えた
1823             * キーにしますã?
1824             *
1825             * @og.rev 3.5.5.5 (2004/04/23) DBTableModel の整合æ?パラメータã‚?hidden で出力しますã?
1826             * @og.rev 3.5.5.5 (2004/04/23) hidden の出力に、XHTMLTag.hidden を使用しますã?
1827             * @og.rev 3.5.5.8 (2004/05/20) makeConsistencyKey メソãƒ?ƒ‰に処ç�?ƒ­ジãƒ?‚¯を移しますã?
1828             *
1829             */
1830            private void makeConsistencyKey() {
1831                    if( useConsistency && ! "request".equals( getScope() ) ) {
1832                            String name   = HybsSystem.CONSISTENCY_KEY;
1833                            String value  = table.getConsistencyKey() ;
1834    
1835                            jspPrint( XHTMLTag.hidden( name,value ) );
1836                    }
1837            }
1838    
1839            /**
1840             * "false","true","checked" のæ–?­—å?をã?それぞれã€?,1,2 に対応した数字に変換しますã?
1841             * それ以外ã?æ–?­—å?はã€?1 にしますã?
1842             *
1843             * @og.rev 3.7.0.1 (2005/01/31) 新規作æ?
1844             *
1845             * @param    flag æ–?­—å? (true=1 , false=0 , checked=2) のæ–?­—å?
1846             *
1847             * @return   設定å?(0,1,2の数字ã?不正な場合ã?ã€?1 を返すã€?
1848             */
1849            private static int intCase( final String flag ) {
1850                    int rtn = -1;
1851                    if( "FALSE".equalsIgnoreCase( flag ) || "0".equalsIgnoreCase( flag ) ) {
1852                            rtn = 0;
1853                    }
1854                    else if( "TRUE".equalsIgnoreCase( flag ) || "1".equalsIgnoreCase( flag ) ) {
1855                            rtn = 1;
1856                    }
1857                    else if( "CHECKED".equalsIgnoreCase( flag ) || "2".equalsIgnoreCase( flag ) ) {
1858                            rtn = 2;
1859                    }
1860                    return rtn ;
1861            }
1862    
1863            /**
1864             * ViewForm のサブクラスに渡すパラメータマッãƒ?
1865             *
1866             * @og.rev 3.5.4.8 (2004/02/23) ViewParamTag のパラメータを追åŠ?�—ますã?
1867             *
1868             * @param       map パラメータマッãƒ?
1869             */
1870            protected void setParam( final Map<String,String> map ) {
1871                    viewParam = map ;
1872            }
1873            
1874            /**
1875             * ViewForm のサブクラスに渡すパラメータ(æ–?­—å?配å?のArrayList)を設定しますã?
1876             *
1877             * @og.rev 5.5.8.3 (2012/11/17) 新規作æ??ˆスタãƒ?‚¯ガント対応ï¼?
1878             * @og.rev 5.5.9.0 (2012/12/03) objectからArrayListに変更
1879             *
1880             * @param       list æ–?­—å?配å?のArrayList
1881             */
1882            protected void setViewArrayList( final List<String[]> list ) {
1883                    viewArrayList = list;
1884            }
1885    
1886            /**
1887             * 【TAG】パラメーターファイルの使用をするかどã�?�‹[true/false]を指定しまã�?初期値:false)ã€?
1888             *
1889             * @og.tag
1890             * "true" で、パラメータファイルを読み込ã‚?�Ÿめã?BODY部をå?ç�?�—ますã?
1891             * false は、パラメータファイã�?‚’使用しませんã€?
1892             * パラメータファイルは、各ViewFormのサブクラス用に用意しますã?
1893             * 初期値は、false ですã?(false)
1894             *
1895             * @og.rev 3.5.4.8 (2004/02/23) 新規追åŠ?
1896             *
1897             * @param       flag パラメーターファイルを使用 [true:使用する/false:使用しない]
1898             */
1899            public void setUseParam( final String flag ) {
1900                    useParam = nval( getRequestParameter(flag),useParam );
1901            }
1902    
1903            /**
1904             * 【TAG】Consistency キー による整合æ?チェãƒ?‚¯を行うかどã�?�‹[true/false]を指定しまã�?初期値:true)ã€?
1905             *
1906             * @og.tag
1907             * 検索結果ã‚?DBTableModel にセãƒ?ƒˆする時に、整合æ?キーの Consistency キーã‚?
1908             * 作æ?しますã?これをã?Viewタグでhidden出力しておき、Entryタグでãƒ??タ書き換え時に
1909             * 整合æ?チェãƒ?‚¯を行いますã?これは、IEの戻るã?タンで戻ったå?合に、画面の
1910             * キーと検索結果の DBTableModel のå†?®¹がä¸??しなã�??合ã?エラーチェãƒ?‚¯に
1911             * なりますã?
1912             * こã?属æ?は、何らかã?ケースで、このエラーチェãƒ?‚¯を行いたくなã�??合にã€?
1913             * false に設定することで、整合æ?チェãƒ?‚¯を行いませんã€?
1914             * 初期値は、true(整合æ?チェãƒ?‚¯を行う)ですã?
1915             *
1916             * @og.rev 3.5.5.7 (2004/05/10) 新規登録
1917             *
1918             * @param       ck      Consistency Key の使用するかどã�?�‹ [true:行う/false:行わない]
1919             */
1920            public void setUseConsistency( final String ck ) {
1921                    useConsistency = nval( getRequestParameter( ck ),useConsistency );
1922            }
1923    
1924            /**
1925             * 【TAG】テーブルのバックグラウンドカラーの入れ替えã?サイクルをセãƒ?ƒˆしまã�?初期値はã€?:ゼブラ)ã€?
1926             *
1927             * @og.tag
1928             * 0(ゼブラなã�?ã€?1(ワーニング)ã€?2以ä¸?エラー)ã€?(ゼブラ)ã€?以ä¸?行数まとã‚?
1929             * 初期値はã€?(ゼブラ)ですã?
1930             *
1931             * @og.rev 3.5.6.2 (2004/07/05) 新規追åŠ?
1932             *
1933             * @param  sycle  0(ゼブラなã�?ã€?1(ワーニング)ã€?2以ä¸?エラー)ã€?(ゼブラ)ã€?以ä¸?行数まとã‚?
1934             */
1935            public void setBgColorCycle( final String sycle ) {
1936                    bgColorCycle = nval( getRequestParameter( sycle ),bgColorCycle );
1937            }
1938    
1939            /**
1940             * 【TAG】テーブルのバックグラウンドカラーのクラスにæŒ?®šするカラãƒ?��を指定しますã?
1941             *
1942             * @og.tag
1943             * 通常のゼブラ模様ã?、tr 属æ?のクラスæŒ?®šとして、row_0、row_1 が指定されますã?
1944             * そã?代わりに、ここでæŒ?®šされたカラãƒ??値がクラス属æ?として設定されますã?
1945             * (æŒ?®šするã?はカラãƒ?��ですã?行単位にクラス属æ?の値を変えることが可能ですã?)
1946             * 選択è¡?row_sel)は、優先して使用されますã?
1947             * 出力されるクラス名ã?ã€?row_" + 属æ?値 になりますã?
1948             *
1949             * @og.rev 5.1.8.0 (2010/07/01) 新規追åŠ?
1950             *
1951             * @param  clsClm ゼブラ模様ã?替わりにæŒ?®šするクラスをæ?納したカラãƒ?��
1952             */
1953            public void setBgColorClsClm( final String clsClm ) {
1954                    bgColorClsClm = nval( getRequestParameter( clsClm ),bgColorClsClm );
1955            }
1956    
1957            /**
1958             * 【TAG】スクロールバã?用のDIV要ç´?‚’出力するかどã�?�‹[true/false]を指定しまã�?
1959             *              (初期値:VIEW_USE_SCROLLBAR[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_SCROLLBAR}])ã€?
1960             *
1961             * @og.tag
1962             * スクロールバã?対応する為、テーブルの先é?に、DIV要ç´?‚’出力しますã?
1963             * (初期値:ユーザー定数のVIEW_USE_SCROLLBAR[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_SCROLLBAR}])ã€?
1964             * ※ 互換性の関係よりã?false になってã�?�¾すã?
1965             *
1966             * @og.rev 3.5.6.3 (2004/07/12) 新規追åŠ?
1967             *
1968             * @param  useBar  スクロールバã?用のDIV要ç´?‚’出力するかどã�?�‹[true:出力すã‚?false:しない]
1969             * @see         org.opengion.hayabusa.common.SystemData#VIEW_USE_SCROLLBAR
1970             */
1971            public void setUseScrollBar( final String useBar ) {
1972                    useScrollBar = nval( getRequestParameter( useBar ),useScrollBar );
1973            }
1974    
1975            /**
1976             * 【TAG】viewLink ã‚?viewMarker のæƒ??取り込みを制御する(初期値は、NEW,RENEW,REVIEW,RESET)ã€?
1977             *
1978             * @og.tag
1979             * viewLink ã‚?viewMarker のæƒ??取り込みは、command がã?NEW,RENEW,REVIEW,RESET
1980             * の場合ã?み行われてã�?�¾すã?
1981             * こã?属æ?でã€?true" を指定すると、コマンドに無関係に取り込みますã?
1982             * "false" の場合ã?、form にキャãƒ?‚·ュしてã�?‚‹リンク、ã?ーカーを削除しますã?
1983             * 取り込み時に、viewLink ã‚?viewMarker オブジェクトが存在しなã�??合ã?ã€?
1984             * 何もしません。これã?、viewMarker オブジェクトè?身がすでに設定済みの場å�?VIEWなど)
1985             * NEXTやPREVでは、viewMarkerオブジェクトã?、リクエスト変数に設定されなã�?‚ºですã?
1986             * こã?場合ã?、登録しませんがã?既存ã? viewMarkerオブジェクトを持ってã�?‚‹はずなのでã€?
1987             * なにも設定しなくてã‚?viewMarker は適用されますã?
1988             * 初期値は、NEW,RENEW,REVIEW,RESET ですã?
1989             *
1990             * @og.rev 3.6.0.4 (2004/10/14) 新規追åŠ?
1991             *
1992             * @param  load  viewLink ã‚?viewMarker のæƒ??取り込みを制御する
1993             */
1994            public void setLoadMarker( final String load ) {
1995                    loadMarker = nval( getRequestParameter( load ),loadMarker );
1996            }
1997    
1998            /**
1999             * 【TAG】SEL_ROW機è?[true:有効/false:無効]を指定しまã�?
2000             *              (初期値:VIEW_USE_SELECTED_ROW[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_SELECTED_ROW}])ã€?
2001             *
2002             * @og.tag
2003             * SEL_ROW機è?は、戻るリンクから戻ったときや、登録したときにã€?�¸択してã�?�Ÿ
2004             * 行番号ã‚??先にクリãƒ?‚¯された行番号を返す機è?で、SEL_ROW リクエストに設定された
2005             * 行がマã?カーされますã?こã?機è?の有効(true)/無効(false)を指定しますã?
2006             * こã?属æ?でã€?true" を指定すると、有効になりますã?
2007             * "false" の場合ã?、無効ですã?
2008             * (初期値:ユーザー定数のVIEW_USE_SELECTED_ROW[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_SELECTED_ROW}])ã€?
2009             *
2010             * @og.rev 3.7.1.1 (2005/05/23) 新規追åŠ?
2011             *
2012             * @param  selRow  SEL_ROW機è?の有効/無効を指å®?[true:有効/false:無効]
2013             * @see         org.opengion.hayabusa.common.SystemData#VIEW_USE_SELECTED_ROW
2014             */
2015            public void setUseSelectedRow( final String selRow ) {
2016                    useSelectedRow = nval( getRequestParameter( selRow ),useSelectedRow );
2017            }
2018    
2019            /**
2020             * 【TAG】SEL_ROW使用時ã?選択行色変更[true:有効/false:無効]を指定しまã�?
2021             *              (初期値:VIEW_USE_SELROW_COLOR[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_SELROW_COLOR}])ã€?
2022             *
2023             * @og.tag
2024             * SEL_ROW機è?は、現在選択されてã�?‚‹行まで、スクロールする機è?ですが、そのときã?
2025             * 選択行にマã?カーするかどã�?�‹をã?æŒ?®šしますã?
2026             * こã?属æ?でã€?true" を指定すると、有効になりますã?
2027             * "false" の場合ã?、無効ですã?
2028             * (初期値:ユーザー定数のVIEW_USE_SELROW_COLOR[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_SELROW_COLOR}])ã€?
2029             *
2030             * @og.rev 3.7.1.1 (2005/05/31) 新規追åŠ?
2031             *
2032             * @param  selRowColor  SEL_ROW使用時ã?選択行色変更の有効/無効を指å®?[true:有効/false:無効]
2033             * @see         org.opengion.hayabusa.common.SystemData#VIEW_USE_SELROW_COLOR
2034             */
2035            public void setUseSelRowColor( final String selRowColor ) {
2036                    useSelRowColor = nval( getRequestParameter( selRowColor ),useSelRowColor );
2037            }
2038    
2039            /**
2040             * 【TAGã€?処ç�?™‚間やペã?ジサイズなどのæƒ??出力[true:有効/false:無効]を指定しまã�?初期値:true)ã€?
2041             *
2042             * @og.tag
2043             * ViewForm で、CustomData などの 非HTML表示ビューを使用する場合ã?
2044             * æœ?¾Œに、å?ç�?™‚間とペã?ジサイズ(NEXT時に使用)などのæƒ??をã?hidden で
2045             * 出力してã�?�¾すが、これを制御するフラグをセãƒ?ƒˆしますã?
2046             * true(有効)にすると、これらのHTMLがå?力されますã?false にすると、å?力されませんã€?
2047             * 初期値は、true(有効) ですã?
2048             *
2049             * @og.rev 3.7.1.1 (2005/05/23) 新規追åŠ?
2050             *
2051             * @param  useTag  æƒ??出力ã?有効/無効を指å®?[true:有効/false:無効]
2052             */
2053            public void setUseAfterHtmlTag( final String useTag ) {
2054                    useAfterHtmlTag = nval( getRequestParameter( useTag ),useAfterHtmlTag );
2055            }
2056    
2057            /**
2058             * 【TAG】設定å?に "_" が含まれてã�?‚‹場合にレンãƒ?ƒ©ーを使用するカラãƒ?‚’CSV形式でæŒ?®šしますã?
2059             *
2060             * @og.tag
2061             * これは、従来の カラãƒ?®š義の WRITABLE エãƒ?‚£ターと同等ã?働きを行うように
2062             * カラãƒ?±žæ?を指定しますã?
2063             * WRITABLE エãƒ?‚£ターは、設定å?にアンãƒ??バã? "_" が含まれてã�?‚‹場合にã€?
2064             * そã?値を書込み禁止にする機è?ですã?これは、エãƒ?‚£ター自身がå?を判断して
2065             * 書き込み許可か禁止かを判断してã�?�¾すã?
2066             * こã?動きを汎用çš?�«するため、指定ã?カラãƒ?‚’カンマ区åˆ?‚Šæ–?­?CSV)でæŒ?®?
2067             * することにより、レンãƒ?ƒ©ーとエãƒ?‚£ターを設定å?によって動的にåˆ?‚Š替える
2068             * 機è?を実現しますã?
2069             * そã?場合ã?表示/編é›?�¨もに、å?頭のアンãƒ??バã?は削除されますã?
2070             * またã?全カラãƒ?�«つã�?�¦、有効にする場合ã?、writableControl="*" を設定しますã?
2071             *
2072             * @og.rev 3.8.0.9 (2005/10/17) 新規追åŠ?
2073             *
2074             * @param  wrtCtrl 書き込み制御を行いたいカラãƒ?‚’CSV形式でæŒ?®?
2075             */
2076            public void setWritableControl( final String wrtCtrl ) {
2077                    writableControl = nval( getRequestParameter( wrtCtrl ),writableControl );
2078            }
2079    
2080            /**
2081             * 【TAG】HILIGHT_ROW機è?[true:有効/false:無効]を指定しまã�?
2082             *              (初期値:VIEW_USE_HILIGHT_ROW[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_HILIGHT_ROW}])ã€?
2083             *
2084             * @og.tag
2085             * HILIGHT_ROW機è?は、チェãƒ?‚¯ボックスã‚?ƒ©ジオボタンで行選択した際に、どの行が選択されたã�?
2086             * 判るよã�?�«行ã?ハイライト表示を行う機è?ですã?
2087             * さらに、行ã?任意ã?ç®?‰€をクリãƒ?‚¯してもã?チェãƒ?‚¯がå?りã?ハイライト表示されますã?
2088             * こã?属æ?でã€?true" を指定すると、有効になりますã?
2089             * "false" の場合ã?、無効ですã?
2090             * (初期値:ユーザー定数のVIEW_USE_HILIGHT_ROW[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_HILIGHT_ROW}])ã€?
2091             *
2092             * @og.rev 3.8.6.0 (2006/09/29) HILIGHT_ROW機è?の有効/無効を指定しますã?
2093             *
2094             * @param  hilightRow  HILIGHT_ROW機è?の有効/無効を指å®?[true:有効/false:無効]
2095             * @see         org.opengion.hayabusa.common.SystemData#VIEW_USE_HILIGHT_ROW
2096             */
2097            public void setUseHilightRow( final String hilightRow ) {
2098                    useHilightRow = nval( getRequestParameter( hilightRow ),useHilightRow );
2099            }
2100    
2101            /**
2102             * 【TAG】ogPopup で検索結果の値を返すキーをã?CSV形式でæŒ?®šしますã?
2103             *
2104             * @og.tag
2105             * popup の検索結果を返す画面で、結果のラジオボタンにイベントセãƒ?ƒˆしますã?
2106             * こã?場合ã?オープンもとのwindow に値を返しますが、そのキーをCSV形式で
2107             * æŒ?®šしますã?
2108             * なおã?こã?メソãƒ?ƒ‰は、ä¸?¦§表示(HTMLTable)関係ã?ビューのみでサポã?トして
2109             * ã�?�¾すが、チェãƒ?‚¯メソãƒ?ƒ‰の関係で、それ以外ã?ビューに適用してもç´??ã‚?
2110             * するようにしますã?(エラーにしません)
2111             *
2112             * @og.rev 3.8.6.1 (2006/10/20) 新規追åŠ?
2113             *
2114             * @param  rtnKeys ogPopupで値を返すカラãƒ?–‡字å?(CSV形å¼?
2115             */
2116            public void setPopupReturnKeys( final String rtnKeys ) {
2117                    popupReturnKeys = nval( getRequestParameter( rtnKeys ),popupReturnKeys );
2118            }
2119    
2120            /**
2121             * 【TAG】table要ç´?�«対して class 属æ?を設定しまã�?初期値:viewTable)ã€?
2122             *
2123             * @og.tag
2124             * Javaのè¨?ªž使用上ã?class で作æ?できなã�?�Ÿめã?代用として
2125             * clazz を使用してã�?‚‹ã€?
2126             * html で作æ?される属æ?はã€?class で作æ?されるã?
2127             * 初期値はã€?viewTable" ですã?
2128             *
2129             * @og.rev 4.0.0.0 (2007/04/16) 新規追åŠ?
2130             *
2131             * @param       cls     class属æ?を表す文字å?
2132             */
2133            public void setClazz( final String cls ) {
2134                    clazz = nval( getRequestParameter( cls ),clazz );
2135            }
2136    
2137            /**
2138             * 【TAG】ビューの高さを指定しますã?
2139             *
2140             * @og.tag
2141             * id=posDivのDIV要ç´?�«高さを指定しますã?
2142             * javascriptからこã?高さを見てビューの高さを決定しますã?
2143             * 単位もæŒ?®šして下さã�??
2144             *
2145             * @og.rev 4.2.0.0 (2008/03/18) 新規追åŠ?
2146             *
2147             * @param       high    class属æ?を表す文字å?
2148             */
2149            public void setHeight( final String high ) {
2150                    height = nval( getRequestParameter( high ), height );
2151            }
2152    
2153            /**
2154             * 【TAG】ビューのå¹?‚’æŒ?®šしますã?
2155             *
2156             * @og.tag
2157             * id=posDivのDIV要ç´?�«å¹?‚’æŒ?®šしますã?
2158             * javascriptからこã?値を見てビューのå¹?‚’決定しますã?
2159             * 単位もæŒ?®šして下さã�??(%æŒ?®š推奨)
2160             *
2161             * @og.rev 4.2.0.0 (2008/03/18) 新規追åŠ?
2162             *
2163             * @param       wide    æŒ?®šするビューのå¹?
2164             */
2165            public void setWidth( final String wide ) {
2166                    width = nval( getRequestParameter( wide ), width );
2167            }
2168    
2169            /**
2170             * 【TAG】ファイルãƒ?‚¦ンロード時の抜å?カラãƒ?��(CSV形å¼?を指定しますã?
2171             *
2172             * @og.tag
2173             * fileUDのファイル抜å?時ã?カラãƒ?‚’カンマ形式でæŒ?®šしますã?
2174             *
2175             * @og.rev 4.3.0.0 (2008/07/04) 新規追åŠ?
2176             *
2177             * @param       dwnClms 抜å?カラãƒ?��(CSV形å¼?
2178             */
2179            public void setFileDwnClms( final String dwnClms ) {
2180                    fileDwnClms = nval( getRequestParameter( dwnClms ), fileDwnClms );
2181            }
2182    
2183            /**
2184             * 【TAG】編é›?¡Œã?みを表示するかをæŒ?®šしますã?
2185             *
2186             * @og.tag
2187             * 編é›?¡Œã?みを表示するかをæŒ?®šしますã?trueがセãƒ?ƒˆされたå?合ã?編é›?¡?改廃Cがつã�?�¦ã�?‚‹è¡?
2188             * のみがå?力されますã?
2189             *
2190             * @og.rev 4.3.1.0 (2008/09/08)
2191             *
2192             * @param       sne     編é›?¡Œã?みをå?力するか
2193             */
2194            public void setSkipNoEdit( final String sne ) {
2195                    skipNoEdit = nval( getRequestParameter( sne ), skipNoEdit );
2196            }
2197    
2198            /**
2199             * 【TAGã€?通常は使ã�?�¾せん)画面遷移を行わなã�?½¢式ã?登録方法を使用するかをæŒ?®šしますã?
2200             *
2201             * @og.tag
2202             * 画面遷移なしã?登録を行うかどã�?�‹を指定しますã?
2203             * trueが指定された場合ã?HTML出力時に、各行に対して、行番号と改廃Cが属æ?æƒ??として付加されますã?
2204             * ここで出力されたæƒ??をå?に、JavaScriptの入れ替えå?ç�?‚’行いますã?
2205             *
2206             * こã?値は、og:headタグで設定å?、またã?前画面からの値を継承するためã€??常、この属æ?ではセãƒ?ƒˆしませんã€?
2207             *
2208             * @og.rev 4.3.3.0 (2008/10/01) 新規追åŠ?
2209             * @og.rev 5.1.3.0 (2010/02/01) noTransition、ajaxSubmitのコントロールは、requestで行うã€?
2210             *
2211             * @param   noTrnstn 画面遷移を行わなã�?½¢式ã?登録方法を使用するã�?
2212             */
2213            public void setNoTransition( final String noTrnstn ) {
2214                    setNoTransitionRequest( nval( getRequestParameter( noTrnstn ), isNoTransitionRequest() ) );
2215            }
2216    
2217            /**
2218             * 【TAG】選択行ハイライトã?制御をチェãƒ?‚¯ボックスのみで有効にするかをæŒ?®šしまã�?
2219             *              (初期値:VIEW_USE_HILIGHT_CHECK_ONLY[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_HILIGHT_CHECK_ONLY}])ã€?
2220             *
2221             * @og.tag
2222             * 選択行ハイライトã?制御をチェãƒ?‚¯ボックスのみで有効にするかをæŒ?®šしますã?
2223             * trueの場合ã?チェãƒ?‚¯ボックスのみで有効になりますã?
2224             * falseの場合ã?行å?体ã?å�?¦�ç´?�§有効になりますã?
2225             * trueにした場合ã?チェãƒ?‚¯ボックスが存在しなã�?¡Œに対しては、ハイライトすることはできませんã€?
2226             * (初期値:ユーザー定数のVIEW_USE_HILIGHT_CHECK_ONLY[={@og.value org.opengion.hayabusa.common.SystemData#VIEW_USE_HILIGHT_CHECK_ONLY}])ã€?
2227             *
2228             * @og.rev 4.3.7.0 (2009/06/01) 新規追åŠ?
2229             *
2230             * @param   hiCkOnly 選択行ハイライトã?制御をチェãƒ?‚¯ボックスのみで有効にするã�?
2231             * @see         org.opengion.hayabusa.common.SystemData#VIEW_USE_HILIGHT_CHECK_ONLY
2232             */
2233            public void setUseHilightCheckOnly( final String hiCkOnly ) {
2234                    useHilightCheckOnly = nval( getRequestParameter( hiCkOnly ), useHilightCheckOnly );
2235            }
2236    
2237            /**
2238             * 【TAG】ä¸?‹¬入力カラãƒ??アシスト機è?を利用するカラãƒ?��をã?カンマ区åˆ?‚Šで与えますã?
2239             *
2240             * @og.tag
2241             * これは、カラãƒ??書き込み時に、ä¸?‹¬入力可能なカラãƒ?‚’ヘッãƒ??に表示しã?
2242             * ä¸?‹¬登録できる機è?を提供しますã?
2243             * こã?機è?は、jsp/common/bulkSet.js JavaScript とともに提供されますã?
2244             * IE につã�?�¦は、クリãƒ??ボã?ドも利用できますã?Ctrl-C と Ctrl-V でそれぞれ
2245             * ä¸??のカラãƒ??値の取り出しと書き込みが可能になりますã?
2246             * (プルãƒ?‚¦ンの場合ã?オプションに上記が追åŠ?�•れまã�?
2247             * "*" を指定すると、すべてのカラãƒ?‚’(columnBulkSet)æŒ?®šしたことになりますã?
2248             *
2249             * シスãƒ?ƒ リソースで、VIEW_USE_DEFAULT_BULKSET ã‚?true に設定すると、å?期å?ã�?"*"
2250             * になりますã?で、å?別の view に設定しなくてもこの機è?が使用できるようになりますã?
2251             *
2252             * こã?機è?はä¸?‹¬入力ã?手間削減が目çš?�ªので、selectedType ã�?radio の場合ã?ã€?
2253             * こã?機è?は無効になりますã?
2254             *
2255             * @og.rev 5.2.1.0 (2010/10/01) 新規作æ?
2256             * @og.rev 5.4.4.0 (2012/02/01) コメント追åŠ?
2257             *
2258             * @param       columnName      例ï¼?OYA,KO,HJO,SU,DYSET,DYUPD"
2259             */
2260            public void setColumnBulkSet( final String columnName ) {
2261                    columnBulkSet = nval( getRequestParameter(columnName),columnBulkSet );
2262            }
2263    
2264            /**
2265             * タグの名称をã?返しますã?
2266             * 自åˆ??身のクラス名よりã?自動的に取り出せなã�?�Ÿめã?こã?メソãƒ?ƒ‰をオーバã?ライドしますã?
2267             *
2268             * @og.rev 4.0.0.0 (2005/01/31) 新規追åŠ?
2269             *
2270             * @return  タグの名称
2271             */
2272            @Override
2273            protected String getTagName() {
2274                    return "view" ;
2275            }
2276    
2277            /**
2278             * seqClmTableを使用するかどã�?�‹をチェãƒ?‚¯しまã�?
2279             *
2280             * ここではtableId,scope,é ?›®名などで厳å¯?�«チェãƒ?‚¯を行い、これらがå?のæƒ??と合è?しなã�??合ã?ã€?
2281             * ViewFormTypeの置き換えを行わなã�?‚ˆã�?�«しますã?
2282             *
2283             * @og.rev 5.1.6.0 (2010/05/01) 新規追åŠ?
2284             * @og.rev 5.3.6.0 (2011/06/01) Edit機è?見直しによりメソãƒ?ƒ‰名変更
2285             * @og.rev 5.7.7.3 (2014/06/27) カラãƒ?�Œ存在しなã�??合ã?挙動変更
2286             *
2287             * @param       config  DBEditConfigオブジェクãƒ?
2288             */
2289            private void makeEditTable( final DBEditConfig config ) {
2290                    String userViewClms = config.getViewClms();
2291                    DBLastSql lastSql = (DBLastSql)getSessionAttribute( HybsSystem.DB_LAST_SQL_KEY );
2292                    if( lastSql != null && lastSql.isGuiMatch( getGUIInfoAttri( "KEY" ) ) && lastSql.isTableMatch( tableId, getScope() ) ) {
2293                            // 1Queryに対してè¤?•°Viewがあるå?å�?左右åˆ?‰²など)、Viewのå�??目定義ã�?|'でåˆ?‰²されてセãƒ?ƒˆされてã�?�¾すã?
2294                            int vwCnt = nval( (String)getRequestAttribute( "h_vwCnt" ), 0 );
2295                            String[] clmGroup = StringUtil.csv2Array( userViewClms, '|' );
2296                            if( clmGroup.length > vwCnt ) {
2297                                    // AAA,!BBB,CCC,DDD,!EEE から!がつã�?�Ÿカラãƒ??みを取り除ã�?!があるé?目は非表示)
2298                                    String thisViewClms = ( "," + clmGroup[vwCnt] ).replaceAll( ",![^,]*", "" );
2299                                    // 行カウントカラãƒ?‚’表示するã€?
2300                                    if( table.getColumnNo( "rowCount", false ) >= 0 ) {
2301                                            thisViewClms += ",rowCount";
2302                                    }
2303                                    if( thisViewClms.length() > 0 ) {
2304                                            thisViewClms = thisViewClms.substring( 1 );
2305                                    }
2306                                    String[] clm = StringUtil.csv2Array( thisViewClms );
2307                                    boolean isUse = true;
2308                                    for( int i=0; i<clm.length; i++ ) {
2309                                            if( table.getColumnNo( clm[i], false ) < 0 ) {
2310                                                    isUse = false;
2311                                                    jspPrint( getResource().getLabel( editWarnwMsg, new String[] { getResource().getLabel(clm[i]) } ) + HybsSystem.BR ); // 5.7.7.3 (2014/06/27)
2312                                                    break;
2313                                            }
2314                                    }
2315                                    if( isUse ) {
2316                                            viewFormType    = "HTMLSeqClmTable";
2317                                            columnDisplay   = thisViewClms;
2318                                            clmSeqDisplay   = thisViewClms;
2319                                            noDisplay               = null;
2320                                            setRequestAttribute( "h_vwCnt", String.valueOf( vwCnt+1 ) );
2321                                    }
2322                            }
2323                    }
2324            }
2325    
2326            /**
2327             * Viewで表示したé ?›®をDBLastSqlにセãƒ?ƒˆしますã?
2328             *
2329             * ここではtableId,scopeなどで厳å¯?�«チェãƒ?‚¯を行い、これらがå?のæƒ??と合è?しなã�??合ã?ã€?
2330             * DBLastSqlへのセãƒ?ƒˆを行わなã�?‚ˆã�?�«しますã?
2331             *
2332             * @og.rev 5.1.6.0 (2010/05/01) 新規追åŠ?
2333             * @og.rev 5.3.9.0 (2011/09/01) ヘッãƒ??ソートを行ったå?合ã?編é›?¯¾象カラãƒ?�Œ正しく表示されなã�?ƒ�グを修正
2334             */
2335            private void setViewClms() {
2336                    // 4.3.0.0 (2008/07/04) fileUD 対応ã?抜き出すカラãƒ?‚’æŒ?®šしますã?
2337                    DBLastSql lastSql = (DBLastSql)getSessionAttribute( HybsSystem.DB_LAST_SQL_KEY );
2338                    if( lastSql != null ) {
2339                            String guikey = getGUIInfoAttri( "KEY" );
2340                            if( lastSql.isGuiMatch( guikey ) && lastSql.isTableMatch( tableId, getScope() ) && lastSql.isViewEditable() ) {
2341                                    // 5.1.6.0 (2010/05/01) fileDwnClmsが指定されなã�??合ã?、Viewで表示されたカラãƒ?‚’セãƒ?ƒˆ
2342                                    if( form.isEditable() ) {
2343    
2344                                            // 5.3.9.0 (2011/09/01) リクエストに対して初めて処ç�?�™るå?合に対象カラãƒ?‚’ä¸?—¦クリアするã€?
2345                                            boolean vwBln = nval( (String)getRequestAttribute( "h_vwBln" ), false );
2346                                            if( !vwBln ) {
2347                                                    lastSql.setViewClmNames( null );
2348                                                    lastSql.setClmNames( null );
2349                                                    setRequestAttribute( "h_vwBln", "true" );
2350                                            }
2351    
2352                                            String clmNames = lastSql.getViewClmNames();
2353                                            if( clmNames == null || clmNames.length() == 0 ) {
2354                                                    clmNames = nval( fileDwnClms, form.getViewClms() );
2355                                            }
2356                                            else {
2357                                                    // 1Queryに対してè¤?•°Viewがあるå?å�?左右åˆ?‰²など)、Viewのå�??目定義ã�?|'でåˆ?‰²されてセãƒ?ƒˆしますã?
2358                                                    clmNames += "|" + nval( fileDwnClms, form.getViewClms() );
2359                                            }
2360                                            lastSql.setViewClmNames( clmNames );
2361                                            lastSql.setClmNames( clmNames.replace( "|", "," ) );
2362                                            setSessionAttribute( HybsSystem.DB_LAST_SQL_KEY,lastSql );
2363                                    }
2364                                    else {
2365                                            lastSql.setViewNotEditable();
2366                                    }
2367                            }
2368                    }
2369            }
2370    
2371            /**
2372             * 【TAGã€?通常使ã�?�¾せん)Viewに関するæƒ??をセãƒ?‚·ョンにæƒ??を登録するかどã�?�‹を指定しまã�?初期値:true)ã€?
2373             *
2374             * @og.tag
2375             * 同ä¸?”»面IDで、è¤?•°のViewを表示する場合に利用しますã?
2376             * View関連のæƒ??をセãƒ?‚·ョンに登録し利用してã�?�¾すが、è¤?•°のViewが存在する場合に前ã?æƒ??が上書きされてしまã�?�¾すã?
2377             * è¤?•°のViewを利用する際に、メイン以外ã?Viewの値をfalseにæŒ?®šする事でセãƒ?‚·ョンへの保存をしませんã€?
2378             * (QueryTagのmainTransも同時に設定するか検討してください??
2379             *
2380             * 現段階では、セãƒ?‚·ョン保存抑制を行う値はstartNoのみですã?
2381             *
2382             * @og.rev 5.7.6.1 (2010/05/09) 新規作æ?
2383             *
2384             * @param  flag メイントランザクションかどã�?�‹
2385             */
2386            public void setMainView( final String flag ) {
2387                    isMainView = nval( getRequestParameter( flag ),isMainView );
2388            }
2389    
2390            /**
2391             * シリアライズ用のカスタãƒ?‚·リアライズ書き込みメソãƒ?ƒ‰
2392             *
2393             * @og.rev 4.0.0.0 (2006/09/31) 新規追åŠ?
2394             * @serialData ä¸?ƒ¨のオブジェクトã?、シリアライズされませんã€?
2395             *
2396             * @param       strm    ObjectOutputStreamオブジェクãƒ?
2397             * @throws IOException  入出力エラーが発生したå?å�?
2398             */
2399            private void writeObject( final ObjectOutputStream strm ) throws IOException {
2400                    strm.defaultWriteObject();
2401            }
2402    
2403            /**
2404             * シリアライズ用のカスタãƒ?‚·リアライズ読み込みメソãƒ?ƒ‰
2405             *
2406             * ここでは、transient 宣è¨?�•れたå†?ƒ¨変数のå†??初期化がå¿?¦�なフィールドã?み設定しますã?
2407             *
2408             * @og.rev 4.0.0.0 (2006/09/31) 新規追åŠ?
2409             * @serialData ä¸?ƒ¨のオブジェクトã?、シリアライズされませんã€?
2410             *
2411             * @param       strm    ObjectInputStreamオブジェクãƒ?
2412             * @see #release2()
2413             * @throws IOException  シリアライズに関する入出力エラーが発生したå?å�?
2414             * @throws ClassNotFoundException       クラスを見つけることができなかったå?å�?
2415             */
2416            private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
2417                    strm.defaultReadObject();
2418            }
2419    
2420            /**
2421             * こã?オブジェクトã?æ–?­—å?表現を返しますã?
2422             * 基本çš?�«ãƒ?ƒ�ãƒ?‚°目çš?�«使用しますã?
2423             *
2424             * @return こã?クラスのæ–?­—å?表現
2425             */
2426            @Override
2427            public String toString() {
2428                    return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
2429                                    .println( "VERSION"                     ,VERSION                        )
2430                                    .println( "tableId"                     ,tableId                        )
2431                                    .println( "viewFormId"          ,viewFormId                     )
2432                                    .println( "viewFormType"        ,viewFormType           )
2433                                    .println( "viewLinkId"          ,viewLinkId                     )
2434                                    .println( "viewMarkerId"        ,viewMarkerId           )
2435                                    .println( "command"                     ,command                        )
2436                                    .println( "startNo"                     ,startNo                        )
2437                                    .println( "tempStartNo"         ,tempStartNo            )
2438                                    .println( "pageSize"            ,pageSize                       )
2439                                    .println( "pagePlus"            ,pagePlus                       )
2440                                    .println( "columnWritable"      ,columnWritable         )
2441                                    .println( "noWritable"          ,noWritable                     )
2442                                    .println( "columnDisplay"       ,columnDisplay          )
2443                                    .println( "noDisplay"           ,noDisplay                      )
2444                                    .println( "columnGroup"         ,columnGroup            )
2445                                    .println( "noMessage"           ,noMessage                      )
2446                                    .println( "writable"            ,writable                       )
2447                                    .println( "checked"                     ,checked                        )
2448                                    .println( "skip"                        ,skip                           )
2449                                    .println( "rowspan"                     ,rowspan                        )
2450                                    .println( "selectedType"        ,selectedType           )
2451                                    .println( "numberType"          ,numberType                     )
2452                                    .println( "optTypeAttri"        ,optTypeAttri           )
2453                                    .println( "backLinkCount"       ,backLinkCount          )
2454                                    .println( "headerSkipCount"     ,headerSkipCount        )
2455                                    .println( "bodyString"          ,bodyString                     )
2456                                    .println( "useCheckControl"     ,useCheckControl        )
2457                                    .println( "useTableSorter"      ,useTableSorter         )
2458                                    .println( "useParam"            ,useParam                       )
2459                                    .println( "useConsistency"      ,useConsistency         )
2460                                    .println( "bgColorCycle"        ,bgColorCycle           )
2461                                    .println( "useScrollBar"        ,useScrollBar           )
2462                                    .println( "sortKeys"            ,sortKeys                       )
2463                                    .println( "loadMarker"          ,loadMarker                     )
2464                                    .println( "useSelectedRow"      ,useSelectedRow         )
2465                                    .println( "useSelRowColor"      ,useSelRowColor         )
2466                                    .println( "useAfterHtmlTag"     ,useAfterHtmlTag        )
2467                                    .println( "writableControl"     ,writableControl        )
2468                                    .println( "hight"                       ,height                         )
2469                                    .println( "width"                       ,width                          )
2470                                    .println( "skipNoEdit"          ,skipNoEdit                     )
2471                                    .println( "noTransition"        ,noTransition           )
2472                                    .println( "useHilightCheckOnly",useHilightCheckOnly)
2473                                    .println( "COMMAND_LIST"        ,COMMAND_LIST           )
2474                                    .println( "Other..."    ,getAttributes().getAttribute() )
2475                                    .fixForm().toString() ;
2476            }
2477    }