001 /*
002 * Copyright (c) 2009 The openGion Project.
003 *
004 * Licensed under the Apache License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.apache.org/licenses/LICENSE-2.0
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND,
013 * either express or implied. See the License for the specific language
014 * governing permissions and limitations under the License.
015 */
016 package org.opengion.hayabusa.taglib;
017
018 import org.opengion.hayabusa.common.HybsSystem;
019 import org.opengion.hayabusa.common.HybsSystemException;
020 import org.opengion.hayabusa.db.DBTableModel;
021 import org.opengion.hayabusa.db.DBColumn;
022 import org.opengion.hayabusa.io.TableReader;
023 import org.opengion.fukurou.util.ErrorMessage;
024 import org.opengion.fukurou.util.FileUtil;
025 import org.opengion.fukurou.util.Closer ;
026 import org.opengion.fukurou.util.StringUtil ;
027 import static org.opengion.fukurou.util.StringUtil.nval ;
028
029 import java.io.File;
030 import java.io.BufferedReader;
031 import java.util.Locale ;
032 import java.io.ObjectOutputStream;
033 import java.io.ObjectInputStream;
034 import java.io.IOException;
035
036 /**
037 * æŒ?®šã?ファイルã‚?DBTableModelオブジェクトã«èªã¿å–るファイル入力タグã§ã™ã?
038 *
039 * ãƒ??ã‚¿(DBTableModel)ã¨ã€ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ©(ReadTableã‚¿ã‚°)を与ãˆã¦ã€å¤–部ã‹ã‚‰ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ«ã™ã‚‹ã“ã¨ã§ã€?
040 * å?¨®å½¢å¼ã§ ãƒ??ã‚¿(DBTableModel)を表示ã•ã›ã‚‹ã“ã¨ã?ã§ãã¾ã™ã?
041 * ReadTableã‚¿ã‚° ã«å¯¾ã—ã¦ã€ã‚³ãƒžãƒ³ãƒ‰ã‚’与ãˆã‚‹ã“ã¨ã«ã‚ˆã‚Šã€å?部ã®ã‚³ãƒ³ãƒˆãƒãƒ¼ãƒ©ã®å®Ÿè£?«å¯¾å¿œã—ã?
042 * å½¢å¼ã§ãƒ??タを作æ?ã—ã¾ã™ã?
043 * ã™ã¹ã¦ã®èªå–ã?åˆæœŸã‚¯ãƒ©ã‚¹åã‚’ リソースファイル㮠TABLE_READER_DEFAULT_CLASS ã§æŒ?®šå¯èƒ½ã§ã™ã?
044 * ãã?å ´åˆã?AutoReader を指定ã™ã‚‹ã¨ã€Excel 㨠Default(ãƒ?‚スãƒ? ã‚’é?番ã«è©¦ã—ã¾ã™ã?
045 *
046 * 入力件数ã‚?DB.COUNT" ã‚ーã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã‚»ãƒ?ƒˆã—ã¦ã?¾ã™ã?
047 *
048 * @og.formSample
049 * â—å½¢å¼ï¼?
050 * <og:readTable
051 * command = "NEW"
052 * fileURL = "{@USER.ID}" èªã¿å–りå…?ƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå?
053 * filename = "{@filename}" èªã¿å–りå…?ƒ•ァイルå?
054 * encode = "UnicodeLittle" èªã¿å–りå…?ƒ•ァイルエンコードå
055 * maxRowCount = "10000" èªå–最大件数(0:[無制é™])
056 * />
057 * â—body?šãªã?
058 *
059 * â—Tag定義??
060 * <og:readTable
061 * readerClass ã€TAG】実際ã«èªã¿å‡ºã™ã‚¯ãƒ©ã‚¹åã?略称(TableReader_**** ã® ****)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?{@og.doc03Link readerClass åˆæœŸå€¤:Default})
062 * fileURL ã€TAG】èªã¿å–りå…?ƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåã‚’æŒ?®šã—ã¾ã?åˆæœŸå€¤:FILE_URL)
063 * filename ã€TAG】ファイルを作æ?ã™ã‚‹ã¨ãã?ファイルåã‚’ã‚»ãƒ?ƒˆã—ã¾ã?(åˆæœŸå€¤:FILE_FILENAME[=file.xls])
064 * encode ã€TAG】ファイルを作æ?ã™ã‚‹ã¨ãã?ファイルエンコーãƒ?‚£ãƒ³ã‚°åã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:FILE_ENCODE)
065 * maxRowCount ã€TAG】èªå–æ™‚ã®æœ?¤§å–り込ã¿ä»¶æ•°ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?(åˆæœŸå€¤:DB_MAX_ROW_COUNT[=1000])(0:[無制é™])
066 * separator ã€TAG】å¯å¤‰é•·ãƒ•ァイルを作æ?ã™ã‚‹ã¨ãã?é ?›®åŒºåˆ?‚Šæ–?—ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?
067 * tableId ã€TAGã€?通常使ã?¾ã›ã‚“)sessionã‹ã‚‰æ‰?¾—ã™ã‚?DBTableModelオブジェクトã? ID
068 * command ã€TAG】コマンãƒ?NEW,RENEW)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:NEW)
069 * modifyType ã€TAG】ファイルå–ã‚Šè¾¼ã¿æ™‚ã? モãƒ?‚£ãƒ•ァイタイãƒ?A(追åŠ?,C(æ›´æ–°),D(削除))を指定ã—ã¾ã?
070 * displayMsg ã€TAG】query ã®çµæžœã‚’ç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0033[ã€?»¶æ¤œç´¢ã—ã¾ã—ãŸ])
071 * notfoundMsg ã€TAGã€‘æ¤œç´¢çµæžœãŒã‚¼ãƒä»¶ã®å ´åˆã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0077[対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸ])
072 * sheetName ã€TAG】EXCELファイルをèªã¿è¾¼ã‚?¨ãã?シートåã‚’è¨å®šã—ã¾ã?åˆæœŸå€¤:æŒ?®šãªã?
073 * sheetNos ã€TAG】EXCELファイルをèªã¿è¾¼ã‚?¨ãã?シート番å·ã‚’è¤?•°è¨å®šã§ãã¾ã?åˆæœŸå€¤:0)
074 * sheetConstKeys ã€TAG】EXCELファイルをèªã¿è¾¼ã‚?¨ãã?固定å?ã¨ãªã‚‹ã‚«ãƒ©ãƒ?(CSVå½¢å¼?
075 * sheetConstAdrs ã€TAG】EXCELファイルをèªã¿è¾¼ã‚?¨ãã?固定å?ã¨ãªã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹(è¡?åˆ?è¡?åˆ?・・・)
076 * nullBreakClm ã€TAG】カラãƒ??ã« NULL ãŒç¾ã‚ŒãŸæ™‚点ã§èªã¿å–ã‚Šã‚’ä¸æ¢ã—ã¾ã™ã?è¤?•°Sheetã®å ´åˆã?ã€æ¬¡ã®Sheetã‚’èªã¿ã¾ã™ã?
077 * columns ã€TAG】èªã¿å–りå…?ƒ•ァイルã®ã‚«ãƒ©ãƒ??ã‚’ã?外部(ã‚¿ã‚°)よりæŒ?®šã—ã¾ã?
078 * useNumber ã€TAGã€‘è¡Œç•ªå·æƒ??ã‚’ã?使用ã—ã¦ã?‚‹/ã—ã¦ã?ªã„[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true)
079 * adjustColumns ã€TAG】èªã¿å–りå…?ƒ•ァイルã®ãƒ??タ変æ›ã‚’行ã†ã‚«ãƒ©ãƒ??をカンマ指定ã—ã¾ã?
080 * checkColumns ã€TAG】èªã¿å–りå…?ƒ•ã‚¡ã‚¤ãƒ«ã®æ•´åˆæ?ãƒã‚§ãƒ?‚¯ã‚’行ã†ã‚«ãƒ©ãƒ??をカンマ指定ã—ã¾ã?
081 * nullCheck ã€TAG】NULL ãƒã‚§ãƒ?‚¯ã™ã¹ãカラãƒ??をカンマ区åˆ?‚Š(CVSå½¢å¼?ã§æŒ?®šã—ã¾ã?
082 * language ã€TAG】タグå†?ƒ¨ã§ä½¿ç”¨ã™ã‚‹è¨?ªžã‚³ãƒ¼ãƒ‰[ja/en/zh/…]を指定ã—ã¾ã?
083 * stopZero ã€TAG】èªè¾¼ä»¶æ•°ãŒï¼ä»¶ã®ã¨ãå?ç?‚’続行ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false[続行ã™ã‚‹])
084 * scope ã€TAG】ã‚ャãƒ?‚·ãƒ¥ã™ã‚‹å ´åˆã?スコープ[request/page/session/applicaton]を指定ã—ã¾ã?åˆæœŸå€¤:session)
085 * mainTrans ã€TAGã€?通常使ã?¾ã›ã‚“)ã‚¿ã‚°ã§å‡¦ç?•れる処ç?Œãƒ¡ã‚¤ãƒ³ã¨ãªã‚‹ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³å‡¦ç?‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:false)
086 * skipRowCount ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)ãƒ??ã‚¿ã®èªã¿é£›ã?ã—ä»¶æ•°ã‚’è¨å®šã—ã¾ã?
087 * useRenderer ã€TAG】èªå–å?ç?§ãƒ©ãƒ™ãƒ«ã‚’コードリソースã«é€?¤‰æ›ã‚’行ã†ã‹ã©ã?‹ã‚’指定ã—ã¾ã?(åˆæœŸå€¤:USE_TABLE_READER_RENDERER[=false])
088 * debug ã€TAG】デãƒãƒƒã‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false)
089 * />
090 *
091 * â—使用ä¾?
092 *
093 * <og:readTable
094 * command = "NEW"
095 * readerClass = "Fixed" 固定長ãƒ??ã‚¿ã®èªã¿å–り
096 * modifyType = "{@modifyType}" èªå–時ã®ãƒ¢ãƒ?‚£ãƒ•ァイタイãƒ?A,Cç?
097 * fileURL = "{@USER.ID}" èªã¿å–りå…?ƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå?
098 * filename = "{@filename}" èªã¿å–りå…?ƒ•ァイルå?
099 * encode = "Shift_JIS" èªã¿å–りå…?ƒ•ァイルエンコードå
100 * maxRowCount = "10000" èªå–最大件数(0:[無制é™])
101 * columns = "OYA,KO,HJO,SU,DYSTR,DYEND" #NAME ã«å¯¾å¿œã™ã‚‹ã‚«ãƒ©ãƒ??
102 * useNumber = "false" 行番å·ã®å˜åœ¨ã—ãªã?ƒ‡ãƒ¼ã‚¿ã‚’èªã¿å–りã¾ã™ã?
103 * adjustColumns = "OYA,KO,HJO,SU" ãƒ??タ変æ›ã™ã‚‹ã‚«ãƒ©ãƒ??("*" ã§å…¨ã‚«ãƒ©ãƒ?
104 * checkColumns = "OYA,KO,HJO,SU" æ•´åˆæ?ãƒã‚§ãƒ?‚¯ã™ã‚‹ã‚«ãƒ©ãƒ??("*" ã§å…¨ã‚«ãƒ©ãƒ?
105 * nullCheck = "OYA,KO,SU" NULLãƒã‚§ãƒ?‚¯ã‚’実行ã—ã¾ã?"*" ã§å…¨ã‚«ãƒ©ãƒ?
106 * stopZero = "true" å–å¾?ä»¶ã®å ´åˆã«ä»¥é™ã?処ç?‚’åœæ¢ã—ã¾ã?
107 * skipRowCount = "4" ãƒ??ã‚¿ã®èªã¿é£›ã?ã—ä»¶æ•°(èªã¿è¾¼ã¿é–‹å§‹ã?ã€ã“ã®æ•°å—+1行目ã‹ã‚‰)
108 * />
109 *
110 * @og.group ファイル入�
111 *
112 * @version 4.0
113 * @author Kazuhiko Hasegawa
114 * @since JDK5.0,
115 */
116 public class ReadTableTag extends CommonTagSupport {
117 //* ã“ã?プãƒã‚°ãƒ©ãƒ??VERSIONæ–?—å?ã‚’è¨å®šã—ã¾ã™ã? {@value} */
118 private static final String VERSION = "5.5.8.5 (2012/11/27)" ;
119
120 private static final long serialVersionUID = 558520121127L ;
121
122 private static final int ERROR_ROW_COUNT = 200 ; // 4.0.0 (2007/05/25)
123
124 /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ? æ–°è¦ä½œæ? {@value} */
125 public static final String CMD_NEW = "NEW" ;
126 /** command å¼•æ•°ã«æ¸¡ã™äº‹ã?出æ¥ã‚?コマンãƒ? 冿¤œç´¢ {@value} */
127 public static final String CMD_RENEW = "RENEW" ;
128
129 private static final String[] COMMAND_LIST = new String[] { CMD_NEW , CMD_RENEW };
130
131 private String separator = TableReader.TAB_SEPARATOR; // é ?›®åŒºåˆ?‚Šæ–??
132 private String fileURL = HybsSystem.sys( "FILE_URL" );
133 private String filename = HybsSystem.sys( "FILE_FILENAME" ); // ファイルå?
134 private String encode = HybsSystem.sys( "FILE_ENCODE" ); // ファイルエンコーãƒ?‚£ãƒ³ã‚° "JISAutoDetect" ,"JIS", "EUC_JP", "MS932", "SJIS" , "Windows-31J" , "Shift_JIS"
135 private String readerClass = HybsSystem.sys( "TABLE_READER_DEFAULT_CLASS" ); // 3.8.5.3 (2006/08/07)
136 private int maxRowCount = -1;
137 // private String displayMsg = "MSG0033"; // ã€?»¶æ¤œç´¢ã—ã¾ã—ãŸã€?
138 private String displayMsg = HybsSystem.sys( "VIEW_DISPLAY_MSG" );
139 private String notfoundMsg = "MSG0077"; // 対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€?
140 private int executeCount = -1; // 検索/実行件数
141 private String modifyType = null;
142 // private String[] checkColumns = null; // 3.6.0.2 (2004/10/04) å–ã‚Šè¾¼ã¿æ™‚ãƒã‚§ãƒ?‚¯
143 // private String[] adjustColumns = null; // 3.6.0.2 (2004/10/04) å–ã‚Šè¾¼ã¿æ™‚ãƒã‚§ãƒ?‚¯
144 // private String[] nullCheck = null; // 3.8.0.2 (2005/06/30) nullãƒã‚§ãƒ?‚¯ç¢ºèª?
145 private String adjustColumns = null; // 3.6.0.2 (2004/10/04) å–ã‚Šè¾¼ã¿æ™‚ãƒã‚§ãƒ?‚¯
146 private String checkColumns = null; // 3.6.0.2 (2004/10/04) å–ã‚Šè¾¼ã¿æ™‚ãƒã‚§ãƒ?‚¯
147 private String nullCheck = null; // 3.8.0.2 (2005/06/30) nullãƒã‚§ãƒ?‚¯ç¢ºèª?
148 // private boolean allColumnCheck = false; // 3.6.0.2 (2004/10/04) å–ã‚Šè¾¼ã¿æ™‚ãƒã‚§ãƒ?‚¯
149
150 private transient DBTableModel table = null;
151 private String command = CMD_NEW;
152 private String tableId = HybsSystem.TBL_MDL_KEY ;
153 private String sheetName = null ; // 3.5.4.2 (2003/12/15)
154 private String sheetNos = null ; // 5.5.7.2 (2012/10/09) è¤?•°ã‚·ãƒ¼ãƒˆã‚’æŒ?®šã§ãるよã†ã«ã‚·ãƒ¼ãƒˆç•ªå·ã‚’指定ã§ãるよã†ã«ã™ã‚‹ã€?
155 private String sheetConstKeys = null ; // 5.5.8.2 (2012/11/09) 固定å?ã¨ãªã‚‹ã‚«ãƒ©ãƒ?(CSVå½¢å¼?
156 private String sheetConstAdrs = null ; // 5.5.8.2 (2012/11/09) 固定å?ã¨ãªã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹(è¡?åˆ?è¡?åˆ?・・・)
157 private String nullBreakClm = null; // 5.5.8.2 (2012/11/09) å–è¾¼ã¿æ¡ä»¶/Sheet BREAKæ¡ä»¶
158
159 // 3.5.4.5 (2004/01/23) 外部よりカラãƒ??(カンマ区åˆ?‚Š)を指定ã§ãるよã†ã«ã™ã‚‹ã€?
160 private String columns = null;
161 private boolean useNumber = true; // 3.7.0.5 (2005/04/11)
162
163 private boolean stopZero = false; // 4.3.7.0 (2009/06/01) stopZero属æ?追åŠ?
164
165 // 5.1.8.0 (2010/07/01) AutoReaderã®Calc対å¿?
166 // private static final String[] AUTO_READER_CLASS = new String[] { "Excel","Default" ,"Default" };
167 // private static final String[] AUTO_READER_ENCODE = new String[] { null ,"UnicodeLittle","Windows-31J" };
168 private static final String[] AUTO_READER_CLASS = new String[] { "Excel","Calc","Default" ,"Default" };
169 private static final String[] AUTO_READER_ENCODE = new String[] { null ,null ,"UnicodeLittle","Windows-31J" };
170
171 private boolean isMainTrans = true; // 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??見直ã?
172 private int skipRowCount = 0; // 5.1.6.0 (2010/05/01) ãƒ??ã‚¿ã®èªã¿é£›ã?ã—è¨å®?
173
174 // 5.2.1.0 (2010/10/01) èªå–å?ç?§ã‚³ãƒ¼ãƒ‰ãƒªã‚½ãƒ¼ã‚¹ã®ãƒ©ãƒ™ãƒ«å¤‰æ›ã‚’行ã†ã‹ã©ã?‹
175 private boolean useRenderer = HybsSystem.sysBool( "USE_TABLE_READER_RENDERER" ); // 5.2.1.0 (2010/10/01)
176
177 /**
178 * Taglibã®çµ‚äº?‚¿ã‚°ãŒè¦‹ã¤ã‹ã£ãŸã¨ãã«å‡¦ç?™ã‚?doEndTag() ã‚?オーãƒã?ライドã—ã¾ã™ã?
179 *
180 * @og.rev 3.0.1.4 (2003/03/17) displayMsg ã??Byteã®å ´åˆã?ã€ä»¶æ•°ã‚‚表示ã—ãªã?‚ˆã?«å¤‰æ›´ã€?
181 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€?
182 * @og.rev 3.5.4.1 (2003/12/01) 引数㮠BufferedReader ã‚’ã?InputStream ã«å¤‰æ›´ã€?
183 * @og.rev 3.5.4.3 (2004/01/05) 引数㮠InputStream ã‚’ã? BufferedReader ã«æˆ»ã™ã?
184 * @og.rev 3.5.6.5 (2004/08/09) 暫定的ã«ã€DBTableModelã‚’å?行削除ã—ã¾ã™ã?
185 * @og.rev 3.6.0.0 (2004/09/24) DBTableModel ã®å…ˆè¡Œå‰Šé™¤ã¯ã€scope="session" ã®å ´åˆã?ã¿ã€?
186 * @og.rev 3.6.0.2 (2004/10/04) å–ã‚Šè¾¼ã¿æ™‚ãƒã‚§ãƒ?‚¯ç”¨ã«ã€checkColumns,adjustColumns 属æ?追åŠ?
187 * @og.rev 3.6.0.8 (2004/11/19) DBTableModel をセーブã™ã‚‹æ™‚ã«ã€ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³ãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã?
188 * @og.rev 3.8.5.3 (2006/08/07) readerClassã?"Excel"ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸã¨ãã?ã‚‚ã†ä¸?º¦Defaultã§å†èªå–を行ã„ã¾ã™ã?
189 * @og.rev 4.0.0.0 (2007/10/12) checkTableColumn å‰ã«ã€modifyType è¨å®šã‚’行ã„ã¾ã™ã?
190 * @og.rev 4.0.0.0 (2007/10/18) メãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹çµ±å? getResource().getMessage > getResource().getLabel )
191 * @og.rev 4.3.1.1 (2008/10/08) columnsãŒæŒ‡å®šã•れã¦ã?‚‹å ´åˆã?ã€AutoReaderç¦æ¢
192 * @og.rev 4.3.7.0 (2009/06/01) stopZero機è?,DB.COUNTリクエストã‚ーã¸èªè¾¼ä»¶æ•°ã‚»ãƒ?ƒˆã‚’追åŠ?
193 * @og.rev 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??ã€DBTableModelãŒæ–°è¦ä½œæ?ã•れãŸå?ç?§ã®ã¿è¡Œã†ã€?
194 * @og.rev 5.1.8.0 (2010/07/01) AutoReaderã®Calc対å¿?
195 * @og.rev 5.1.9.0 (2010/08/01) AutoReaderã§ã®Exceptionã®åˆ¤å®šã‚’Throwableã«å¤‰æ›´
196 *
197 * @return 後続å?ç??æŒ?¤º
198 */
199 @Override
200 public int doEndTag() {
201 debugPrint(); // 4.0.0 (2005/02/28)
202 if( check( command, COMMAND_LIST ) ) {
203 useMainTrans( isMainTrans ); // 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??見直ã?
204 startQueryTransaction( tableId ); // 3.6.0.8 (2004/11/19)
205
206 // 3.5.6.5 (2004/08/09) 削除ã™ã‚‹ã®ã¯ã€ã‚»ãƒ?‚·ãƒ§ãƒ³ã®ã‚ªãƒ–ジェクトã§ã‚ˆã„ã€?
207 // 3.6.0.0 (2004/09/24) 削除ã™ã‚‹ã®ã¯ã€scope="session" ã®å ´åˆã?ã¿ã€?
208 if( "session".equals( getScope() ) ) {
209 removeSessionAttribute( tableId );
210 removeSessionAttribute( HybsSystem.VIEWFORM_KEY );
211 }
212
213 if( maxRowCount < 0 ) {
214 maxRowCount = sysInt( "DB_MAX_ROW_COUNT" );
215 }
216
217 // ファイル ã®èªã¿è¾¼ã¿?šAutoReader 処ç?
218 BufferedReader pw = null;
219 final String[] READER_CLASS ;
220 final String[] READER_ENCODE ;
221 if( "AutoReader".equalsIgnoreCase( readerClass ) ) {
222 // 4.3.1.1 (2008/10/08)
223 if( columns != null && columns.length() > 0 ) {
224 String errMsg = "columnsãŒæŒ‡å®šã•れã¦ã?‚‹å ´åˆã?ã€readerClass=\"AutoReader\"ã¯ä½¿ãˆã¾ã›ã‚“";
225 throw new HybsSystemException( errMsg ); // 4.3.4.4 (2009/01/01)
226 }
227 READER_CLASS = AUTO_READER_CLASS ;
228 READER_ENCODE = AUTO_READER_ENCODE;
229 }
230 else {
231 READER_CLASS = new String[] { readerClass };
232 READER_ENCODE = new String[] { encode };
233 }
234
235 StringBuilder tempMsg = new StringBuilder();
236 for( int i=0; i<READER_CLASS.length; i++ ) {
237 readerClass = READER_CLASS[i];
238 encode = READER_ENCODE[i];
239
240 try {
241 // 5.1.8.0 (2010/07/01) AutoReaderã®Calc対å¿?
242 // if( "Excel".equalsIgnoreCase( readerClass ) ) {
243 if( "Excel".equalsIgnoreCase( readerClass ) || "Calc".equalsIgnoreCase( readerClass ) ) {
244 create( null );
245 }
246 else {
247 pw = getBufferedReader();
248 create( pw );
249 }
250 // æˆåŠŸã™ã‚Œã°ã€ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’クリアã—ã¦ã€ãã®å ´ã§æŠœã‘ã‚‹ã?
251 tempMsg = null;
252 break;
253 }
254 // 3.8.5.3 (2006/08/07) readerClassã?"Excel"ã§ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸã¨ãã?ã‚‚ã†ä¸?º¦Defaultã§å†èªå–を行ã„ã¾ã™ã?
255 // 5.1.9.0 (2010/08/01) RuntimeExceptionç³»ã®ExceptionãŒã‚ャãƒ?ƒã§ããªã?Ÿã‚ã?Throwableã§å—ã‘ã‚?
256 // catch( HybsSystemException ex ) { catch( HybsSystemException ex ) {
257 catch( Throwable th ) {
258 tempMsg.append( "readerClass=[" ).append( readerClass )
259 .append( "],encode=[" ).append( encode )
260 .append( "] Error!" ).append( HybsSystem.CR )
261 .append( th.getMessage() ).append( HybsSystem.CR ) ;
262
263 // String tmp = "readerClass=[" + readerClass + "],encode=[" + encode + "] Error!"
264 // + HybsSystem.CR
265 // + ex.getMessage()
266 // + HybsSystem.CR ;
267 // System.err.print( tmp );
268 // tempMsg += tmp ;
269 }
270 finally {
271 Closer.ioClose( pw ); // 4.0.0 (2006/01/31) close 処ç?™‚ã® IOException ã‚’ç„¡è¦?
272 }
273 }
274
275 if( tempMsg != null ) { // æœ?¾Œã¾ã§ã‚¨ãƒ©ãƒ¼ãŒã‚れã?ã€ä¾‹å¤–å?ç?‚’発行ã—ã¾ã™ã?
276 System.err.print( tempMsg.toString() );
277 throw new HybsSystemException( tempMsg.toString() );
278 }
279
280 if( table != null ) {
281 // 3.6.0.2 (2004/10/04)
282 // table = setAdjustTable( table );
283
284 // 4.0.0.0 (2007/10/12) checkTableColumn å‰ã«ã€modifyType è¨å®šã‚’行ã„ã¾ã™ã?
285 executeCount = table.getRowCount();
286 if( modifyType != null ) {
287 for( int row=0; row<executeCount; row++ ) {
288 table.setModifyType( row,modifyType );
289 }
290 }
291
292 ErrorMessage errMsg = checkTableColumn( table );
293 if( errMsg != null && ! errMsg.isOK()) {
294 jspPrint( TaglibUtil.makeHTMLErrorTable( errMsg,getResource() ) );
295 return SKIP_PAGE ;
296 }
297
298 }
299 // 3.6.0.8 (2004/11/19) トランザクションãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã?
300 if( ! commitTableObject( tableId, table ) ) {
301 jspPrint( "ReadTableTag Query処ç?Œå‰²ã‚Šè¾¼ã¾ã‚Œã¾ã—ãŸã€?BTableModel ã¯ç™»éŒ²ã—ã¾ã›ã‚“ã€? );
302 return (SKIP_PAGE);
303 }
304
305 StringBuilder buf = new StringBuilder( HybsSystem.BUFFER_SMALL );
306
307 // 実行件数ã®è¡¨ç¤º command="NEW" ã®ã¨ãã?ã¿ã€displayMsg を表示ã•ã›ã¾ã™ã?
308 // 4.0.0 (2005/11/30) 出力é?ã®å¤‰æ›´ã€‚ä¸?•ªæœ??ã«å‡ºåŠ›ã—ã¾ã™ã?
309 // boolean useStatusBar = HybsSystem.sysBool( "VIEW_USE_DISPLAY_MSG" );
310 if( CMD_NEW.equals( command ) ) {
311 // if( useStatusBar && executeCount > 0 && displayMsg != null && displayMsg.length() > 0 ) {
312 if( executeCount > 0 && displayMsg != null && displayMsg.length() > 0 ) {
313 buf.append( executeCount );
314 // buf.append( getResource().getMessage( displayMsg ) );
315 buf.append( getResource().getLabel( displayMsg ) );
316 buf.append( HybsSystem.BR );
317 }
318 else if( executeCount == 0 && notfoundMsg != null && notfoundMsg.length() > 0 ) {
319 // buf.append( getResource().getMessage( notfoundMsg ) );
320 buf.append( getResource().getLabel( notfoundMsg ) );
321 buf.append( HybsSystem.BR );
322 }
323 }
324
325 // 4.3.7.0 (2009/06/01) èªè¾¼ä»¶æ•°ã‚’ã?"DB.COUNT" ã‚ーã§ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã‚»ãƒ?ƒˆã™ã‚‹ã€?
326 setRequestAttribute( "DB.COUNT" , String.valueOf( executeCount ) );
327
328 jspPrint( buf.toString() );
329 }
330
331 // 4.3.7.0 (2009/06/01) stopZero機è?を追åŠ?
332 final int rtnCode ;
333 if( executeCount == 0 && stopZero ) {
334 rtnCode = SKIP_PAGE;
335 }
336 else {
337 rtnCode = EVAL_PAGE;
338 }
339
340 // return(EVAL_PAGE);
341 return ( rtnCode );
342 }
343
344 /**
345 * タグリブオブジェクトをリリースã—ã¾ã™ã?
346 * ã‚ャãƒ?‚·ãƒ¥ã•れã¦å†åˆ©ç”¨ã•れるã?ã§ã€ãƒ•ィールドã?åˆæœŸè¨å®šã‚’行ã„ã¾ã™ã?
347 *
348 * @og.rev 2.0.0.4 (2002/09/27) カスタãƒ?‚¿ã‚°ã® release() メソãƒ?ƒ‰ã‚’ã?追åŠ?
349 * @og.rev 3.1.1.2 (2003/04/04) Tomcat4.1 対応ã?release2() ã‚?doEndTag()ã§å‘¼ã¶ã€?
350 * @og.rev 3.1.3.0 (2003/04/10) FILE_ENCODE ã‹ã‚‰ã€ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æƒ…å ±ã‚’å–å¾—ã™ã‚‹ã?
351 * @og.rev 3.1.4.0 (2003/04/18) command 属æ?ã«ã€å?期å?(NEW)ã‚’è¨å®šã™ã‚‹ã?
352 * @og.rev 3.5.4.2 (2003/12/15) EXCELã®ã‚·ãƒ¼ãƒˆåを指定ã§ãるよã†ã«å¤‰æ›´ã€?
353 * @og.rev 3.5.4.5 (2004/01/23) 外部よりカラãƒ??(カンマ区åˆ?‚Š)を指定ã§ãるよã†ã«ã™ã‚‹ã€?
354 * @og.rev 3.6.0.2 (2004/10/04) checkColumns,adjustColumns,allColumnCheck 属æ?追åŠ?
355 * @og.rev 3.7.0.5 (2005/04/11) useNumber 属æ?を追åŠ?—ã¾ã™ã?
356 * @og.rev 3.8.0.2 (2005/06/30) nullCheck 属æ?追åŠ?
357 * @og.rev 3.8.5.3 (2006/08/07) readerClass 属æ?ã®åˆæœŸå€¤ã‚’シスãƒ?ƒ リソースよりå–å¾—ã—ã¾ã™ã?
358 * @og.rev 4.3.7.0 (2009/06/01) stopZero属æ?追åŠ?
359 * @og.rev 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??ã€DBTableModelãŒæ–°è¦ä½œæ?ã•れãŸå?ç?§ã®ã¿è¡Œã†ã€?
360 * @og.rev 5.1.6.0 (2010/05/01) ãƒ??ã‚¿ã®èªã¿é£›ã?ã—è¨å®?skipRowCount 属æ?追åŠ?
361 * @og.rev 5.2.1.0 (2010/10/01) èªå–å?ç?§ã‚³ãƒ¼ãƒ‰ãƒªã‚½ãƒ¼ã‚¹ã®ãƒ©ãƒ™ãƒ«å¤‰æ›ã‚’行ã†ã‹ã©ã?‹ useRenderer 属æ?追åŠ?
362 * @og.rev 5.5.7.2 (2012/10/09) è¤?•°ã‚·ãƒ¼ãƒˆã‚’æŒ?®šã§ãるよã†ã«ã‚·ãƒ¼ãƒˆç•ªå·ã‚’指定ã§ãるよã†ã«ã€sheetNos属æ?追åŠ?
363 * @og.rev 5.5.8.2 (2012/11/09) 固定å?ã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®æŒ?®šã?ãŸã‚ã®ã€sheetConstKeysã€sheetConstAdrs属æ?追åŠ?
364 * @og.rev 5.5.8.2 (2012/11/09) カラãƒ??ã« NULL ãŒç¾ã‚ŒãŸæ™‚点ã§èªã¿å–ã‚Šã‚’ä¸æ¢ã™ã‚‹ã€nullBreakClm属æ?追åŠ?
365 */
366 @Override
367 protected void release2() {
368 super.release2();
369 separator = TableReader.TAB_SEPARATOR; // é ?›®åŒºåˆ?‚Šæ–??
370 fileURL = HybsSystem.sys( "FILE_URL" );
371 filename = HybsSystem.sys( "FILE_FILENAME" ); // ファイルå?
372 encode = HybsSystem.sys( "FILE_ENCODE" ); // ファイルエンコーãƒ?‚£ãƒ³ã‚° "JISAutoDetect" ,"JIS", "EUC_JP", "MS932", "SJIS" , "Windows-31J" , "Shift_JIS"
373 readerClass = HybsSystem.sys( "TABLE_READER_DEFAULT_CLASS" ); // 3.8.5.3 (2006/08/07)
374 maxRowCount = -1;
375 // displayMsg = "MSG0033"; // ã€?»¶æ¤œç´¢ã—ã¾ã—ãŸã€?
376 displayMsg = HybsSystem.sys( "VIEW_DISPLAY_MSG" );
377 notfoundMsg = "MSG0077"; // 対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸã€?
378 executeCount = -1; // 検索/実行件数
379 modifyType = null;
380 command = CMD_NEW;
381 table = null;
382 tableId = HybsSystem.TBL_MDL_KEY ;
383 sheetName = null; // 3.5.4.2 (2003/12/15)
384 sheetNos = null ; // 5.5.7.2 (2012/10/09) è¤?•°ã‚·ãƒ¼ãƒˆã‚’æŒ?®šã§ãるよã†ã«ã‚·ãƒ¼ãƒˆç•ªå·ã‚’指定ã§ãるよã†ã«ã™ã‚‹ã€?
385 sheetConstKeys = null ; // 5.5.8.2 (2012/11/09) 固定å?ã¨ãªã‚‹ã‚«ãƒ©ãƒ?(CSVå½¢å¼?
386 sheetConstAdrs = null ; // 5.5.8.2 (2012/11/09) 固定å?ã¨ãªã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹(è¡?åˆ?è¡?åˆ?・・・)
387 nullBreakClm = null; // 5.5.8.2 (2012/11/09) å–è¾¼ã¿æ¡ä»¶/Sheet BREAKæ¡ä»¶
388 columns = null; // 3.5.4.5 (2004/01/23)
389 useNumber = true; // 3.7.0.5 (2005/04/11)
390 adjustColumns = null; // 3.6.0.2 (2004/10/04) å–ã‚Šè¾¼ã¿æ™‚ãƒã‚§ãƒ?‚¯
391 checkColumns = null; // 3.6.0.2 (2004/10/04) å–ã‚Šè¾¼ã¿æ™‚ãƒã‚§ãƒ?‚¯
392 nullCheck = null; // 3.8.0.2 (2005/06/30)
393 // allColumnCheck = false; // 3.6.0.2 (2004/10/04) å–ã‚Šè¾¼ã¿æ™‚ãƒã‚§ãƒ?‚¯
394 stopZero = false; // 4.3.7.0 (2009/06/01) soptZero追�
395 isMainTrans = true; // 5.1.6.0 (2010/05/01) DBLastSqlã®å‡¦ç??見直ã?
396 skipRowCount = 0; // 5.1.6.0 (2010/05/01) ãƒ??ã‚¿ã®èªã¿é£›ã?ã—è¨å®?
397 useRenderer = HybsSystem.sysBool( "USE_TABLE_READER_RENDERER" ); // 5.2.1.0 (2010/10/01)
398 }
399
400 /**
401 * TableReader ã®å®Ÿã‚ªãƒ–ジェクトを生æ?ã—ã¦?ŒBufferedReader ã«æ›¸ãè¾¼ã¿ã¾ã™ã?
402 *
403 * @og.rev 3.5.4.1 (2003/12/01) 引数㮠BufferedReader ã‚’ã?InputStream ã«å¤‰æ›´ã€?
404 * @og.rev 3.5.4.2 (2003/12/15) TableReader ã®ã‚µãƒ–クラスå変更ã€?
405 * @og.rev 3.5.4.2 (2003/12/15) EXCELã®ã‚·ãƒ¼ãƒˆåを指定ã§ãるよã†ã«å¤‰æ›´ã€?
406 * @og.rev 3.5.4.3 (2004/01/05) 引数㮠InputStream ã‚’ã? BufferedReader ã«æˆ»ã™ã?
407 * @og.rev 3.5.4.5 (2004/01/23) TableReader ã«ã€encode を渡ã™ã‚ˆã?«å¤‰æ›´ã€?
408 * @og.rev 3.5.6.0 (2004/06/18) å?¨®ãƒ—ラグイン関連付ã‘è¨å®šã‚’ã€ã‚·ã‚¹ãƒ?ƒ パラメータ ã«è¨˜è¿°ã—ã¾ã™ã?
409 * @og.rev 3.7.0.5 (2005/04/11) useNumber 属æ?を追åŠ?—ã¾ã™ã?
410 * @og.rev 4.0.0.0 (2005/01/31) ã‚ãƒ¼ã®æŒ?®šã‚’ã€TableReader. ã‹ã‚‰ã€TableReader_ ã«å¤‰æ›´ã—ã¾ã™ã?
411 * @og.rev 4.0.0.0 (2005/01/31) lang â‡?ResourceManager ã¸å¤‰æ›´
412 * @og.rev 5.1.6.0 (2010/05/01) ãƒ??ã‚¿ã®èªã¿é£›ã?ã—è¨å®?skipRowCount 属æ?追åŠ?
413 * @og.rev 5.2.1.0 (2010/10/01) èªå–å?ç?§ã‚³ãƒ¼ãƒ‰ãƒªã‚½ãƒ¼ã‚¹ã®ãƒ©ãƒ™ãƒ«å¤‰æ›ã‚’行ã†ã‹ã©ã?‹è¨å®?useRenderer 属æ?追åŠ?
414 * @og.rev 5.5.7.2 (2012/10/09) è¤?•°ã‚·ãƒ¼ãƒˆã‚’æŒ?®šã§ãるよã†ã«ã‚·ãƒ¼ãƒˆç•ªå·ã‚’指定ã§ãるよã†ã«ã€sheetNos属æ?追åŠ?
415 * @og.rev 5.5.8.2 (2012/11/09) 固定å?ã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®æŒ?®šã?ãŸã‚ã®ã€sheetConstKeysã€sheetConstAdrs属æ?追åŠ?
416 * @og.rev 5.5.8.2 (2012/11/09) カラãƒ??ã« NULL ãŒç¾ã‚ŒãŸæ™‚点ã§èªã¿å–ã‚Šã‚’ä¸æ¢ã™ã‚‹ã€nullBreakClm属æ?追åŠ?
417 *
418 * @param out 出力ã™ã‚‹BufferedReaderオブジェクãƒ?
419 */
420 protected void create( final BufferedReader out ) {
421
422 String className = HybsSystem.sys( "TableReader_" + readerClass ) ; // 4.0.0 (2005/01/31)
423 TableReader reader = (TableReader)HybsSystem.newInstance( className ); // 3.5.5.3 (2004/04/09)
424
425 reader.setResourceManager( getResource() ); // 4.0.0 (2005/01/31)
426 reader.setSeparator( separator );
427 reader.setEncode( encode ); // 3.5.4.5 (2004/01/23)
428 reader.setColumns( columns ); // 3.5.4.5 (2004/01/23)
429 reader.setUseNumber( useNumber ); // 3.7.0.5 (2005/04/11)
430 reader.setMaxRowCount( maxRowCount );
431 reader.setSkipRowCount( skipRowCount ); // 5.1.6.0 (2010/05/01)
432 reader.setUseRenderer( useRenderer ); // 5.2.1.0 (2010/10/01)
433 reader.setDebug( isDebug() ); // 5.5.7.2 (2012/10/09) ãƒ?ƒãƒ?‚°æƒ??ã‚’å?力ã™ã‚‹ã‹ã©ã?‹ã‚’指å®?
434 if( reader.isExcel() ) { // 3.5.4.3 (2004/01/05)
435 reader.setFilename( HybsSystem.url2dir( StringUtil.urlAppend( fileURL,filename )));
436 reader.setSheetName( sheetName ); // 3.5.4.2 (2003/12/15)
437 reader.setSheetNos( sheetNos ); // 5.5.7.2 (2012/10/09) è¤?•°ã‚·ãƒ¼ãƒˆã‚’æŒ?®šã§ãるよã†ã«ã‚·ãƒ¼ãƒˆç•ªå·ã‚’指定ã§ãるよã†ã«ã™ã‚‹ã€?
438 reader.setSheetConstData( sheetConstKeys,sheetConstAdrs ) ; // 5.5.8.2 (2012/11/09) 固定å?ã¨ãªã‚‹ã‚«ãƒ©ãƒ?ã€ã‚¢ãƒ‰ãƒ¬ã‚¹ã®æŒ?®?
439 reader.setNullBreakClm( nullBreakClm ) ; // 5.5.8.2 (2012/11/09) å–è¾¼ã¿æ¡ä»¶/Sheet BREAKæ¡ä»¶
440 reader.readDBTable();
441 }
442 else {
443 reader.readDBTable( out );
444 }
445 table = reader.getDBTableModel();
446 }
447
448 /**
449 * BufferedReader ã‚’å–å¾—ã—ã¾ã™ã?
450 *
451 * ã“ã“ã§ã¯ã€ä¸?ˆ¬çš?ªãƒ•ァイル出力をè€??ã—㟠BufferedReader を作æ?ã—ã¾ã™ã?
452 *
453 * @og.rev 2.2.0.0 (2002/12/17) ä¸å›½èª?国際化)対å¿?エンコードã?å–得方法変更
454 * @og.rev 3.1.3.0 (2003/04/10) FILE_ENCODE ã‹ã‚‰ã€ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æƒ…å ±ã‚’å–å¾—ã™ã‚‹ã?
455 * @og.rev 3.5.4.1 (2003/12/01) 引数㮠BufferedReader ã‚’ã?InputStream ã«å¤‰æ›´ã€?
456 * @og.rev 3.5.4.3 (2004/01/05) 引数㮠InputStream ã‚’ã? BufferedReader ã«æˆ»ã™ã?
457 * @og.rev 3.5.5.9 (2004/06/07) FileUtil.getBufferedReader を使用
458 *
459 * @return ファイルèªå–BufferedReaderオブジェクãƒ?
460 */
461 private BufferedReader getBufferedReader() {
462 if( filename == null ) {
463 String errMsg = "ファイルåãŒã‚»ãƒ?ƒˆã•れã¦ã?¾ã›ã‚“ã€?;
464 throw new HybsSystemException( errMsg );
465 }
466 String directory = HybsSystem.url2dir( fileURL );
467 File file = new File( StringUtil.urlAppend( directory,filename ) );
468
469 BufferedReader out = FileUtil.getBufferedReader( file,encode );
470
471 return out ;
472 }
473
474 /**
475 * adjustColumns ã«æŒ?®šã•れãŸã‚«ãƒ©ãƒ?‚’å†ç™»éŒ²ã—ã¾ã™ã?
476 * カラãƒ?‚ªãƒ–ジェクトã?DBType属æ?ã«å¯¾å¿œã—ãŸå¤‰æ›ã‚’行ã„ã€å?è¨å®šã—ã¾ã™ã?
477 *
478 * @og.rev 3.6.0.2 (2004/10/04) æ–°è¦ä½œæ?
479 *
480 * @param table DBTableModel 登録å‰ã?DBTableModel
481 *
482 * @return DBTableModel 登録後ã?DBTableModel
483 */
484 // private DBTableModel setAdjustTable( final DBTableModel table ) {
485 // if( adjustColumns != null && adjustColumns.length > 0 ) {
486 // int rowCnt = table.getRowCount();
487 // int[] clmNo = new int[adjustColumns.length];
488 // for( int i=0; i<clmNo.length; i++ ) {
489 // clmNo[i] = table.getColumnNo( adjustColumns[i] );
490 // }
491 //
492 // for( int row=0; row<rowCnt; row++ ) {
493 // String[] vals = table.getValues( row );
494 // for( int i=0; i<clmNo.length; i++ ) {
495 // int clm = clmNo[i];
496 // DBColumn dbClm = table.getDBColumn( clm );
497 // vals[clm] = dbClm.valueSet( vals[clm] );
498 // }
499 // table.setValues( vals,row );
500 // }
501 // }
502 // return table ;
503 // }
504
505 /**
506 * カラãƒ?–‡å—å?(CSVå½¢å¼?ã‹ã‚‰ã€ã‚«ãƒ©ãƒ?•ªå·é…å?を作æ?ã—ã¾ã™ã?
507 * 簡易メソãƒ?ƒ‰ã§ã™ã?
508 * 引数ãŒã?"*" ã®å ´åˆã?ã€å?カラãƒ?‚’æŒ?®šã—ãŸã“ã¨ã«ãªã‚Šã¾ã™ã?
509 * null ã®å ´åˆã?ã€ã‚µã‚¤ã‚ºã???ã®é…å?ã‚’è¿”ã—ã¾ã™ã?
510 *
511 * @og.rev 4.0.0.0 (2007/05/25) æ–°è¦ä½œæ?
512 *
513 * @param clms カラãƒ?–‡å—å?(CSVå½¢å¼?
514 * @param table DBTableModelオブジェク�
515 *
516 * @return カラãƒ?•ªå·é…å?(ç„¡ã??åˆã?ã€?•·ã•ï¼ã?é…å?)
517 */
518 private int[] makeClmNos( final String clms,final DBTableModel table ) {
519 final int[] clmNo;
520
521 if( clms == null ) {
522 clmNo = new int[0];
523 }
524 else if( "*".equals( clms ) ) {
525 int size = table.getColumnCount();
526 clmNo = new int[size];
527 for( int i=0; i<size; i++ ) {
528 clmNo[i] = i;
529 }
530 }
531 else {
532 String[] clmStr = StringUtil.csv2Array( clms );
533 int size = clmStr.length;
534 clmNo = new int[size];
535 for( int i=0; i<size; i++ ) {
536 clmNo[i] = table.getColumnNo( clmStr[i] );
537 }
538 }
539
540 return clmNo;
541 }
542
543 /**
544 * checkColumns ã«æŒ?®šã•れãŸã‚«ãƒ©ãƒ?‚’ãƒã‚§ãƒ?‚¯ã—ã¾ã™ã?
545 * カラãƒ?‚ªãƒ–ジェクトã?DBType属æ?ã«å¯¾å¿œã—ãŸãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã?
546 * ãƒã‚§ãƒ?‚¯çµæžœã§ã€ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ãŸå?åˆã?ã€ErrorMessage オブジェクトを
547 * è¿”ã—ã¾ã™ã?
548 * DBColumn#valueCheck( String ) ã®çµæžœã®ErrorMessageã‚’ã™ã¹ã¦ append
549 * ã—ã¦ã?ã¾ã™ã?
550 * useAdjust==true ã§ã€ã‹ã¤ã€ã‚¨ãƒ©ãƒ¼ãŒãªã??åˆã?ã€adjustColumns 処ç?µæžœã‚?
551 * DBTableModel ã«åæ˜ ã•ã›ã¾ã™ã?
552 * debug=true ã§ã€ã‚¨ãƒ©ãƒ¼æ™‚ã?詳細ãªãƒ??ã‚¿ã‚’å?力ã—ã¾ã™ã?
553 *
554 * @og.rev 3.6.0.2 (2004/10/04) æ–°è¦ä½œæ?
555 * @og.rev 3.8.0.2 (2005/06/30) nullãƒã‚§ãƒ?‚¯ç¢ºèª?
556 * @og.rev 4.0.0.0 (2007/05/25) 処ç??åºæ›¸ãæ›ã?
557 *
558 * @param table DBTableModelオブジェク�
559 *
560 * @return カラãƒ?‚ー ??値 ã®ã‚¨ãƒ©ãƒ¼ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚ªãƒ–ジェクãƒ?
561 */
562 private ErrorMessage checkTableColumn( final DBTableModel table ) {
563 ErrorMessage errMsg = new ErrorMessage( "Check Columns Error!" );
564
565 int rowCnt = table.getRowCount();
566 int[] adjClmNo = makeClmNos( adjustColumns,table );
567 int[] chkClmNo = makeClmNos( checkColumns,table );
568 int[] nllclmNo = makeClmNos( nullCheck,table );
569
570 boolean useAdjust = (adjClmNo.length > 0) ;
571
572 for( int row=0; row<rowCnt; row++ ) {
573 String[] vals = table.getValues( row );
574 DBColumn[] dbClms = table.getDBColumns();
575 boolean isError = false; // 5.5.7.2 (2012/10/09) エラー時ã?フラグ。ループã§ã‚¯ãƒªã‚¢ã™ã‚‹ã€?
576
577 // adjustColumns 処ç?
578 for( int i=0; i<adjClmNo.length; i++ ) {
579 int no = adjClmNo[i];
580 vals[no] = dbClms[no].valueSet( vals[no] );
581 }
582
583 // checkColumns 処ç?
584 for( int i=0; i<chkClmNo.length; i++ ) {
585 int no = chkClmNo[i];
586 // errMsg.append( row+1,dbClms[no].valueCheck( vals[no] ) );
587 ErrorMessage msg = dbClms[no].valueCheck( vals[no] );
588 if( msg.getKekka() > ErrorMessage.OK ) {
589 isError = true;
590 errMsg.append( row+1,dbClms[no].valueCheck( vals[no] ) );
591 }
592 }
593
594 // nullCheck 処ç?
595 for( int i=0; i<nllclmNo.length; i++ ) {
596 int no = nllclmNo[i];
597 if( vals[no] == null || vals[no].length() == 0 ) {
598 isError = true;
599 String label = dbClms[no].getLabel();
600 // ERR0012 : æŒ?®šã?ãƒ??ã‚¿ãŒã‚»ãƒ?ƒˆã•れã¦ã?¾ã›ã‚“ã€?NULLエラー)。key={0}
601 errMsg.addMessage( row+1,ErrorMessage.NG,"ERR0012",label );
602 }
603 }
604
605 // 5.5.7.2 (2012/10/09) エラー時ã?ãƒ?ƒãƒ?‚°å‡ºåŠ?
606 if( isDebug() && isError ) {
607 errMsg.addMessage( row+1,ErrorMessage.OK,"Debug Info",java.util.Arrays.toString(table.getValues(row) ) );
608 }
609
610 // adjustColumns 処ç?µæžœã‚’åæ˜?•ã›ã¾ã™ã?
611 // if( useAdjust && errMsg.isOK() ) { table.setValues( vals,row ); }
612 if( useAdjust && !isError ) { table.setValues( vals,row ); }
613 if( errMsg.size() > ERROR_ROW_COUNT ) { break; }
614 }
615
616 return errMsg;
617 }
618
619 // private ErrorMessage checkTableColumn( final DBTableModel table ) {
620 // ErrorMessage errMsg = new ErrorMessage( "Check Columns Error!" );
621 //
622 // if( allColumnCheck ) {
623 // checkColumns = table.getNames();
624 // }
625 //
626 // int rowCnt = table.getRowCount();
627 // if( checkColumns != null && checkColumns.length > 0 ) {
628 // int[] clmNo = new int[checkColumns.length];
629 // for( int i=0; i<clmNo.length; i++ ) {
630 // clmNo[i] = table.getColumnNo( checkColumns[i] );
631 // }
632 //
633 // for( int row=0; row<rowCnt; row++ ) {
634 // String[] vals = table.getValues( row );
635 // for( int i=0; i<clmNo.length; i++ ) {
636 // int clm = clmNo[i];
637 // DBColumn dbClm = table.getDBColumn( clm );
638 // errMsg.append( row+1,dbClm.valueCheck( vals[clm] ) );
639 // }
640 // }
641 // }
642 //
643 // // 3.8.0.2 (2005/06/30) nullãƒã‚§ãƒ?‚¯ç¢ºèª?
644 // if( nullCheck != null && nullCheck.length > 0 ) {
645 // int[] clmNo = new int[nullCheck.length];
646 // for( int i=0; i<clmNo.length; i++ ) {
647 // clmNo[i] = table.getColumnNo( nullCheck[i] );
648 // }
649 //
650 // for( int row=0; row<rowCnt; row++ ) {
651 // String[] vals = table.getValues( row );
652 // for( int i=0; i<clmNo.length; i++ ) {
653 // int clm = clmNo[i];
654 // if( vals[clm] == null || vals[clm].length() == 0 ) {
655 // String label = getResource().getLabel( nullCheck[i] );
656 // // ERR0012 : æŒ?®šã?ãƒ??ã‚¿ãŒã‚»ãƒ?ƒˆã•れã¦ã?¾ã›ã‚“ã€?NULLエラー)。key={0}
657 // errMsg.addMessage( row+1,ErrorMessage.NG,"ERR0012",label );
658 // }
659 // }
660 // }
661 // }
662 //
663 // return errMsg;
664 // }
665
666 /**
667 * ã€TAGã€?通常使ã?¾ã›ã‚“)sessionã‹ã‚‰æ‰?¾—ã™ã‚?DBTableModelオブジェクトã? IDã€?
668 *
669 * @og.tag
670 * 表示処ç?¾Œã«??å†?ƒ¨ãƒã‚¤ãƒ³ã‚¿ã‚’æ›¸ãæ›ãˆãŸ)DBTableModelオブジェクトを
671 * åŒã˜ã‚ーã§ã€sessionã«ç™»éŒ²ã—ã¾ã™ã?
672 * åˆæœŸå€¤ã¯ã€HybsSystem.TBL_MDL_KEY ã§ã™ã?
673 *
674 * @param tableId sessionã«ç™»éŒ²ã™ã‚‹æ™‚ã? ID
675 */
676 public void setTableId( final String tableId ) {
677 this.tableId = nval( getRequestParameter( tableId ), this.tableId );
678 }
679
680 /**
681 * ã€TAG】å¯å¤‰é•·ãƒ•ァイルを作æ?ã™ã‚‹ã¨ãã?é ?›®åŒºåˆ?‚Šæ–?—ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?
682 *
683 * @og.tag å¯å¤‰é•·ãƒ•ァイルを作æ?ã™ã‚‹ã¨ãã?é ?›®åŒºåˆ?‚Šæ–?—ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?
684 *
685 * @param separator é ?›®åŒºåˆ?‚Šæ–??
686 */
687 public void setSeparator( final String separator ) {
688 this.separator = nval( getRequestParameter( separator ),this.separator );
689 }
690
691 /**
692 * ã€TAG】èªã¿å–りå…?ƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªåã‚’æŒ?®šã—ã¾ã?
693 * (åˆæœŸå€¤:FILE_URL[={@og.value org.opengion.hayabusa.common.SystemData#FILE_URL}])ã€?
694 *
695 * @og.tag
696 * ã“ã?属æ?ã§æŒ?®šã•れるãƒ?‚£ãƒ¬ã‚¯ãƒˆãƒªã‚ˆã‚Šã€ãƒ•ァイルをèªã¿å–りã¾ã™ã?
697 * æŒ?®šæ–¹æ³•ã?ã€??常㮠fileURL 属æ?ã¨åŒæ§˜ã«ã€å?é ãŒã?'/' (UNIX) ã¾ãŸã?ã€?¼’æ–‡å—ç›®ãŒã?
698 * ":" (Windows)ã®å ´åˆã?ã€æŒ‡å®šã?URLãã?ã¾ã¾ã®ãƒ?‚£ãƒ¬ã‚¯ãƒˆãƒªã«ã€ãã?§ãªã??åˆã?ã€?
699 * fileURL = "{@USER.ID}" ã¨æŒ?®šã™ã‚‹ã¨ã€FILE_URL 属æ?ã§æŒ?®šã?フォルãƒ??下ã«ã€?
700 * ã•らã«ã€å„個人ID別ã®ãƒ•ォルãƒ?‚’作æ?ã—ã¦ã€ãã“ã‚’æ“作ã—ã¾ã™ã?
701 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®FILE_URL[={@og.value org.opengion.hayabusa.common.SystemData#FILE_URL}])ã€?
702 *
703 * @og.rev 4.0.0.0 (2005/01/31) StringUtil.urlAppend メソãƒ?ƒ‰ã®åˆ©ç”¨
704 * @og.rev 4.0.0.0 (2007/11/20) æŒ?®šã•れãŸãƒ?‚£ãƒ¬ã‚¯ãƒˆãƒªåã?æœ?¾ŒãŒ"\"or"/"ã§çµ‚ã‚ã£ã¦ã?ªã??åˆã«ã€?/"ã‚’ä»˜åŠ ã™ã‚‹ã€?
705 *
706 * @param url èªã¿å–りå…?ƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªå?
707 * @see org.opengion.hayabusa.common.SystemData#FILE_URL
708 */
709 public void setFileURL( final String url ) {
710 String furl = nval( getRequestParameter( url ),null );
711 if( furl != null ) {
712 char ch = furl.charAt( furl.length()-1 );
713 if( ch != '/' && ch != '\\' ) { furl = furl + "/"; }
714 fileURL = StringUtil.urlAppend( fileURL,furl );
715 }
716 }
717
718 /**
719 * ã€TAG】ファイルを作æ?ã™ã‚‹ã¨ãã?ファイルåã‚’ã‚»ãƒ?ƒˆã—ã¾ã?
720 * (åˆæœŸå€¤:FILE_FILENAME[={@og.value org.opengion.hayabusa.common.SystemData#FILE_FILENAME}])ã€?
721 *
722 * @og.tag ファイルを作æ?ã™ã‚‹ã¨ãã?ファイルåã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?
723 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®FILE_FILENAME[={@og.value org.opengion.hayabusa.common.SystemData#FILE_FILENAME}])ã€?
724 *
725 * @param filename ファイルå?
726 * @see org.opengion.hayabusa.common.SystemData#USE_SQL_INJECTION_CHECK
727 */
728 public void setFilename( final String filename ) {
729 this.filename = nval( getRequestParameter( filename ),this.filename );
730 }
731
732 /**
733 * ã€TAG】ファイルを作æ?ã™ã‚‹ã¨ãã?ファイルエンコーãƒ?‚£ãƒ³ã‚°åã‚’ã‚»ãƒ?ƒˆã—ã¾ã?
734 * (åˆæœŸå€¤:FILE_ENCODE[={@og.value org.opengion.hayabusa.common.SystemData#FILE_ENCODE}])ã€?
735 *
736 * @og.tag
737 * Shift_JIS,MS932,Windows-31J,UTF-8,ISO-8859-1,UnicodeLittle
738 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®FILE_ENCODE[={@og.value org.opengion.hayabusa.common.SystemData#FILE_ENCODE}])ã€?
739 *
740 * @og.rev 2.2.0.0 (2002/12/17) ä¸å›½èª?国際化)対å¿?エンコードã?å–得方法変更
741 * @og.rev 3.1.3.0 (2003/04/10) FILE_ENCODE ã‹ã‚‰ã€ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰æƒ…å ±ã‚’å–å¾—ã™ã‚‹ã?
742 *
743 * @param enc ファイルエンコーãƒ?‚£ãƒ³ã‚°å?
744 * @see <a href="http://www.iana.org/assignments/character-sets">IANA Charset Registry</a>
745 * @see org.opengion.hayabusa.common.SystemData#FILE_ENCODE
746 */
747 public void setEncode( final String enc ) {
748 encode = nval( getRequestParameter( enc ),encode );
749 }
750
751 /**
752 * ã€TAG】実際ã«èªã¿å‡ºã™ã‚¯ãƒ©ã‚¹åã?略称(TableReader_**** ã® ****)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?{@og.doc03Link readerClass åˆæœŸå€¤:Default})ã€?
753 *
754 * @og.tag
755 * 実際ã«èªã¿å‡ºã™ã‚¯ãƒ©ã‚¹å?ã®ç•¥ç§°)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã™ã?
756 * ã“れã¯ã€org.opengion.hayabusa.io 以下ã? TableReader_**** クラス㮠**** ã‚?
757 * 与ãˆã¾ã™ã?ã“れらã?ã€TableReader インターフェースを継承ã—ãŸã‚µãƒ–クラスã§ã™ã?
758 * 属æ?クラス定義㮠{@link org.opengion.hayabusa.io.TableReader TableReader} ã‚’å‚照願ã„ã¾ã™ã?
759 * {@og.doc03Link readerClass TableReader_**** クラス}
760 *
761 * @param readerClass クラスå?ã®ç•¥ç§°)
762 * @see org.opengion.hayabusa.io.TableReader TableReaderã®ã‚µãƒ–クラス
763 */
764 public void setReaderClass( final String readerClass ) {
765 this.readerClass = nval( getRequestParameter( readerClass ),this.readerClass );
766 }
767
768 /**
769 * ã€TAG】èªå–æ™‚ã®æœ?¤§å–り込ã¿ä»¶æ•°ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?
770 * (åˆæœŸå€¤:DB_MAX_ROW_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#DB_MAX_ROW_COUNT}])ã€?
771 *
772 * @og.tag
773 * DBTableModelã®ãƒ??ã‚¿ã¨ã—ã¦ç™»éŒ²ã™ã‚‹æœ?¤§ä»¶æ•°ã‚’ã“ã®å€¤ã«è¨å®šã—ã¾ã™ã?
774 * サーãƒã?ã®ãƒ¡ãƒ¢ãƒªè³?ºã¨å¿œç”時間ã?確ä¿ã?為ã§ã™ã?
775 * 0 ã‚’ã‚»ãƒ?ƒˆã™ã‚‹ã¨ã€ç„¡åˆ¶é™?Integer.MAX_VALUE)ã«ãªã‚Šã¾ã™ã?
776 * (åˆæœŸå€¤:ユーザー定数ã®DB_MAX_ROW_COUNT[={@og.value org.opengion.hayabusa.common.SystemData#DB_MAX_ROW_COUNT}])ã€?
777 *
778 * @og.rev 5.5.8.5 (2012/11/27) 0を無制é™ã¨ã—ã¦å‡¦ç?—ã¾ã™ã?
779 *
780 * @param count èªå–æ™‚ã®æœ?¤§å–り込ã¿ä»¶æ•°
781 * @see org.opengion.hayabusa.common.SystemData#DB_MAX_ROW_COUNT
782 */
783 public void setMaxRowCount( final String count ) {
784 maxRowCount = nval( getRequestParameter( count ),maxRowCount );
785 if( maxRowCount == 0 ) { maxRowCount = Integer.MAX_VALUE ; } // 5.5.8.5 (2012/11/27)
786 }
787
788 /**
789 * ã€TAG】コマンãƒ?NEW,RENEW)ã‚’ã‚»ãƒ?ƒˆã—ã¾ã?åˆæœŸå€¤:NEW)ã€?
790 *
791 * @og.tag
792 * コマンドã?,HTMLã‹ã‚‰(get/post)æŒ?®šã•れã¾ã™ã?ã§,CMD_xxx ã§è¨å®šã•れる
793 * フィールド定数値ã®ã?¥ã‚Œã‹ã‚’ã?æŒ?®šã§ãã¾ã™ã?
794 * 何もè¨å®šã•れãªã??ã¾ãŸã?ã€null ã®å ´åˆã?ã€?NEW" ãŒå?期å?ã«ã‚»ãƒ?ƒˆã•れã¾ã™ã?
795 *
796 * @param cmd コマンãƒ?public static final 宣è¨?•れã¦ã?‚‹æ–?—å?)
797 * @see <a href="{@docRoot}/constant-values.html#org.opengion.hayabusa.taglib.ReadTableTag.CMD_NEW">コマンド定数</a>
798 */
799 public void setCommand( final String cmd ) {
800 String cmd2 = getRequestParameter( cmd );
801 if( cmd2 != null && cmd2.length() > 0 ) { command = cmd2.toUpperCase(Locale.JAPAN); }
802 }
803
804 /**
805 * ã€TAG】query ã®çµæžœã‚’ç”»é¢ä¸Šã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0033[ã€?»¶æ¤œç´¢ã—ã¾ã—ãŸ])ã€?
806 *
807 * @og.tag
808 * ã“ã“ã§ã¯ã€æ¤œç´¢çµæžœã®ä»¶æ•°ã‚?™»éŒ²ã•れãŸä»¶æ•°ã‚’ã¾ãšå?力ã—ã€?
809 * ãã?次ã«ã€ã“ã“ã§æŒ?®šã—ãŸãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’リソースã‹ã‚‰å–å¾—ã—ã¦
810 * 表示ã—ã¾ã™ã?
811 * 表示ã•ã›ãŸããªã??åˆã?, displayMsg = "" ã‚’ã‚»ãƒ?ƒˆã—ã¦ãã ã•ã„ã€?
812 * åˆæœŸå€¤ã¯ã€æ¤œç´¢ä»¶æ•°ã‚’表示ã—ã¾ã™ã?
813 *
814 * @param id ãƒ?‚£ã‚¹ãƒ—レイã«è¡¨ç¤ºã•ã›ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ ID
815 */
816 public void setDisplayMsg( final String id ) {
817 if( id != null ) { displayMsg = id; }
818 }
819
820 /**
821 * ã€TAGã€‘æ¤œç´¢çµæžœãŒã‚¼ãƒä»¶ã®å ´åˆã«è¡¨ç¤ºã™ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ãƒªã‚½ãƒ¼ã‚¹IDを指定ã—ã¾ã?åˆæœŸå€¤:MSG0077[対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸ])ã€?
822 *
823 * @og.tag
824 * ã“ã“ã§ã¯ã€æ¤œç´¢çµæžœãŒã‚¼ãƒä»¶ã®å ´åˆã?ã¿ã€ç‰¹åˆ¥ãªãƒ¡ãƒ?‚»ãƒ¼ã‚¸ã‚’表示ã•ã›ã¾ã™ã?
825 * 従æ¥ã¯ã€displayMsg ã¨å…¼ç”¨ã§ã€ã?0ã€?»¶æ¤œç´¢ã—ã¾ã—ãŸã€ã¨ã?†è¡¨ç¤ºã§ã—ãŸãŒã?
826 * displayMsg ã®åˆæœŸè¡¨ç¤ºã¯ã€OFF ã«ãªã‚Šã¾ã—ãŸã®ã§ã€ã‚¼ãƒä»¶ã®å ´åˆã?ã¿åˆ¥ã«è¡¨ç¤ºã•ã›ã¾ã™ã?
827 * 表示ã•ã›ãŸããªã??åˆã?, notfoundMsg = "" ã‚’ã‚»ãƒ?ƒˆã—ã¦ãã ã•ã„ã€?
828 * åˆæœŸå€¤ã¯ã€MSG0077[対象ãƒ??ã‚¿ã¯ã‚りã¾ã›ã‚“ã§ã—ãŸ]ã§ã™ã?
829 *
830 * @param id ãƒ?‚£ã‚¹ãƒ—レイã«è¡¨ç¤ºã•ã›ã‚‹ãƒ¡ãƒ?‚»ãƒ¼ã‚¸ ID
831 */
832 public void setNotfoundMsg( final String id ) {
833 String ids = getRequestParameter( id );
834 if( ids != null ) { notfoundMsg = ids; }
835 }
836
837 /**
838 * ã€TAG】ファイルå–ã‚Šè¾¼ã¿æ™‚ã? モãƒ?‚£ãƒ•ァイタイãƒ?A(追åŠ?,C(æ›´æ–°),D(削除))を指定ã—ã¾ã™ã?
839 *
840 * @og.tag
841 * ファイルèªã¿è¾¼ã¿æ™‚ã«ã€ãã®ãƒ??ã‚¿ã‚’A(追åŠ?ã€C(æ›´æ–°)ã€D(削除)ã®
842 * モãƒ?‚£ãƒ•ァイタイプをã¤ã‘ãŸçŠ¶æ…‹ã«ã—ã¾ã™ã?
843 * ãã?状態ã§ã€ãã®ã¾ã¾ã€update ã™ã‚‹äº‹ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã?
844 *
845 * @param type ファイルå–ã‚Šè¾¼ã¿æ™‚ã? モãƒ?‚£ãƒ•ァイタイãƒ?A,C,D属æ?)
846 */
847 public void setModifyType( final String type ) {
848 modifyType = getRequestParameter( type );
849 }
850
851 /**
852 * ã€TAG】EXCELファイルをèªã¿è¾¼ã‚?¨ãã?シートåã‚’è¨å®šã—ã¾ã?åˆæœŸå€¤:æŒ?®šãªã?ã€?
853 *
854 * @og.tag
855 * EXCELファイルをèªã¿è¾¼ã‚?™‚ã«ã€ã‚·ãƒ¼ãƒˆåを指定ã—ã¾ã™ã?ã“れã«ã‚ˆã‚Šã€è¤?•°ã®å½¢å¼ã?
856 * ç•°ãªã‚‹ãƒ‡ãƒ¼ã‚¿ã‚’é?次èªã¿è¾¼ã‚?“ã¨ã‚??シートをæŒ?®šã—ã¦èªã¿å–ã‚‹ã“ã¨ãŒå¯èƒ½ã«ãªã‚Šã¾ã™ã?
857 * sheetNos 㨠sheetName ãŒåŒæ™‚ã«æŒ?®šã•れãŸå ´åˆã?ã€sheetNos ãŒå„ªå…ˆã•れã¾ã™ã?エラーã«ã¯ãªã‚‰ãªã??ã§ã”注æ„ãã?•ã??
858 * <del>åˆæœŸå€¤ã¯ã€ç¬¬ä¸?‚·ãƒ¼ãƒˆã§ã™ã?</del>
859 * åˆæœŸå€¤ã¯ã€æŒ‡å®šãªã—ã§ã™ã?
860 *
861 * @og.rev 3.5.4.2 (2003/12/15) æ–°è¦è¿½åŠ?
862 *
863 * @param sheet EXCELファイルã®ã‚·ãƒ¼ãƒˆå
864 * @see #setSheetNos( String )
865 */
866 public void setSheetName( final String sheet ) {
867 sheetName = nval( getRequestParameter( sheet ),sheetName );
868 }
869
870 /**
871 * ã€TAG】EXCELファイルをèªã¿è¾¼ã‚?¨ãã?シート番å·ã‚’指定ã—ã¾ã?åˆæœŸå€¤:0)ã€?
872 *
873 * @og.tag
874 * EXCELèªã¿è¾¼ã¿æ™‚ã«è¤?•°ã‚·ãƒ¼ãƒˆã‚’マã?ジã—ã¦å–り込ã¿ã¾ã™ã?
875 * シート番å·ã¯ã€? ã‹ã‚‰å§‹ã¾ã‚‹æ•°å—ã§è¡¨ã—ã¾ã™ã?
876 * ヘッãƒ??ã¯ã€æœ€åˆã?シートã?カラãƒ?½ç½®ã«åˆã‚ã›ã¾ã™ã??ˆã?ãƒ?ƒ€ãƒ¼ã‚¿ã‚¤ãƒˆãƒ«ã®è‡ªå‹•èªè˜ã?ã‚りã¾ã›ã‚“。ï¼?
877 * よã£ã¦ã€æŒ‡å®šã™ã‚‹ã‚·ãƒ¼ãƒˆã?ã€ã™ã¹ã¦åŒä¸?ƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã§ãªã?¨å–ã‚Šè¾¼ã¿æ™‚ã«ã‚«ãƒ©ãƒ??ãšã‚ŒãŒç™ºç”Ÿã—ã¾ã™ã?
878 *
879 * シート番å·ã®æŒ?®šã?ã€ã‚«ãƒ³ãƒžåŒºåˆ?‚Šã§ã€è¤?•°æŒ?®šã§ãã¾ã™ã?ã¾ãŸã?N-M ã®æ§˜ã«ãƒã‚¤ãƒ•ンã§ç¹‹ã’ã‚‹ã“ã¨ã§ã€?
880 * N 番ã‹ã‚‰ã€M 番ã®ã‚·ãƒ¼ãƒˆç¯?›²ã‚’ä¸?‹¬æŒ?®šå¯èƒ½ã§ã™ã?ã¾ãŸã?"*" ã«ã‚ˆã‚‹ã€å?シート指定ãŒå¯èƒ½ã§ã™ã?
881 * ã“れらã?çµ?¿åˆã‚ã›ã‚‚å¯èƒ½ã§ã™ã???0,1,3,5-8,10-* ??
882 * ãŸã ã—ã?"*" ã«é–¢ã—ã¦ã¯ä¾‹å¤–çš„ã«ã€ä¸?–‡å—ã ã‘ã§ã€ã™ã¹ã¦ã®ã‚·ãƒ¼ãƒˆã‚’表ã™ã‹ã€N-* ã‚’æœ€å¾Œã«æŒ?®šã™ã‚‹ã‹ã®
883 * ã©ã¡ã‚‰ã‹ã§ã™ã?途ä¸ã«ã¯ã€?*" ã¯ã€ç¾ã‚Œã¾ã›ã‚“ã€?
884 * シート番å·ã¯ã€?‡è¤?1,1,2,2)ã€??転(3,2,1) ã§ã®æŒ?®šãŒå¯èƒ½ã§ã™ã?ã“れã¯ã€ãã®æŒ?®šé?ã§ã€èªã¿è¾¼ã¾ã‚Œã¾ã™ã?
885 * sheetNos 㨠sheetName ãŒåŒæ™‚ã«æŒ?®šã•れãŸå ´åˆã?ã€sheetNos ãŒå„ªå…ˆã•れã¾ã™ã?エラーã«ã¯ãªã‚‰ãªã??ã§ã”注æ„ãã?•ã??
886 *
887 * åˆæœŸå€¤ã¯ã€??ˆç¬¬ä¸?‚·ãƒ¼ãƒˆï¼?ã§ã™ã?
888 *
889 * @og.rev 5.5.7.2 (2012/10/09) æ–°è¦è¿½åŠ?
890 *
891 * @param sheet EXCELファイルã®ã‚·ãƒ¼ãƒˆç•ªå·??ã‹ã‚‰å§‹ã¾ã‚‹ï¼?
892 * @see #setSheetName( String )
893 */
894 public void setSheetNos( final String sheet ) {
895 sheetNos = nval( getRequestParameter( sheet ),sheetNos );
896 if( sheetNos != null && sheetNos.length() > 0 ) {
897 boolean errFlag = false;
898 for( int i=0; i<sheetNos.length(); i++ ) {
899 char ch = sheetNos.charAt(i);
900 if( ch == '-' || ch == ',' ) { continue; }
901 if( ch == '*' && ( i==0 || i==sheetNos.length()-1 ) ) { continue; }
902 if( ch < '0' || ch > '9' ) { errFlag = true; break; }
903 }
904 if( errFlag ) {
905 String errMsg = "sheetNos ã®æŒ?®šã‚’見直ã—ã¦ãã ã•ã„。sheetNos=[" + sheetNos + "]";
906 throw new HybsSystemException( errMsg );
907 }
908 }
909 }
910
911 /**
912 * ã€TAG】EXCELファイルをèªã¿è¾¼ã‚?¨ãã?シートå˜ä½ã?固定å?ã‚’è¨å®šã™ã‚‹ãŸã‚ã?カラãƒ?を指定ã—ã¾ã™ã?
913 * カラãƒ?ã¯ã€ã‚«ãƒ³ãƒžåŒºåˆ?‚Šã§æŒ?®šã—ã¾ã™ã?
914 * ã“れã«ã‚ˆã‚Šã€ã‚·ãƒ¼ãƒˆã?ä¸?‹æ‰?«æ›¸ã‹ã‚Œã¦ã?‚‹æƒ??ã‚’ã?DBTableModel ã®ã‚«ãƒ©ãƒ?«å›ºå®šå?ã¨ã—ã¦
915 * è¨å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã?
916 * 例ã¨ã—ã¦ã€DB定義書ã§ã€ãƒ†ãƒ¼ãƒ–ルåをシートã?全レコードã«è¨å®šã—ãŸã„å ´åˆãªã©ã«ä½¿ã?¾ã™ã?
917 * ã“ã?メソãƒ?ƒ‰ã¯ã€isExcel() == true ã®å ´åˆã?ã¿åˆ©ç”¨ã•れã¾ã™ã?
918 *
919 * @og.rev 5.5.8.2 (2012/11/09) æ–°è¦è¿½åŠ?
920 *
921 * @param constKeys 固定å?ã¨ãªã‚‹ã‚«ãƒ©ãƒ?(CSVå½¢å¼?
922 * @see #setSheetConstAdrs( String )
923 */
924 public void setSheetConstKeys( final String constKeys ) {
925 sheetConstKeys = nval( getRequestParameter( constKeys ),null );
926 }
927
928 /**
929 * ã€TAG】EXCELファイルをèªã¿è¾¼ã‚?¨ãã?シートå˜ä½ã?固定å?ã‚’è¨å®šã™ã‚‹ãŸã‚ã?カラãƒ?ã«å¯¾å¿œã™ã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹ã‚’指定ã—ã¾ã™ã?
930 * アドレスã¯ã€EXCEL上ã?è¡?列をカンマ区åˆ?‚Šã§æŒ?®šã—ã¾ã™ã?
931 * 行å?ã¯ã€EXCELã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã«æº–æ‹ ã™ã‚‹ãŸã‚ã€?¼ã‹ã‚‰å§‹ã¾ã‚‹æ•´æ•°ã§ã™ã?
932 * ã“れã«ã‚ˆã‚Šã€ã‚·ãƒ¼ãƒˆã?ä¸?‹æ‰?«æ›¸ã‹ã‚Œã¦ã?‚‹æƒ??ã‚’ã?DBTableModel ã®ã‚«ãƒ©ãƒ?«å›ºå®šå?ã¨ã—ã¦
933 * è¨å®šã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã?
934 * 例ã¨ã—ã¦ã€DB定義書ã§ã€ãƒ†ãƒ¼ãƒ–ルåをシートã?全レコードã«è¨å®šã—ãŸã„å ´åˆãªã©ã«ä½¿ã?¾ã™ã?
935 * ã“ã?メソãƒ?ƒ‰ã¯ã€isExcel() == true ã®å ´åˆã?ã¿åˆ©ç”¨ã•れã¾ã™ã?
936 *
937 * @og.rev 5.5.8.2 (2012/11/09) æ–°è¦è¿½åŠ?
938 *
939 * @param constAdrs 固定å?ã¨ãªã‚‹ã‚¢ãƒ‰ãƒ¬ã‚¹(è¡?åˆ?è¡?åˆ?・・・)
940 * @see #setSheetConstKeys( String )
941 */
942 public void setSheetConstAdrs( final String constAdrs ) {
943 sheetConstAdrs = nval( getRequestParameter( constAdrs ),null );
944 }
945
946 /**
947 * ã€TAG】ã“ã“ã«æŒ?®šã•れãŸã‚«ãƒ©ãƒ??ã« NULL ãŒç¾ã‚ŒãŸæ™‚点ã§èªã¿å–ã‚Šã‚’ä¸æ¢ã—ã¾ã™ã?
948 *
949 * @og.tag
950 * ã“れã¯ã€æŒ‡å®šã?カラãƒ??å¿??ã¨ã?†äº‹ã‚’æ¡ä»¶ã«ã€ãã®ãƒ¬ã‚³ãƒ¼ãƒ‰ã ã‘ã‚’èªã¿å–る処ç?‚’行ã„ã¾ã™ã?
951 * è¤?•°Sheetã®å ´åˆã?ã€æ¬¡ã®Sheetã‚’èªã¿ã¾ã™ã?
952 * ç¾æ™‚点ã§ã¯ã€Excel ã®å ´åˆã?ã¿æœ‰åйã§ã™ã?
953 *
954 * @og.rev 5.5.8.2 (2012/11/09) æ–°è¦è¿½åŠ?
955 *
956 * @param clm カラ�?
957 */
958 public void setNullBreakClm( final String clm ) {
959 nullBreakClm = nval( getRequestParameter( clm ),null );
960 }
961
962 /**
963 * ã€TAG】èªã¿å–りå…?ƒ•ァイルã®ã‚«ãƒ©ãƒ??ã‚’ã?外部(ã‚¿ã‚°)よりæŒ?®šã—ã¾ã™ã?
964 *
965 * @og.tag
966 * èªã¿å–りå…?ƒ•ァイルã®ã‚«ãƒ©ãƒ??ã‚’ã?外部(ã‚¿ã‚°)よりæŒ?®šã—ã¾ã™ã?
967 * ファイルã«è¨˜è¿°ã•れã?#NAME より優先ã—ã¦ä½¿ç”¨ã•れã¾ã™ã?
968 * ã“れã¯ã€å?ファイルã®ã‚«ãƒ©ãƒ?‚’é ?•ªã«æŒ?®šã?カラãƒ?ã«å‰²ã‚Šå½“ã¦ã‚‹æ©Ÿè?ã§
969 * ファイルã®ç‰¹å®šã?カラãƒ??を抜ãå?ã—ã¦å–り込ã‚?©Ÿè?ã§ã¯ã‚りã¾ã›ã‚“ã€?
970 *
971 * @og.rev 3.5.4.5 (2004/01/23) æ–°è¦ä½œæ?
972 *
973 * @param clms èªã¿å–りå…?ƒ•ァイルã®ã‚«ãƒ©ãƒ??(カンマ区åˆ?‚Šæ–??
974 */
975 public void setColumns( final String clms ) {
976 columns = nval( getRequestParameter( clms ),columns );
977 }
978
979 /**
980 * ã€TAG】èªã¿å–りå…?ƒ•ã‚¡ã‚¤ãƒ«ã®æ•´åˆæ?ãƒã‚§ãƒ?‚¯ã‚’行ã†ã‚«ãƒ©ãƒ??をカンマ指定ã—ã¾ã™ã?
981 *
982 * @og.tag
983 * カラãƒ?‚ªãƒ–ジェクトã?DBType属æ?ã«å¯¾å¿œã—ãŸãƒã‚§ãƒ?‚¯ã‚’行ã„ã¾ã™ã?
984 * æŒ?®šã?カラãƒ?をカンマ区åˆ?‚Š(CSV)ã§è¤?•°æŒ?®šã§ãã¾ã™ã?
985 * å…¨ã¦ã®ã‚«ãƒ©ãƒ??ãƒã‚§ãƒ?‚¯ã‚’行ã†å ´åˆã?ã€allColumnCheck = "true" ã‚?
986 * æŒ?®šã—ã¦ä¸‹ã•ã??
987 * åˆ?§£æ–¹æ³•ã?ã€??常ã®ãƒ‘ラメータå–得後ã«ã€CSVåˆ?§£ã—ã¾ã™ã?
988 *
989 * @og.rev 3.6.0.2 (2004/10/04) æ–°è¦è¿½åŠ?å–ã‚Šè¾¼ã¿æ™‚ãƒã‚§ãƒ?‚¯ç”¨
990 * @og.rev 3.8.8.5 (2007/03/09) 通常ã®ãƒ‘ラメータå–得後ã«ã€CSVåˆ?§£ã«æˆ»ã—ã¾ã™ã?
991 *
992 * @param clms æ•´åˆæ?ãƒã‚§ãƒ?‚¯ã‚’行ã†ã‚«ãƒ©ãƒ??(カンマ区åˆ?‚Šæ–??
993 */
994 public void setCheckColumns( final String clms ) {
995 checkColumns = nval( getRequestParameter( clms ),checkColumns );
996
997 // checkColumns = StringUtil.csv2Array( getRequestParameter( clms ) );
998 // if( checkColumns.length == 0 ) { checkColumns = null; }
999 }
1000
1001 /**
1002 * ã€TAG】èªã¿å–りå…?ƒ•ァイルã®ãƒ??タ変æ›ã‚’行ã†ã‚«ãƒ©ãƒ??をカンマ指定ã—ã¾ã™ã?
1003 *
1004 * @og.tag
1005 * カラãƒ?‚ªãƒ–ジェクトã?DBType属æ?ã«å¯¾å¿œã—ãŸãƒ‡ãƒ¼ã‚¿å¤‰æ›ã‚’行ã„ã¾ã™ã?
1006 * æŒ?®šã?カラãƒ?をカンマ区åˆ?‚Š(CSV)ã§è¤?•°æŒ?®šã§ãã¾ã™ã?
1007 * åˆ?§£æ–¹æ³•ã?ã€??常ã®ãƒ‘ラメータå–得後ã«ã€CSVåˆ?§£ã—ã¾ã™ã?
1008 *
1009 * @og.rev 3.6.0.2 (2004/10/04) æ–°è¦è¿½åŠ?å–ã‚Šè¾¼ã¿æ™‚データ変æ›
1010 * @og.rev 3.8.8.5 (2007/03/09) 通常ã®ãƒ‘ラメータå–得後ã«ã€CSVåˆ?§£ã«æˆ»ã—ã¾ã™ã?
1011 *
1012 * @param clms ãƒ??タ変æ›ã‚’行ã†ã‚«ãƒ©ãƒ??(カンマ区åˆ?‚Šæ–??
1013 */
1014 public void setAdjustColumns( final String clms ) {
1015 adjustColumns = nval( getRequestParameter( clms ),adjustColumns );
1016
1017 // adjustColumns = StringUtil.csv2Array( getRequestParameter( clms ) );
1018 // if( adjustColumns.length == 0 ) { adjustColumns = null; }
1019 }
1020
1021 /**
1022 * ã€TAG】å?カラãƒ?ƒã‚§ãƒ?‚¯ã‚’行ã†ã‹ã©ã?‹ã‚’è¨å®šã—ã¾ã?åˆæœŸå€¤:false)ã€?
1023 *
1024 * @og.tag
1025 * カラãƒ??æ•´åˆæ?ãƒã‚§ãƒ?‚¯ã‚’行ã†å ´åˆã?カラãƒ?を指定ã›ãšã?全カラãƒ??
1026 * ãƒã‚§ãƒ?‚¯ã‚’実施ã™ã‚‹ã“ã¨ãŒå?æ¥ã¾ã™ã?(allColumnCheck="true")
1027 * åˆæœŸå€¤ã¯ã€è¡Œã‚ãªã?false)ã§ã™ã?
1028 * 全カラãƒ?ƒã‚§ãƒ?‚¯ã‚’行ã†å ´åˆã?ã€checkColumns ã®æŒ?®šã?ã€ç„¡è¦–ã•れã¾ã™ã?
1029 *
1030 * @og.rev 3.6.0.2 (2004/10/04) æ–°è¦è¿½åŠ?å–ã‚Šè¾¼ã¿æ™‚å?ãƒã‚§ãƒ?‚¯
1031 *
1032 * @param flag å…¨ãƒã‚§ãƒ?‚¯ã‚’行ã†ã‹ã©ã?‹(true:行ã†/false:行ã‚ãªã?
1033 * @see #setCheckColumns( String )
1034 */
1035 // public void setAllColumnCheck( final String flag ) {
1036 // allColumnCheck = nval( getRequestParameter( flag ),allColumnCheck );
1037 // }
1038
1039 /**
1040 * ã€TAG】NULL ãƒã‚§ãƒ?‚¯ã™ã¹ãカラãƒ??をカンマ区åˆ?‚Š(CVSå½¢å¼?ã§æŒ?®šã—ã¾ã™ã?
1041 *
1042 * @og.tag nullCheck="AAA,BBB,CCC,DDD"
1043 * <del>å…ˆã«é…å?ã«åˆ?§£ã—ã¦ã‹ã‚‰ãƒªã‚¯ã‚¨ã‚¹ãƒˆå¤‰æ•°ã®å€¤ã‚’å–å¾—ã™ã‚‹ã‚ˆã?«ã—ã¾ã™ã?
1044 * ã“ã†ã™ã‚‹äº‹ã§ã€ãƒªã‚¯ã‚¨ã‚¹ãƒˆã«ã‚«ãƒ³ãƒžåŒºåˆ?‚Šã®å€¤ã‚’è¨å®šã§ãるよã†ã«ãªã‚Šã¾ã™ã?</del>
1045 * åˆ?§£æ–¹æ³•ã?ã€??常ã®ãƒ‘ラメータå–得後ã«ã€CSVåˆ?§£ã—ã¾ã™ã?
1046 *
1047 * @og.rev 3.8.0.2 (2005/06/30) æ–°è¦è¿½åŠ?
1048 * @og.rev 3.8.8.5 (2007/03/09) 通常ã®ãƒ‘ラメータå–得後ã«ã€CSVåˆ?§£ã«æˆ»ã—ã¾ã™ã?
1049 *
1050 * @param clms カラ�?(CVS形�
1051 */
1052 public void setNullCheck( final String clms ) {
1053 nullCheck = nval( getRequestParameter( clms ),nullCheck );
1054
1055 // nullCheck = StringUtil.csv2Array( getRequestParameter( clms ) );
1056 // if( nullCheck.length == 0 ) { nullCheck = null; }
1057 }
1058
1059 /**
1060 * ã€TAGã€‘è¡Œç•ªå·æƒ??ã‚’ã?使用ã—ã¦ã?‚‹/ã—ã¦ã?ªã„[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:true)ã€?
1061 *
1062 * @og.tag
1063 * 通常ã®ãƒ•ォーマットã§ã¯ã€å„行ã?å…ˆé?ã«è¡Œç•ªå·ãŒå?力ã•れã¦ã?¾ã™ã?
1064 * èªã¿å–り時ã«ã€?NAME 属æ?を使用ã™ã‚‹å ´åˆã?ã€ã“ã®è¡Œç•ªå·ã‚’無視ã—ã¦ã?¾ã™ã?
1065 * #NAME 属æ?を使用ã›ãšã€columns 属æ?ã§ã‚«ãƒ©ãƒ?を指定ã™ã‚‹å?å?他シスãƒ?ƒ ã®
1066 * 出力ファイルをèªã¿å–るケースç?ã§ã¯ã€è¡Œç•ªå·ã‚‚å˜åœ¨ã—ãªã?‚±ãƒ¼ã‚¹ãŒã‚りã?
1067 * ãã?様ãªå ´åˆã«ã€useNumber="false" を指定ã™ã‚Œã?ã€ãƒ‡ãƒ¼ã‚¿ã®æœ??ã‹ã‚‰èªã¿å–り始ã‚ã¾ã™ã?
1068 * ã“ã?å ´åˆã?出力データã®ã‚«ãƒ©ãƒ??並ã³é ?Œå¤‰æ›´ã•れãŸå?åˆã?columns 属æ?ã‚?
1069 * æŒ?®šã—ãªãŠã™å¿?¦ãŒã‚りã¾ã™ã?ã§ã€ã§ãã‚‹ã?‘ã€?NAME 属æ?を使用ã™ã‚‹ã‚ˆã†ã«
1070 * ã—ã¦ãã ã•ã„ã€?
1071 * ãªãŠã?EXCEL 入力ã«ã¯ã€ã“ã®è¨å®šã?é©ç”¨ã•れã¾ã›ã‚“ã€?暫定対å¿?
1072 * åˆæœŸå€¤ã¯ã€true(使用ã™ã‚‹) ã§ã™ã?
1073 *
1074 * @og.rev 3.7.0.5 (2005/04/11) æ–°è¦è¿½åŠ?
1075 *
1076 * @param useNo è¡Œç•ªå·æƒ?? [true:使用ã™ã‚‹/false:使用ã—ãªã„]
1077 */
1078 public void setUseNumber( final String useNo ) {
1079 useNumber = nval( getRequestParameter( useNo ),useNumber );
1080 }
1081
1082 /**
1083 * ã€TAG】èªè¾¼ä»¶æ•°ãŒï¼ä»¶ã®ã¨ãå?ç?‚’続行ã™ã‚‹ã‹ã©ã?‹[true/false]を指定ã—ã¾ã?åˆæœŸå€¤:false[続行ã™ã‚‹])ã€?
1084 *
1085 * @og.tag
1086 * åˆæœŸå€¤ã¯ã€false(続行ã™ã‚?ã§ã™ã?
1087 *
1088 * @og.rev 4.3.7.0 (2009/06/01) æ–°è¦è¿½åŠ?
1089 *
1090 * @param cmd èªè¾¼ä»¶æ•°ãŒï¼ä»¶ã®ã¨ãã?処ç?‚’ [true:䏿¢ã™ã‚‹/false:続行ã™ã‚‹]
1091 */
1092 public void setStopZero( final String cmd ) {
1093 stopZero = nval( getRequestParameter( cmd ), stopZero );
1094 }
1095
1096 /**
1097 * ã€TAGã€?通常使ã?¾ã›ã‚“)ã‚¿ã‚°ã§å‡¦ç?•れる処ç?Œãƒ¡ã‚¤ãƒ³ã¨ãªã‚‹ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³å‡¦ç?‹ã©ã?‹ã‚’指定ã—ã¾ã?åˆæœŸå€¤:false)ã€?
1098 *
1099 * @og.tag
1100 * ã“ã?値ã¯ã€ãƒ•ァイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰å?ç?«å½±éŸ¿ã—ã¾ã™ã?ã“ã?値ãŒtrueã«æŒ?®šã•ã‚ŒãŸæ™‚ã«commitã•れãŸDBTableModelã?
1101 * ファイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰ã?対象ã®è¡¨ã«ãªã‚Šã¾ã™ã?
1102 *
1103 * ã“ã?パラメーターã¯ã€??常ã€å„ã‚¿ã‚°ã«ã‚ˆã‚Šå®Ÿè£?•れã?ãƒ¦ãƒ¼ã‚¶ãƒ¼ãŒæŒ‡å®šã™ã‚‹å¿?¦ã?ã‚りã¾ã›ã‚“ã€?
1104 * ä½?—ã€?ã¤ã®JSPå†?§DBTableModelãŒè¤?•°ç”Ÿæ?ã•れるå?åˆã«ã€å‰ã«å‡¦ç?—ãŸDBTableModelã«ã¤ã?¦ãƒ•ァイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰ã‚’ã•ã›ãŸã„
1105 * å ´åˆã?ã€å¾Œã‚ã§DBTableModelを生æˆã™ã‚‹ã‚¿ã‚°ã§ã€æ?示çš?«ã“ã?値をfalseã«æŒ?®šã™ã‚‹ã“ã¨ã§ã€ãƒ•ァイルãƒ?‚¦ãƒ³ãƒãƒ¼ãƒ‰å?ç??対象ã‹ã‚‰
1106 * 除外ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã?
1107 *
1108 * @og.rev 5.1.6.0 (2010/05/01) æ–°è¦ä½œæ?
1109 *
1110 * @param flag メイントランザクションã‹ã©ã?‹
1111 */
1112 public void setMainTrans( final String flag ) {
1113 isMainTrans = nval( getRequestParameter( flag ),isMainTrans );
1114 }
1115
1116 /**
1117 * ã€TAGã€?通常ã¯ä½¿ã?¾ã›ã‚“)ãƒ??ã‚¿ã®èªã¿é£›ã?ã—ä»¶æ•°ã‚’è¨å®šã—ã¾ã™ã?
1118 *
1119 * @og.tag
1120 * TAB区åˆ?‚Šãƒ?‚ストやEXCELç‰ã?ãƒ??ã‚¿ã®èªã¿å§‹ã‚ã®åˆæœŸå€¤ã‚’指定ã—ã¾ã™ã?
1121 * ファイルã®å…ˆé?行ãŒã€?¼è¡Œã¨ã—ã¦ã‚«ã‚¦ãƒ³ãƒˆã—ã¾ã™ã?ã§ã€è¨å®šå?ã¯ã€èªã¿é£›ã?ã?
1122 * ä»¶æ•°ã«ãªã‚Šã¾ã™ã?(?‘ã¨æŒ?®šã™ã‚‹ã¨ã€?¼‘ä»¶èªã¿é£›ã?ã—ã??’行目ã‹ã‚‰èªã¿è¾¼ã¿ã¾ã™ã?)
1123 * èªã¿é£›ã?ã—ã?ã€ã‚³ãƒ¡ãƒ³ãƒˆè¡Œãªã©ã¯ã€ç„¡è¦–ã—ã¾ã™ã?ã§ã€å®Ÿéš›ã®è¡Œæ•°åˆ?ªã¿é£›ã?ã—ã¾ã™ã?
1124 * ?ƒNAME属æ?ã‚??columns 属æ?ã¯ã€æœ‰åйã§ã™ã?
1125 *
1126 * @og.rev 5.1.6.0 (2010/05/01) æ–°è¦ä½œæ?
1127 *
1128 * @param count èªã¿å§‹ã‚ã®åˆæœŸå€¤
1129 */
1130 public void setSkipRowCount( final String count ) {
1131 skipRowCount = nval( getRequestParameter( count ),skipRowCount );
1132 }
1133
1134 /**
1135 * ã€TAG】èªå–å?ç?§ãƒ©ãƒ™ãƒ«ã‚’コードリソースã«é€?¤‰æ›ã‚’行ã†ã‹ã©ã?‹ã‚’指定ã—ã¾ã?
1136 * (åˆæœŸå€¤:USE_TABLE_READER_RENDERER[={@og.value org.opengion.hayabusa.common.SystemData#USE_TABLE_READER_RENDERER}])ã€?
1137 *
1138 * @og.tag
1139 * TableWriter_Renderer ç³»ã®ã‚¯ãƒ©ã‚¹ã§å‡ºåŠ›ã—ãŸå?åˆã?ã€ã‚³ãƒ¼ãƒ‰ãƒªã‚½ãƒ¼ã‚¹ãŒãƒ©ãƒ™ãƒ«ã§å‡ºåŠ›ã•れã¾ã™ã?
1140 * ãã?ファイルをèªã¿å–ã‚‹ã¨ã€å½“ç„¶ã€ã‚¨ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã?
1141 * ã“ã“ã§ã¯ã€ã‚³ãƒ¼ãƒ‰ãƒªã‚½ãƒ¼ã‚¹ã®ã‚«ãƒ©ãƒ?«å¯¾ã—ã¦ã€ãƒ©ãƒ™ãƒ«ã‹ã‚‰ã‚³ãƒ¼ãƒ‰ã‚’求ã‚ã‚‹é?変æ›ã‚’行ã†ã“ã¨ã§ã€?
1142 * Renderer ç³»ã§å‡ºåŠ›ã—ãŸãƒ•ァイルをå–り込ã‚?“ã¨ãŒã§ãるよã†ã«ã—ã¾ã™ã?
1143 *
1144 * ã“ã“ã§ã¯ã€TableWriter ç³»ã¨åŒæ§˜ã«ã€TableReader_Renderer ç³»ã®ã‚¯ãƒ©ã‚¹ã‚’作るã®ã§ã¯ãªãã?
1145 * 属æ?値ã®ãƒ•ラグã§ã€åˆ¶å¾¡ã—ã¾ã™ã?
1146 * å°?¥çš?«ã¯ã€TableWriter 系もå»?¢ã—ã¦ã€åŒæ§˜ã?フラグã§åˆ¶å¾¡ã™ã‚‹ã‚ˆã†ã«å¤‰æ›´ã™ã‚‹äºˆå®šã§ã™ã?
1147 * (åˆæœŸå€¤:シスãƒ?ƒ 定数ã®USE_TABLE_READER_RENDERER[={@og.value org.opengion.hayabusa.common.SystemData#USE_TABLE_READER_RENDERER}])ã€?
1148 *
1149 * @og.rev 5.2.1.0 (2010/10/01) æ–°è¦ä½œæ?
1150 *
1151 * @param flag コードリソースã®ãƒ©ãƒ™ãƒ«é€?¤‰æ›ã‚’行ã†ã‹ã©ã?‹
1152 * @see org.opengion.hayabusa.common.SystemData#USE_TABLE_READER_RENDERER
1153 */
1154 public void setUseRenderer( final String flag ) {
1155 useRenderer = nval( getRequestParameter( flag ),useRenderer );
1156 }
1157
1158 /**
1159 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºæ›¸ãè¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
1160 *
1161 * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ?
1162 * @serialData
1163 *
1164 * @param strm ObjectOutputStreamオブジェク�
1165 */
1166 private void writeObject( final ObjectOutputStream strm ) throws IOException {
1167 strm.defaultWriteObject();
1168 }
1169
1170 /**
1171 * シリアライズ用ã®ã‚«ã‚¹ã‚¿ãƒ?‚·ãƒªã‚¢ãƒ©ã‚¤ã‚ºèªã¿è¾¼ã¿ãƒ¡ã‚½ãƒ?ƒ‰
1172 *
1173 * ã“ã“ã§ã¯ã€transient 宣è¨?•れãŸå†?ƒ¨å¤‰æ•°ã®å†??åˆæœŸåŒ–ãŒå¿?¦ãªãƒ•ィールドã?ã¿è¨å®šã—ã¾ã™ã?
1174 *
1175 * @og.rev 4.0.0.0 (2006/09/31) æ–°è¦è¿½åŠ?
1176 * @serialData
1177 *
1178 * @param strm ObjectInputStreamオブジェク�
1179 * @see #release2()
1180 */
1181 private void readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
1182 strm.defaultReadObject();
1183 }
1184
1185 /**
1186 * ã“ã?オブジェクトã?æ–?—å?表ç¾ã‚’è¿”ã—ã¾ã™ã?
1187 * 基本çš?«ãƒ?ƒãƒ?‚°ç›®çš?«ä½¿ç”¨ã—ã¾ã™ã?
1188 *
1189 * @return ã“ã?ã‚¯ãƒ©ã‚¹ã®æ–?—å?表ç¾
1190 */
1191 @Override
1192 public String toString() {
1193 return org.opengion.fukurou.util.ToString.title( this.getClass().getName() )
1194 .println( "VERSION" ,VERSION )
1195 .println( "separator" ,separator )
1196 .println( "fileURL" ,fileURL )
1197 .println( "filename" ,filename )
1198 .println( "encode" ,encode )
1199 .println( "readerClass" ,readerClass )
1200 .println( "maxRowCount" ,maxRowCount )
1201 .println( "displayMsg" ,displayMsg )
1202 .println( "executeCount" ,executeCount )
1203 .println( "modifyType" ,modifyType )
1204 .println( "checkColumns" ,checkColumns )
1205 .println( "adjustColumns" ,adjustColumns )
1206 .println( "nullCheck" ,nullCheck )
1207 // .println( "allColumnCheck" ,allColumnCheck )
1208 .println( "command" ,command )
1209 .println( "tableId" ,tableId )
1210 .println( "sheetName" ,sheetName )
1211 .println( "sheetNos" ,sheetNos ) // 5.5.7.2 (2012/10/09)
1212 .println( "columns" ,columns )
1213 .println( "useNumber" ,useNumber )
1214 .println( "Other..." ,getAttributes().getAttribute() )
1215 .fixForm().toString() ;
1216 }
1217 }