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