概要: Webエンジン Ver 5.2.2.0 (2010/11/01) をリリースいたします。 今回のリリースのおける主な変更点は、軽微な機能追加、及びバグ修正です。 ※ バージョンアップされる場合は、ビルドファイル(verup.x.x.x.x.zip)に含まれるchanges.txtを確認の上、 作業をお願いします。 ※ 変更点に関する詳細及びその他の修正内容については、添付のリリースノートを参照下さい。 5.2.2.0 (2010/11/01) [リソースVer3,Ver5共有] 以下の対応で、表示パラメーター、編集パラメーター、文字パラメーターに"_"が設定されている場合に nullとして処理されない問題に対応します。 -------------------------------------------------------------------------------------------- [リソースVer3,Ver5共有] リソースの "_" の取り扱いを修正します。 Ver3時代は、"_" は、ゼロ文字列として処理するケースと、null と 同等と判断するケースがありました。 Ver3とVer5でリソース共有する場合、コードリソース以外では不都合が発生します。 そこで、StringUtil#nval2 のメソッドを変更して互換性を保つようにします。 具体的には、現状、"_" を ゼロ文字列に変換している箇所を、null と判断するように 変更します。それとともに、第3の引数を用意して、"_" をゼロ文字列と判断する場合の ロジックを追加します。 fukurou.util.StringUtil#nval2( final String in,final String def ) { fukurou.util.StringUtil#nval2( final String in,final String def,final String def2 ) { hayabusa.resource.CodeData#CodeData( final String clm, final Map data) { -------------------------------------------------------------------------------------------- org.opengion.hayabusa.resource.ColumnData.ColumnData(String[]) [ドキュメント管理モジュール・DB定義/設定変更] ドキュメント管理モジュールの実装に伴い、DB定義及びweb.xmlの設定変更を行います。 (実装は次回リリース 5.2.3.0 (2010/12/01) になる予定です) GE38 SYKEY 削除 GE39 SYKEY 削除 GE39 SRCHKEY1~10 追加 GE39S02 追加 WEB-INF/web.xml [ContextRoot]/filemg以下を公開できるように設定変更 [Calc帳票システム・バグ修正] Calc帳票でセルの定義として、関数を使用せずに他のセルを直接参照した場合に正しく処理されない バグを修正します。 org.opengion.hayabusa.report2.TagParser.doParse(String, String, String, boolean) [Calc帳票システム・条件付書式対応] Calc帳票で雛形に設定した条件付書式が正しく動作するように対応します。 org.opengion.hayabusa.report2.OdsContentParser [default.css修正] DBType="KCL"(全角+改行C)がdefault.cssに定義されていなかったため、修正します。 jsp/common/default.css [Renderer_NUMBER 修正] オブジェクトのキャッシュの箇所で、初期値、小数点数の組み合わせが、 足りないため、おかしな組み合わせになっていた箇所を修正します。 現象的には、小数点で、少数桁数が0でない場合、初期値が '0' になりますが 初期値が ゼロ文字列の場合は、ゼロ文字列にします。 plugin.column.Renderer_NUMBER#newInstance( final DBColumn clm ) [DBColumn#valueCheckの見直し] あいまい検索時など、通常の valueCheck と データ登録時の valueCheck は 精度が異なります。(あいまい検索では、桁数の少ないチェックは不要など) そこで、検索時のチェック(makeErrorMessage) と、登録時(makeEntryErrorMessage) で、valueCheck を方法を分けます。 具体的には、引数に、厳密フラグ(=true)を用意して、対応します。 初期値は、互換性の考慮と、チェックを甘くする方を指定するという意味で、 true にしておきます。 ColumnCheckTag で、厳密なチェックを行うかどうかを指定できるように属性追加(useStrict) hayabusa.taglib.ColumnCheckTag#setUseStrict( final String flg ) これに伴い、TLDを変更します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld ColumnCheckTag の makeErrorMessage 側のvalueCheck だけ、isStrictフラグを false で呼び出す。 hayabusa.taglib.ColumnCheckTag#makeErrorMessage( final ErrorMessage errMsg ) hayabusa.db.DBColumn#valueCheck( final String value ) { hayabusa.db.DBColumn#valueCheck( final String value , final boolean isStrict ) { hayabusa.db.DBType#valueCheck( String key ,String value ,int sizeX ,int sizeY,String typeParam , boolean isStrict ) ; hayabusa.db.AbstractDBType#valueCheck( final String key ,final String value , final int sizeX ,final int sizeY ,final String typeParam ) { 引数に、isStrictフラグを追加。内部ロジックは、変更なし。 plugin.column.DBType_ALL#valueCheck( final String key ,final String value , plugin.column.DBType_K#valueCheck( final String key ,final String value , plugin.column.DBType_KCL#valueCheck( final String key ,final String value , plugin.column.DBType_OASNM#valueCheck( final String key ,final String value , plugin.column.DBType_R#valueCheck( final String key ,final String value , plugin.column.DBType_S9#valueCheck( final String key ,final String value , plugin.column.DBType_X9#valueCheck( final String key ,final String value , plugin.column.DBType_XH#valueCheck( final String key ,final String value , plugin.column.DBType_XHU#valueCheck( final String key ,final String value , plugin.column.DBType_XK#valueCheck( final String key ,final String value , plugin.column.DBType_XKZ#valueCheck( final String key ,final String value , plugin.column.DBType_XL#valueCheck( final String key ,final String value , plugin.column.DBType_XLU9#valueCheck( final String key ,final String value , plugin.column.DBType_XU#valueCheck( final String key ,final String value , plugin.column.DBType_XU9#valueCheck( final String key ,final String value , 引数に、isStrictフラグを追加。isStrict=true の場合は従来どおり文字数の同数チェック。 falseの場合は、最大を超えていないかだけチェック。 plugin.column.DBType_DATE#valueCheck( final String key ,final String value , plugin.column.DBType_YM01#valueCheck( final String key ,final String value , plugin.column.DBType_YM31#valueCheck( final String key ,final String value , plugin.column.DBType_YMD#valueCheck( final String key ,final String value , [popup のheight、width の px 修正] 5.2.1.0 (2010/10/01) で対応した、popup のheight、width の px 修正の件で、 height、width が null の場合、前後に シングルクオートを出したために、'null' 文字列が出力されてしまい、JavaScript側で値設定が漏れ、最小の大きさのダイアログに なってしまった。 文字列の null の場合の対応を入れます。 hayabusa.taglib.PopupTag#makePopup( final boolean useKey ) [URLHashFilter 追加 ※試作中] jspへのアクセスに関する制限を行うフィルターです。 このフィルターを利用するには、web.xml の設定が必要です。 また、実際に機能させるには、システムリソースの URL_ACCESS_SECURITY_LEVEL パラメータで、レベルを指定します。 現時点ではポップアップなどの考慮もされていないため、使用できません。 hayabusa.common.HybsSystem#URL_HASH_REQ_KEY = "h_r"; hayabusa.common.SystemData#URL_ACCESS_SECURITY_LEVEL = "0" ; web.xml のサンプルとして、コメントですが、追記しておきます。 gf/WEB-INF/web.xml これに伴い、MD5 処理のロジックを、fukurou.util.StringUtil から、 fukurou.security.HybsCryptography へ移動させます。 fukurou.util.StringUtil#getMD5( final String input ) 廃止 fukurou.security.HybsCryptography#getMD5( final String input ) こちらへ移動 fukurou.process.Process_StringUtil$SU_getMD5 extends StrAction { 内部クラスの修正 fukurou.process.Process_StringUtil$SU_encrypt extends StrAction { 内部クラスの修正 fukurou.process.Process_StringUtil$SU_decrypt extends StrAction { 内部クラスの修正 hayabusa.resource.URLXfer#getRandomURL( final String redirectURL,final String name,final String validDate,final String userid ) { plugin.column.DBType_MD5#valueSet( final String value ) { URLのハッシュ化で、fukurou.security に URLHashMap.java を新規作成します。 fukurou.security.URLHashMap.java 新規作成 [クラス循環参照の解消] パッケージ間で、優先順位を決めており、上位から下位を参照しないように していますが、上位から下位を参照しているクラスが有りますので修正します。 fukurouパッケージ内での依存関係 model 、 security 依存なし util security に依存 xml 、mail、taglet util に依存 db util、xml に依存 business util、db、model に依存 process util、xml、db、model、mail に依存 hayabusaパッケージ内での依存関係(fukurouは、上位パッケージとして依存している) common、develop 依存なし filter common remote resource db common、resource ※ resource と循環参照 resource common、db ※ db と循環参照 html、io、mail、report common、db、resource report2 common、db、resource、report servlet common、remote、servlet.multipart taglib common、db、develop、html、io、mail、report、report2、resource、servlet pluginパッケージ内での依存関係(fukurou、hayabusaは、上位パッケージとして依存している) pluginパッケージ内での依存なし LogWriter の使用を止めて、System.out.println で代用する。(サンプルプログラムなので) fukurou.security.HybsCryptography.java(18) import org.opengion.fukurou.util.LogWriter; ProcessFactory 側で、Cleanable インターフェースを実装する。 hayabusa.common.SystemManager#sofficeKill() 削除 hayabusa.report2#ProcessFactory hayabusa.common.HybsContextListener#contextDestroyed( final ServletContextEvent event ) [クラス移動] クラスのパッケージ間移動を行います。よって、元のクラスファイルは、削除されます。 org.opengion.hayabusa.html.StringFormat ⇒ fukurou.util.StringFormat org.opengion.hayabusa.db.DBSimpleTable ⇒ fukurou.db.DBSimpleTable パッケージ移動(hayabusa.html.StringFormat ⇒ fukurou.util.StringFormat) org.opengion.hayabusa.html.StringFormat ⇒ fukurou.util.StringFormat hayabusa.db.DBEventColumn.java(19) import org.opengion.hayabusa.html.StringFormat; plugin.column.Editor_DBMENU.java(25): import org.opengion.hayabusa.html.StringFormat; plugin.column.Editor_DBRADIO.java(28): import org.opengion.hayabusa.html.StringFormat; plugin.column.Editor_INDBMENU.java(25): import org.opengion.hayabusa.html.StringFormat; plugin.column.Editor_QUERY.java(22): import org.opengion.hayabusa.html.StringFormat; plugin.column.Renderer_DBMENU.java(26): import org.opengion.hayabusa.html.StringFormat; plugin.column.Renderer_FORM.java(21): import org.opengion.hayabusa.html.StringFormat; plugin.column.Renderer_MULTIQUERY.java(24): import org.opengion.hayabusa.html.StringFormat; plugin.column.Renderer_QUERY.java(22): import org.opengion.hayabusa.html.StringFormat; パッケージ移動(hayabusa.db.DBSimpleTable ⇒ fukurou.db.DBSimpleTable) org.opengion.hayabusa.db.DBSimpleTable ⇒ fukurou.db.DBSimpleTable HybsSystemException ⇒ RuntimeException HybsSystem.CR ⇒ CR fukurou.db.DBSimpleTable.java(50): public class DBSimpleTable { fukurou.db.DBSimpleTable.java(77): public DBSimpleTable( final String[] nm ) { hayabusa.common.SystemManager.java(35): import org.opengion.hayabusa.db.DBSimpleTable; hayabusa.resource.UserInfo.java(34): import org.opengion.hayabusa.db.DBSimpleTable; [JavaScript圧縮] JavaScript圧縮のソースで、圧縮後、改行コードのあるなしで、 差分が発生していたのを、オリジナル(改行コードなし)に 統一します。 ge/jsp/common/ gf/jsp/common/ gf/jsp/menu/ [Process_TableReader] バッチ系ファイル読取で、#NAME が存在しない場合の対応として、 columns 属性を対応します。 同時に、行番号部分を読み飛ばすかどうかを指定する、useNumber 属性も 追加します。 fukurou.process.Process_TableReader#init( final ParamProcess paramProcess ) fukurou.process.Process_TableReader#usage() [JavaDoc 修正] ant 実行時の spec で警告の出た分の対応 これは、ソースコメントの記述不足の警告です。 ソースは、徐々にメンテナンスしていきますが、簡易的にコメントを埋めます。 修正ソースの一覧は、5.2.2.0_refactoring.txt として、別途残します。 [ファイル入力時の改行処理] ""で囲われているデータに改行が入っていた場合の対応として、ダブルクオートの 数が、奇数の場合は、継続して次の行を読み取るように修正します。 fukurou.process.Process_TableReader#next() hayabusa.taglib.DirectTableInsertTag#create( final BufferedReader reader ) [ファイル出力時の改行処理] ファイル出力時には、読取時のルールに適合するように出力します。 1.改行を含む場合は、ダブルクオートを強制的に前後に追加する。 2.ダブルクオートを含む場合は、その直前にダブルクオートを強制的に追加する。 fukurou.process.Process_TableWriter#writeData( final LineModel data ) hayabusa.taglib.DirectWriteTableTag#create( final PrintWriter out ) hayabusa.io.AbstractTableWriter#quotation2( final String data ) plugin.io.TableWriter_Data#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_Default#writeData( final DBTableModel table,final PrintWriter writer ) { [クロス集計機能改善] String 各列情報のclass属性に、カラム名などを付与するかどうかを指定する属性 useClassAdd を 追加します。 class属性は、その列のオリジナルの属性名と、ラベル名の文字列を設定します。 例えば、集計行の計カラムが複数ある場合は、それぞれに色を指定して、ゼブラ模様を 設定できます。また、ラベル(表示ヘッダー)も設定されるので、特別な列のみ指定することも 可能になります。 ※ 特殊対応:cssなどで指定できるIDやCLASS属性は、先頭文字が数字の場合は、 無効になります。(つまり、効きません。) 表示ヘッダーは、年月や、社員番号(数字)などのケースもあります。そこで、先頭が数字の 場合は、"x"(小文字のx)を自動的に頭に追加します。この処理は、ViewForm_HTMLCrossTable で行います。 hayabusa.html.ViewCrossTableParam#ViewCrossTableParam.java hayabusa.taglib.ViewCrossParamTag#setUseClassAdd( final String useClassAdd ) plugin.view.ViewForm_HTMLCrossTable# plugin.view.ViewForm_HTMLCrossTable#clear() { plugin.view.ViewForm_HTMLCrossTable#create( final int startNo, final int pageSize ) { plugin.view.ViewForm_HTMLCrossTable#paramInit( final DBTableModel table ) { plugin.view.ViewForm_HTMLCrossTable#makeCrossTable( final DBTableModel table ) { gf\jsp\GF6070 className が、BIT の場合のみ、getColumnDbType(String) の戻り値に、dbType の値+ "BIT" を付与して、センター表示させていましたが、逆に、VARCHAR2 と NUMBER 以外は 出力するように変更します。 これは、columnEditor 等で、className を外部から指定することで、class 属性に新しい値を 設定できるようにします。 hayabusa.html.AbstractViewForm#getColumnDbType( final int column ) [andタグ 機能追加] multi="true" 時に、引数がマルチリクエストでなくても、separeta 属性を 指定すると、その分も分割する機能を追加します。 これは、AA,BB,CC という単独のリクエスト(XX)に対して、 という指定により、XX in ( 'AA','BB','CC' ) という文字列を生成します。 サンプル画面として、gf\jsp\GF7070 を復活します。 (【タグリブテスト】 Valueタグ GF7070) hayabusa.taglib.SqlAndTag#release2() hayabusa.taglib.SqlAndTag#makeCSVvalue( final String[] array ) { hayabusa.taglib.SqlAndTag#setSeparator( final String sepa ) { gf\jsp\GF7070 復活 [valueタグ 機能追加] valueタグに、新しいアクションを追加します。 REPLACE 文字列置換 value の値から、指定された正規表現(from)の部分文字列を、部分文字列(to)で置換します。 SUBSTR 部分文字列 value の値から、指定された(from)から(to)の部分文字列を作成します。 SPLIT 文字列分割 value の値から、指定されたseparatorで分割した文字列を作成します。(key+0~連番) これに伴い、fromVal、toVal 属性を追加します。 hayabusa.taglib.ValueTag#doStartTag() hayabusa.taglib.ValueTag#release2() hayabusa.taglib.ValueTag#actionExec( final String action,final String value ) hayabusa.taglib.ValueTag#setAttribute( final String key,final String value,final String action ) hayabusa.taglib.ValueTag#setFromVal( final String from ) hayabusa.taglib.ValueTag#setToVal( final String to ) これに伴い、TLDを変更します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [caseKey 、caseVal 属性対応] タグ自体を利用するかどうかの条件判定を指定できる、caseKey 、caseVal 属性を対応します。 これは、(caseKey == null) || (caseVal == null) || caseKey.matches( caseVal ) の 結果を元に、そのタグが実行するのかしないのかを判定します。 セッターゲッターは、共通の CommonTagSupport に用意しますので、各プログラムに関しては、 実装を入れるとともに、tld ファイルにcaseKey 、caseVal 属性を定義します。 hayabusa.taglib.ButtonTag.java hayabusa.taglib.ColumnEditorTag.java hayabusa.taglib.ColumnTag.java hayabusa.taglib.CommonTagSupport.java tldなし hayabusa.taglib.HTMLTagSupport.java tldなし hayabusa.taglib.HiddenTag.java hayabusa.taglib.InputTag.java hayabusa.taglib.LinkTag.java hayabusa.taglib.MessageTag.java hayabusa.taglib.OptionTag.java hayabusa.taglib.OrderByTag.java hayabusa.taglib.PopupTag.java hayabusa.taglib.QueryOptionTag.java hayabusa.taglib.QueryTag.java hayabusa.taglib.SelectTag.java hayabusa.taglib.SqlAndTag.java hayabusa.taglib.SubmitTag.java hayabusa.taglib.TableMergeTag.java hayabusa.taglib.TFormatTag.java tldなし (TheadTag、TbodyTag、TfootTag) hayabusa.taglib.UserInfoTag.java hayabusa.taglib.ValueTag.java hayabusa.taglib.ViewFormTag.java この処理は、5.1.9.0 (2010/08/01) で SqlAndTag に導入した matchKey、matchVal 属性と 同じ動作を行いますので、matchKey、matchVal 属性を廃止(削除)します。 これに伴い、TLDを変更します。 (matchKey、matchVal 属性を削除、caseKey、caseVal 属性を追加) gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [リソースVer3,Ver5共有] リソースの "_" の取り扱いを修正します。 Ver3時代は、"_" は、ゼロ文字列として処理するケースと、null と 同等と判断するケースがありました。 Ver3とVer5でリソース共有する場合、コードリソース以外では不都合が発生します。 そこで、StringUtil#nval2 のメソッドを変更して互換性を保つようにします。 具体的には、現状、"_" を ゼロ文字列に変換している箇所を、null と判断するように 変更します。それとともに、第3の引数を用意して、"_" をゼロ文字列と判断する場合の ロジックを追加します。 fukurou.util.StringUtil#nval2( final String in,final String def ) { fukurou.util.StringUtil#nval2( final String in,final String def,final String def2 ) { hayabusa.resource.CodeData#CodeData( final String clm, final Map data) { [msg属性の廃止] メッセージリソースの廃止に伴い、msg 属性を廃止します。 現在、残っているのは、dataCheckタグのみです。 当面は、msg属性は残しますが、廃止予定とします。 それ以外に、CommonTagSupport で残っている、setMsglbl(String)メソッドも 処理は、setLbl(String) とまったく同じなので、削除します。 hayabusa.taglib.DataCheckTag#setMsg( final String id ) 廃止予定 hayabusa.taglib.DataCheckTag#setLbl( final String id ) hayabusa.taglib.DataCheckTag#setMsgParamKeys( final String keys ) 廃止予定 hayabusa.taglib.DataCheckTag#setLblParamKeys( final String keys ) hayabusa.taglib.CommonTagSupport#setMsglbl( final String lbl ) 削除 hayabusa.taglib.InputTag#setLbls( final String lbls ) hayabusa.taglib.OptionTag#setLbls( final String lbls ) hayabusa.taglib.OrderByTag#setLbls( final String lbls ) jsp ファイルの修正 (common,custom は、ge も修正) gf/jsp/common/fileDownload.jsp_Overflow(39): gf/jsp/common/gamen/05_DBCONFIG/entry.jsp(20): gf/jsp/common/gamen/14_EDIT/update.jsp(34): msg = "GEE0001"> gf/jsp/common/gamen/14_EDIT/upload.jsp(27): msg = "GEE0002"> gf/jsp/custom/query_info.jsp_linemenu(17): gf/jsp/custom/query_info.jsp_linemenu(20): gf/jsp/GF2020/entry.jsp(25): gf/jsp/GF2170/backup/query.jsp_GEA08_use(87): gf/jsp/GF9100/result.jsp(29): gf/jsp/GF9100/result.jsp(36): msg="GFE0002" gf/jsp/GF9100/result.jsp(37): msgParamKeys="{#SYSTEM_ID},'ZW GE GF',{@SYSTEM_ID}" gf/jsp/GF9200/result.jsp(29): gf/jsp/GF9200/result.jsp(36): msg="GFE0002" gf/jsp/GF9200/result.jsp(37): msgParamKeys="{#SYSTEM_ID},'ZW GE GF',{@SYSTEM_ID}" gf/jsp/GF9300/result.jsp(29): msg="GFE0002" gf/jsp/GF9300/result.jsp(30): msgParamKeys="{#SYSTEM_ID},'ZW GE GF',{@SYSTEM_ID}" gf/jsp/GFX013/query.jsp_GEA08_use(87): ソースチェックの項目追加 ERROR25 msg 属性やmsgParamKeys属性は廃止属性です。lbl属性,lblParamKeys属性に置き換えてください。 gf/jsp/DOC18/xsltV5GF70_PROG.xsl これに伴い、TLDを変更します。 (dataCheck に、lbl 、lblParamKeys 属性を追加 ) gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [ソース修正] ソースチェックでエラーが発生していた箇所を修正します。 ge/jsp/menu/menu_init.jsp gfjsp/menu/menu_init.jsp をコピー ge/jsp/menu/matrix_info.jsp gfjsp/menu/matrix_info.jsp をコピー ge/REP21/result.jsp htmlend.jsp のインクルード漏れ ge/REP21/result2.jsp htmlend.jsp のインクルード漏れ ge/jsp/GE0009/result_report.jsp XML形式見直し、件数表示追加 ge/jsp/GE0009/result_reportData.jsp XML形式見直し、件数表示追加 ge/jsp/GE0009/result_resource.jsp XML形式見直し、件数表示追加 [ソース削除] 不要のソースや利用されていないソースを削除します。 gf/jsp/custom/result_info_Capture.jsp gf/jsp/GF2253/copyRow.jsp gf/jsp/GF2253/insertGF92.jsp gf/jsp/ORA10/entry.jsp gf/jsp/ORA10/forward.jsp gf/src/script/common/option/jqog.js [submitタグ action 属性] Ver5 になって、update.jsp ですべての処理を行う方向で開発するに当たり、 command と lbl を記述する必要がでてきました。 そこで、action 属性を用意し、command を記述するだけでパラメータを 設定できるようにしました。 * [action属性] [初期設定されるパラメータ郡] * INSERT value="update" command="INSERT" lbl="INSERT" accesskey="I" * COPY value="update" command="COPY" lbl="COPY" accesskey="C" * MODIFY value="update" command="MODIFY" lbl="MODIFY" accesskey="M" * DELETE value="update" command="DELETE" lbl="DELETE" accesskey="Z" * ENTRY value="entry" command="ENTRY" lbl="ENTRY" accesskey="E" * RESET value="reset" command="RESET" lbl="ENTRY" accesskey="R" hayabusa.taglib.SubmitTag#ENUM_ACTION hayabusa.taglib.SubmitTag#doStartTag() hayabusa.taglib.SubmitTag#release2() hayabusa.taglib.SubmitTag#setAction( final String act ) hayabusa.taglib.SubmitTag#getHiddenTag( final String command, final String lbl, final String valueLink ) update.jsp に対して、columnWritable と、noWritable は commandごと、または、 ボタンごとに変更するケースがほとんどです。 (INSERT時とUPDATE時に書き換え可能なカラムの指定が変わる) Ver3 では、それぞれのボタンに対するJSPを作成していたため、直書きしていました。 Ver4 では、update.jsp に統一したため、submitタグの keys,vals で指定していました。 Ver5 では、上記の action 属性を用意するとともに、columnWritable と、noWritable を 独立した属性として用意します。 なお、update.jsp への渡し方は、従来の keys,vals に設定した場合と同じです。 hayabusa.taglib.SubmitTag#setColumnWritable( final String columnName ) hayabusa.taglib.SubmitTag#setNoWritable( final String columnName ) これに伴い、TLDを変更します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [guiQueryタグ 新規作成] ロール指定による画面一覧の検索ができる画面を作成します。 ロールは、エンジン内部で処理しているため、単純な文字列比較処理等では 対応できません。よって、検索用のカスタムタグを新規作成します。 hayabusa.taglib.GuiQueryTag.java 新規追加 gf/jsp/GF1080 実行サンプル これに伴い、TLDを変更します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [HybsAdmin 修正] HybsAdminでシステムリソースから取得しようとしている変数(USE_HTML_TABLE_CSS、HTML_BORDERなど) は、すでに廃止されています。 よって、その箇所をコメントアウトします。 hayabusa.servlet.HybsAdmin#getTableHeaderTag() [/gf/jsp の統一] JSPのアドレス指定で、絶対アドレス化できる箇所は対応していますが、 対応方法に若干のゆれが生じていましたので、統一します。 コンテキストを指定する方法として、システムリソースに CONTEXT_NAME gf JSP /gf/jsp があります。 基本的に、{@SYS.JSP}/・・・ に統一します。 (/{@SYS.CONTEXT_NAME}/jsp/common/・・・ ⇒ {@SYS.JSP}/common/・・・) jsp/common\gamen\12_GUIMAKEGUI\main.jsp(10): jsp/common\gamen\13_GUILIST\menu.jsp(22): 【】 jsp/common\gamen\13_GUILIST\menu.jsp(37): [admin画面のシステムリソース] admin画面のシステムリソース で、SERVER_URL と CONTEXT_URL が、最下位に表示されます。 その上位には、プラグインなど普段使用しない属性が表示されているため 場合によっては、このキーを見つけられないケースがあります。 このシステムリソースの並び順は、SystemParameter.java に記述された順番なので、 先の2つのキーのみを、(値はリクエストから求めるので初期設定できない) 予約語的に、定義しておきます。 hayabusa.common.SystemData#SERVER_URL = "" ; hayabusa.common.SystemData#CONTEXT_URL = "" ; admin画面のParameter で取得される内容をメンテナンスします。 この画面は、使い方のサンプル集の形なので、すべての情報を動的に 取得しているわけではなく、通常のドキュメントと同じ感覚で 修正する必要があります。 今回は、{@SYS.XXXX} に、 HOST_NAME,HOST_ADRS,SYSTEM_ID,JSP,FILE_URL,FILE_OUT_URL の属性をサンプルとして追加しました。 jsp/common/gamen/01_ADMIN/printSystemParameter.jsp [クロス集計改修] クロス集計に、columnDisplay 属性を追加(有効に)します。 従来は、noDisplay のみ用意していましたが、集計側のカラムには 名称が存在しない為(皆同じ)固定キー部分を "残す" という指定 ができれば、集計側が消えることになります。 そのため、columnDisplay 属性を追加します。 plugin.view.ViewForm_HTMLCrossTable#clear() plugin.view.ViewForm_HTMLCrossTable#create( final int startNo, final int pageSize ) plugin.view.ViewForm_HTMLCrossTable#setColumnDisplay( final String columnName ) plugin.view.ViewForm_HTMLCrossTable#getHeadLine() jsp/GF6070 改修 useHeaderColumn 属性が、ロジックの中で直接 getParam していた(しかもループ中で)ため、 paramInit に移動します。 また、ViewCrossParamTag で設定する場合のキーを、ViewCrossTableParam で定義しているの ですが、これも、文字列が直書きされていたため、static 文字列を定義しました。 hayabusa.html.ViewCrossTableParam#USE_HEADER_COLUMN = "h_useHeaderColumn" ; // 5.2.2.0 (2010/11/01) hayabusa.taglib.ViewCrossParamTag#setUseHeaderColumn( final String useHeaderColumn ) plugin.view.ViewForm_HTMLCrossTable#create( final int startNo, final int pageSize ) plugin.view.ViewForm_HTMLCrossTable#paramInit( final DBTableModel table ) plugin.view.ViewForm_HTMLCrossTable#makeCrossTable( final DBTableModel table ) hayabusa.taglib.ViewFormTag#doEndTag() ViewCrossParamTag の saveTableId 属性が、文字列直書きなので、ViewCrossTableParam.SAVE_TABLEID_KEY を 利用するように書き換えました。 同時に、出力時の スコープ指定が出来るように、saveScope 属性を追加しました。 hayabusa.html.ViewCrossTableParam#SAVE_TABLEID_KEY = "h_saveTableId" hayabusa.html.ViewCrossTableParam#SAVE_SCOPE_KEY = "h_saveScope" ; // 5.2.2.0 (2010/11/01) hayabusa.taglib.ViewCrossParamTag#setSaveTableId( final String id ) 修正 hayabusa.taglib.ViewCrossParamTag#setSaveScope( final String scope ) 新規追加 hayabusa.taglib.CommonTagSupport#setObject( final String key ,final Object object ) hayabusa.taglib.CommonTagSupport#setObject( final String key ,final Object object ,final String scp ) [文字の中央表示] View関連で、以前(Ver3)は、getColumnClassName の値を使用していましたが、Ver4以降は、 getColumnDbType を使用して、より細かい、CSSによる表示の区別をするようになりました。 ところが、従来、中央表示で、BIT を columnClassName で定義していた分が、右か左になって しまいました。 そこで、BIT の場合のみ、BIT もあわせて出力するように変更します。 hayabusa.html.AbstractViewForm#getColumnDbType( final int column ) src\script\common/default.css .BIT 追加