5.6.9.0 (2013/10/04) [リソース定義] リソースのサーバ間差分データ設定(GE0011)を修正します。 pageSize を引数に追加と、maxRowCount を引数ではなく 0(制限なし) で渡すように変更します。 ge\jsp\GE0011 [ソースチェック関係 DB更新] @TARGET 属性の桁数を 10から 30に変更します。 これは、{@SAKI_TARGET} などの変数を使うケースがあるためです。 GF71,GF72 GF93 は、同じカラム名を使っているため、同時に更新しておきます。 AGF73 の FORM_NAME が、200桁で足りなく、500ケタに増やします。 BGF74 の CLMS が、500桁で足りなく、1000ケタに増やします。 GF74 の SQL_TYPE が、20桁で足りなく、30ケタに増やします。 CDB定義書とスキーマの差分削除 GF08 テーブル削除 D仕様書DBのカラム定義変更 GF92(画面項目定義テーブル) の JOINTYPE(連携タイプ) カラム削除 GF91(青紙明細テーブル) に JOINTYPE(連携タイプ) カラム追加 [GF リソース追加] GFM0051 備考 全角文字チェック ラベルリソース追加 USE_RESOURCE リソース使用 カラムリソース、コードリソース追加 [SQL文見直し] カラム別名を付けるときに、AS を省略可能であるが、別名カラムを探す場合などに 使えるため、基本的には、AS を記述することとします。 GF2060\dbdefIn.jsp(313): SELECT SYSTEM_ID,TBLSYU,TABLE_NAME,INDEX_NAME,'' BIKO,UNIQ GF2120\GFM0007.jsp(3): select '1' WRITABLE, '' TABLE_NAME,CLM,NAME_JA, GF2120\GFM0010.jsp(53): select '' TABLE_NAME,CLM,NAME_JA,CLS_NAME,RENDERER,EDITOR,DBTYPE, GF2120\GFM0011.jsp(53): select '0' WRITABLE, '' TABLE_NAME,CLM,NAME_JA,CLS_NAME, GF2120\GFM0012.jsp(3): select '1' WRITABLE,'' TABLE_NAME,CLM,NAME_JA,'' BIKO,UNIQ,SYSTEM_ID GF2120\GFM0013.jsp(4): RENDERER,EDITOR,DBTYPE,0 SEQ,'' CODE,'' CODENAME, GF2120\GFM0013.jsp(20): select '0' WRITABLE,'' TABLE_NAME,CLM,NAME_JA, GF2120\GFM0013.jsp(21): RENDERER,EDITOR,DBTYPE,0 SEQ,'' CODE,'' CODENAME,'' BIKO,UNIQ,SYSTEM_ID GF2120\GFM0049.jsp(3): select '1' WRITABLE, '' TABLE_NAME,A.CLM,COALESCE(B.LNAME,B.NAME_JA,A.NAME_JA) as NAME_JA, GF2120\GFM0049.jsp(5): case when A.CLS_NAME = 'CLOB' then '' else A.USE_LENGTH end as USE_LENGTH , GF2120\GFM0050.jsp(19): select '' TABLE_NAME,CLM,NAME_JA,CLS_NAME,RENDERER,EDITOR,DBTYPE, GF2252\insertGF92.jsp(117): , '' SEQ, A.CLM , MIN(A.TABLE_NAME) as TABLE_NAME, MIN(A.TABLE_NAME) || '.' || A.CLM as ZOKUSEI , MIN(C.AS_TABLE) AS AS_TABLE , FGJ , UNIQ GF6010\result.jsp(41): select GUIKEY,NAME_JA,RWMODE,DECODE( MOD(SEQNO,3),0,'row_mark','' ) GF6030\result.jsp(34): CLM,NAME_JA,LABEL_NAME,KBSAKU ,SYSTEM_ID,LANG,FGJ,'' LBA GF6050\result.jsp(36): CLM, PUP,NAME_JA,LABEL_NAME,KBSAKU,SYSTEM_ID,LANG,FGJ GF6140\result.jsp(36): '' ABC GF6430\result.jsp(37): || ':' || case when A.NAME_JA is null then '' else 'true' end -- 2は、must GF6430\result.jsp(44): A.NAME_JA,B.LNAME,A.KBSAKU,A.SYSTEM_ID,A.EDITOR,A.USE_LENGTH,B.LANG,A.FGJ, REQVAL GF6440\result.jsp(58): ,'' PUP GF9100\result.jsp(59): ,'' PUP GF9150\result.jsp(60): ,'' PUP GFX001\result.jsp(34): '' OPEN GFX022\result.jsp(49): VALUENAME, REQUIRED, DESCRIPTION, CONTENTS, HTMLEXT, ORA05\result.jsp(29): 'ALTER SYSTEM KILL SESSION ''' || SID || ',' || SERIAL# || '''' DELETE_SID, ORA10\result.jsp(27): select OWNER,OBJECT_NAME,OBJECT_TYPE,CREATED,LAST_DDL_TIME,TIMESTAMP,STATUS,'' DEL ORA10\result.jsp(63): select OWNER,OBJECT_NAME,OBJECT_TYPE,CREATED,LAST_DDL_TIME,TIMESTAMP,STATUS,'' DEL GF2120\GFM0011.jsp(3): select '1' WRITABLE, UPPER(TABLE_NAME) AS TABLE_NAME,UPPER(CLM) AS CLM,NAME_JA,CLS_NAME, GF2120\GFM0030.jsp(3): select '1' WRITABLE, UPPER(TABLE_NAME) AS CLM,NAME_JA,0 UNIQ,SYSTEM_ID GF2120\GFM0030.jsp(15): select '0' WRITABLE, CLM, NAME_JA, UNIQ,SYSTEM_ID GF2120\GFM0031.jsp(3): select '1' WRITABLE, CLM, NAME_JA, UNIQ,SYSTEM_ID GF2120\GFM0031.jsp(15): select '0' WRITABLE, UPPER(TABLE_NAME) AS CLM,NAME_JA,UNIQ,SYSTEM_ID GFX000\result.jsp(24): select FGFAVORITE WRITABLE [ファイル出力関連] ファイル出力時に、fileout.xls というファイル名と、fileOut.xls や、FileOut.xls は、 Windows上では区別されませんが、リンクやWeb上では区別されるため、ファイルが見つからない 等のエラーになります。 ここでは、fileout.xls に統一します。 common\gamen\03_DBSEARCH\fileSave.jsp(23): filename = "FileOut.xls" common\gamen\03_DBSEARCH\fileSave.jsp(28): common\gamen\03_DBSEARCH\fileSave.jsp(29): Excel Open FileOut.xls GF6240\index.jsp(23): pageContext.forward( "writeFileRedirect.jsp?filename=FileOut.xls" ); GF6240\query.jsp(40): out.print( "&filename=FileOut" ); GF6440\result.jsp(112): ※ jspのファイル名も変更します。いつものような上書きでは大文字小文字のファイル名は変更されませんので、 直接書き換える必要があります。 GF6440\fileOut.jsp → fileout.jsp 08_DBUPDATE で、カラムの選択に、CLMS 変数を使うと、ファイルダウンロードのカラム指定と 同じキーのため、指定のカラムが出力できない現象が発生しました。 そのため、キー名を変更します。 CLMS → SEL_CLMS common\gamen\08_DBUPDATE\query.jsp common\gamen\08_DBUPDATE\result.jsp DB定義DB情報のXML出力時に、DYSET,DYUPDなどの共通属性を抜き出していなかったので、 それらも抜き出すように変更します。 現在、更新系の処理では、UNIQだけでなく、DYSETもキーとして使っています。 これは、UNIQ番号だけでは、他のテーブルの番号と同じ場合に誤って更新して しまうので、サブキーの代わりに使っています。 本来は、すべてのテーブルでユニークになるような、UNIQ を採番すればよいのですが、 それには、数字ではなく、文字列で桁数を増やす必要があり、今は見送ります。 GF2150\result.jsp 5.6.8.3 (2013/09/27) [columnCheckタグ修正] カラムチェックタグのテーブルモデル有無チェックをcommandで行っていましたが、 実際にはcheckTypeに従ってチェックを行う必要があるため修正します。 hayabusa.taglib.ColumnCheckTag#doEndTag() hayabusa.taglib.COlumnCheckTag#makeErrorDBTable() 5.6.8.2 (2013/09/20) [Tomcat8 対応] DBConfig.xml の読み取りで、ClassLoader から、getResource しているが、 Tomcat8では従来の方法では取れない。 そこで、取れない場合は、基準URLを作成してから、Fileオブジェクトで合成する ようにしました。あくまで、取れなかった場合のみ、動作します。 fukurou.db.DatabaseConfig( final String xmlfile ) X ※ この修正には、\endorsed 以下に、ogTomcat8.jar をコピーする必要がある為保留します。 X コピーしたファイルは、Tomcat7 上でコンパイルする為だけに必要なので、今は対応しません。 X X javax.servlet.ServletOutputStream に、isReady() と、setWriteListener(WriteListener) X の abstractメソッドが、追加されたため、オーバーライドしなければなりません。 X ただし、javax.servlet.WriteListener インターフェースがない為、この class ファイルだけを、 X ogTomcat8.jar という jar にまとめ、tomcat7.x.x の endorsed にコピーし、build.xml に X クラスパスを追加することで、tomcat7 環境でもコンパイルできるようにします。 X なお、Tomcat8 に完全移行する時には、ogTomcat8.jar は不要になります。 X hayabusa.filter.FileResponseStream#isReady() X hayabusa.filter.FileResponseStream#setWriteListener( final javax.servlet.WriteListener listener ) X hayabusa.filter.GZIPResponseStream#isReady() X hayabusa.filter.GZIPResponseStream#setWriteListener( final javax.servlet.WriteListener listener ) [RegistryQueryTag 対応] 以前のPreferencesでは、HKEY_CURRENT_USER/Software 以下のキーを baseKey に指定しても 取得できていましたが、いつからかできなくなっています。 そこで、とりあえず、java.util.prefs.WindowsPreferences を直接変更して、 Software/muratec と、Software/microsoft だけは、取得できるようにしました。 これを実行するには、この改造したクラスを含む jarファイル(ogPreferences.jar)を tomcatの\endorsed に入れておく必要があります。 ちょっと、このタグの見直しを検討します。 属性追加もあります。 hkeyType : HKEY_CURRENT_USER(="user") を読むか、HKEY_LOCAL_MACHINE(="system") を読むかを指定します(初期値:user)。 hayabusa.taglib.RegistryQueryTag.java 修正箇所多数あり gf\src\META-INF\hybs-taglib.tld RegistryQueryTag に、hkeyType 属性追加 gf\WEB-INF\hybs-taglib.tld gf/jsp/GF1020 [rawLongLabel対応] 一覧上でのプルダウンは表示にラベル短を利用し、ツールチップとしてラベル長を利用していました。 概要説明が存在する場合にラベル長がspanタグで囲われてしまって正常に表示されない不具合が ありましたので、未加工のラベル長をツールチップで利用するように変更します。 haybusa.resource.LabelData#LabelData( final String inkey ) haybusa.resource.LabelData#LabelData( final String[] data ) haybusa.resource.LabelData#getRawLongLabel() hayabusa.resource.CodeData#RLNAME,MAX_LENGTH hayabusa.resource.CodeData#getRawLongLabel( final int seqNo ) hayabusa.resource.CodeData#CodeData( final String clm, final Map data) hayabusa.resource.CodeData#subsetList( final String codeCsv ) hayabusa.resource.CodeData#subsetGroup( final String group ) hayabusa.resource.CodeData#subsetRole( final RoleMode userRole ) hayabusa.resource.CodeDataLoader#loadDBResource() hayabusa.resource.CodeDataLoader#getCodeData( final String key ) hayabusa.db.Selection_CODE#Selection_CODE( final CodeData cdData ) [クライアントガント(積上げ)の修正] 折りたたみ表示の場合に、正確に積上げされていない場合があったので修正します。 /jsp/common/option/adjustGanttTable.js 5.6.8.1 (2013/09/13) [edit機能修正] 合計のBigDecimal化をした際に、上手く合計値が足されてない不具合があったため修正します。 hayabusa.db.DBTableModelEditor#addTotalRows( final int maxRowCount, final ResourceManager resource, final boolean[] sumFilter , final boolean[] groupFilter, final boolean[] subTotalFilter, final boolean[] totalFilter ) [{@LAST.XXXX}対応] 最後に使用した値を利用する機能を追加します。 {@MEM.XXXX} と違い、ユーザーオブジェクト内で共有します。 {@LAST.XXXX} を見つけた場合、UserInfo内のメモリにキーを用意し、 command="NEW" が指定された時(RequestCacheTag)の XXXX の値を メモリに設定します。 この設定された値は、ユーザー永続化情報(GE20)テーブル に、通常の情報と 区別する為、"LAST_REQUEST_" という接頭語を付けて保存されます。 hayabusa.taglib.CommonTagSupport#getLASTAttri( final String attkey ) hayabusa.taglib.CommonTagSupport#getReservedValue( final String key ) hayabusa.taglib.RequestCacheTag#commandExec( final String command,final ServletRequest request ) hayabusa.resource.UserInfo#getLastRequestValue( final String key,final String val ) hayabusa.resource.UserInfo#setLastRequestMap( final Map