5.5.7.0 (2012/10/01) [ViewForm_HTMLStackedGanttTable(積上げグラフ)追加] 工数を積上げて表示するスタックガント表示機能を追加します。 表示にはviewタグでHTMLStackedGanttTableを指定した上で、日付ヘッダーにはstackHeaderTagを 利用して下さい。 積上げの単位はviewStackParamTagで指定します。 積上げ処理そのものは/jsp/common/option/adjustGanttTable.jsで行っているため、対象画面では adjustGanttTable.js及びadjustGanttTable.cssを読み込んだ上で addEvent( this, "load", adjustGant ); とガント処理をCallしてスタック処理を実行させる必要があります。 また、同時にGanttの機能を若干修正しています。 hayabusa.html.ViewStackTableParam.java hayabusa.taglib.StackHeaderTag.java hayabusa.taglib.ViewStackParamTag.java plugin.view.ViewForm_HTMLStackedGanttTable.java hybs-taglib.tld common/option/adjustGanttTable.css common/option/adjustGanttTable.js jsp/image/stackBCxx.gif gf/jsp/GF7217/*.jsp gf/jsp/GF7216/グラフ画面の開発マニュアル.xls 5.5.6.2 (2012/09/24) [fileUD修正] fileUDタグではtargetが指定可能ですが、指定するとEdit機能のtargetも変更されてしまい、 正常に動作しなくなります。 Edit時はtarget指定がされないように修正します。 hayabusa.taglib.fileUDTag#makeTag( final String imgsrc, final String href, final String alt, final String tgt ) hayabusa.taglib.fileUDTag#doEndTag() 5.5.6.1 (2012/09/03) [ViewForm のチェックボックス表示の制御修正] 編集時に全行が編集可能状態になってしまう不具合を修正します。 hayabusa.taglib.ViewFormTag#setTableRowWritable( final DBTableModel table ) 5.5.6.0 (2012/09/03) [エンジン雛形追加] 警告表示を事前表示して、確認後に登録できるタイプの雛形を追加します。 gf/jsp/GF9150/*.* gf/jsp/GF9250/*.* gf/jsp/GF9350/*.* gf/db/oracle/sql/05_SRC/ GF9150ARG.sql,GFP19150A.sql,GFP19150C.sql,GFP19350A.SQL 5.5.5.6 (2012/08/31) [ViewParamTag 関連の見直し] ViewFormTag にパラメーターを渡す処理では、hayabusa.taglib.View****ParamTag でパラメータのMapを 作成することと、hayabusa.html.****Param.java クラスでパラメータのキーを定義することと、 plugin.view.ViewForm_**** クラスで、初期値や、Mapに設定された値の取出しを 行う処理などが、分断されています。 hayabusa.html.****Param 系のクラスに、初期値をまとめます。 plugin.view.ViewForm_**** クラスでのパラメータの取得方法も、簡素化します。 hayabusa.taglib.ViewParamTag#initParam( final Map map ) [ViewForm_ImageTimeBar 新規追加] 時間単位の状況を色で表示する ViewForm_ImageTimeBar クラスを新規追加します。 これは、日付、キーに対して、時間単位の状況の移り変わりを表示するのに、 画像ファイルを作成し、帯グラフ的な表示で表現します。 plugin.view.ViewForm_ImageTimeBar.java hayabusa.html.AbstractViewForm#getParam( final String key ) hayabusa.html.AbstractViewForm#getIntParam( final String key ) hayabusa.html.AbstractViewForm#getBoolParam( final String key ) hayabusa.taglib.CommonTagSupport#getDateFormat( final String value ) { hayabusa.taglib.ViewTimeBarParamTag.java plugin.view.ViewForm_ImageTimeBar.java [javadoc作成時の タグ内のタグの処理] @og.tag などに記載された、@og.value などのタグの処理がされなかった箇所を修正します。 これは、xmlファイル出力処理のみの修正になります。Javadoc側は、まだ、修正を行っていませんん。 fukurou.taglet.DocletTagWriter#printTag( final Tag[] tag ) {@og.value #XXX} の取得で警告が出ていたのを修正します。(暫定) fukurou.taglet.DocletUtil#valueTag( final Tag tag ) [クリッカブルマップ用のリンク機能 追加] 画像にクリッカブルマップのリンクを作成する場合、aタグではなく、areaタグを使いますので、 linkタグ では、aタグを出力するか、hrefOnly で、URLのみ取得するしかありません。 しかし、 ・target属性も欲しい ・linkタグの onLink、markList を使った時の処理も行いたい。 という要望に対処する為、新しい属性 hrefTarget を追加します。 これは、hrefOnly に近いのですが、href の値のみを出力するのではなく、 「href="*******" target="******"」 という キー付きの文字列を作成します。 これを、areaタグ側でそのまま出力すれば、target属性も含んだURLを指定できます。 また、linkタグが使用されない場合は、通常のカラム値が返るので、取得した値の先頭に、 href を含むかどうかを判定すれば、URLの作成する/しないを制御できます。 hayabusa.taglib.LinkTag#release2() hayabusa.taglib.LinkTag#setHrefTarget( final String flag ) hayabusa.taglib.LinkTag#makeTag() [JavaDocの修正] USE_XSS_CHECK のタグレットで、{ に対応する } が存在しない警告が発生していたので、修正します。 * (初期値:システム定数のUSE_XSS_CHECK[={@og.value org.opengion.hayabusa.common.SystemData#USE_XSS_CHECK。 ↓ * (初期値:システム定数のUSE_XSS_CHECK[={@og.value org.opengion.hayabusa.common.SystemData#USE_XSS_CHECK}])。 hayabusa.taglib.QueryTag.java [ViewForm のチェックボックス表示の制御見直し] 利用者が書き込み権限が与えられていない画面に於いて、チェックボックスも非表示とするように デフォルトを変更します。 hayabusa.taglib.ViewFormTag#setTableRowWritable( final DBTableModel table ) 5.5.5.5 (2012/08/24) [エンジンサンプル画面追加] クライアント側で処理するガント画面と、そのロジックを利用した左右分割画面のサンプルを追加します。 この左右分割処理は1つのテーブルから作成しているため、カラムの縦サイズが左右でずれにくいですが、 リサイズ処理等に対応していないため通常は従来の左右分割の利用を推奨します。 ガント処理については、将来的(V6)にはこのガントを標準のガントにする可能性がありますが、 互換上、今回の対応では別途JSファイルを読み込む必要があります。 なお、GF7203のフォルダのマニュアルは削除し、GF7216のマニュアルで置き換えます。 jsp/common/option/adjustGantTable.css jsp/common/option/adjustGantTable.js gf/jsp/GF7215/*.jsp gf/jsp/GF7216/*.jsp,グラフ画面の開発マニュアル.xls gf/jsp/GF7203/マニュアル.xls (削除) [writeTableタグのチェック対応] wtireTableタグにおいて、前の画面でチェックした分だけを出力する機能に対応します。 新たに追加したselectedAll属性をfalseとして下さい。初期値は全出力(true)です。 選択行のデータでテーブルモデルを内部的に再作成して利用しているため、 行番号は1から振りなおされます。(SQLが再実行されるという意味ではありません) 検索後にチェックして出力するサンプルJSP(GF6440)を追加します。 hayabusa.taglib.WriteTableTag#doEndTag() hayabusa.taglib.WriteTableTag#release2() hayabusa.taglib.WriteTableTag#getSelRowsTable( final DBTableModel oldTable ) hayabusa.taglib.WriteTableTag#setSelectedAll( final String flag ) hybs-taglib.tld gf/jsp/GF6440/*.jsp [タグリブ誤記訂正] タグリブの間違いを修正します。 hayabusa.taglib.HideMenuTag#setHideClass( final String name) [ラベル概要説明登録画面修正] ラベル概要説明登録画面で、リソースキャッシュ自動更新(リモートリソース更新)が 行われていなかったため、修正します。 ge/jsp/GE0006/entry.jsp 5.5.5.4 (2012/08/18) [{@DATE.XXXX AA BB} 処理の見直し] {@DATE.XXXX AA BB} で、以下の処理の見直しを行います。 ・XXXXフォーマット追加MD(MD、MD2F) ・XXXX自由フォーマット対応 ・AA引数 /,-削除機能追加 ・BB引数追加(BSD,BED,ASD,AED) ・BB引数SM,EM廃止 hayabusa.taglib.CommonTagSupport#DATE_FORMAT hayabusa.taglib.CommonTagSupport#getDateFormat( final String value ) これに伴い、サンプルJSPを修正します。 gf\jsp\common\gamen\01_ADMIN\printSystemParameter.jsp ge\jsp\common\gamen\01_ADMIN\printSystemParameter.jsp [JDBCの時間関係の対応] エンジンでは、SQLの日付型はサポートしていませんでしたが、簡単にサポートします。 従来は、日付は、日付型で管理するのではなく、文字列として管理していたため、 エンジンでも、日付型のオブジェクトの管理をしていませんでした。 今回より、簡単ではありますが、日付型の対応を行います。 hayabusa.db.DBTableModelUtil#type2ClassName( final int type ) hayabusa.db.DBTableModelUtil#makeDBTable( final ResultSet result, final int skipRowCount, final int maxRowCount, final ResourceManager resource ) fukurou.db.DBUtil#getValue( final ResultSet res, final int col, final int type ) plugin.query.Query_JDBCTableUpdate#execute( final int[] rowNo, final DBTableModel table ) 5.5.5.3 (2012/08/17) [マトリクスメニューの出力class追加] マトリクスメニュー(通常/ボタン表示)で、thタグとtdタグに対して大分類の画面IDをclassとして出力するようにします。 (通常の左メニューのdivタグには大分類クラスは出力しません。) hayabusa.taglib.topMenuTag#makeMatrixMenu() hayabusa.taglib.topMenuTag#makeMatrixMenu2() 5.5.5.2 (2012/08/10) [plsqlUpdateTag機能追加] plsqlUpdateタグで処理を行い、エラーがなかった場合はテーブルモデルの確定処理 (変更フラグ=改廃のリセット処理)が必ず行われていました。 transactionで2つのPL/SQLを用いて処理を行う場合(エラーチェックのみのPL/SQL実行等)に不便なため、 tableModelCommit属性を追加して確定処理のコントロールを可能にします。 初期値はtrue(確定処理を行う)です。 hayabusa.taglib.PlsqlUpdateTag#release2() hayabusa.taglib.PlsqlUpdateTag#setTableModelCommit( final String flag ) hybs-taglib.tld [ラベルリソース登録画面修正] 5.5.4.2で追加した概要説明画面へのリンク用の文字が、複写時にそのまま残っていたため修正します。 ge/jsp/GE0005/result.jsp [画面編集機能制限対応] 画面Edit機能で、カラムの並び替えは許可するが非表示設定は許可しないような機能を追加します。 5.5.4.2でEdit利用時でも編集可能にできるような対応を行いましたが、カラムを非表示にした 場合にはeventColumn機能利用時等に問題があります。 そこで、非表示や集計機能を利用できない状態で、並び替えのみを行えるようにします。 画面ロールで「mwo」のように3つ目のロールにoを指定する事で機能を制限した編集機能にします。 実際には、Edit画面を立ち上げる際にfullEdit引数を付加して、Edit画面のタグ側でチェックボックスを 編集不可(disabled+hiddenで出力)とする対応をしています。 モードoは、モードeと同様にモードfを含みます。 何も書かない場合(mw)は、以前と同様にeとみなします。 hayabusa.resource.RoleMode#isEdit( final byte bitMode ) hayabusa.resource.RoleMode#isFullEdit( final byte bitMode ) hayabusa.resource.RoleMode#bitMode( final String mode ) hayabusa.taglib.FileUDTag#doEndTag() hayabusa.taglib.EditConfigTag#setOrderOnly( final String flag ) hayabusa.taglib.EditConfigTag#makeCheckbox( final String clm, final boolean checked, final String bgCnt, final String prefix, final boolean readonly ) { hayabusa.taglib.EditConfigTag#makeCheckbox( final String clm, final boolean checked, final String bgCnt, final boolean isChbox, final String prefix, final boolean readonly ) { hayabusa.taglib.EditConfigTag#makeColumnRow( final String clm, final boolean isView, final boolean useSum, final DBEditConfig config ) { hayabusa.taglib.EditConfigTag#makeLabelRow( final boolean useSum ) hayabusa.taglib.EditConfigTag#makeEditTable( final String viewClms ) jsp/common/gamen/14_EDIT/tab.jsp jsp/common/gamen/14_EDIT/result_CLMSEQ.jsp hybs-taglib.tld 5.5.5.1 (2012/08/07) [DBUtil.dbExecute の DBID漏れ 修正] アプリケーション本体のDB接続先(通常Default)と、リソース系DB接続先(通常RESOURCE_DBID)を 分けた場合、リソース系を通常の接続先から取得している箇所があるので、修正します。 統合サーバー等では、通常の接続先に、public synonym で、リソース系オブジェクトをアクセス していたため、現れてきませんでした。 対応方法としては、各クラスの先頭に、下記の様に、DBID オブジェクト定数を取得するようにします。 private final String DBID = HybsSystem.sys( "RESOURCE_DBID" ); hayabusa\mail\AbstractMailManager.java(342): DBUtil.dbExecute( insGE32, insGE32Args, appInfo ); hayabusa\mail\AbstractMailManager.java(357): DBUtil.dbExecute( insGE34, insGE34Args, appInfo ); hayabusa\mail\AbstractMailManager.java(514): String[][] tmp = DBUtil.dbExecute( selYkno, new String[0], appInfo ); hayabusa\mail\MailManager_DB.java(101): String[][] ge30datas = DBUtil.dbExecute( selGE30, new String[]{ systemId }, appInfo ); hayabusa\mail\MailManager_DB.java(181): DBUtil.dbExecute( updGE30, updGE30Args, appInfo ); hayabusa\mail\MailManager_DB.java(204): DBUtil.dbExecute( insGE36, insGE36Args,appInfo ); hayabusa\mail\MailPattern.java(137): String[][] ptn = DBUtil.dbExecute( selGE31, selGE30Args, AbstractMailManager.appInfo ); hayabusa\mail\MailPattern.java(421): String[][] ge33Datas = DBUtil.dbExecute( selGE33,ge33SelArgs,AbstractMailManager.appInfo ); hayabusa\mail\MailPattern.java(558): String[][] ge35Datas = DBUtil.dbExecute( selGE35,ge35SelArgs,AbstractMailManager.appInfo ); hayabusa\report\ExcelInsert.java(209): String[][] vals = org.opengion.fukurou.db.DBUtil.dbExecute( GE54_GE57_SELECT,args,appInfo ); hayabusa\report\GE50Access.java(230): String[][] vals = DBUtil.dbExecute( GE50_SEQ,null,appInfo ); hayabusa\report\GE50Access.java(277): DBUtil.dbExecute( GE50_INSERT,args,appInfo ); hayabusa\report\GE50Access.java(311): DBUtil.dbExecute( GE50_UPDATE,args,appInfo ); hayabusa\report\GE50Access.java(354): DBUtil.dbExecute( GE56_ERRMSG,args,appInfo ); hayabusa\report\ReportConverter.java(211): String[][] vals = DBUtil.dbExecute( GE54_SELECT,args,appInfo ); hayabusa\report\ReportPrint.java(191): String[][] vals = DBUtil.dbExecute( GE55_SELECT,args,appInfo ); hayabusa\report\ReportProcessing.java(348): String[][] vals = DBUtil.dbExecute( GE53_SELECT,args,appInfo ); hayabusa\report\RFIDPrintRequest.java(197): String[][] vals = DBUtil.dbExecute( GE54_SELECT,args,appInfo ); hayabusa\report\RFIDPrintRequest.java(232): String[][] valsGe58 = DBUtil.dbExecute( GE58_SELECT,argsGe58,appInfo ); hayabusa\report\RFIDPrintRequest.java(249): String[][] valsGe55 = DBUtil.dbExecute( GE55_SELECT,argsGe55,appInfo ); hayabusa\report2\QueueManager_DB.java(175): String[][] ge50vals = DBUtil.dbExecute( SQL_SELECT_GE50, new String[0], appInfo ); hayabusa\report2\QueueManager_DB.java(312): DBUtil.dbExecute( SQL_UPDATE_GE50, args, appInfo ); hayabusa\report2\QueueManager_DB.java(334): DBUtil.dbExecute( SQL_INSERT_GE56, args, appInfo ); hayabusa\report2\QueueManager_DB.java(449): String[][] ge52Vals = DBUtil.dbExecute( SQL_SELECT_GE52, ge52Where, appInfo ); hayabusa\report2\QueueManager_DB.java(455): String[][] ge51Vals = DBUtil.dbExecute( SQL_SELECT_GE51, ge51Where, appInfo ); hayabusa\resource\DataRole.java(149): String[][] vals = DBUtil.dbExecute( QUERY_GEA06_SELECT,args,appInfo ); hayabusa\resource\UserInfo.java(1315): String[][] rtn = DBUtil.dbExecute( QUERY_GE20_KEY, args, appInfo ); plugin\daemon\Daemon_Report.java(218): vals = DBUtil.dbExecute( GE_SELECT,null,appInfo ); plugin\daemon\Daemon_Transfer.java(184): vals = DBUtil.dbExecute( ge62Select,null,appInfo ); ※ CB01 は、伝送用の特殊なテーブルであり、GE62とCB01を内部SQLでJOINしているため、接続先は、RESOURCE_DBIDではなく 標準接続先となる。よって、下記のソースは、修正しません。 plugin\daemon\Daemon_Transfer_CB01.java(195): vals = DBUtil.dbExecute( ge62Cb01Select,null,appInfo ); plugin\daemon\Daemon_Transfer_CB01.java(326): String[][] vals = DBUtil.dbExecute( buf.toString(),null,tran ); plugin\daemon\Daemon_Transfer_CB01.java(352): DBUtil.dbExecute( buf.toString(),null,tran ); plugin\daemon\Daemon_Transfer_CB01.java(372): DBUtil.dbExecute( buf.toString(),null,appInfo ); [DBSimpleTable の DBID漏れ 修正] 同様のDBID設定漏れです。 対応方法としては、DBSimpleTableのオブジェクト作成後に、下記の様に、DBID オブジェクト定数を設定するようにします。 dbTable.setConnectionID( DBID ); // 5.5.5.1 (2012/08/07) リソース系DBID 付け忘れ対応 hayabusa\common\SystemManager.java(341): DBSimpleTable dbTable = new DBSimpleTable( names ); hayabusa\resource\UserInfo.java(1118): DBSimpleTable dbTable = new DBSimpleTable( names ); hayabusa\resource\UserInfo.java(1228): DBSimpleTable dbTable = new DBSimpleTable( names ); hayabusa\resource\UserInfo.java(1275): DBSimpleTable dbTable = new DBSimpleTable( names ); 5.5.5.0 (2012/07/28) [クロス集計時のラベルリソース利用] クロス集計時の上部ヘッダは、DBの値そのままの表示となっていましたが、 ラベルリソース/コードリソースでの表示を行えるようにします。 @対応するラベルリソースで表示する場合  crossParamタグでuseHeaderResourceをtrueに指定して下さい。初期値はfalseです。  このtrue指定はuseHeaderColumnがtrueの場合のみ動作します。  互換性のため、useHeaderColumnのみtrueとしても、ヘッダ部にSLABELの利用は行いません。 Aコードリソースで表示する場合  headerCodeColumnに利用するmenuかdbmenuのカラムを指定します。  ヘッダーのカラム名を値として、対応するラベルをヘッダ名称として表示します。  (DBMENUも利用可能にするために、カラムリソースを指定させるようにしています)  この指定もuseHeaderColumnがtrueの場合のみ動作します。  headerCodeColumnの指定が、useHeaderResourceよりも優先されます。  カラムリソースがselectionを持たない場合(label表示等)や、カラムリソースそのものが無い場合は何もしません。 plugin.view.ViewForm_HTMLCrossTable#clear() plugin.view.ViewForm_HTMLCrossTable#paramInit( final DBTableModel table ) plugin.view.ViewForm_HTMLCrossTable#getHeadLine() hayabusa.html.ViewCrossTableParam#USE_HEADER_RSC hayabusa.html.ViewCrossTableParam#HEADER_CODE_KEY hayabusa.taglib.ViewCrossParamTag#setUseHeaderResource( final String setUseHeaderResource ) hayabusa.taglib.ViewCrossParamTag#setHeaderCode( final String headerCode ) hybs-taglib.tld [DBConnectionのclose時の処理] Connectionをcloseする場合に、明示的にcommitを行うようにします。 これはConnectionインタフェイスのcloseメソッドの説明に  close メソッドの呼び出し前に、アプリケーションでアクティブなトランザクションを明示的にコミットまたは  ロールバックすることを強くお勧めします。close メソッドが呼び出され、かつアクティブなトランザクションが存在する場合、  その結果は実装で定義されたものになります。 との記述があるためです。 fukurou.util.Closer#connClose( final Connection conn ) [DB定義DB関連 修正] DB定義書取込み、DB定義DBへの反映、リソース反映などの対応を行いました。 DB定義書取込みでは、共通の common/upload.jsp に対して、useRenderer 属性を引数に 指定できる改造を入れています。 ge/jsp/common/upload.jsp , filePopup.jsp gf/jsp/common/upload.jsp , filePopup.jsp gf/jsp/GF2020 gf/jsp/GF2050 gf/jsp/GF2060 gf/jsp/GF2090 gf/jsp/GF2120 gf/jsp/GF2130 gf/jsp/GF2160 DB定義書のカラム名やテーブル名が 小文字で記述されている場合の対応として、 TableFilter_UPPER を追加します。 plugin/table/TableFilter_UPPER.java 5.5.4.5 (2012/07/27) [SysInstallTagの見直し] インストール先をデフォルトだけでなく、dbid で指定できるように変更。 hayabusa.taglib.SysInstallTag#doEndTag() hayabusa.taglib.SysInstallTag#release2() hayabusa.taglib.SysInstallTag#setDbid( final String id ) hybs-taglib.tld [初期起動時の RESOURCE_DBID の使用] Tomcat起動直後のデータベース接続先が、DEFAULT になっているのを、 RESOURCE_DBID の指定先に変更します。 何も指定がなければ、DEFAULT になります。 これは、リソースDBIDとアプリケーション接続先が異なる場合に、 Tomcat起動時に、GE12などをデフォルトから検索しようとして テーブルが存在しない等のエラーになるためです。 hayabusa.common.SystemParameter#loadDBResource( final Map sysParam ) hayabusa.common.SystemManager#clearGE12() [DB定義DBの MICS対応] MICSのDB定義書は、テーブル名、カラム名が、大文字・小文字の混在表記になっています。 ところが、Firebired としては、大文字小文字を区別せず管理しているため、リソース との差分を求めるときに不具合が発生します。 テーブル関連には、大文字、小文字を認めますが、リソースと突き合わせるときは、大文字に 変換してから、突き合わせます。 gf/jsp/GF2120/GFM0007.jsp gf/jsp/GF2120/GFM0010.jsp gf/jsp/GF2120/GFM0011.jsp gf/jsp/GF2120/GFM0012.jsp gf/jsp/GF2120/GFM0013.jsp gf/jsp/GF2120/GFM0029.jsp gf/jsp/GF2120/GFM0030.jsp gf/jsp/GF2120/GFM0031.jsp [バッチ処理の画面出力] 処理の区切りで改行を入れます。 また、ParamProcess の終了を、logger.logging の最後ではなく、process.end のいちばん最後に変更します。 fukurou.process.MainProcess#run() [GF DB定義書訂正] 1.ヘッダーの備考を、備考(コードリソース)に変更 2.GF80 DB定義書マスタテーブルの KBCLM(カラム区分)のコードリソース変更 カラム区分 0:未 1:主要 2:一般 3:省略 8:共通 9:除外 3.GF05 DB定義書マスタテーブルの FGCOM(共通項目F) のコードリソース変更 共通項目F 0:未 1:主要 2:一般 3:省略 8:共通 9:除外 4.の対応により、KBCLM,FGCOMのコードリソースを変更します。(同じに変更) GF_DB定義書.xls GF_DB定義書ALL.xls 5.5.4.4 (2012/07/20) [SystemInstallerの見直し] SystemInstaller.java と、SystemParameter.java を見直します。 SQLException の catch や、メソッド単位に定義されていた定数の、static化など 簡易な手直しです。 hayabusa.common.SystemInstaller#enum EXEC_TYPE hayabusa.common.SystemInstaller#SystemInstaller( final Connection conn, final PrintWriter out ) hayabusa.common.SystemInstaller#autoInsUpd( final String systemId, final String context, final String hostUrl ) hayabusa.common.SystemInstaller#install( final File buildArchive ) hayabusa.common.SystemInstaller#loadXMLScript( final EXEC_TYPE type, final String context ) hayabusa.common.SystemInstaller#execScripts( final EXEC_TYPE type, final String scriptPath ) hayabusa.common.SystemParameter#makeSystemParameter( final ServletContext context ) hayabusa.common.SystemParameter#loadDBResource( final Map sysParam ) [static final 対応] final static → static final に変換します。(339か所) [GanttTable修正] hidden状態のチェックボックスが2つ出力されてしまう場合があるため、 一度出力された行のチェックボックスは出さないように修正します。 plugin.view.ViewForm_HTMLGantTable#create( final int stNo, final int pgSize ) [カラム説明表示機能修正] @Field登録/表示パターンでも説明を表示するように対応。 Aスクロール時に表示がおかしくなる現象の対応 jsp/common/resultScript.js#showViewManual [hideMenu修正] hideMenuタグでボタンによる表示/非表示の切り替えを設定可能ですが、 複数個所を同時に切り替える事ができませんでした。 classを外部から指定可能にする事で対応します。 hayabusa.tablib.HideMenuTag#doStartTag() hayabusa.tablib.HideMenuTag#release2() hayabusa.tablib.HideMenuTag#setHideClass( final String name) hybs-taglib.tld [サービス化対応] tomcatサービス化のためのバッチを修正して、インストール可能にします。 サービス化に必要な設定はserviceInit.batで行います。 その他の設定は通常通りinit.bat、const.batで行ってください。 サービスのインストールはserviceInstall.batで アンインストールはserviceRemove.batで行います。 uap/bin/serviceInit.bat uap/bin/serviceInstall.bat uap/bin/serviceRemove.bat 5.5.4.3 (2012/07/18) [biz の簡易な修正] javaの業務ロジック(biz)のサンプルを修正します。 src\biz\gf\GF0001.java src\biz\gf\GF9140A.java [openOffice3.4対応] openOffice3.4対応を行います。 C:\opengion\uap\bin\init.bat 接続先、Java・Tomcat・OpenOfficeのバージョン等 C:\opengion\uap\bin\const.bat CLASSPATH の設定先(juh.jar の場所が変わった) C:\opengion\apps\openoffice3.4 env\_default フォルダを追加 C:\opengion\apps\tomcat7.0.29\bin bin\catalina.bat 追加 5.5.4.2 (2012/07/13) [javadoc 見直し] タグ出力の最後に改行を入れておきます。 fukurou.taglet.DocletTagWriter#printTag( final Tag[] tag ) [タグリブマニュアル修正] タグリブリファレンス関係の画面を修正します。 特に、クイックリファレンスに、SHORT,FULL の区分を設けました。 gf/jsp/DOC01 gf/jsp/DOC02 gf/jsp/DOC03 gf/jsp/DOC08 [ソースのJavadoc修正] 行の最後の「。」や、初期値の設定など、こまかなJavadoc 関連の修正 hayabusa.taglib.ColumnEditorTag.java hayabusa.taglib.ColumnTag.java hayabusa.taglib.HTMLTagSupport.java hayabusa.taglib.QueryTag.java hayabusa.taglib.ReadTableTag.java hayabusa.taglib.RequestCacheTag.java hayabusa.taglib.SelectTag.java hayabusa.taglib.TableUpdateTag.java hayabusa.taglib.ViewFormTag.java hayabusa.taglib.ViewGanttParamTag.java hayabusa.taglib.WriteCheckTag.java hayabusa.common.SystemData.java [ヘッダ固定修正] 5.5.1.0で追加したヘッダ固定時の隠れたヘッダ内容をvisibility:hiddenとする処理を Classセットに変更します。(印刷時にもhiddenとなってしまっていたため) classはvisihiddenをセットします。 common/scrollBar2.js common/scrollBar2.css [概要説明登録用画面追加] ラベルリソースの概要説明を登録しやすくするため、画面を追加します。 (この画面では概要説明を改行込みで入力可能です) ge/jsp/GE0006/*.jsp ge/jsp/GE0005/result.jsp [servlet 3.0 META-INF/resources 対応] servlet 3.0 より、META-INF/resources 以下に 静的ドキュメントや jsp ファイルを 配備して、jar 化したものを、WEB-INF/lib 以下に配備すれば、そのまま利用できる 機能が追加されました。 これにより、jspフォルダ以下のJSPファイルを、グループ化して jar化することが 可能になります。 今回は、このjar化ファイルの中で、menuImageの存在チェックを行っているロジックで 直ファイルではなく、リソースとして取り出す必要があるための対応を行います。 hayabusa.taglib.TopMenuTag#doEndTag() { hayabusa.taglib.TopMenuTag#makeTagMenuString( final String href,final String target, final String bodyIn, fukurou.util.FileMap#FileMap( final String dir ) throws IllegalArgumentException // 新規追加 fukurou.util.FileMap#FileMap( final String dir , final Set resourcePaths ) [印刷時のヘッダー繰り返し表示] ヘッダー固定の一覧検索時に印刷する場合、ヘッダーをページごとに印刷するようにします。 common/default.css の @media print の中に、thead { display: table-header-group; } を追記します。 gf/src/script/common/default.css#@media print { … } に追記 [コメント修正] hayabusa.taglib.ChartDatasetTag.java [EDITNAME利用時の編集] カラムの並び替えや表示等を設定するEDITNAME機能利用時は登録できないように制限していましたが、 システムリソース及びwriteCheckタグの属性で登録可/不可のコントロールができるようにします。 wtireCheckタグでhiddenタグを出力し、次の画面に渡す機能も追加しますが、 引き渡された画面ではviewタグのviewTypeが内部的に変更されてしまうため注意が必要です。 (editNameを渡さない場合は指定された通りの編集画面になります) HTMLSeqClmTableの編集画面では、writableで指定されたカラムでmustとmustAnyが指定されている分については columnDisplayを無視してdisplay:noneで編集欄を出力するようにしています。 そのため新規登録時の必須入力チェックは動作しますが、それ以外の場合(複写等)の動作については自己の責任となります。 又、必須/選択必須以外で隠されたカラムは出力しないため、eventColumnが正常動作しない場合があります。 システムリソースの初期値は編集不可、editNameの送信をしない、です。 hayabusa.common.SystemData#USE_EDIT_WITH_EDITNAME hayabusa.common.SystemData#OUTPUT_EDITNAME hayabusa.taglib.WriteCheckTag#release2() hayabusa.taglib.WriteCheckTag#setUseEdit( final String flag ) hayabusa.taglib.WriteCheckTag#isWrite() hayabusa.taglib.WriteCheckTag#getHiddenTag() hayabusa.taglib.WriteCheckTag#setOutputEditName( final String flag ) hayabusa.html.AbstractViewForm#isMustColumn( final int column) hayabusa.html.AbstractViewForm#isMustAnyColumn( final int column) hayabusa.html.AbstractViewForm#init( final DBTableModel table ) hayabusa.html.AbstractViewForm#clear() plugin.view.ViewForm_HTMLSeqClmTable#create( final int startNo, final int pageSize ) hybs-taglib.tld 5.5.4.1 (2012/07/06) [特別] [Javadoc コメントメンテナンス] 上記のコメント見直しは、ほぼ、すべてのJavaファイルの変更が発生していますので、 ソース上のバージョン表記はしていません。 Javadocコメントを見直しました。 1.@param や、@return の形式を統一しました。 @param 引数 解説 @return 解説 2.タグリブ関連のソースに、XML形式のタグの全要素説明を追記しました。 3.サンプルを等幅フォントにするため、custom.css の pre 要素に、 font-family: 'MS ゴシック' , monospace; を追加しました。 ge/jsp/custom/custom.css gf/jsp/custom/custom.css 5.5.4.1 (2012/07/06) [fukurou.taglet パッケージの見直し] コメントは文字列でなく、Tag配列として処理させる。 fukurou.taglet.DocletParam#writeContents( final ClassDoc[] classes,final DocletTagWriter writer ) fukurou.taglet.DocletPlugin#writeContents( final ClassDoc[] classes,final DocletTagWriter writer ) fukurou.taglet.DocletSpecific#writeContents( final ClassDoc[] classes,final DocletTagWriter writer ) fukurou.taglet.DocletSpecific#menberTag( final ExecutableMemberDoc menber, fukurou.taglet.DocletTaglib#writeContents( final ClassDoc[] classes,final DocletTagWriter writer ) fukurou.taglet.DocletUtil#commentText( final String cmnt ) 廃止 {@value package.class#field} の処理 対応 fukurou.taglet.DocletTagWriter#printTag( final Tag[] tag ) fukurou.taglet.DocletUtil#valueTag( final Tag tag ) 新規追加 Tag出力時の CR → BR 変換を行わない様にする。 fukurou.taglet.DocletSpecific#start( final RootDoc root ) DocletUtil.htmlFilter → StringUtil.htmlFilter に変更 StringUtil.htmlFilter との違いは、';' → ";" への変換があることです。(この処理の意味が分かりません) fukurou.taglet.DocletTagWriter#printTag( final Tag[] tag ) fukurou.taglet.DocletTaglib#makeGroupTag( final Tag[] tag ) fukurou.taglet.DocletParam#writeContents( final ClassDoc[] classes,final DocletTagWriter writer ) { fukurou.taglet.DocletTagWriter#printCSVTag( final Tag[] tag ) fukurou.taglet.DocletTagWriter#printTagsInfo( final Tag[] tag ) fukurou.taglet.DocletUtil#htmlFilter( final String input ) 廃止 [build.xmlの見直し] og.value の追加や、classpath の設定見直しを行った。 を追加し、 が使えない箇所に適用。 従来は、クラスファイルを出力するディレクトリ(classes.dir)を、そのまま、クラスパスとして使用していた箇所があり、 それを、今回の ${classes.path} で置き換えます。 また、javadoc 作成時に、TagletValue を利用するように変更しました。 gf/build.xml [og.value タグレット] og.value タグレットを使用したドキュメントの解説に変更しました。(先行 taglibパッケージ) [FAQ画面修正] 23_FAQRGSTで、登録時のconstObjKeyを指定していなかったため、GFを指定します。 jsp/common/gamen/23_FAQRGST/entry.jsp 5.5.4.0 (2012/07/02) [ガントチャート表示修正] 画面表示の1日のコマ数と、休憩時間の計算数がずれているため修正します。(時間軸の場合のみ) エンジンの1日のピクセル数を小数点計算ではなく切り上げ計算させて対応しています。 hayabusa.taglib.GanttHeaderTag#makeZoomTime( final int hourOfPixcel,final int step,final boolean useTani ) [GanttHeader属性追加] GanttHeaderタグの属性値を、HTMLに出力することでJavaScriptから情報を拾えるようにします。 次の属性については設定した値をそのまま出力します。 startDate,endDate,zoom,daySpan,breakTimes,skipHoliday 又、calDBについては取得した休日区分によって通常0、休日1とした文字列を連結して出力します。 原則枠単位に出力しますが、最小の単位は「日」です。つまり、時間系のガントでもcalDBについては日単位での出力となります。 skipHolidayをtrueとした場合も、この属性については休日を含めて出力します。 出力範囲はガントの開始日から終了日です。 これらの情報の出力は、idとclassが"ganttHeaderData"となっているganttHeaderタグの属性値です。 display=noneで出力しています。 hayabusa.taglib.GanttHeaderTag#makeHeaderData() hayabusa.taglib.GanttHeaderTag#release2() hayabusa.taglib.GanttHeaderTag#makeZoom2( final int add ) hayabusa.taglib.GanttHeaderTag#makeZoom( final String upper ,final String lower ,final int add, final boolean useMonth ) [一覧でのカラム説明表示機能] reslut_info.jsp及びresult_FS_info.jspの?アイコンでVIEWのカラムマニュアルが表示される機能を追加します。 これは、VIEWヘッダのツールチップを一覧で表示するもので、カラムリソース上の概要でセットしておく必要があります。 概要が存在しないものは表示しません。 概要が全く存在しない場合は、img#viewHelpIconをdisplay:noneとします。(ヘルプアイコンを消します) スクリプトはcommon/resultScript.js上で定義しているためHeadタグのtypeがresultの場合のみスクリプトが読み込まれます。 ドラッグ機能については、jquery-uiをインクルードした場合のみ動作します。 これは、回線が細い等の理由でuiをインクルードしたくない場合を考慮のためです。 標準のresult_infoではjquery-uiをインクルードします。 common/resultScript.js#shouViewManual custom/result_info.jsp custom/result_FSinfo.jsp image/status_Close.png [hiddenタグでのid出力] hiddenタグでタグを出力した場合にもid属性を出力するようにします。(Nameと同じid) eventColumnではidを利用していたため、hiddenからの値を取得できませんでしたが、以降は利用可能です。 fukurou.util.XHTMLTag#hidden( final String name,final String value ) fukurou.util.XHTMLTag#hidden( final String name, final String value, final String id ) [eventColumnでの{@USER.xxx}利用] eventColumnでは{@xxx}をエンジン側で処理せずにJavaScriptで動的に処理していましたが、 {@USER.xxx}のような予約語関係についても取得できませんでした。 従来の処理から予約語の処理を分離し、適用するように対応します。 hayabusa.taglib.CommonTagSupport#getRequestValue( final String key, final boolean xssCheckFlg ) hayabusa.taglib.CommonTagSupport#getReservedValue( final String key ) hayabusa.taglib.CommonTagSupport#getReservedParameter( final String key ) hayabusa.taglib.ColumnTag#getInsertTag( final DBColumn clm, final String value ) hayabusa.taglib.ColumnTag#setEventColumn( final String col ) hayabusa.taglib.SelectTag#setRawParam( final String param ) hayabusa.taglib.ColumnEditorTag#doAfterBody [eventColumnのラベル短利用] 5.5.1.0でcolumnタグやselectタグでラベル短を利用できるようにはしていますが、 一覧画面でのeventColumnを利用した際は自動でラベル短利用にはなっていませんでした。 一覧で利用された場合はラベル短フラグEC_USESLBLをtrueで送信します。 (XXX__0のように__xとsuffixが付いている場合を一覧からの送信と判断しています) それ以外の場合は常にfalseで送信しますので、特殊な対応が必要な場合はeventColumnMaker.jspで対応して下さい。 common/eventScript/eventColumn( jEvCol, jTag, cid, cname, suffix, writable ) oommon/eventColumnMaker.jsp [eventColumn実行後のCallback指定] eventColumn動作後にCallbackとして実行させる関数を指定可能にします。 column,select,columnEditorタグに追加されたeventCallback属性に関数名を指定します。 ex) sampleCallback()を実行したい場合はeventCallback="sampleCallback"と指定 callback関数の第一引数には自動的に子カラムのID,変更後value値、変更前value値の順でセットされた配列を渡します。 動的カラムのサンプル画面もご覧下さい。 common/eventScript/eventColumn( jEvCol, jTag, cid, cname, suffix, writable ) hayabusa.taglib.ColumnEditorTag#setEventCallback( final String callback ) hayabusa.taglib.ColumnTag#setEventCallback( final String callback ) hayabusa.taglib.SelectTag#setEventCallback( final String callback ) hayabusa.db/AbstractEditor#getValue( final String value ) hybs-taglib.tld gf/jsp/GF6410/query.jsp [色選択用エディタ・レンデラ追加] JavaScriptを利用したカラーピッカーより色を選択するエディタと、その色を表示するレンデラを追加します。 ピッカーは64色からの選択式を採用しています。手入力での編集はできません。 レンデラはreadonlyのinputタグで、入力欄と文字色が指定色になります。 ActiveXのピッカーはIE9以降でエラーになる場合があるため、こちらを利用して下さい。 pulugin.column.Editor_COLOR pulugin.column.Renderer_COLOR gf/jsp/common/eventScript.js#$.fn.simpleColorPicker gf/jsp/common/default.css gf/jsp/GF6000/result.jsp コードリソース(**) サンプル用ラベルリソース(GF) [SplitViewTag利用時のnoDisplay扱い修正] SplitViewTagタグとviewタグの組み合わせで左右分割スクロールを作成可能ですが、 「Viewタグの右側には、fixDisplay のカラムを noDisplay のカラムに設定します。 既存の設定値(noDisplay)があれば、それに追記されます。」 の記述通りに動作しておらずnoDisplayを上書きしていたため、追記するように修正します。 hayabusa.taglib.ViewFormTag#splitViewParamSet() [サンプル画面標準化対応] Oracle専用になっていた画面を{@DBF.xxx}を利用する事で他DBにも対応させます。 gf/jsp/GF6410/query.jsp gf/jsp/GF6410/result.jsp 5.5.3.5 (2012/06/21) [DocletPlugin修正] javadocの属性クラス定義 を作成するDocletクラスで、廃止された ChartWriter を削除し、 追加された、TransferExec,TransferRead を追加します。 fukurou.taglet.DocletPlugin#mapInit() バージョンアップの修正 gf/build.xml hybs-taglib.tld タグリブマニュアルの画面を見直します。(軽微な修正) gf/jsp/DOC01/result.jsp gf/jsp/DOC02/query.jsp , result.jsp gf/jsp/DOC03/result.jsp gf/jsp/DOC08/result.jsp gf/jsp/DOC23/result.jsp 以前、クラス仕様書などの テーブルを廃止しましたが、XSL変換のノウハウは 残しておきたいので、GF36.xsl 、 GF37.xsl を戻しておきます。 ただし、現在は利用していないため、単に置いてあるだけです。 specific.xml を作成しているのは、ソースコメントの精度向上のための チェックに使っているだけです。 gf/src/xslt/GF36.xsl gf/src/xslt/GF37.xsl [JavaDocの記述修正] 下記のJavaDocの記載が間違っていたので修正。 hayabusa.taglib.FileUpdateTag#setDisplayMsg( final String id ) hayabusa.taglib.QueryTag#setDisplayMsg( final String id ) 5.5.3.4 (2012/06/19) [JSPサンプル画面修正] 【TypeS:一覧検索】関係のサンプルGF95XXを、 GF90XX 関係にID変更します。 これは、検索画面という、もっとも単純な例を、最初に持ってくる意味合いと、 GF95XX に、一覧検索登録画面のサンプルを持ってきたかったからです。 今後も、GF96XX,GF97XX とひな形を増やす場合に、GF9500 という検索画面の サンプルが途中に存在するのは、無計画に見えます。 これに基づき、BIZロジックのクラスファイル、および、この画面へリンクを 張っていた画面を、GF90XX に置き換えます。 src\biz\gf\GF9040S.java gf\jsp\GF6030\result.jsp(72): にします。 ge/jsp/ common\releaseNotes.jsp(1): common\releaseNotes.jsp(29): GE0009\query.jsp(39): GE0009\query.jsp(56): MAIL01\query.jsp(33): MAIL01\query.jsp(52): MAIL02\query.jsp(36): MAIL02\query.jsp(49): ge/jsp (以下は、ソースは変わらないが、releaseNotes.jsp を変えることで画面デザインが変わります) GE0002\query.jsp(60): GE0003\query.jsp(49): GE0004\query.jsp(39): GE0005\query.jsp(40): REP03\query.jsp(40): REP04\query.jsp(41): REP05\query.jsp(47): REP06\query.jsp(37): REP11\query.jsp(52): REP14\query.jsp(48): gf/jsp/ common\releaseNotes.jsp(1): common\releaseNotes.jsp(29): GF2020\query.jsp(41): GF2020\query.jsp(57): GF2050\query.jsp(40): GF2050\query.jsp(55): GF9200\query.jsp(57): GF9200\query.jsp(70): GF9400\query.jsp(42): GF9400\query.jsp(55): GF9500\query.jsp(57): GF9500\query.jsp(70): GF9540\query.jsp(57): GF9540\query.jsp(70): [AccessStopFilter] AccessStopFilter で、通過させるユーザーに、admin を追加します。 従来は、SYSTEM ユーザーのみ、通過させていました。 hayabusa.filter.AccessStopFilter# [DatabaseMetaDataTag 改造] 引き出せる情報が増えているので、追加します。 また、データ件数が大きくなり、検索処理が非常に遅くなっていたため、 最大検索件数を、指定できるようにします。属性名は、maxRowCount ですが、 このタグだけ特別に、最大値は、初期値 20 に決め打ちしています。 hayabusa.taglib.DatabaseMetaDataTag#release2() hayabusa.taglib.DatabaseMetaDataTag#resultToString( final ResultSet resultSet ) hayabusa.taglib.DatabaseMetaDataTag#supportsConvert( final DatabaseMetaData metaData ) hayabusa.taglib.DatabaseMetaDataTag#setMaxRowCount( final String maxSize ) hayabusa.taglib.DatabaseMetaDataTag#setLikeKey( final String key ) gf/jsp/GF1040 追加 gf/jsp/GF1050 JSPソース変更 hybs-taglib.tld databaseMetaDataに、maxRowCount 属性追加 5.5.3.1 (2012/06/06) [リソース出力漏れ] エンジン標準**リソースの区分が「システム」になっており、 出力されていないものがあったため、出力しなおします。 5.5.3.0 (2012/06/01) [GFサンプル画面追加] GFにグラフ系のサンプル画面を追加します。 利用するjavascriptに関してはcommon/optionに配置します。 jsp/common/ adjustBar.js adjustField.js adjustMatrix.js gf/jsp/ GF7201 横棒/縦棒 GF7203 横棒(明細) GF7204 縦棒(明細) GF7202 積上棒 GF7205 重なり棒 GF7206 折線 GF7207 ステップ GF7208 範囲(Min-Max) GF7209 パイ GF7210 リング GF7211 スバイダーウェブ GF7212 棒グラフ+3本平均線 GF7213 配置図/座席表 GF7214 行⇒テーブル変換 テーブル GF45 受注テーブルサンプル GF46 位置情報サンプル [Selectタグのid不具合修正] selectタグのid属性を指定しても反映されていませんでした。 指定しない場合は今まで通りにnameを、指定した場合はそちらが優先されるようにします。 hayabusa.tablib.SelectTag#makeTag() [**コードリソース修正] **のコードリソース「RENDERER」に「XXXX」が登録されていないため、そのままでは 表示種別でXXXXが選択できなかったため、追加します。 [popupのchangeイベント発生方法変更] ポップアップを利用し、返り値をセットする際に変更があった箇所はchangeイベントを発生させていました。 これはJavaScirptでの値変更はchangeイベントが発生しないためですが、値セット時にchangeイベントを 発生させていたたため複数の値を返すような場合には2つ目以降の値がセットされるまえに 1つ目のchangeイベントが発生していました。 全ての値をセットし終わってから、変更があったカラムに対して順にchangeイベントを発生させるように変更します。 common/default.js#ogPopup 5.5.2.7 (2012/05/30) [拡張API 見直し] Javaのエクステンションに入れています、各種アプリケーションを見直します。 重複の削除と、最新版への置き換えです。 C:\opengion\apps\jdk170u4\jre\lib\ext xmlbeans-2.3.0.jar 削除(xbean-x.x.jar と同じ系統ため) ooxml-schemas-1.0.jar 削除(poi-ooxml-schemas-3.8-20120326.jarと同じ系統ため) commons-codec-1.3.jar → commons-codec-1.6.jar commons-logging-1.1.jar → commons-logging-1.1.1.jar commons-net-ftp-2.0.jar → commons-net-3.1.jar jaxen-1.1.2.jar → jaxen-1.1.4.jar jcifs-1.3.14.jar → jcifs-1.3.17.jar jsch-0.1.42.jar → jsch-0.1.48.jar junit-3.8.1.jar → junit4.10.jar jxl-266.jar → jxl-2.6.12.jar log4j-1.2.15.jar → log4j-1.2.16.jar mail-141.jar → mail-145.jar xbean-2.4.jar → xbean-2.5.0.jar odfdom.jar → odfdom.jar の最新(同一?) xercesImpl.jar → xercesImpl.jar の最新(同一?) C:\opengion\uap\webapps\gf\build.xml ・・・・・ 5.5.2.6 (2012/05/25) [ソースチェック対応] ソースチェックを行います。 なお、チェック後の修正箇所は、コメント未記入の箇所もあります。 修正部分は、5.5.2.6_refactoring.txt として、分けておきます。 5.5.2.5 (2012/05/21) [G-MIS紙芝居自動作成] G-MIS紙芝居自動作成の改善を行います。 今回は、Ver4 時代のように、insert.jsp,copy.jsp,modify.jsp など、分かれていたファイルが update.jsp に統一されたため、出力されるファイルも、update.htm のみになってしまい、 処理ごとの画面が取れなくなっていました。 update.jsp に賭場る画面は、command ごとのファイルを作成するように変更します。 hayabusa.filter.FileFilter#makeFileName( final ServletRequest request ) hayabusa.filter.FileResponseTransform hayabusa.filter.FileResponseTransform$HrefChangeData#replace( final String file,final String inStr ) hayabusa.filter.FileResponseTransform$IndexMatrixMenuData#replace( final String file,final String inStr ) [画面アイコンの簡素化] 現在、画面にアイコンを追加する場合、jsp/menuImage フォルダに、画面ID と同じ名称の 画像ファイルを置く必要があります。 たとえば、画面ごとにアイコンを分けるのではなく、検索系、登録系、帳票、グラフなど、機能別に アイコンを用意し、割り当てる形で使えるようにします。 本来は、画面リソース(GEA11)に、カラムを追加して対応すべきですが、互換性の関係より、 PARAM 属性で、所定のキーを登録することで使えるようにします。 この、PARAMは、画面アドレスの引数(たとえば、command=NEW など)を使うためのパラメータですが、 アイコン割り当て(IMAGE_KEY=XXXX)を使用することで、XXXX をキーとして使います。 # ただし、パラメータとして、使うというのは、引き続き利用します。 IMAGE_KEY=XXXX が指定されない場合は、画面IDが、imageKey として返されます。 hayabusa.resource.GUIData#GUIData( final String[] data ) hayabusa.resource.GUIData#getImageKey() hayabusa.resource.GUIInfo#getImageKey() hayabusa.resource.GUIInfo#getAttribute( final String key ) hayabusa.resource.GUIInfo#getEntrys() hayabusa.resource.GUIInfo#toString() hayabusa.taglib.TopMenuTag#makeMenu() hayabusa.taglib.TopMenuTag#makeFavoriteMenu() hayabusa.taglib.TopMenuTag#makeOneLevelMenu() hayabusa.taglib.TopMenuTag#makeNextguiMenu() hayabusa.taglib.TopMenuTag#makeMatrixMenu() hayabusa.taglib.TopMenuTag#makeMatrixMenu2() hayabusa.taglib.TopMenuTag#makeTagMenu( final GUIInfo guiInfo, final String bodyIn, final int type ) hayabusa.taglib.TopMenuTag#makeTagMenuString( final String href,final String target, final String bodyIn,・・・ [topMenu タグの改善2] topMenu の ONELEVEL の改善で、上記のアイコンが入ると、大きくフォームが崩れる現象が発生したため、 高さを指定する事にします。 span.design-onelevel に、height: 15px; を追加します。 また、スペースを詰めるため、padding: 0px; に変更しておきます。 そして、span.design-onelevel img として、margin: 0px; height: 15px; を指定しておきます。 あと、サンプルアプリケーションのONELEVELで、sideCount = '5' にしておきます。 gf\src\script\common\default.css gf\jsp\custom\query_info.jsp [topMenu タグの改善3] マトリクスメニュー2 で、リスト出力
  • していますが、アイコンイメージを使用すると、 リストの後に、アイコンが表示され、おかしな形式になります。 アイコンリスト(list-style属性)を使用して、アイコンを使う場合は、リストアイコンで、 そうでない場合は、従来のリストで表示するように変更します。
  • hayabusa.taglib.TopMenuTag#makeMatrixMenu2() hayabusa.taglib.TopMenuTag#makeTagMenuString( final String href,final String target, final String bodyIn,・・・ [topMenu FAQリンクの見直し] topMenu から、FAQリンクを表示しないようにします。 これは、データが存在するかどうかに関わらず、リンクだけを作成するため非常に紛らわしくなります。 実際には、FAQテーブル(GE80)に対して、画面IDが存在するかどうかで、判断して作成すべきで GuiData側で管理するようになれば、見直します。 hayabusa.taglib.TopMenuTag#doEndTag() hayabusa.taglib.TopMenuTag#makeHelpLink( final String key ) 5.5.2.4 (2012/05/16) [ソースチェック対応] ソースチェックを行います。 なお、チェック後の修正箇所は、コメント未記入の箇所もあります。 修正部分は、5.5.2.4_refactoring.txt として、分けておきます。 5.5.2.3 (2012/05/15) [DB定義DB の改善] DB定義DBで、NEXT_EXTENT が NULLの場合の処理を入れます。 (GF02,GF06) DB定義としては、数字項目なので、NOT NULL のままとし、SELECT文側で NVL を入れて対応します。 また、スキーマ情報取込 処理に於いて、登録処理を、INSERT文ではなく、 tableUpdateParam を使用するように修正します。 gf/jsp/GF2010/sqlGF02.jsp gf/jsp/GF2030/sqlGF06.jsp gf/jsp/GF2110/directGF02.jsp , directGF05.jsp , directGF06.jsp , directGF07.jsp , directGF82.jsp [topMenu タグの改善] topMenu タグの、ONELEVEL,NEXTGUI に、DIV要素を出力するかどうかを指定する 属性を追加します。 useDivOneLevel 属性で、true で、DIV要素を出力します。初期値は、false です。 これで出力されるDIVの id 属性として、design-onelevel を出力します。これを利用して、背景色や 固定幅などの対応ができます。 エンジン標準として、固定幅で出力できるようにしておきます。 hayabusa.taglib.TopMenuTag#release2() hayabusa.taglib.TopMenuTag#setUseDivOneLevel( final String flag ) hayabusa.taglib.TopMenuTag#makeOneLevelMenu() hayabusa.taglib.TopMenuTag#makeNextguiMenu() gf\src\script\common\default.css gf\jsp\custom\query_info.jsp hybs-taglib.tld topMenuに、seDivOneLevel 属性追加 5.5.2.2 (2012/05/09) [tableMerge 表示順] tableMergeタグで、Mapに登録した順番をキープするため、HashMap を LinkedHashMap に変更します。 hayabusa.taglib.TableMergeTag#makeKeyMap( final DBTableModel table, final String keys, final boolean useCheckOnly ) [TableFilter_LABEL SYSTEM_ID対応] tableFilter タグの classId="LABEL" に、SYSTEM_ID を引数に使えるように変更します。 これにより、DB定義DB関連JSP にて、各種取り込んだテーブル定義等の名称などのリソース適用に使用できます。 従来は、GE または、** リソースしか、見ていませんでした。 plugin.table.TableFilter_LABEL#execute() [DB定義追加] GF83 新規追加 これに伴う、カラムリソース、ラベルリソース等追加あり [DB定義DB JSP修正] jsp/gf/GF2150/result.jsp GF08を使用している箇所を削除 画面リソース変更 GF2041 GF08(テーブル関連定義) 廃止のため GF2042 シーケンス 廃止(GF2082 にフォルダ名変更) GF2081 オブジェクト明細 新規追加 GF2082 シーケンス GF2042 をフォルダ名変更で、GF2081 の次に持ってくる。 下記フォルダ作成、削除 gf/jsp/GF2041 削除 gf/jsp/GF2042 削除 gf/jsp/GF2081 新規追加 gf/jsp/GF2082 新規追加(GF2042 を持ってくる) 下記フォルダ変更 gf/jsp/GF2010 gf/jsp/GF2020 gf/jsp/GF2030 gf/jsp/GF2040 gf/jsp/GF2050 gf/jsp/GF2080 gf/jsp/GF2090 gf/jsp/GF2120 gf/jsp/GF2130 gf/jsp/GF2150 gf/jsp/GF2160 5.5.2.1 (2012/05/07) [JfreeChart 時間軸] ChartDatasetTag に時間軸を取り入れました。 機能は2つあります。 1.timeFormatType 属性 時刻を表す場合の表現の仕方を指定します。 *  E1:そのまま、24:00 となり、加算されていく。 *  E2:そのまま、0:00 に戻る。(日付は無視) *  E3:そのまま、1 00:00 と日付が付与される。 *  H1:そのまま、24時00分 となり、加算されていく。 *  H2:そのまま、00時00分 に戻る。(日付は無視) *  H3:そのまま、1日 00時00分 と日付が付与される。 * 初期値は、使用しない(-1)です。 2.useVerticalLabels 属性 ラベルの表示向きを縦にするかどうかを指定します 横書き:false/縦書き:true hayabusa.taglib.ChartDatasetTag#setTimeFormatType( final String type ) hayabusa.taglib.ChartDatasetTag#setUseVerticalLabels( final String useVLavels ) hayabusa.io.ChartDataset#makeNumberAxis() hayabusa.io.ChartDataset#setTimeFormatType( final String type ) hayabusa.io.ChartDataset#setUseVerticalLabels( final boolean useVLavels ) hayabusa.io.ChartDataset#class HybsTimeFormat jsp/GF6120/query.jsp jsp/GF6120/result.jsp hybs-taglib.tld [DBconfigのproperties修正] 正常にセットされていない不具合を修正します。 DBconfig上でカンマ区切りであったのを=で区切るように変更します。 又、プロパティ情報をinfoで表示するようにします。 (Admin情報画面で表示されるようになります) fukurou.db.EDbid#addProp(final String prop) fukurou.db.EDbid#info() fukurou.db.DatabaseConfig#getDbidInfo() [JFreeChartのバージョンアップ] JFreeChartを最新版に変更します。 jdk/jre/lib/ext/jcommon-1.0.17.jar jdk/jre/lib/ext/jfreechart-1.0.14.jar 5.5.2.0 (2012/05/01) [DB定義DB 関連] G-MIS対応で、USE_LENGTH が NULL の場合に、エラーになっていたので、修正 GF2060/GFM0040.jsp 定義ファイル検証・反映 GF2160/GFM0040.jsp 整合性チェック(テーブル間) [GFX013 DB登録の格上げ] GFX013 のDB登録画面を 通常の GFアプリケーションから廃止し、 標準メニュー(\jsp\common\gamen\08_DBUPDATE)に追加します。 リソースは、03_DBSEARCH の次に設定します。 gf/jsp/GFX013 廃止 jsp\common\gamen\08_DBUPDATE 新規追加 [03_DBSEARCH DB検索の修正] SQL文に、'<' や '>' が含まれる場合の、XSSチェックの対応をします。 {@INSQL} で、value にセットしている箇所の equals タグの削除と value タグで、SQL 変数に再セットしている箇所で、BODY部分で登録する ようにし、xssCheck="false" 属性をセットします。 パラメーターへのセットでは、xssCheck="false" は効きません。 jsp\common\gamen\03_DBSEARCH\changeSQL.jsp [build.xml 修正] jdk170 において、build.xml のjavadoc でdocletを実行する際、 の箇所で、余分なソースの検索をしてしまい、実効時エラーが発生し、正常に GE12_Param.xml が作成されなくなりました。 この、** がどうも悪さをしているようで、jdk16x の時代は、表記の様に、 " で囲うことで、処理を止めることができましたが、jdk170 では効果が ありませんでした。\*\* とすると停止できますが、その値がそのままセット されるため、そのように記述できません。 そこで、DocletParam 側で、systemId パラメータが null の場合は、** を 内部的に設定するように変更します。 これは、ソースと、build.xml を一致させれば、互換性があります。 fukurou.taglet.DocletParam#start( final RootDoc root ) build.xml 上記の param name="-systemId" の 箇所をコメントアウト [TableUpdateParamTag 修正] javadoc 警告対応 @param vals String → @param keys String [javadoc] hayabusa\taglib\TableUpdateParamTag.java:439: 警告 - @param argument "vals"はパラメータ名ではありません。 [DBConfigでのproperties設定] DBConfig.xmlからDB接続時のpropertiesをセットできるようにします。 XML上でkey,value とキーと値をカンマで区切って設定します。(最初のカンマがキーと値の区切り) このプロパティはDriverManagerのgetConnectionのプロパティとしてセットされます。 例えばoracle.jdbc.ReadTimeoutをセットしたい場合はoracle.jdbc.ReadTimeout,1000 のようにセットして下さい。 fukurou.db.EDbid#addProp(final String prop) fukurou.db.EDbid#addProp(final String key, final String val) fukurou.db.EDbid#getProps() fukurou.db.DatabaseConfig#getDbidMap( final Element element , EDbid defDdbid ) fukurou.db.ConnectionFactory#createInstance() [writeTableのZIP出力時のエンコード指定] wtireTableタグでzip出力とした場合、エンコード指定が機能していませんでした。 これは、PrintWriterをByteArrayOutputStreamより作成しているためですが、 BufferedWriterを間に入れてエンコードの指定を有効にします。 Excel形式の場合の圧縮には従来通り対応していません。 fukurou.util.FileUtil#getPrintWriter( final OutputStream os,final String encode ) hayabusa.taglib.WriteTableTag#PrintWriter getPrintWriter(OutputStream os) hayabusa.taglib.WriteTableTag#PrintWriter getPrintWriter(OutputStream os) 5.5.1.9 (2012/04/19) [tableUpdateParam に別名,関数対応] 別名 を与えた検索結果に対する更新と、関数を値に設定する機能を追加します。 SELECT 文を記述したとき、別名を付けていたり、SELECTしたテーブルと別のテーブルに DBTableModelの値を書き込む場合、DBTableModel の持っているカラム名と、実際に 書き込むカラム名が異なります。そのようなケースに、元の別名カラムと、テーブルの 実カラムを指定する事で、対応します。 asNames には、select A as B from TBL の B を指定します。 orgNamesには、select A as B from TBL の A を指定します。 orgNames と、asNames の個数は、同じにしておく必要があります。 関数等を設定できる機能を追加します。 funcKeys と funcVals で、指定します。 funcKeys は、constKeys と同じ書式で、代入するカラム名をCSV形式で指定します。 funcVals に、関数を指定します。内部ロジック的には、constVals は、SQL文を構築 するときに、値をシングルクオートで囲いますが、funcVals は囲わないだけです。 hayabusa.taglib#TableUpdateParamTag#doStartTag() hayabusa.taglib#TableUpdateParamTag#release2() hayabusa.taglib#TableUpdateParamTag#setFuncKeys( final String keys ) hayabusa.taglib#TableUpdateParamTag#setFuncVals( final String vals ) hayabusa.taglib#TableUpdateParamTag#setAsNames( final String keys ) hayabusa.taglib#TableUpdateParamTag#setOrgNames( final String keys ) hayabusa.taglib#TableUpdateParamTag#makeNamesData( final String[] nms ) hybs-taglib.tld [DB定義DB出力対応] 5.5.1.6で対応した取込で、桁数未入力の場合の出力に対応及び、画面不具合修正です。 桁数未入力の場合はテーブル作成スクリプトで例えば「NUBMER(10)」の括弧を出力しません。 plugin.table.TableFilter_DBARG_OUT#makeLineList( final int[] clmNo,final String[] data,final boolean first ) plugin.table.TableFilter_TABLE#makeLineList( final String[] data,final boolean first ) gf/jsp/GF2060 5.5.1.8 (2012/04/17) [G-MIS Ver6対応] 固定値カラムの設定を行う情報を管理するクラスを追加します。 Ver6 では、PGPSET、PGPUPD が追加されています。 JSP から登録する場合は、PGPSET と PGSET が同じ値になります。 G-MISの場合、各テーブル固有の物理ユニークキーを持っていますが、 エンジン標準の様に、トリガで自動登録していません。 アプリケーション側の互換性を考慮し、トリガ化できないため、 この、DBConstValue_VV に、物理ユニークキーをセットする処理も 入れておきます。 plugin.query.DBConstValue_VV.java 5.5.1.7 (2012/04/16) [TableReader_Excel のエラー処理] EXCELを解析する途中でエラーが発生した場合、そのセルでエラーが発生したか わからないため、処理中のセル情報を取得できるように修正します。 また、CELL_TYPE_FORMULA の場合に、できる限り処理するように修正しました。 plugin.io.TableReader_Excel#readDBTable() plugin.io.TableReader_Excel$HeaderData#makeNames( final Row oRow ) plugin.io.TableReader_Excel$HeaderData#getValue( final Cell oCell ) plugin.io.TableReader_Excel$HeaderData#getLastCellMsg() [Process_GrepChangeExcel の新規追加] Process_GrepChange の入力情報として、EXCEL を読み取るProcess_GrepChangeExcel を追加します。 機能的には、outEncode 属性の削除、keywordFile のエンコードを、inEncode を 使用するように、変更、debug 属性の追加です。 fukurou.process.Process_GrepChangeExcel.java [コンパイル時の警告対応] Map配列のジェネリック定義で、警告が出ていたので、対処します。 何も定義していませんでしたが、ワイルドカードを指定して定義します。 実行時にキャストする運用は変わりません。 hayabusa.io.AbstractTableReader.java 5.5.1.6 (2012/04/16) [DB定義変更] DB定義DBの使い勝手を良くするため、一部DBの制約等を変更します。 1.GF05のUSE_LENGTHカラムのnot null制約を外す 2.GF80のUSE_LENGTHカラムのnot null制約を外す 3.GF80に論理ユニーク用カラムLUKを追加 4.GF80のインデックスカラム追加IXH 〜 IXK 及び、それに付随する画面を変更し、GFリソースの追加を行います。 gf/jsp/GF2050 gf/jsp/GF2060 gf/jsp/GF2120 5.5.1.5 (2012/04/12) [popup閉じた後のリロード機能追加] ポップアップの登録を推奨するものではありませんが、modalDialog上で何らかの処理を行い、 閉じた後に元の画面に対してリロード処理をかけたい場合があります。 returnValueに対して['_RENEW','リロード後の画面アドレス']をセットすると アドレスに対してcommand=RENEWを追加してlocation.hrefを更新します。 [0]は_RENEW固定です。リロード後のアドレスはresult.jsp等を指定して下さい。 common/default.jsp [エラーメッセージ編集画面] ユーザーサイドでエラーメッセージを編集可能にするため、専用画面を作成します。 FAQ登録等と同レベルで、**リソースとして登録は行いますがロールは--としておきます。 同時にラベルの区分KBLBLに8(エラー)を追加し、エンジン標準のGEE,GFE,ERRメッセージは エラー区分に変更します。 common/gamen/24_ERRMSG [リソース画面BulkSet対応] リソース画面の一部項目について、バルクセットの対応を行います。 ge/jsp/GE0002/update.jsp ge/jsp/GE0003/update.jsp ge/jsp/GE0004/update.jsp ge/jsp/GE0005/update.jsp [画面リソース登録修正] システムID**のリソースについては、SEQの振りなおしを行わないようにします。 これは、共通の**リソースの順番が通常のIDと混在してしまうのを防ぐためです。 ge/jsp/GE0002/entry.jsp 5.5.1.4 (2012/04/10) [ajaxSubmit修正] 別フレームをターゲットに指定した場合、今まではtop.指定フレームとなっていたため CONTENS.RESULTを直接指定する必要がありました。 この場合、/jsp/画面ID で指定された場合にエラーとなってしまうため、フレームを取得できなかった 場合の処理を追加します。 common/option/ajaxSubmit.js [画面リソース登録画面修正] ROWNUMを利用している箇所があったため、利用しないよう変更。 GE0002/result.jsp 5.5.1.3 (2012/04/09) [{@XXXX}のHTMLエスケープ対応] {@ESC.XXXX}を利用する事で<>&等をエスケープした形で返すようにします。 hayabusa.taglib.CommonTagSupport#getRequestValue( final String key, final boolean xssCheckFlg ) 5.5.1.2 (2012/04/06) [TableReader_Excel のエラー処理] EXCELを解析する途中でエラーが発生した場合、そのセルでエラーが発生したか わからないため、処理中のセル情報を取得できるように修正します。 また、CELL_TYPE_FORMULA の場合に、できる限り処理するように修正しました。 plugin.io.TableReader_Excel#readDBTable() plugin.io.TableReader_Excel$HeaderData#makeNames( final Row oRow ) plugin.io.TableReader_Excel$HeaderData#getValue( final Cell oCell ) plugin.io.TableReader_Excel$HeaderData#getLastCellMsg() 5.5.1.1 (2012/04/06) [ANDタグ機能追加] andタグのInstrTypeにnotinを追加しました。 inはLIKE+ORでしたが、notinはNOT LIKE+ANDの条件となります。 hayabusa/taglib/SqlAndTag#makeInstrVals( final String instrVals, final String instrType , final String value ) hayabusa/taglib/SqlAndTag#setInstrType( final String tp ) 5.5.1.0 (2012/04/04) [ヘッダ固定修正] ヘッダ固定はもとのテーブルの上に別に作成したヘッダ部分を重ねる事で実現していますが、 文字列検索やタブでフォーカスを移動させた場合に下のヘッダがずれて表示されていました。 ヘッダ固定のスクリプトでvisibility:hiddenを指定する事で回避します。 common/scrollBar2.js [SelectTagエラーメッセージ修正] SelectTagのtd属性のエラーメッセージに間違いがありましたので、修正します。 hayabusa/taglib/SelectTag#setTd( final String flag ) [eventColumn修正] エディタがDBMENU以外の時もaddNoValue属性を与えるようにしておきます。 common/eventColumnMaker.jsp [columnタグ拡張] ラベル短ベースのセレクトメニューを作成するかどうかをコントロール可能にします。 現在は一覧は短ベース、それ以外は長ベースで作成されています。 属性をauto(標準設定)にすると上のようにコントロールされ、useSlabel=trueで短ベースでの表示にします。 今回の対応ではまず、columnTagのみに対応します。 hayabusa/db/DBColumnConfig#setUseSlabel( final String use ) hayabusa/db/DBColumnConfig#getUseSlabel() hayabusa/db/DBColumn#DBColumn(...) hayabusa/db/DBColumn#getConfig() hayasuba/db/DBColumn#getUseSlabel() plugin/column/Editor_MENU#Editor_MENU(),Editor_MENU( final DBColumn clm ) plugin/column/Editor_MENU#getValue( final String value ),getValue( final int row,final String value ) plugin/column/Renderer_MENU#Renderer_MENU(),Renderer_MENU( final DBColumn clm ) plugin/column/Renderer_MENU#getValue( final String value ),getValue( final int row,final String value ) plugin/column/Editor_DBMENU#Editor_DBMENU(),Editor_DBMENU( final DBColumn clm ) plugin/column/Editor_DBMENU#getValue( final String value ),getValue( final int row,final String value ) plugin/column/Renderer_DBMENU#Renderer_DBMENU(),Renderer_DBMENU( final DBColumn clm ) plugin/column/Renderer_DBMENU#getValue( final String value ),getValue( final int row,final String value ) hayabusa/taglib/ColumnTag#getInsertTag( final DBColumn clm, final String value ) hayabusa/taglib/ColumnTag#setUseSLabel( final String prm ) hybs-taglib.tld 5.5.0.6 (2012/03/27) [RFID修正] XML作成時に&等の文字を考慮していませんでした。 実データ部分のみ&等にエスケープします。 hayabusa/report/RFIDPrintPointServide_DEFAULT#makeXML_printCards() 5.5.0.5 (2012/03/24) [FAQ画面修正] Oracle依存部分の変更。(decode関数をcaseに変更等) common/gamen/23_FAQRGST/query.jsp 5.5.0.4 (2012/03/16) [HMレンデラ修正] HMレンデラ指定時に、HMSレンデラがロードされていたので修正します。 plugin/column/Renderer_HM [HelpTagのFAQ対応] HelpTagでFAQのアイコンを表示する事ができるように対応します。 今回の対応ではGE80に該当画面IDのデータが存在するかどうかは無関係に アイコンを表示する機能しますが、互換性等を考慮して初期では表示しないようにしています。 システム定数のUSE_GUI_FAQをtrueにするか、helpタグで指定する事でFAQを表示させる事ができます。 hayabusa/common/SystemData#DEFAULT_FAQ_ICON,USE_GUI_FAQ hayabusa/taglib/TopMenuTag#doEndTag() hayabusa/taglib/TopMenuTag#makeTagMenuString(...) hayabusa/taglib/TopMenuTag#makeHelpLink( final String key ) hayabusa/taglib/HelpTag#doEndTag(),makeTagFaq(),getFAQLink( final String url ),makeTag(),release2() getLink( final String url ),getLinkBody(final String icon, final String title) setFaqIconURL( final String url ),setUseFaq( final String flag ) hybs-taglib.tld jsp/image/qaicon.png 5.5.0.3 (2012/03/13) [CustomData時のtr対応] tbody等のフォーマットで先頭にtrタグが存在する場合、今までは外す処理が入っていましたが、 CustomData形式等でそのまま出力したい場合があります。 tbody系タグにuseTrCutにfalseを明示的に指定した場合はtr削除処理を行わないようにします。 hayabusa.html.TableFormatter#setFormat( final String fmt , final boolean flg ) hayabusa.html.TableFormatter#setFormat( final String fmt ) hybs-taglib.tld [query修正] query タグの overflowMsg を表示しない設定(overflowMsg="")したとき、 改行が入るのを修正します。 hayabusa.taglib.QueryTag#doEndTag() [TableFilter_UNIQ_NAME 新規追加] NAME_IN,NAME_OUT,GROUP_KEY,TYPE より、名前を最短ユニーク化します。 例えば、氏名で、姓と名で、同姓の場合、姓(名)を付けることで、区別することができます。 NAME_IN  :名前のオリジナルのカラムを指定します。(必須) NAME_OUT  :変換後の名前を設定するカラムを指定します。NAME_INと同じでもかまいません。(必須) GROUP_KEY :名前をユニークにするグループを指定するカラム名を指定します。(選択)        グループはソートされている必要があります。内部的にはキーブレイク処理します。 TYPE    :処理の方法を指定します。(初期値は、1)        1:姓と名を分けます。重複分は、姓(名) 形式で、ユニークになるまで、名の文字を増やします。        2:姓と名を分けます。1. と異なるのは、最初に見つけた重複分は、姓 のまま残します。 姓名の分離は、全角または、半角のスペースで区切ります。また、重複しなければ、(名)は付きません。 TYPE="2" の方式は、慣例的に、昔からいる社員は苗字そのままで、後から入社した人にだけ(名)を 付けたい場合に、名前を入社年の古い順にならべることで、実現できます。 plugin.table.TableFilter_UNIQ_NAME.java 新規追加 [value タグの 機能追加:action="MAP"] action="MAP" , "ALL_MAP" を追加します。 これは、command="SQL" 、"SETTBL" の場合に利用可能です。 通常は、カラム名をキーに、変数にセットしますが、これは、キーも検索結果の値を利用します。 例えば、select XXX,COUNT(*) from TBL group by XXX などとして、XXX単位の件数を取得できます。 取得時は、{@XXX} で、取得できます。 command="SQL" の場合は、カラム数は、2つ限定です。 第一番目のカラムが、キーにあたり、2番目が、値になります。 "SETTBL" の場合は、何も指定しなければ、上記の通りですが、key , value に、 DBTableModel から取得するカラム名を指定することで、任意の場所からMAPを作成できます。 通常の使い方がマルチカラムなので、useMultiRows="true" を設定する必要はありません。(内部的に常にtrue) command="SETTBL" の場合は、選択された分のみでMAPを作る場合は、"MAP" 、すべてのデータを使う場合は、ALL_MAP を指定します。command="SQL" は、MAP のみ有効です。(選択分はすべて利用されます。) hayabusa.taglib.ValueTag#setSQLAttribute( final DBTableModel table ) hayabusa.taglib.ValueTag#setTableAttribute( final DBTableModel table,final String key,final String action ) hayabusa.taglib.ValueTag#setAction( final String act ) JavaDcocのみ修正 [image追加] timeTable用イメージを追加します。 jsp/image/timeTableBG1.png 5.5.0.2 (2012/03/09) [和暦対応] {@DATE XXXX}で和暦表示に対応します。 XXXXがGYMDF,G2YMDF,GYMF,GYFの場合に和暦を利用した表示を行います。 その他MDF,MDEFを追加しました。 画面:【管理】Admin管理の[Parameter]をご覧下さい。 hayabusa.taglib.CommonTagSupport#getDateFormat( final String value ) jsp/common/gamen/01_ADMIN/printSystemParameter.jsp 5.5.0.1 (2012/03/07) [DB定義修正] 新着のDB定義に誤りがあったため修正します。 テーブル作成スクリプトも修正されています。 CDBNRUI VARCHAR2(3)→VARCHAR2(10) 5.5.0.0 (2012/03/01) [新着情報画面] エンジン標準として新着情報を表示する画面を提供します。 管理メニュー下に新着情報を追加しました。(**リソース、ロール--) 利用するためにはGE81テーブルが必要です。 登録画面そのものはcommonの21_WHTSNEWです。 新着情報はSYSTEM_IDの他にSYSCODEというサブシステム用コードを利用しています。 新着画面上ではUSER.SYSCODEをwhere句に利用しているので、たとえば同一システムを 異なる事業部で利用する場合等にはcustom/init.jsp等でUSER.SYSCODEを設定して下さい。 なお、SYSCODEが*のものはシステムID内で共通として表示するようにしています。 画面ID:21_WHTSNEWVを表示用画面として全ユーザに公開しています。(メニュー非表示) GFのGF0000はサンプルとして初期画面表示を新着とします。 jsp/common/gamen/21_WHTSNEW jsp/common/default.css GF/jsp/GF0000/index.jsp GF/jsp/inex.jsp [FAQ画面] エンジン標準としてFAQの画面を提供します。 管理メニュー下にFAQ登録を追加しました。(**リソース、ロール--) 又、【管理メニュー】と同レベルで【FAQ】を追加しました。(ロールなし) 但し、【FAQ】画面は過去との互換性を考慮してメニュー非表示としています。 利用する場合は各システムID単位で上書きして下さい。 FAQを利用するためにはGE80テーブルが必要です。 画面は登録がcommonの23_FAQRGST、表示が22_FAQです。 先に分類を登録後、回答登録時に分類を割り当てます。 新着情報同様にSYSCODえというサブシステム用コードを利用しています。 但し、*のサブコードはシステムID内で共通として表示するようにしています。 ヘルプドキュメントと同様の画面連動については現段階では対応していませんが、 今後のバージョンで対応予定です。 jsp/common/gamen/22_FAQ jsp/common/gamen/23_FAQRGST jsp/image/ speech-balloon-green-a48.png,speech-balloon-orange-q48.png arrow-up.png,arrow-down.png,arrow-left.png,arrow-right.png reload.png help/23_FAQRGST.html [submitタグのimg対応] submitボタンに画像を利用するための支援属性を追加します。 inputタグのtype=imageで動作させられるのが良いのですが、その場合にIEはnameとvalueを 飛ばさない仕様になっています。 エンジンはforward.jspでそれを解釈するような作りにしていますので、利用できません。 そこで、imgを指定した場合はsubmitのまま背景画像をcssで指定するようにします。 (style属性でbackground: url(image_btn.png) left top no-repeat;のように指定するのと同じ) 高さ、横幅及びborderについては何も触らないので、必要に応じてstyle属性で指定する必要があります。 hayabusa.taglib.SubmitTag#setImg( final String image ) hayabusa.taglib.SubmitTag#release2() hayabusa.taglib.SubmitTag#makeTag() hybs-taglib.tld [bulkセット修正] bulkセットでチェックボックスのチェックを外しても動作しない現象を修正します。 チェックボックス外しが動作するのは、一度もCtrl-Cの動作をしていない場合のみです。 jsp/common/resultScript.js 5.4.5.0 (2012/02/29) [URLチェック時のURIデコード処理] URLチェック時にマルチバイト文字ファイルはURIエンコードされた値と 比較されていたため、エラーとなっていました。 チェック時にURLをデコードして、動作するようにします。 デコードをかけない場合はweb.xmlでdecodeをfalse設定して下さい。 fukurou.util.StrinigUtil#urlDecode( final String value ) hayabusa.filter.URLCheckFilter#init(final FilterConfig filterConfig) hayabusa.filter.URLCheckFilter#isValidAccess( final ServletRequest request ) [一部JavaScriptイベントの制御追加] headタグでfocusHilight及びrealTimeCheckの制御を復活させます。 JavaScript統合によりこれらの制御はやめていましたが、 モーダルダイアログ時にプルダウンがおかしくなる対応でfocusHilightを、 ローカルリソース利用時にリアルタイムチェックを動作させたくない場合があるためrealTimeCheckを それぞれ制御可能にします。 JavaScriptは統合したままとするため、headタグでフラグをスクリプトとして出力します。 hayabusa.taglib.headTag#setUseRealTimeCheck( final String flag ) hayabusa.taglib.headTag#setUseFocusHilight( final String flag ) hayabusa.taglib.headTag#release2() hayabusa.taglib.headTag#doEndTag() hayabusa.taglib.headTag#addScriptFlg( final String var, final boolean flg, final StringBuilder buf ) jsp/common/eventScript.js hybs-taglib.tld [valueタグのFromVal,ToVal対応] 5.2.2.0 (2010/11/01)で対応されたfromValとtoVal属性がtldファイルで有効になっていませんでした。 追加して利用可能にします。 hybs-taglib.tld 5.4.4.5 (2012/02/20) [新伝送修正] 新伝送システムでは外部サーバとの伝送にはXML形式での受け渡しを行っていますが、 特定文字(&等)の変換を行っておらず、含まれていた場合はパース時にエラーが発生します。 readWrapperでXMLを作成する際に変換処理を追加します。 hayabusa.remote.TransferReadWrapper#makeXml( final String[] data, final String[] key ) 5.4.4.4 (2012/02/15) [topMenuのヘルプアイコン修正] imgKeyがnullの場合にエラーとなるので、その場合はアイコン処理を行わないようにします。 hayabusa.taglib.TopMenuTag#makeTagMenuString(...) 5.4.4.3 (2012/02/09) [Calc帳票修正] GE52の使用フラグを無視していたので、使用となっているものだけを対象とします。 hayabusa.report2.QueueManager_DB#SQL_SELECT_GE52 5.4.4.2 (2012/02/03) [ViewTimeTable修正] タイムテーブルで、ブッキングデータをマージする機能を追加します。 これは、複数の予定をマージすることで、空き時間検索に使えます。 * 日付、キー(人や施設)で予定時刻が重複している場合の処理方法を指定します。 * 通常(初期値:false)では、ブッキングデータはレコードを分けて表示させます。 * 例えば、人の予定であれば、仮予約や会議招集などのケースで、重複を表示しておき * 利用者本人に決めさせるというケースが考えられます。 * これを、true に設定すると、予定時刻が重複している場合は、マージして、一つの * 予定として表現します。 * 初期値は、false(ブッキング時にマージ処理を行わない)です。 hayabusa.taglib.ViewTimeTableParamTag#setUseBookingMerge( final String flag ) hayabusa.html.ViewTimeTableParam#USE_BOOKING_MERGE plugin/view/ViewForm_HTMLTimeTable#clear() plugin/view/ViewForm_HTMLTimeTable#paramInit() plugin/view/ViewForm_HTMLTimeTable#create( final int startNo, final int pageSize ) gf/src/META-INF/hybs-taglib.tld useBookingMerge 属性の追加 gf/WEB-INF/hybs-taglib.tld [RFID出力ファイル名変更] 要求NO.txtでしたが、XMLファイルが.txtはおかしいため.xmlに変更します hayabusa.report2.ExecQueue#setOutputName(...) [Headタグtype追加] Typeがnullの場合、default.css等がインクルードされるようになっています。 しかし携帯電話用等で何もインクルードしたくない場合があるため、 simpleという名前で新たに追加します。 hayabusa.taglib.HeadTag#doEndTag() [ファイルアップロード時のチェックボックス対応] ファイルアップロード時にUploadタグでリクエスト変数をセットして利用可能にしていますが、 同一名称で複数件飛んできていた場合は一番最後の値をセットしていました。 チェックボックス時は1,0と飛んでくるためチェックされていないと判定されるため、 値が0の場合に複数件の値が飛んできていてかつ、1のデータが存在する場合は1をセットします。 これはCommonTagSupportで行っている処理と同様です。 hayabusa.taglib.FileUploadTag#makeDBTable( final MultipartRequest multi ) 5.4.4.1 (2021/02/02) [伝送システム修正] TransferExec_HTTP_CB01でhayabusaをimportしていたためfukurou単体で利用できませんでした。 HybsSystemExceptionをRuntimeExceptionに修正します。 fukurou.transfer/TransferExec_HTTP_CB01.java 又、一部のコメントを修正します。 fukurou.transfer/TransferExec_CB01.java 5.4.4.0(2012/02/01) [リアルタイムチェックcheckNames対応] 5.4.3.8で対応したcheckNamesをリアルタイムチェックでも指定できるようにします。 特殊な属性であるcheckNamesのかける/かけないをcolumnタグ属性で直接は指定はせず、 optionAttributesを利用する事とします。 (optionAttributes="rtOption='checkNames=CLM'") 具体的には該当タグのrtOption属性の内容をリアルタイムチェックをCallする場合に付加します。 但しrtOptionは送信時にエンコードをかけないため、全角文字等の送信はそのままではできません。 jsp/common/eventScript.js jsp/common/realtimecheck.jsp hayabusa.taglib.ColumnCheckTag#setCheckNames( final String nm ) [バルクセット修正] バルクセット時に全FORMからallElementsで取得してnameを見ていましたが、 nameが存在しない場合にJavaScriptエラーになるので、修正します。 又、Ctrl-C,Ctrl-Vのプルダウン追加時にヘッダ固定の場合はビューのリサイズ処理を行うように変更します。 jsp/common/resultScript.js Ctrl-C,Ctrl-Vの動作について分かりずらいため、コメントを加えます。 hayabusa/taglib/ViewFormTag#setColumnBulkSet( final String columnName ) [V4互換モード対応漏れ] V5よりGE55のHOST_ID→HOSTにカラム名が変更になっていますが、互換モード対応漏れがあったので修正します。 hayabusa.report.RFIDPrintRequest#GE55_SELECT [GE80,GE81定義変更] 利用を開始していないテーブル(FAQ、新着情報)のDB定義を変更します。 [whatsnewフォルダ追加] コンテキストの下にwhatsnewフォルダを追加します。 これは新着情報でアップロードするファイルを置くための場所です。 5.4.3.9 (2012/01/25) [RFID対応] RFIDの出力XMLに雛形ファイル名を追加します。 この対応は新帳票のみで行います。 (旧の帳票から発行した場合はNULL値をセット) 又、GE58にデータがなくても発行可能にし、バッチ起動時の引数の順番を変更します。 hayabusa.report2.ExecProcess#rfid() hayabusa.report.RFIDPrintRequest#RFIDPrintRequest( ... ) hayabusa.report.RFIDPrintRequest#execute() hayabusa.report.RFIDPrintRequest#initialDataSet() hayabusa.report.ReportProcessing#execute() hayabusa.report.RFIDPrintPointService#setLayoutFile( String file ) hayabusa.report.AbstractRFIDPointService#setLayoutFile( String file ) hayabusa.report.RFIDPrintPointService_DEFAULT#makeXML_header() hayabusa.report.RFIDPrintPointService_DEFAULT#makeShellCommand() hayabusa.report.RFIDPrintPointService_DEFAULT#makeXML_printHeader() [リソース画面help修正] リソース画面のヘルプを修正します。 説明不足な点や、誤記訂正です。 ge/help/GE0003.html ge/help/GE0004.html ge/help/GE0005.html 5.4.3.8 (2012/01/24) [Linkタグのhttps対応] linkタグでは戻るためのURL(BACK_ADDRESS)が固定でhttp://でした。 httpsでも利用可能なように、getSchemで取得するように変更します。 hayabusa.taglib.LinkTag#getContextURL() [ファイルリサイズ処理エラーメッセージ追加] 不正な画像ファイル等が入力された際に日本語エラーメッセージを出すようにします。 fukurou.util.ImageResizer.java#ImageResizer( final String in ) [columnCheckタグのcheckNames対応] queryタグのcheckNamesと同様の機能をcolumnCheckタグに追加します。 checkNamesに指定したカラムの場合はdbColumnのvalueSetを利用して正規化します。 この機能はqueryタグでcheckNamesを指定する値のチェックに利用する目的のため、 チェックタイプがNEWの場合のみ動作するようにしていいます。 ※現段階ではrealTimeCheck側の考慮はできていません。 hayabusa.taglib.columnCheckTag#( final ErrorMessage errMsg ) hayabusa.taglib.columnCheckTag#setCheckNames() hayabusa.taglib.columnCheckTag#release2 gf/src/META-INF/hybs-taglib.tld checkNames 属性の追加 gf/WEB-INF/hybs-taglib.tld 5.4.3.7 (2012/01/20) [ViewTimeTable修正] タイムテーブルにデータを入れるTDタグにclass属性を付与する場合のカラム名をセットします。 これは、タイムテーブルのリンクや説明を入れるTDに、class属性を付与する場合のカラム名を 指定します。これにより、TD に色を付けたり、表示の条件を外部から指定できます。 もっとも一般的な想定用途は、タイムテーブルのデータの種別に応じた色分けです。 hayabusa.taglib.ViewTimeTableParamTag#setTdClassColumn( final String clm ) { hayabusa.html.ViewTimeTableParam#TD_CLASS_COLUMN_ID plugin/view/ViewForm_HTMLTimeTable#clear() plugin/view/ViewForm_HTMLTimeTable#create( final int startNo, final int pageSize ) plugin/view/ViewForm_HTMLTimeTable#paramInit() gf/src/META-INF/hybs-taglib.tld tdClassColumn 属性の追加 gf/WEB-INF/hybs-taglib.tld tdClassColumn 属性の追加 時間間隔を30分単位ではなく、1分単位で扱えるように修正します。 また、開始時間、終了時間の計算方法を、現在の変則的な方法(ただしわかりやすい) から、分単位での管理に切り替えます。 hayabusa.taglib.ViewTimeTableParamTag#setTimeInterval( final String intval ) plugin/view/ViewForm_HTMLTimeTable#clear() plugin/view/ViewForm_HTMLTimeTable#create( final int startNo, final int pageSize ) plugin/view/ViewForm_HTMLTimeTable#paramInit() plugin/view/ViewForm_HTMLTimeTable#getStr2Time( final String val , final int defTm ) plugin/view/ViewForm_HTMLTimeTable#getInt2StrTime( final int timeVal ) colgroup は不要 plugin/view/ViewForm_HTMLTimeTable#getTableHead() appendTag メソッドは、TD 専用なので、名称変更と引数を変更します。 さらに、class 属性を追加できるように修正します。 plugin/view/ViewForm_HTMLTimeTable#appendTag( final StringBuilder buf , final String tag , final int colspan , final String... body ) { → appendTDTag [ファイルリサイズ処理修正] 5.4.3.5でJAIによる読込処理を追加しましたがファイルロック解除がGC依存のため、 読込方法をfileloadからstreamに変更します。 同時にbizロジックによるリサイズ処理のテスト画面を作成しました。 fukurou.util.ImageResizer.java#ImageResizer( final String in ) gf/jsp/GF7140 5.4.3.6 (2012/01/19) [DBType_HMS修正] 数字限定チェックがかかっていなかったのでチェックを追加します。 plugin.column.DBType_HMS#valueCheck(...) [画面リソース登録修正] 画面リソース検索時に対象画面がどの分類に属しているのかわかり難かったため、 検索時には右端に親分類の名称を表示するようにします。 ge/jsp/GE0002 result.jsp update.jsp [属性クラス定義説明修正] 一部の説明文について、追記等を行いました。 plugin.column.DBType_YM01 plugin.column.DBType_YM31 plugin.column.Editor_DBMENU plugin.column.Editor_DECIMAL plugin.column.Editor_TEXTAREA plugin.column.Editor_YM plugin.column.Editor_YMD2 plugin.column.Renderer_DATE plugin.column.Renderer_DECIMAL plugin.column.Renderer_FORM plugin.column.Renderer_MONEY plugin.column.Renderer_NUMBER plugin.column.Renderer_WRITABLE plugin.column.Renderer_XXXX plugin.column.Renderer_YMD31 [アイコン変更] helpアイコンが目立たないため、標準のhelp.pngを変更します。 以前のものを使いたい場合はシステムリソースDEFAULT_HELP_ICONでhelp.pngを指定して下さい。 jsp/image/help2.png hayabusa.common.SystemData#DEFAULT_HELP_ICON hayabusa.taglib.HelpTag#iconURL [GEヘルプファイル追加] リソース画面(画面、カラム、コード)の簡易的な説明書を作成しました。 これ以上の詳しい説明は今後搭載するFAQで扱う事とします。 ge/help/GE0002.html ge/help/GE0003.html ge/help/GE0004.html 5.4.3.5 (2012/01/17) [レンデラー追加] 時:分のように2桁:2桁で表示するレンデラーを追加します。 このレンデラーはvalue値が4桁以上6桁以下の場合のみ適用されます。 plugin.column.Renderer_HM [画像圧縮処理CMYK対応] Java標準のimageIOではCMYKのJPEGを処理できません。 そのため、標準で読み込めなかった場合のみJAI(JavaAdvancedImaging)を利用して ファイルを読み込み、ISOcoated_v2_eci.iccでRGB色空間への変換を試みます。 javaのextに新たにJAIを追加します。 jdk160_18\jre\lib\ext\jai_core1.1.3.jar jdk160_18\jre\lib\ext\jai_codec1.1.3.jar fukurou.util.ISOcoated_v2_eci.icc fukurou.util.ImageResizer.java#cmykToSRGB(BufferedImage readImage),ImageResizer( final String in ) 5.4.3.4 (2012/01/12) [動的カラム作成] エラーチェックで、officialチェック(カラムリソースから作成されたかどうかの判定)で、 動的カラムは、official ではないため、エラーになってします。 DBColumnConfig で、official を再設定できるようにする。 hayabusa.db.DBColumnConfig#setOfficial( final boolean official ) plugin.column.Editor_ENTCLM#getValue( final String value ) 動的カラムで、ラベルも引数で渡せるようにします。 これで、SAVE=TRUE で、リソースメモリに登録すれば、カラムチェックで エラー発生時に、リソースメモリから読み込むため、ラベルが表示されます。 これに伴い、引数の並び順を変更しますので、既存のアプリケーションは、 対応願います。(互換性なし) 旧 * カラム名:値:must:Length:Editor:DBType:EditParam の順番です。 新 * カラム名:値:must:Length:Label:Editor:DBType:EditParam の順番です。 plugin.column.Editor_ENTCLM#getValue( final String value ) jsp/GF6430/result.jsp SAVE=TRUE の処理変更 従来は、DBColumn をセーブしていましたが、LabelData をキャッシュする方法に 切り替えます。 * 通常、このままでは、リソースに存在することが前提ですが、 * 編集パラメータに、SAVE=TRUE というキーワードをセットすると、 * 個々に作成した値を元に、ResourceManager に、動的に作成した * LabelData を追加する機能を持たせます。 * この、LabelData は、通常のLabelDataLoaderのプールではなく、 * ResourceManagerで、個別に管理されるため、特殊な方法を使わないと * 値を取り出すことはできません。 * このキャッシュされたラベルを用いることで、columnCheckのエラーメッセージ * のラベルを動的に書き換えたラベルで表示することができます。 hayabusa.resource.ResourceManager#setDBColumn( final String key , final DBColumn dbColumn ) 廃止 hayabusa.resource.ResourceManager#getLabel( final String key ) hayabusa.resource.ResourceManager#getLabel( final String key, final boolean useLocalPool ) hayabusa.resource.ResourceManager#clear( final String key ) hayabusa.resource.ResourceManager#clear() hayabusa.taglib.ColumnCheckTag#release2() hayabusa.taglib.ColumnCheckTag#setUseCacheLabel( final String flg ) hayabusa.taglib.ColumnCheckTag#makeEntryErrorMessage( final ErrorMessage errMsg ) hayabusa.taglib.ColumnCheckTag#makeErrorMessage( final ErrorMessage errMsg ) ラベルの取得を、DBTableModel のカラムから取得するかどうかの指定ができるようにします。 これは、ColumnEditorで個別にカラム名を変更した場合にも、エラー表示に使えます。 従来は、画面表示されている名称と、異なるエラーメッセージが表示されていました。 hayabusa.taglib.ColumnCheckTag#setUseTblClmLbl( final String flg ) { gf/src/META-INF/hybs-taglib.tld useCacheLabel,useTblClmLbl 属性の追加 gf/WEB-INF/hybs-taglib.tld useCacheLabel,useTblClmLbl 属性の追加 (2012/01/13) 手直し [動的カラム作成] エラーチェックで、カラムオブジェクトのセーブ機能と、ラベルの キャッシュ機能の改善を行います。 やはり、カラムをセーブしておかないと、エラーチェックが動作しません。 あと、ラベルのキャッシュ機能は、LabelData をキャッシュするのではなく、 String をキャッシュするように改めます。(深い意味はありません。) plugin.column.Editor_ENTCLM#getValue( final String value ) hayabusa.resource.ResourceManager#setDBColumn( final String key , final DBColumn dbColumn ) 復活 hayabusa.resource.ResourceManager#getLabel( final String key ) hayabusa.resource.ResourceManager#getLabel( final String key, final boolean useLocalPool ) hayabusa.taglib.ColumnCheckTag#makeEntryErrorMessage( final ErrorMessage errMsg ) hayabusa.taglib.ColumnCheckTag#makeErrorMessage( final ErrorMessage errMsg ) hayabusa.taglib.ColumnCheckTag#setUseCacheLabel( final String flg ) の廃止 hayabusa.taglib.ColumnCheckTag#setUseTblClmLbl( final String flg ) の廃止 hayabusa.taglib.ColumnCheckTag#setUseColumnLabel( final String flg ) の追加 gf/src/META-INF/hybs-taglib.tld useCacheLabel,useTblClmLbl 属性の廃止 、useColumnLabel の追加 gf/WEB-INF/hybs-taglib.tld useCacheLabel,useTblClmLbl 属性の廃止 、useColumnLabel の追加 カラムチェックで、command="NEW" のときは、columns に指定しなければなりませんが、 動的カラムでは、あらかじめ指定する事ができません。 そこで、columns="*" で、リクエスト変数すべてをチェック対象にする機能を追加します。 ただし、"h_" , "hX_" , maxRowCount , command , pageSize , pagePlus , GAMENID , BACK_JSPID , BACK_GAMENID の予約語は、対象から除きます。 hayabusa.taglib.ColumnCheckTag#setColumns( final String clms ) [RFID対応] XMLファイル中に帳票IDを出力するように変更します。 org.opengion.hayabusa.report.RFIDPrintRequest#execute() org.opengion.hayabusa.report.RFIDPrintPointService#setListId(String id) org.opengion.hayabusa.report.AbstractRFIDPrintPointService#setListId(String id) org.opengion.hayabusa.report.RFIDPrintPointService_DEFAULT#makeXML_header() 5.4.3.3 (2012/01/10) [DB定義変更] 機能実装に先行してDBの追加のみ行っておきます。 GE80(FAQ),GE81(新着情報)のテーブルを追加します。 5.4.3.2 (2012/01/06) [伝送システム改良] 伝送のファイル取得では、リスト取得->ファイル取得->ファイル削除の順で動作していますが、 サイズが大きいデータをコピー中等で処理された場合に問題が発生する可能性があります。 そのため、リストを作成する段階でrenameメソッドを利用してコピー中判定を行う機能を追加します。 コピー中の場合はリストに含めません。 org.opengion.fukurou.transfer.TransferRead_FILELIST org.opengion.fukurou.util/FileUtil#getFileList(...) [メール送信時認証対応] メール送信モジュール及びmailSender2タグを利用したメール送信で、POP before SMTP認証に対応します。 利用する場合はシステム定数のMAIL_SEND_AUTHに「POP_BEFORE_SMTP」と指定します。 認証のユーザ、パスワードの指定もシステム定数で行います。(MAIL_SEND_AUTH_USER,MAIL_SEND_AUTH_PASSWORD) SMTP送信時のポート番号の指定も対応しています。(システム定数SMTP_PORT) ポート番号は指定しない場合は標準(25番)です。 org.opengion.fukurou.mail/MailTX#MailTX(...) org.opengion.hayabusa.mail.AbstractMailManager#send() org.opengion.hayabusa.mail.MailManager_DB#sendMail() org.opengion.hayabusa.common/SystemData#MAIL_SEND_AUTH,MAIL_SEND_AUTH_USER,MAIL_SEND_AUTH_PASSWORD 5.4.3.1 (2011/12/27) [RFID帳票XML出力対応] PGcall時の引数として、ポートを追加します。 org.opengion.hayabusa.report.RFIDPrintPointService#setPortnm(String port) org.opengion.hayabusa.report.AbstractRFIDPrintPointService#setPortnm( final String port ) org.opengion.hayabusa.report.RFIDPrintRequest#RFIDPrintRequest(...),execute() org.opengion.hayabusa.report.RFIDPrintPointService_DEFAULT#makeShellCommand() 5.4.3.0 (2011/12/26) [RFID帳票XML出力対応] RFID帳票出力の標準としてXMLファイル出力を行うクラスを追加します。 RFID系を帳票で選択した場合、レイアウトとデータを1つのXML形式ファイルとして 要求されたフォルダに[要求NO].txtとして出力します。(ファイル名が指定された場合はそのファイル名) 実行後に振り分け条件の実行PGをCallします。 XMLファイルの文字コードはシステムリソースREPORT_RFID_TEXT_ENCODEで指定します。 文字コード初期値はUTF-8です。 この対応に伴って、システムリソースREPORT_RFID_SERVICE_CLASSの初期値を org.opengion.hayabusa.report.RFIDPrintPointService_DEFAULTに変更しています。 # 同時に、Shell.javaのsynchronizedコメントアウトを元に戻します。 org.opengion.hayabusa.common.SystemData#REPORT_RFID_TEXT_ENCODE org.opengion.hayabusa.report.RFIDPrintPointService_DEFAULT org.opengion.hayabusa.report.AbstractRFIDPrintPointService#programRun(),setPrtId(String prtid) org.opengion.hayabusa.report.RFIDPrintPointService#setPrtId(String prtid) org.opengion.hayabusa.report.RFIDPrintRequest#initialDataSet(),execute() org.opengion.hayabusa.report2.QueueManager_DB#create() org.opengion.hayabusa.report2.ExexQueue#setOutputName( final String outputDir, final String outputFile, final String type, final String yoky) org.opengion.fukurou.util.Shell.Wait.Join#run() [ガントチャート表示修正] IE7以降でbreakTimeの高さがそのまま適用されて、大きくはみ出していた箇所を修正します。 gannt.js内のリサイズの最後でbreakTime部分の高さを暫定的に調整します。 $('.breaktime').height($('#divHlr').height()-$('#divHlr th').height()-6); jsp/common/option/gantt.js 5.4.2.3 (2011/12/22) [動的カラム作成 addNoValue] 動的カラムに、columnEditor の addNoValue 属性を渡せるように変更します。 plugin.column.Editor_ENTCLM#Editor_ENTCLM() plugin.column.Editor_ENTCLM#Editor_ENTCLM( final DBColumn clm ) plugin.column.Editor_ENTCLM#getValue( final String value ) jsp/GF6430/result.jsp 5.4.2.2 (2011/12/14) [動的カラム作成] 動的カラムを作成するに当たり、以下の改造を加えます。 ・ResourceManager に、DBColumn を追加する機能(メソッド) ・ResourceManager より、SQL分を実行してCodeDataを取得する機能(メソッド) ・Editor_ENTCLM.java というある意味特化した エディター Editor_ENTCLM は、Editor_EntryColumn の略で、Editor_COLUMN.java を 強化した形で作成します。 これは、引数の値をキーに、DBColumn を動的に作成する機能になります。 Editor_COLUMN との違いは、こちらは、行ではなく、Entry形式のカラムを 作成するところです。つまり、行番号は、関係ありません。 通常は、カラム名__行番号 をキーとするテキストフィールドなどを 出力しますが、Editor_ENTCLM は、名前そのものをキーとする テキストフィールドなどを出力します。 あと、カラム引数(:で区切られた値)が使えます。 通常は、値(Value)に、カラム名のみをセットしますが、コロン(:)で、 区切ってパラメータを渡せます。 カラム名:値:must:Length:Editor:DBType:EditParam の順番です。 コロンの数だけ分離しますが、数は少なくても良いが並び順は、必須です。 通常、このままでは、リソースに存在することが前提ですが、 編集パラメータに、SAVE=TRUE というキーワードをセットすると、 個々に作成した値を元に、ResourceManager に、動的に作成した DBColumn を追加する機能を持たせます。 イメージ的には、最初に一度だけ実行すれば、あとは、メモリ上に 管理されるため、System_ID 読み込み都度実施すればよいことになります。 ただし、カラムの属性が変更されることがあるので、変更画面では、 リソース(部分)クリアと、追加が必要です。 さらに、編集パラメータに、QUERY=・・・・ というキーワードを セットすると、そのSQL分を実行して、コードリソースを作成します。 こちらは、SAVE=TRUE の場合のみ実行され、コードリソースのキャッシュに セットされます。 hayabusa.resource.ResourceManager#setDBColumn( final String key , final DBColumn dbColumn ) hayabusa.resource.ResourceManager#getCodeData( final String key,final String query ) hayabusa.resource.CodeDataLoader#getCodeData( final String key,final String query ) { plugin.column.Editor_ENTCLM.java 新規作成 [Threadのwait] Threadでwaitをかける場合、synchronized しないとエラーになります。 java.lang.IllegalMonitorStateException: current thread not owner もともと、コメントアウトされていたのですが、原因不明なので、復活します。 fukurou.util.Shell#run() 5.4.2.1 (2011/12/09) [Process_BulkQuery改善] 1000件を超えた場合の処理を追加します。 これは、取り出した値をMAPでサマリして一括処理するプロセスですが、 ORACLEの場合、一括データが1000件を超えると処理できなくなります。 MAX_BULK_SET 定数を内部で定義することで、分割処理できるようにしました。 fukurou.process.Process_BulkQuery.java [動的カラム一覧表示] データベースの検索結果に応じてカラムを変更する機能を実現するための 改善を行いました。(第一弾) まずは、一覧結果を表示し、ENTRY形式でデータを登録し、それを元のDBTableModel に取り込むための、ColumnSetTag、EntryTag を修正しました。 ColumnSetTag の action属性 に、REQSET を新規追加しました。 REQSET は、valueで指定したカラムの値をキーに、リクエスト変数から値を取出し、セットします。 hayabusa.taglib.ColumnSetTag.java hayabusa.taglib.EntryTag.java jsp\GF6430 サンプル画面 [施設予約表示系] 単語のタイプミス訂正 ViewTimeTableParam.USE_DY_BREAKL → USE_DY_BREAK hayabusa.html.ViewTimeTableParam.java hayabusa.taglib.ViewTimeTableParamTag.java plugin.view.ViewForm_HTMLTimeTable.java [入力可能プルダウン表示修正] プルダウンボタンが若干見切れていた部分を修正します。 jsp/common/default.js 5.4.2.0 (2011/12/01) [Calc帳票システム改善] シートブレイク機能で、各シート毎にページエンドカットの機能が利用できるようにします。 org.opengion.hayabusa.report2.OdsContentParser.writeParsedRow(String, BufferedWriter, String, String) [画面編集機能・ロール制御対応] 画面編集機能について、画面リソースのロールモードで使用する/しないの制御が出来るように対応します。 具体的には、ロールモードの3桁目を使用し、3桁目が"e"の場合には画面編集機能が有効になり、 従来の"f","d","u"の場合は画面編集機能は無効になります。 但し、従来との互換性を考慮し、3桁目が設定されていない場合は"e"(画面編集機能有効)となります。 jsp/common/gamen/14_EDIT/tab.jsp org.opengion.hayabusa.resource.RoleMode.isEdit(byte) org.opengion.hayabusa.resource.RoleMode.bitMode(String) org.opengion.hayabusa.taglib.FileUDTag.doEndTag() [イベントカラム不具合対応] @イベントカラム設定時、段組などの複雑なテーブルレイアウトを指定した場合に、イベント発動毎に ヘッダー及び一行目の幅/高さが広がってしまう不具合を修正します。 Aイベントカラムで動的に値を変更した場合に、1行目のみ幅が広がらず行が折り返してしまうバグを 修正します。 jsp/common/eventScript.js jsp/common/scrollBar2.js 5.4.1.0 (2011/11/01) [リソースDB定義変更] ユーザー情報を保存するためのテーブル(GE20)のPARAMの項目をVARCHAR2(500)からVARCHAR2(4000)に 変更します。(画面エディット機能で、カラム数が多い場合に桁数オーバーのエラーになってしまうため) ge/changes/changes.txt ge/changes/5410/alter_GE20.txt 各DBスクリプト [ヘッダー固定不具合修正] イベントカラム利用時に、ヘッダーと明細のレイアウトがずれて表示されてしまう問題に対応します。 jsp/common/eventScript.js [伝送システム対応] 伝送システムの機能を追加します。 これに伴い、伝送定義マスタ(GE62)を追加しています。 伝送定義マスタの設定方法については、マスタ登録画面(TRANS01)のヘルプメニューを参照して下さい。 また、伝送処理を実行するには、伝送デーモン起動(TRANS02)の画面よりデーモンを起動する必要があります。 org.opengion.hayabusa.transfer パッケージ追加 org.opengion.plugin.daemon.Daemon_Transfer_CB01 org.opengion.hayabusa.common.SystemData.TRANSFER_HOST_CODE /ge/jsp/TRANS01/ /ge/jsp/TRANS02/ (テーブル追加) GE62(伝送定義マスタ) [タイムテーブル系ビューの機能修正] 機能を追加します。 ・NULLリンクを BODY とnullLinkColumn 属性 の両方で対応できるように していたところを、nullLinkColumn 属性 に統一します。 これに伴い、内部処理も簡素化します。 ・ヘッダー繰り返し属性 の対応 保留にしていた機能を実装します。 ・columnDisplay 機能 の対応 保留にしていた columnDisplay 機能を実装します。 ・ヘッダー3 の対応 これは、キー情報の備考を画面上に表示させるために追加 plugin.view.ViewForm_HTMLTimeTable.java hayabusa.taglib.ViewTimeTableParamTag.java gf/src/META-INF/hybs-taglib.tld timeTableParam タグの BODYを使用しないに修正 gf/WEB-INF/hybs-taglib.tld timeTableParam タグの BODYを使用しないに修正 [ラベルリソース関係の修正] SNAME、概要説明、rawShortLabel 関係の処理を修正します。 ・SNAME の title が、descriptionがない場合に、必ず ゼロ文字列のSPANが出力されていたので、 descriptionがない場合は、label を表示するように変更。 ・SNAME がない場合の rawShortLabel が、longLabel が設定されていたが、description が 存在する場合は、SPANタグ付きになるため、label をセットするように変更 ・getDescription で、{}が存在しない場合は単に概要を出力・・・ なら、直接セットに変更 hayabusa.resource.LabelData#LabelData( final String[] data ) hayabusa.resource.LabelData#getDescription( final String[] vals ) [ラベルリソース関係の修正] {@LBL.XXXX %Y} 引数処理 で、Y に該当する引数に、既存の Label,Short,Tips,Description に、RawShortLabel を追加します。頭文字 R で指定可能です。(%R 指定になります。) これは、通常のShortラベルは、spanタグに、title として、元のLabelか、Description が 加味された HTML 形式の文字列になっています。純粋な、Shortラベル を取り出す場合は、 %R 指定 で、RawShortLabel を取り出せるようにします。 hayabusa.taglib.CommonTagSupport#getLabel( final String lbl ) [日付処理の機能追加] {@DATE.XXXX AA BB} 引数処理で、AA の箇所に、@ZZ とすると、リクエストパラメータが使用できましたが これと同じように、BB の箇所でも、@ZZ とすると、リクエストパラメータが使用できるように修正します。 これにより、パラメータを利用して、日付計算処理のロジックを変えることが出来るようになります。 hayabusa.taglib.CommonTagSupport#getDateFormat( final String value ) [ノーマルメニューの追加] 現在、エンジン標準として、menu.jsp、matrixMenu.jsp、multiMenu.jsp が存在しますが、 マトリクスメニューへのリンクが表示されてしまいます。 そこで、内容的には、multiMenu.jsp とほぼ同等で、マトリクスメニューへのリンクが表示されない normalMenu.jsp を追加します。 jsp\menu\normalMenu.jsp [Java業務ロジック不具合修正] サブルーチン呼び出し時に値にカンマが含まれている場合に正しく動作しないバグを修正します。 org.opengion.fukurou.business.AbstractBizLogic.call(String, String, String, int, ArrayTableModel) [andタグ機能追加] instrType属性を追加し、instrVals属性における各値の結合条件(and結合、or結合)を指定できるようにします。 hybs-taglib.tld org.opengion.hayabusa.taglib.SqlAndTag.setInstrType(String) org.opengion.hayabusa.taglib.SqlAndTag.makeInstrVals(String, String, String) org.opengion.hayabusa.taglib.SqlAndTag.release2() [Viewタグ改善] 5.1.8.0 (2010/07/01)で対応した全チェック保持機能を廃止します。 (この対応を行うと、編集画面から再検索した場合にも全チェックが保持されるという不具合が 発生するため、廃止します) org.opengion.hayabusa.taglib.ViewFormTag.doStartTag() [画像縮小機能不具合] 画像ファイルによって、画像リサイズがエラーになる不具合を修正します。 org.opengion.fukurou.util.ImageResizer.convert(BufferedImage, String, int, int) 5.4.0.0 (2011/10/01) [タイムテーブル系ビューの機能修正] 機能を追加します。 ・NULLリンクを BODY とnullLinkColumn 属性 の両方で対応できるように していたところを、nullLinkColumn 属性 に統一します。 これに伴い、内部処理も簡素化します。 ・ヘッダー繰り返し属性 の対応 保留にしていた機能を実装します。 ・columnDisplay 機能 の対応 保留にしていた columnDisplay 機能を実装します。 ・ヘッダー3 の対応 これは、キー情報の備考を画面上に表示させるために追加 plugin.view.ViewForm_HTMLTimeTable.java hayabusa.taglib.ViewTimeTableParamTag.java gf/src/META-INF/hybs-taglib.tld timeTableParam タグの BODYを使用しないに修正 gf/WEB-INF/hybs-taglib.tld timeTableParam タグの BODYを使用しないに修正 [タイムテーブル系ビューの追加] キーと日付欄に クラス属性を追加します。 plugin.view.ViewForm_HTMLTimeTable.java [サンプル修正(リアルタイム帳票)] Calcリアルタイム帳票のサンプル画面(GF6210)が動作しない件について修正します。 GF6210/query.jsp result.jsp [ヘッダー固定修正] ヘッダー固定でtdやthにpaddingを指定した場合にレイアウトが崩れてしまうバグを修正します。 jsp/common/scrollBar2.js [編集種別:数値フォーマット(Decimal)バグ修正] 編集種別:数値フォーマット(Decimal)でパラメーターとして、表示パラメーターが読み込まれていましたので、 これを編集パラメーターを読み込むように修正します。 org.opengion.plugin.column.Editor_DECIMAL.Editor_DECIMAL(DBColumn) [ガント表示バグ修正] 5.3.5.0 (2011/05/01)の以下の対応で、週単位のガントがずれてしまう問題に対応します。 今回の対応では、DYDIFF関数にVIEW_ZOOMの引数を付加し、VIEW_ZOOM毎に内部で、月ベースで日付計算するか、 そのままで日付計算するかを切り替えるようにします。 ----------------------------------------------------------------------------------- [ガント表示バグ修正] 標準のガント表示で日付枠と実際のガントの表示位置がずれてしまうバグを修正します。 (問題の原因は、ガントの表示位置を実日数で計算していたためです。今回の対応では、 ガント枠の表示ロジックに合わせて1ヶ月=30日で計算するようにしています。) DYDIFF.sql ----------------------------------------------------------------------------------- DYDIFF.sql [リソース登録画面修正] リソース登録画面で、表示順などのカラムを自動的に カウントアップ していた機能を停止します。 これは、DB違いの差分登録などを行うときに、画面IDなどが自動的に アップされて不整合を起こすケースがあるためです。 ge/jsp/GE0002/update.jsp ge/jsp/GE0004/update.jsp [PostgreSQL 対応] TIMESTAMP型で、データベースを作成して、読み取った場合、読取時に文字列化されて 各データベースの表示形式で取得されてしまいます。 そこで、時間に関する情報(つまり数字)以外を削除して、YYYYMMDDHHMISS 形式に戻し、 / 編集 : 編集を行います。Renderer_TMSTMP を追加します。 数字以外は、各データベースによって、まちまちなので、'/',':','-',' ' を削除します。 なお、並び順は、必須に、YYYYMMDDHHMISS の順番とし、January 8 などの形式や、 04:05 AM 、1/8/1999 などの形式は受け付けることは出来ません。 あくまで、先頭から 数字を順次取得し、YYYYMMDDHHMISS 形式に当てはめていきます。 plugin.column.Renderer_TMSTMP.java 新規追加 [DBスキーマ作成] DBスキーマ作成用のスクリプトで、.sql 形式と .xml 形式の両方を一度に作成できるように修正。 XML を選択すると、両方が出力されます。 また、出力されるフォルダ階層を、初期作成スクリプトと同じ階層形式に変更します。 jsp/GF2140/query.jsp jsp/GF2140/result.jsp [画面自動作成] 画面自動作成系で、取り合えずですが、既存の画面をアップしておきます。 利用に関してのマニュアル、データ等の整理は、これからです。 jsp/GF2250 青紙定義 jsp/GF2251 利用DB定義 jsp/GF2254 項目チェック基準 jsp/GF2255 DBセット基準 jsp/GF2256 PG変更履歴 [タイムテーブル系ビューの追加] 時間軸を持つタイムテーブルの表示を行うクラスを追加します。 詳細は、各クラスの説明をご確認ください。 hayabusa.html.ViewTimeTableParam.java hayabusa.taglib.ViewTimeTableParamTag.java plugin.view.ViewForm_HTMLTimeTable.java gf/src/META-INF/hybs-taglib.tld timeTableParam タグ追加 gf/WEB-INF/hybs-taglib.tld timeTableParam タグ追加 [VerUpに伴う、TLDファイル更新] gf/build.xml [JavaDocコメント修正] {@LBL.XXXX Y} 引数処理の箇所が、%Y になる。 hayabusa.taglib.CommonTagSupport#getLabel( final String lbl ) 5.3.9.0 (2011/09/01) [URLエンコード変換対応] @パラメーター形式の変数取得でプレフィックスとしてURL.を付加する({@URL.XXXX})ことで、URLエンコード された値を取得できるように対応します。 Aog:viewMarker,og:columnMarkerでマークする文字列のカラム名[XXXX]について、先頭に$を付加した 場合(例:[$XXXX])に、元の値をURLエンコードした値を返すように対応します。 org.opengion.hayabusa.taglib.CommonTagSupport.getRequestValue(String, boolean) org.opengion.hayabusa.taglib.ColumnMarkerTag コメントのみ修正 org.opengion.hayabusa.html.ViewMarker_MARKER.getMarkerString(int, int, String) [Java業務ロジックバグ修正] サブルーチンCall時、表形式オブジェクトに指定された値がnullの場合で、パラメーターとして nullが連続して指定された場合に、2つ目移行が"null"という文字列で渡されてしまうバグを修正します。 org.opengion.fukurou.business.AbstractBizLogic.replaceParam(String, int, ArrayTableModel) [PostgreSQL 対応] PostgreSQL の場合は、varchar の桁数は、「文字数」であり、ORACLE等の 「バイト数」では ありません。よって、DBタイプでチェックするロジックに、文字数でチェックする機能を 用意する必要があります。 ただし、他のデータベースとのデータ変換を考える場合は、何バイトのデータまで許容 するかを定義しておいたほうが、便利かもしれません。 (でないと、UTF-8の場合、文字数で入っている場合、バイト数に換算すると多い目に定義 する必要が出てきます。) ここでは、useTextLength 属性を、システムパラメータに用意し、null または false の 場合は、従来どおりの「バイト数」計算で、true の場合は、「文字数」計算するように修正します。 hayabusa.common.SystemData#DB_USE_TEXT_LENGTH hayabusa.db.DBTypeCheckUtil#USE_TEXT_LEN hayabusa.db.DBTypeCheckUtil#byteLengthCheck( final String value ,final int len ) [PostgreSQL 対応] コードリソース画面で、PostgreSQLの予約キーである 「KEY」 カラムを使用している箇所を修正します。 別名を与えるところの問題なので、予約キー以外の名称に変更します。(KEY ⇒ CKEY に変更) 【リソース】コード ge\jsp\GE0004\result.jsp(37): from ( select Z.*, Z.CLM{@DBF.CON}'.'{@DBF.CON}Z.CODE KEY from GEA04 Z [PostgreSQL 対応] エンジン標準のテーブル作成時に、UNIQ という名称のカラムには、プライマリ属性を作って いましたが、インデックス作成時にも、プライマリキーを作成するロジックを用意したことで、 テーブル作成時のプライマリ制約の付与を中止します。 plugin.table.TableFilter_TABLE_FIREBIRD#makeLineList( final String[] data,final boolean first ) plugin.table.TableFilter_TABLE_MYSQL#makeLineList( final String[] data,final boolean first ) plugin.table.TableFilter_TABLE_POSGRE#makeLineList( final String[] data,final boolean first ) [PostgreSQL 対応] サンプルの EMP表のDATE形式のデータに、規定の文字数以上のデータが初期設定されているので、 修正します。HIREDATE は、クリアしておきます。 gf\db\common\xml\install\01_DATA\EMP.xml [画像縮小処理クラス追加] 画像の縮小処理を行うためのクラスを追加します。 org.opengion.fukurou.util.ImageResizer [ファイルクエリー改善] ファイルクエリーに機能で以下の改善を行います。 @og:fileQueryで検索リストにfrom属性で指定した基準ファイル/ディレクトリを追加するかどうかを 指定できるように対応します。(addFrom属性) Aog:fileWhereタグでunMatches、matchesが正しく処理されないバグを修正します。 Bog:fileWhereタグで定義したフィルターをディレクトリにも適用するかどうかを指定できるように 対応します。(useDir属性) hybs-taglib.tld org.opengion.hayabusa.taglib.FileWhereTag.doEndTag() org.opengion.hayabusa.taglib.FileWhereTag.setUseDir(String) org.opengion.hayabusa.taglib.FileWhereTag.release2() org.opengion.hayabusa.taglib.FileQueryTag.execute(File, int) org.opengion.hayabusa.taglib.FileQueryTag.setAddFrom(String) org.opengion.hayabusa.taglib.FileQueryTag.release2() [ファイルダウンロードサーブレット・インライン表示対応] ファイルダウンロードでインライン表示が出来るように対応します。(引数にinline=trueを指定) org.opengion.hayabusa.servlet.FileDownload.doPost(HttpServletRequest, HttpServletResponse) [画面編集機能バグ修正] @画面編集機能でヘッダーソートを行った場合、編集対象カラムが正しく表示されないバグを 修正します。 A集計対象の数値項目がNULLの場合にエラーとなるバグを修正します。 org.opengion.hayabusa.taglib.ViewFormTag.setViewClms() org.opengion.hayabusa.db.DBTableModelEditor.addGroupRows(ResultSet, int[], int, int, boolean[], boolean[]) [プライマリキー対応 2] プライマリキー の定義を作成するように、修正した際に、ALTER TABLE で TABLESPACE を指定する前に、USING INDEX 指定を忘れていたため、 文法エラーになりましたので、修正しました。 plugin.table.TableFilter_INDEX#makeEndLine( final int[] clmNo,final String[] data ) [ヘルプ機能拡張] ヘルプ機能を拡張し、画面メニューの各画面分類に対してもヘルプファイルの定義が できるように対応します。ヘルプファイルは、helpフォルダ(画面ヘルプと同じ)の下に "分類キー".[拡張子]の形式で保存します。(分類キーは画面リソースに登録したキーです) これにより、ヘルプファイルが存在する場合のみ分類名の横にヘルプファイルへのリンクが 表示されます。 jsp/menu/matrixMenu.jsp jsp/menu/multiMenu.jsp jsp/image/help.png jsp/image/faq.png hybs-taglib.tld org.opengion.hayabusa.taglib.HelpTag.doEndTag() org.opengion.hayabusa.taglib.HelpTag.makeTag() org.opengion.hayabusa.taglib.HelpTag.getLink(String) org.opengion.hayabusa.taglib.HelpTag.getLinkBody() org.opengion.hayabusa.taglib.TopMenuTag.doStartTag() org.opengion.hayabusa.taglib.TopMenuTag.doEndTag() org.opengion.hayabusa.taglib.TopMenuTag.release2() org.opengion.hayabusa.taglib.TopMenuTag.makeTagMenuString(String, String, String, String, int) org.opengion.hayabusa.taglib.TopMenuTag.makeHelpLink(String) 5.3.8.0 (2011/08/01) [プライマリキー対応] プライマリキー の定義を作成するように、修正します。 これは、INDEXのインデックスタイプ='0' でプライマリキーを、'1'でユニークキーを、 '2' で、通常のインデックスを作成します。 本来は、DB定義書、および、定義書テーブル(GF80)にも、プライマリキー項目を 持つべきですが、現時点で持っている、UK をそのままプライマリキーとするようにします。 これは、DB定義書の取込時に、UK項目をインデックスタイプ='0' で登録するように変更する ことで、対応します。 plugin.table.TableFilter_INDEX#makeLineList( final int[] clmNo,final String[] data,final String clms ) 上記の変更に伴い、DB定義DBの各画面で、機能修正を行います。 これは、使い勝手の向上と、とりあえずの UK キーを、プライマリキー として登録するように修正します。 jsp\GF2010\modify.jsp jsp\GF2020\modify.jsp jsp\GF2030\modify.jsp jsp\GF2040\modify.jsp jsp\GF2050\dbdefIn.jsp また、openGion標準のテーブルスクリプトもUNIQUEではなく、PRIMARY KEYとして設定されるように 変更します。 ge/db gf/db [SqlAndタグの修正] 5.3.8.0 (2011/08/01) Attribute等からも値が取得できるようにする。 で、 hayabusa.taglib.CommonTagSupport#getRequestValues( final String key ) へ追加した処理で、 getRequestValue( String )を呼び出していますが、SqlAndタグで、multi="true" の場合に、 再起処理が呼び出されて、無限ループになってしまいます。(StackOverflowError) よって、2回目以降は、再帰しないように、強制的に multi の値を書き換える処理を入れます。 hayabusa.taglib.SqlAndTag#getRequestValue( final String key ) [postgreSQL対応] ApplicationInfo#useParameterMetaData(Connection) の処理を、EDbid、および、 ConnectionFactory で取得するように変更します。 * PreparedStatement に対して、String化された 数字などを setObject( int,String ) するとき、 * ORACLE と SQLServer は、そのまま設定すれば、自動的に変換されます。 * postgreSQL では、ParameterMetaData#getParameterType(int) で、カラムタイプを取得し、 * setObject( int,String,int ) する必要があります。 * その判定に、このメソッドを使用します。 * ORACLE の場合は、使用しない(false)が返るように設定しています。 * SQLServer では、ORACLEと同様に、false を返します。 fukurou.db.ConnectionFactory#useParameterMetaData( final String dbid ) fukurou.db.EDbid#setMetaDataInfo( final DatabaseMetaData meta ) fukurou.db.EDbid#useParamMetaData() fukurou.db.DBSimpleTable#startInsert() fukurou.db.DBSimpleTable#startUpdate() fukurou.db.DBSimpleTable#startDelete() fukurou.db.DBUtil#dbExist( final String stmt ,final String[] args, final Transaction tran , final String dbid ) { fukurou.db.DBUtil#dbExecute( final String stmt ,final String[] args, final Transaction tran, final String dbid, final boolean useHeader ) { fukurou.process.Process_DBCountFilter#init( final ParamProcess paramProcess ) { fukurou.process.Process_DBMerge#init( final ParamProcess paramProcess ) { fukurou.process.Process_DBWriter#init( final ParamProcess paramProcess ) { fukurou.business.AbstractBizLogic#setTransaction( final Transaction tr ) { fukurou.business.AbstractBizLogic#execSQL( final String sq, final int rw, final ArrayTableModel tbl ) { plugin.query.Query_JDBCTableUpdate#execute( final int[] rowNo, final DBTableModel table ) { hayabusa.db.AbstractQuery#useParameterMetaData() { fukurou.util.ApplicationInfo#useParameterMetaData( final Connection conn ) { 廃止 fukurou.xml.HybsXMLSave#HybsXMLSave( final Connection conn,final String table ) fukurou.xml.HybsXMLSave#useParameterMetaData( final Connection conn ) [postgreSQL対応] setObject で、useParamMetaData が true の場合は、(主にpostgreSQL)ゼロ文字列かどうかを判定し、 その場合は、setObject ではなく、setNull メソッドを使用するように変更します。 fukurou.db.DBSimpleTable#execute( final String[] values ) fukurou.process.Process_DBCountFilter#action( final LineModel data ) fukurou.process.Process_DBMerge#action( final LineModel data ) fukurou.process.Process_DBWriter#action( final LineModel data ) fukurou.xml.HybsXMLSave#actionRow( final TagElement tag ) [ファイルダウンロードバグ修正] ファイルダウンロードサーブレットでファイル名指定を指定した場合、IEでファイル名が途中できれてしまう バグを修正します。これは、URLエンコードすると途中で切れる(IE7のバグ)ことが原因です。 対応して、IEの場合のみファイル名に、Shift_JIS(WIndows-31J)で直接セットします。 org.opengion.hayabusa.servlet.FileDownload.doPost(HttpServletRequest, HttpServletResponse) org.opengion.hayabusa.taglib.ForwardTag.doEndTag() [ヘッダー固定・IE9対応] 旧ヘッダー固定(scrollBar.js)でテーブルに罫線を表示している場合に、最下行の罫線が表示されないバグを 修正します。 jsp/common/scrollBar.css [og:helpタグ改善] og:helpタグでヘルプリンクにアイコン画像が指定できるように対応します。 hybs-taglib.tld iconURL属性追加 org.opengion.hayabusa.taglib.HelpTag.release2() org.opengion.hayabusa.taglib.HelpTag.makeTag() org.opengion.hayabusa.taglib.HelpTag.getLinkBody() org.opengion.hayabusa.taglib.HelpTag.setIconURL(String) [DBConstValue 関係] DBConstValue_GE.java は、コメント部分の誤記(作成PGではなく更新社員)の訂正。 DBConstValue_GF.java は、新規追加で、親画面IDのセットと、実施時の条件判定の isUseClm( String )の条件を緩める。 plugin.query.DBConstValue_GE.java コメント訂正 plugin.query.DBConstValue_GF.java 新規追加 [Process_FileSearch] この処理で、フォルダのみ検索させる方法が無いため、処理中の状態を表示させるように修正。 display="true" で出力されます。 fukurou.process.Process_FileSearch#next() [Transaction関係] 内部変数を初期化し、このオブジェクトが再利用できるようにする。 fukurou.db.TransactionImpl#realClose() TransactionReal の実装は、TransactionImpl を継承し、準拠した形に変更します。 fukurou.db.TransactionReal.java [Transaction関係] Transaction には、TransactionImpl と TransactionReal という2種類存在するが、 ・TransactionImpl は、close() ではなにもせず、realClose() で実際に処理を 完了させる。 ・TransactionReal は、close() で処理を完了させる。 ・よって、引数で渡されてきた先では、close() 処理は行わず、TransactionReal を 生成したクラスでのみ、close() 処理を行う。 ・TransactionImpl と TransactionReal の区別が付かない場合(タグリブ内)は、 最後に、close() 処理を行う。 ・TransactionImpl は、生成したクラス(TransactionTagクラス)でのみ、 realClose() 処理を行う。 ように変更します。 つまり、修正するのは、Transaction を生成していないのに、close() している箇所を コメントアウトし、TransactionReal を生成している箇所で、close() を入れることです。 fukurou.db.DBUtil#dbExecute( final String stmt ,final String[] args ,final ApplicationInfo appInfo ) fukurou.db.DBUtil#dbExecute( final String stmt ,final String[] args, final ApplicationInfo appInfo, final String dbid ) fukurou.db.DBUtil#dbExecute( final String stmt ,final String[] args, final ApplicationInfo appInfo, final String dbid, final boolean useHeader ) fukurou.db.DBUtil#dbExecute( final String stmt ,final String[] args, final Transaction tran, final String dbid, final boolean useHeader ) fukurou.db.DBUtil#dbCallExecute( final String stmt ,final String[] args, final ApplicationInfo appInfo ) fukurou.db.DBUtil#dbCallExecute( final String stmt ,final String[] args, final ApplicationInfo appInfo ,final String dbid ) fukurou.db.DBUtil#dbCallExecute( final String stmt ,final String[] args, final Transaction tran ,final String dbid ) fukurou.db.DBUtil#dbExist( final String stmt ,final String[] args, final ApplicationInfo appInfo , final String dbid ) fukurou.db.DBUtil#dbExist( final String stmt ,final String[] args, final Transaction tran , final String dbid ) hayabusa.db.AbstractQuery#close() hayabusa.db.AbstractQuery#realClose() hayabusa.db.DBTableModelUtil#makeDBTable( final String stmt ,final String[] args , hayabusa.taglib.CommonTagSupport#getRequestValues( final String key ) hayabusa.taglib.QueryOptionTag#doAfterBody() hayabusa.taglib.QueryTag#doAfterBody() hayabusa.taglib.UserInfoTag#doAfterBody() hayabusa.taglib.ValueTag#doAfterBody() [selectタグ改善] selectタグのdefaultVal属性に{@USER.xxx}などが指定できないバグを修正します。 これは、selectタグのdefaultVal,及びvalue属性が、前画面から複数指定された場合に 対応されていたためです。複数指定された場合の処理ロジックとして、今までは、 通常のパラメーターとリクエストキャッシュのみの対応でしたが、今回の対応では、 単一のパラメーター処理と同じく、Attributeや各種設定値({@USER.xxxx}や{@MEM.xxx})など も取得できるように対応します。 org.opengion.hayabusa.taglib.CommonTagSupport.getRequestValues(String) 5.3.7.0 (2011/07/01) [ajaxSubmitバグ修正] ヘッダー固定を利用しない状態でajaxSubmitを利用すると、2度押し防止のエラーメッセージが 表示されてしまうバグを修正します。 これは、submit処理が2度行われていたためです。原因としては、jQueryのイベント処理関数 (bind(),unbind())にバグがあるためだと考えられます。(ソース未確認) 現象としては、同じイベントハンドラに対して、bind(funcA)⇒unbind(funcA)⇒bind(fundB)と すると、最後のbindによりfuncAのバインドが復活してしまいます。 今回の対応では、unbindを最後にし、bind(funcA)⇒bind(fundB)⇒unbind(funcA)という順番 でイベント定義を行い、funcBのみが処理されるように対応します。 (ヘッダー固定を利用した場合に現象が起きない理由について、詳細は不明ですが、ヘッダー固定による 他のイベントハンドラの処理が影響しているものと考えられます) jsp/common/option/ajaxHybsForm.js [ファイルダウンロード機能改善] PL/SQLを使用している画面でファイルダウンロードに関して以下のバグを修正します。 @2回連続でファイルダウンロードできない。 Ascope="request"の場合にファイルダウンロードできない。 jsp/common/fileDownload.jsp org.opengion.hayabusa.db.QueryFactory.newInstance(String) org.opengion.hayabusa.taglib.FileUDTag.doEndTag() org.opengion.hayabusa.taglib.QueryTag.execute(Query) org.opengion.hayabusa.taglib.QueryTag.doAfterBody() [画面編集機能改善] 画面編集機能でポップアップで表示される画面をリサイズできるように対応します。 org.opengion.hayabusa.taglib.FileUDTag.doEndTag() [selectタグ・バグ修正] selectタグでdefaultValが適用されないバグを修正します。 これは5.1.7.0 (2010/06/01)の以下の修正で判定条件が逆転していたためです。 --------------------------------------------------------------------------------------- [columnタグ、selectタグのdefaultVal属性の改善] columnタグ、selectタグでcommandがRENEWの場合は、defaultValを適用しないようにします。。 これは、defaultValの値が埋め込まれた項目が存在する画面に戻った際に、 defaultValの項目の値がnullとなっていた場合に、defaultValの値が復元されると、 検索結果との不一致が発生するためです。 ※この問題は、command=NEW(画面リンクした場合)でも発生します。 しかし、この場合、遷移先の画面がエントリー画面などであった場合は、defaultValが適用されないと 問題が発生する可能性があります。 このため、command=NEWの場合の問題を根本的に解決するには、今回の対応方法ではなく、画面遷移時の forward制御を見直す必要があります。 具体的には、forward.jspでcommand=NEWの場合に、自動的にresult.jspに遷移するのではなく、query.jspで 自動サブミットさせることで、これをトリガとして、result.jspを表示することで、query.jspとresult.jspの 整合性をあわせることができます。 但し、この方法も、result.jspのみが存在し、query.jspが存在しない場合に、result.jspが開かなくなる可能性があります。 つまり、JSPを変えないと言う前提の上では、対応は困難であるため、command=NEWに対する対応は見送っています。 org.opengion.hayabusa.taglib.ColumnTag.doStartTag() org.opengion.hayabusa.taglib.SelectTag.doStartTag() --------------------------------------------------------------------------------------- org.opengion.hayabusa.taglib.SelectTag.doStartTag() [eventColumnバグ修正] eventColumn機能で、パラメータ日本語が含まれていると文字化けするバグに対応します。 jsp/common/evnetColumnMaker.jsp gf/jsp/GF6410/evnetColumn6410.jsp [JSPチェック改善] JSPチェックでエラーになるバグに対応します。 gf/jsp/DOC18 [共通ファイル修正] エンジン標準のJSPでXML構造が崩れているファイルを修正します。(imgタグの終わりがない) jsp/custom/matrix_info.jsp [ポップアップエラー改善] og:headタグのuseAjaxSubmit="true"で表示されるポップアップエラーについて、表示位置を見直します。 jsp/common/option/jqModal.css [ボタンメニュー改善] ボタンメニューで、画面名称に短縮名を設定した状態で、メニュー画像を設定すると、不要な改行が 表示されてしまうバグを修正します。 jsp/common/default.css [FileQueryTag] フォルダを下位展開する場合、途中で、アクセス許可のないフォルダの場合は、 そのリストは、0件ではなく、null で返されるため、その処理を追加します。 これを入れておかないと、処理の途中でエラーで展開処理が中止されてしまいます。 hayabusa.taglib.FileQueryTag#execute( final File fin,final int lvl ) 関連しそうな箇所を修正しておきます。 fukurou.util.AbstractConnect#actionPUTdir( final String localDir, final String remoteDir ) fukurou.util.FileUtil#copyDirectry( final File fromDir, final File toDir, final boolean keepTimeStamp ) fukurou.util.FileUtil#copyDirectry( final File fromDir, final File toDir, final boolean keepTimeStamp ) fukurou.util.FileUtil#deleteFiles( final File file ) 以下の箇所は、処理的には何らかの考慮をしておいたほうが良いと思われるが、今回は処置を行いません。 fukurou\util\FTPConnect.java(302): FTPFile[] rmtFiles = ftp.listFiles( remoteDir ); fukurou\util\FTPConnect.java(416): FTPFile[] rmtFiles = ftp.listFiles( remoteDir ); fukurou\util\HybsLoader.java(190): File[] files = (new File( tmpSrcPath )).listFiles(); fukurou\util\HybsLoader.java(218): File[] files = (new File( tmpSrcPath )).listFiles(); fukurou\util\SMBConnect.java(192): SmbFile[] rmtFiles = rmtFile.listFiles(); fukurou\util\SMBConnect.java(272): SmbFile[] rmtFiles = rmtFile.listFiles(); 以下の箇所は、実際には発生しないと思われるため、今回は処置を行いません。 fukurou\util\FindClassFiles.java(119): File[] filelist = file.listFiles(); fukurou\util\ZipFileUtil.java(197): File[] fileList = target.listFiles(); fukurou\xml\JspSaxParser.java(315): File[] files = fromFile.listFiles(); hayabusa\common\InitFileLoader.java(288): File[] list = fileObj.listFiles(); hayabusa\common\SystemInstaller.java(221): File[] ctxts = new File( tempDir ).listFiles(); hayabusa\common\SystemInstaller.java(297): File[] dbDir = new File( scriptBase ).listFiles(); hayabusa\report2\DocConverter_OOO.java(913): File[] inputFiles = input.listFiles(); hayabusa\servlet\HybsAdmin.java(470): File[] list = fileObj.listFiles(); hayabusa\taglib\BizLogicTag.java(148): File[] libFiles = lib.listFiles(); [画面編集機能改善] 画面編集機能で以下2点を改善します。 @小計、合計行追加処理でオーバーフローフラグがセットされないバグを修正 A設定保存時、設定画面をクローズするように変更します。 jsp/common/14_EDIT/ org.opengion.hayabusa.db.DBTableModelEditor.addTotalRows(int, ResourceManager, boolean[], boolean[], boolean[], boolean[]) [ファイルアップロードエラーメッセージ修正] ファイルアップロード時のエラーメッセージを修正し、最大サイズオーバー時にその内容がわかるようにします。 org.opengion.hayabusa.taglib.FileUploadTag.doEndTag() org.opengion.hayabusa.servlet.multipart.MultipartParser.MultipartParser(HttpServletRequest, int) [ほんの少し修正] HybsSystemException を、RuntimeException に変更。 fukurou パッケージ内では、hayabusa パッケージのクラスは使用しません。 fukurou.db.DBUtil#getClobData( final Clob clobData ) 無駄な改行が入っていた箇所を削除 hayabusa.common.SystemData.java Javadocの警告対応 hayabusa.db.DBEditConfigManager.java:121 hayabusa.taglib.EditConfigTag.java:357 hayabusa.taglib.EditConfigTag.java:423 [Excel取込改善] Excel取込で画面IDとアドレスが異なる場合にエラーとなるバグを修正 org.opengion.hayabusa.taglib.FileUDTag.doEndTag() [リアルタイムチェック改善] リアルタイムチェックで、入力項目が上方にある場合に、チェックチップが見えないバグを改善します。 (上方にある場合は、下にチェックチップを表示する) jsp/common/eventScript.js [ヘッダー固定改善] ヘッダー固定で、ヘッダー部でタブを押しておくと、ヘッダーが2重に表示されるバグを修正します。 jsp/common/scrollBar2.js [ヘッダー固定改善] 左右分割スクロールで左側のViewのサイズを固定した際に、左側に不要な縦スクロールが表示される バグを修正します。 jsp/common/scrollBar2.js [エラーメッセージ表示改善] openGion内部でエラーが発生した場合(Exception発生時)について、以下2点改善します。 @forward.jsp経由で表示されるエラーメッセージで、「URLの振り分け処理時に...」の部分を 出力しないようにします。 Aerror.jspで戻るボタン(history.back())を表示します。 jsp/common/error_0.jsp jsp/common/error_1.jsp jsp/common/error_2.jsp jsp/common/jqog.js // ポップアップエラー時は戻るボタンを非表示 org.opengion.hayabusa.taglib.CommonForwardTag.doEndTag() [VerUpに伴う、TLDファイル更新] gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld gf/build.xml [Transaction 関係修正] Transaction 関係で、過去に修正した分で、生成と破棄が異なる箇所で行われていた ため、コネクションプールにきちんと戻されない現象が発生しています。 そのための対策を行います。 fukurou.db.DBUtil#dbExecute( final String stmt ,final String[] args ,final ApplicationInfo appInfo ) { fukurou.db.DBUtil#dbExecute( final String stmt ,final String[] args, final ApplicationInfo appInfo, final String dbid ) { fukurou.db.DBUtil#dbExecute( final String stmt ,final String[] args, final ApplicationInfo appInfo, final String dbid, final boolean useHeader ) { fukurou.db.DBUtil#dbCallExecute( final String stmt ,final String[] args, final ApplicationInfo appInfo ) { fukurou.db.DBUtil#dbCallExecute( final String stmt ,final String[] args, final ApplicationInfo appInfo ,final String dbid ) { fukurou.db.DBUtil#dbExist( final String stmt ,final String[] args, final ApplicationInfo appInfo , final String dbid ) { fukurou.db.TransactionReal#TransactionReal( final ApplicationInfo appInfo ) { fukurou.db.TransactionReal#getConnection( final String dbid ) { fukurou.db.TransactionReal#close( final boolean errFlag ) { hayabusa.db.DBTableModelUtil#makeDBTable( final String stmt ,final String[] args , hayabusa.taglib.BizLogicTag#execute() { hayabusa.taglib.DataCheckTag#doEndTag() { hayabusa.taglib.DirectTableInsertTag#create( final BufferedReader reader ) { hayabusa.taglib.DirectWriteTableTag#create( final PrintWriter out ) { hayabusa.taglib.DirectXMLSaveTag#doEndTag() { hayabusa.taglib.QueryOptionTag#doAfterBody() { hayabusa.taglib.QueryTag#doAfterBody() { hayabusa.taglib.TableFilterTag#doEndTag() { hayabusa.taglib.UserInfoTag#doAfterBody() { hayabusa.taglib.ValueTag#doAfterBody() { [TableUpdateParamTag 関係修正] DEFAULT_CONST_CLASS (デフォルトで利用するconstObjのシステムリソース名)で、 リソースの設定が、ゼロ文字列の場合の対処を、getInsertSQL のみいれており、getUpdateSQL に 入れ忘れていたため、対応します。 hayabusa.taglib.TableUpdateParamTag#getUpdateSQL( final NamesData namesData ) [GF1030(レスポンス測定) 修正] 検索に使用するSQL分に、クオートが含まれても良いとする、quotCheck="false" を追記します。 jsp/GF1030/result.jsp 5.3.6.0 (2011/06/01) [画面編集機能対応] 画面編集機能を見直し、集計や並び替えの設定ができるようにします。 また、各ユーザー単位に複数の集計設定を管理し、共通設定も作成できるように対応します。 jsp/common/default.css jsp/common/queryScript.js jsp/common/gamen/14_EDIT/ hybs-taglib.tld editConfigタグ追加 org.opengion.hayabusa.taglib.EditConfigTag 新規追加 org.opengion.hayabusa.db.AbstractQuery.DBTableModelEditor 新規追加 org.opengion.hayabusa.db.DBEditConfig 新規追加 org.opengion.hayabusa.db.DBEditConfigManager 新規追加 org.opengion.hayabusa.db.DBTableModelEditor 新規追加 org.opengion.fukurou.db.DBUtil.getValue(ResultSet, int, int) org.opengion.fukurou.db.DBUtil.getClobData(Clob) org.opengion.hayabusa.db.DBLastSql.getScope() org.opengion.hayabusa.db.Query.setEditConfig(DBEditConfig) org.opengion.hayabusa.db.AbstractQuery.init() org.opengion.hayabusa.db.AbstractQuery.setEditConfig(DBEditConfig) org.opengion.hayabusa.db.AbstractQuery.getEditConfig() org.opengion.hayabusa.db.AbstractQuery.createTableModel(ResultSet) org.opengion.hayabusa.db.AbstractQuery.getLang() 廃止 org.opengion.hayabusa.db.AbstractQuery.getClobData(Clob) 廃止 org.opengion.hayabusa.db.AbstractQuery.makeDBColumn(String, LabelData, ResultSetMetaData, int) 廃止 org.opengion.hayabusa.db.AbstractQuery.type2ClassName(int) 廃止 org.opengion.hayabusa.db.DBTableModelUtil.makeDBColumn(String, LabelData, ResultSetMetaData, int, String) org.opengion.hayabusa.db.DBTableModelUtil.type2ClassName(int) org.opengion.hayabusa.db.DBTableModelUtil.makeDBTable(ResultSet, int, int, ResourceManager) org.opengion.hayabusa.db.DBTableModelUtil.makeEditDBTable(ResultSet, int, int, ResourceManager, DBEditConfig) org.opengion.hayabusa.common.SystemData.EDIT_COMMON_ROLES org.opengion.hayabusa.common.HybsSystem.QUERY_FOCUS_KEY org.opengion.hayabusa.resource.UserInfo.QUERY_GE20 org.opengion.hayabusa.resource.UserInfoFactory.newInstance(String, String, String) org.opengion.hayabusa.resource.UserInfo.UserInfo(String, String, String, String, String, String, String, ApplicationInfo) org.opengion.hayabusa.resource.UserInfo.dbLoad() org.opengion.hayabusa.resource.UserInfo.makeEditMap() org.opengion.hayabusa.resource.UserInfo.setAttribute(String, String, boolean) org.opengion.hayabusa.resource.UserInfo.setAttribute(String, String, boolean, boolean) org.opengion.hayabusa.resource.UserInfo.savePermanently(String, String, boolean) org.opengion.hayabusa.resource.UserInfo.isExistValue(String, String) org.opengion.hayabusa.resource.UserInfo.removeAttribute(String, boolean) org.opengion.hayabusa.resource.UserInfo.removeAttribute(String, boolean, boolean) org.opengion.hayabusa.resource.UserInfo.deletePermanently(String, boolean) org.opengion.hayabusa.resource.UserInfo.getEditConfigs(String) org.opengion.hayabusa.resource.UserInfo.getEditConfig(String, String) org.opengion.hayabusa.resource.UserInfo.setEditConfig(String, String, DBEditConfig) org.opengion.hayabusa.resource.UserInfo.setSelectedEdit(String, String) org.opengion.hayabusa.resource.UserInfo.getSelectedEdit(String) org.opengion.hayabusa.taglib.HeadTag.addScriptValue(String, String, StringBuilder) org.opengion.hayabusa.taglib.HeadTag.doEndTag() org.opengion.hayabusa.taglib.FileUDTag.doEndTag() org.opengion.hayabusa.taglib.QueryButtonTag.doEndTag() org.opengion.hayabusa.taglib.QueryButtonTag.getEditSelect(String[], String) org.opengion.hayabusa.taglib.QueryTag.doAfterBody() org.opengion.hayabusa.taglib.ViewFormTag.doStartTag() org.opengion.hayabusa.taglib.ViewFormTag.checkUseSeqClmTable() 廃止 org.opengion.hayabusa.taglib.ViewFormTag.makeEditTable(DBEditConfig) org.opengion.hayabusa.taglib.UserInfoTag.removeAttribute() org.opengion.hayabusa.taglib.WriteCheckTag.isWrite() 【カラム・ラベルリソース】 regEditName refresh editName rowCount 【ラベルリソース】 EDIT_COMMON_LABEL EDIT_VIEW_LABEL EDIT_SUM_LABEL EDIT_GROUP_LABEL EDIT_SUBTOTAL_LABEL EDIT_TOTAL_LABEL EDIT_GRANDTOTAL_LABEL EDIT_ORDERBY_LABEL EDIT_DESC_LABEL EDIT_SUBTOTAL_VALUE EDIT_TOTAL_VALUE EDIT_GRANDTOTAL_VALUE EDIT_DEFAULT_NAME [fileDownloadサーブレット改善] ファイルダウンロード時のinline表示を止め、attachment(ダウンロードダイアログを出す)に変更します。 org.opengion.hayabusa.servlet.FileDownload.doPost(HttpServletRequest, HttpServletResponse) [fileタグ改善] コピー機能(action="copy")に対応します。 org.opengion.hayabusa.taglib.FileTag.actionExec(String) org.opengion.hayabusa.taglib.FileTag.setAction(String) コメント修正のみ [検索ボタン改善] 検索ボタン及びクリアボタンのアクセスキーの設定をタグ(queryButton)で外せるようにします。 org.opengion.hayabusa.taglib.QueryButtonTag.setAccesskey(String) org.opengion.hayabusa.taglib.QueryButtonTag.setClearAccesskey(String) org.opengion.hayabusa.taglib.QueryButtonTag.getSubmit() org.opengion.hayabusa.taglib.QueryButtonTag.getReset() [Edit機能バグ修正] 5.3.2.0 (2011/02/01)の以下の修正で、Edit機能のファイル登録処理が正常に動作しなくなっていましたので修正します。 ------------------------------------------------------------------------------------------------------- 5.3.2.0 (2011/02/01) [og:uploadタグ・機能改善] ファイルアップロード後に、columnCheck、entryタグが正常に動作するように対応します。 org.opengion.hayabusa.common.HybsSystem.PARAM_NAMES_KEY org.opengion.hayabusa.taglib.CommonTagSupport.setParameterNames(String[]) org.opengion.hayabusa.taglib.CommonTagSupport.getParameterNames() org.opengion.hayabusa.taglib.FileUploadTag.makeDBTable(MultipartRequest) org.opengion.hayabusa.servlet.MultipartRequest.getParameters(String) org.opengion.hayabusa.servlet.MultipartRequest.getIntParameters(String) ------------------------------------------------------------------------------------------------------- org.opengion.hayabusa.servlet.MultipartRequest.getIntParameters(String) common/gamen/14_EDIT(upload.jsp,entry.jsp) [InitFileLoader 修正] WEB-INF\classes\resource 以下に保存した XMLファイルを、読み取って、データベース処理を 行う機能で、以下のファイルのみ処理対象にしていたが、以下のフォルダを、名前順に処理する ように、修正します。 なお、SystemInstaller.java と類似処理が多数含まれていると思いますが、現時点では、 統合は、見合わせます。(既存機能の、機能拡張どまり) hayabusa.common.InitFileLoader#loadInitFiles( final boolean useTimeStamp ) hayabusa.common.InitFileLoader#loadXMLDir( final File fileObj , final boolean useTimeStamp,List fileList ) [SystemParameter 修正] PlugInクラス 等を読み取っている loadParameter(String) メソッドで、 作成された Map をキーの順番になるように、TreeMap を利用するように変更。 hayabusa.common.SystemParameter#loadParameter( final String keyword ) [HybsAdmin 修正] Taglib クラス名の求め方で、jarファイルでクラスを配賦した場合の処理がおかしかったので、 修正します。 これは、クラスのキーを求める箇所で、通常ファイルであれば、そのまま、拡張子のみはずせば 良いのですが、jar圧縮されている場合は、フルバス から、ファイル名をはずす必要があります。 hayabusa.servlet.HybsAdmin#getTaglibInfo() 5.3.5.0 (2011/05/01) [Renderer_NUMBER バグ修正] 5.2.2.0 (2010/11/01)の以下の修正でキャッシュオブジェクトを使用する条件にバグがありましたので修正します。 ------------------------------------------------------------------------------------------------------- 5.2.2.0 (2010/11/01) [Renderer_NUMBER 修正] オブジェクトのキャッシュの箇所で、初期値、小数点数の組み合わせが、 足りないため、おかしな組み合わせになっていた箇所を修正します。 現象的には、小数点で、少数桁数が0でない場合、初期値が '0' になりますが 初期値が ゼロ文字列の場合は、ゼロ文字列にします。 plugin.column.Renderer_NUMBER#newInstance( final DBColumn clm ) ------------------------------------------------------------------------------------------------------- org.opengion.plugin.column.Renderer_NUMBER.newInstance(DBColumn) [左右分割表示印刷バグ対応] 左右分割表示で左右の高さがずれてしまうバグを修正します。 jsp/common/scrollBar2.css [ガント表示バグ修正] 標準のガント表示で日付枠と実際のガントの表示位置がずれてしまうバグを修正します。 (問題の原因は、ガントの表示位置を実日数で計算していたためです。今回の対応では、 ガント枠の表示ロジックに合わせて1ヶ月=30日で計算するようにしています。) DYDIFF.sql [ajaxSubmit機能・fileUpload対応] ajaxSubmit機能でfileUpload時でも正しく動作するように対応します。 jsp/common/option/ajaxSubmit.js jsp/common/jquery/jquery.form.js [fileDownloadサーブレットチェックキー対応] fileDownloadサーブレットでfileパラメーターの書き換えによる不正アクセスを防止するための機能を追加します。 org.opengion.hayabusa.servlet.FileDownload.doPost(HttpServletRequest, HttpServletResponse) org.opengion.hayabusa.common.SystemData.USE_FILEDOWNLOAD_CHECKKEY [検索クリアボタン・アクセスキー対応] 検索部のクリアボタンにもアクセスキーを設定できるようにします。(初期値(C)) hybs-taglib.tld org.opengion.hayabusa.taglib.QueryButtonTag.release2() org.opengion.hayabusa.taglib.QueryButtonTag.getReset() org.opengion.hayabusa.taglib.QueryButtonTag.setClearAccesskey(String) [DBMENU改善] 表示種別にDBMENUを適用した場合、名称(短)表示時に名称(長)がツールチップで表示されないバグを修正します。 org.opengion.hayabusa.db.Selection_DB.getValueLabel(String, boolean) [fullcalendar.js 対応] JQueryを利用したカレンダーモジュール 「fullcalendar」を組み込みます。 これは、JQuery本体を利用しますが、互換性の関係から、現時点では、カレンダ専用の JQueryも配賦します。フォルダは、jsp/common/calendar を新設し、そこに 関係するファイルをすべて用意します。 使用に際して、標準の JQuery本体とバッティングする場合は、ご注意ください。 ※ 圧縮の関係で、最初から圧縮されているファイルは、先にコピーしておきます。 gf/jsp/common/calendar フォルダ追加 gf/src/script/common/calendar フォルダ追加 fullcalendar.css → src/script から jsp へ圧縮コピー fullcalendar.js → src/script から jsp へ圧縮コピー fullcalendar.min.js → src/script そのもの fullcalendar.print.css → src/script から jsp へ圧縮コピー gcal.js → src/script から jsp へ圧縮コピー jquery-1.5.min.js → src/script そのもの jquery-ui-1.8.9.custom.min.js → src/script そのもの [Ver4互換モード対応漏れ対応] メール送信モジュールで、Ver4互換モードの対応漏れ(GE35のNAME_JA)がありましたので対応します。 org.opengion.hayabusa.mail.MailPattern [処理時間(queryTime)などの情報出力指定] 処理時間(queryTime)などの情報出力の有効/無効を指定します。 Query で、検索する場合に、処理時間(queryTime)などの情報を出力していますが、 ViewForm で、CustomData などの 非HTML表示ビューを使用する場合、データとして、 紛れ込んでしまうため、出力を抑制する必要があります。 true(有効)にすると、これらのHTMLが出力されます。false にすると、出力されません。 初期値は、true(有効) です。 hayabusa.taglib.QueryTag#release2() { hayabusa.taglib.QueryTag#doEndTag() { hayabusa.taglib.QueryTag#setUseBeforeHtmlTag( final String useTag ) { TLDファイルに追加します。 QueryTag に useBeforeHtmlTag 属性追加 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld {@SYS.XXXX} と、{@DATE.XXXX} の両方を処理していた箇所を、 {@DATE.XXXX} のみに変更します。 fukurou.util.SystemParameter#SystemParameter( final String orig ) { fukurou.process.Process_BulkQuery.java コメント修正 fukurou.process.Process_DBMerge.java コメント修正 fukurou.process.Process_DBReader.java コメント修正 fukurou.process.Process_DBWriter.java コメント修正 日付の比較で、lastModified を利用する場合、「時」のクリアが出来ていなかったので、修正します。 Calendar#clear( Calendar.HOUR_OF_DAY ) では初期化されないため、Calendar#set( Calendar.HOUR_OF_DAY, 0 ) で、処理するように変更します。 fukurou.util.HybsFileFilter#ModifyFileFilter( final String value ) 最初のファイルが存在する場合のみ、実行する。 hayabusa.taglib.FileQueryTag#doAfterBody() 5.3.4.0 (2011/04/01) [システムリソースキー 初期値] システムリソースキーが、null の場合は、未設定なのか、初期設定で null(未使用) が設定されているのかわからないため、不要なアクセスが 発生します。未使用の時は、ゼロ文字列("")を初期設定しておきます。 hayabusa.common.SystemData#HTML_TABLE_PARAM hayabusa.common.SystemData#DEFAULT_CONST_CLASS plugin.view.ViewForm_HTMLTable#getTableTag() hayabusa.taglib.TableUpdateParamTag#getInsertSQL( final NamesData namesData ) [JavaDoc 修正] 。。 担っている箇所を、。 に修正(コメントのみ) fukurou.xml.DomParser.java fukurou.xml.TagElement.java [表示種別(AUTOAREA)追加] 編集種別として用意されていた自動拡張エリア(AUTOAREA)の表示種別版を新規追加します。 org.opengion.hayabusa.db.AbstractRenderer RENDERERのコードリソースに"AUTOAREA"を追加 [IT資産管理一括登録系 機能追加] 詳細メッセージ用引数を追加 fukurou\db\ConnectionFactory#information(final boolean isDetail ) fukurou\db\ConnectionFactory#dbidInfo() toString() の簡易版 fukurou\db\EDbid#info() fukurou\db\EDbid#toString() デバッグ用のタイトル追加 fukurou\process\MainProcess#run() fukurou\process\Process_Logger#init( final ParamProcess paramProcess ) { fukurou\process\Process_Logger#sendmail( final String msg ) { fukurou\process\Process_Logger#report() { bulkData 関係のメソッドを追加 fukurou\process\ParamProcess#setBulkData( final Set bulkData ); 新規追加 fukurou\process\ParamProcess#getBulkData(); 新規追加 fukurou\process\Process_DBParam#setBulkData( final Set bulkData ); 新規追加 fukurou\process\Process_DBParam#getBulkData(); 新規追加 Process_BulkQuery クラスを新規追加 fukurou\process\Process_BulkQuery.java 新規追加 StringUtil.nval ではなく、getProparty の 初期値機能を使う fukurou\process\Process_LDAPReader#init( final ParamProcess paramProcess ) 空文字列など無関係なパラメータは処理しないように変更 fukurou\util\Argument#getArgumentType( final String arg ) { {@DATE.XXXX} を処理できるように機能追加 fukurou\util\SystemParameter#SystemParameter( final String orig ) { fukurou\util\SystemParameter#getDateFormat( final String value ) {新規追加 fukurou\util\SystemParameter#replace( final HybsEntry[] entry ) { [ファイル一括処理 機能追加] ORDER_BYのカラム指定方法の変更(FileQueryとの互換性を持つ) ファイルサイズの LENGTH を、fileQuery と同じカラム名である、FILE_LENGTH でも処理できるように変更。 今後は、FILE_LENGTH を使うようにしてください。 hayabusa\taglib\FileOptionTag#makeComparator( final String orderBy,final boolean desc ) { hayabusa\taglib\FileOptionTag#setOrderBy( final String ordr ) { ファイル検索リストを元に、action に基づいた処理を行うタグを新規追加しました。 hayabusa\taglib\FileUpdateTag.java 新規追加 ファイル検索リストの機能追加 hayabusa\taglib\FileQueryTag#doAfterBody() { 指定カラムのソート処理機能追加 hayabusa\taglib\FileQueryTag#release2() { 指定カラムのソート処理機能、カラム追加機能、fileType追加 hayabusa\taglib\FileQueryTag#execute( final File fin,final int lvl ) { fileType の条件に合致する場合だけ、データを作成する。 hayabusa\taglib\FileQueryTag#initDBTable() { 指定カラム追加機能追加 hayabusa\taglib\FileQueryTag#addFileData( final int rowNo,final int lvl,final File fin ) { 指定カラム追加機能追加 hayabusa\taglib\FileQueryTag#setOrderBy( final String clm ) { 新規追加 hayabusa\taglib\FileQueryTag#setAddClms( final String clms ) { 新規追加 hayabusa\taglib\FileQueryTag#setUseUpdateClms( final String flag ) { 新規追加 hayabusa\taglib\FileQueryTag#setFileType( final String str ) { fileType メソッドで選択対象指定の追加 [サンプル画面 修正] gf/jsp/GF6380 ファイルクエリー 修正 TLDファイルに追加します。 fileQuery の属性追加と、fileUpdateタグの新規追加 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [og:bizLogicタグ改善] commandに渡されるパラメーターがENTRYの場合以外でもog:bizLogicタグが動作するように改善します。 (command=ENTRY以外で呼び出された場合は、DBTableModelに関する処理を行いません。) org.opengion.hayabusa.taglib.BizLogicTag.doStartTag() org.opengion.hayabusa.taglib.BizLogicTag.doEndTag() org.opengion.hayabusa.taglib.BizLogicTag.execute() [動的プルダウン機能改善] 動的プルダウン機能で、動的に呼び出されるJSP内で、親カラム及び、親カラムの値が取得できるように 対応します。 org.opengion.hayabusa.taglib.ColumnTag.setEventURL(String) コメントのみ修正 jsp/common/eventColumnMaker.jsp コメントのみ修正 jsp/common/eventScript.js [fileDownloadServletバグ修正] fileDownloadServletで、ネットワークファイルを指定時、IEで正しくファイルがダウンロード できないバグを修正します。 org.opengion.hayabusa.servlet.FileDownload.doPost(HttpServletRequest, HttpServletResponse) 5.3.3.0 (2011/03/01) [ヘッダー固定改善] ヘッダー固定の内部ロジックを見直しレスポンスを向上させます。 jsp/common/scrollBar2.js [og:guiQueryタグ改善] guiQueryタグで以下の2点について改善を行います。 @更新日時を取得できるようにする。(カラム名:DYUPD) A分類(CLASSIFY)は、キーではなく名称で取得できるようにする。 org.opengion.hayabusa.resource.GUIDataLoader org.opengion.hayabusa.resource.GUIData.GUIData(String[]) org.opengion.hayabusa.resource.GUIData.getDyupd() org.opengion.hayabusa.resource.GUIInfo.getDyupd() org.opengion.hayabusa.resource.GUIInfo.getAttribute(String) org.opengion.hayabusa.resource.GUIInfo.getEntrys() org.opengion.hayabusa.taglib.GuiQueryTag.addGUIInfo(GUIInfo) 5.3.2.0 (2011/02/01) [バッチ系不具合対応] {@SYS.XXXX} 処理が、実行されていない箇所を修正します。 fukurou.util.SystemParameter( final String orig ) [ヘッダー固定改善] ヘッダー固定のロジックを見直し、高速化を図ります。 jsp/common/scrollBar2.js [ガント表示不具合] ヘッダー固定しない状態で左右分割ガントを表示した際に右Viewの自動フォーカスが動かないバグを修正 jsp/common/default.js [fileDownloadサーブレットバグ修正] 日本語ファイル名が正しく処理できないバグを修正 org.opengion.hayabusa.servlet.FileDownload.doPost(HttpServletRequest, HttpServletResponse) [og:uploadタグ・機能改善] ファイルアップロード後に、columnCheck、entryタグが正常に動作するように対応します。 org.opengion.hayabusa.common.HybsSystem.PARAM_NAMES_KEY org.opengion.hayabusa.taglib.CommonTagSupport.setParameterNames(String[]) org.opengion.hayabusa.taglib.CommonTagSupport.getParameterNames() org.opengion.hayabusa.taglib.FileUploadTag.makeDBTable(MultipartRequest) org.opengion.hayabusa.servlet.MultipartRequest.getParameters(String) org.opengion.hayabusa.servlet.MultipartRequest.getIntParameters(String) [リソース登録画面不具合対応] リソース登録画面で名称での検索が正しく動作しない場合がある不具合を修正します。 ge/jsp/GE0002 ge/jsp/GE0003 ge/jsp/GE0004 ge/jsp/GE0005 [ファイル出力機能] 標準のファイル出力機能(writerClass="default")でデータの先頭に"'"を付加する条件が "数値タイプ"となっている(正しくは文字タイプ)バグを修正します。 org.opengion.plugin.io.TableWriter_Default.writeData(DBTableModel, PrintWriter) [日付データ自動変換機能廃止] 日付データの自動変換機能を廃止します。なお、YMD01及びYMD31については、自動変換を前提とした DBTypeであるため、現状のまま(自動変換を行う)とします。 org.opengion.plugin.column.DBType_DATE.valueSet(String) org.opengion.plugin.column.DBType_YM.valueSet(String) org.opengion.plugin.column.DBType_YMD.valueSet(String) org.opengion.plugin.column.DBType_YMDH.valueSet(String) 5.3.1.0 (2011/01/01) [tableMergeタグ改善] tableMergeタグのgroupAddClms属性で値を結合する際に、separatorが指定できるように対応します。 hybs-taglib.tld org.opengion.hayabusa.taglib.TableMergeTag.setSeparator(String) org.opengion.hayabusa.taglib.TableMergeTag.release2() org.opengion.hayabusa.taglib.TableMergeTag.makeKeyMap(DBTableModel, String, boolean) [表示・編集種別="DECIMAL"の改善] 表示・編集種別="DECIMAL"で値が0の場合は、初期値を返すように改善します。 (値が0の場合は、NULL表示を行いたいため) org.opengion.plugin.column.Renderer_DECIMAL.getValue(String) org.opengion.plugin.column.Editor_DECIMAL.formatValue(String) [表示種別(カナ全角変換(KANA))追加] 表示種別で、半角カナを全角カナに変換して表示を行う、カナ全角変換(KANA)を追加します。 org.opengion.plugin.column.Renderer_KANA [Calc帳票・OpenOffice3.2対応] 画像・オブジェクトを動的に埋め込む機能(2次元バーコード、画像動的入替、動的グラフ)がOpenOffice3.2で 動作しない件について対応します。 org.opengion.hayabusa.report2.OdsContentParser.exec() org.opengion.hayabusa.report2.OdsContentParser.makeQRImage(String, int, String, StringBuilder) org.opengion.hayabusa.report2.OdsContentParser.changeImage(String, int, String, StringBuilder) org.opengion.hayabusa.report2.OdsContentParser.replaceGraphInfo(String, String, String) org.opengion.hayabusa.report2.OdsContentParser.execManifest() [ロール継承機能廃止] ロール継承機能を廃止します。 org.opengion.hayabusa.resource.GUIDataLoader.loadDBResource() [画面表示不具合対応] 通常画面に対してアドレスを設定しない場合にロールが効かないバグを修正します。 org.opengion.hayabusa.resource.GUIDataLoader.loadDBResource() [メニュー表示不具合対応] 左メニュー表示で以下の不具合を修正します。 @通常メニューで、アドレスを指定せず、ラベル表示として設定した場合、ラベルをクリックすると、 メニューの一部が表示されなくなるバグを修正 A隠しメニューで、隠しメニュー表示後、その画面を含む分類を非表示にした際に、隠しメニューが 非表示にならないバグを修正 jsp/menu/GmisTree.js 5.3.0.0 (2010/12/01) [jfreechart 見直し] jfreechartで、表示に利用する DatasetとRenderer、Plot の定義データを見直しました。 これに伴い、インスタンス作成箇所を修正します。 また、サンプル画面に、新しく使えるようになったグラフの追加と、機能的に不備なデータの 削除を行いました。 hayabusa\io\ChartFactory#newDataset( final Connection conn,final String query,final String type ) hayabusa\io\ChartFactory#newDataset( final DBTableModel table , final String type ) hayabusa\io\ChartFactory#newChartPlot( final String type ) hayabusa\io\ChartFactory$TypeRenderer hayabusa\io\ChartPlot_Pie#getPlot( final ChartCreate create ) サンプル画面も修正しておきます。 gf\jsp\GF6110 [左右分割スクロールのタグ化] 左右分割処理で、今までは、Viewタグを2つに分けてDIV要素で直接指示して左右分割を 実現していましたが、これを簡素化できるように、タグを追加します。 タグ内部で、設定を変えつつ、Viewを2回呼び出しています。 hayabusa\html\AbstractViewForm#setNumberType( final String type ) hayabusa\taglib\SplitViewTag.java(48): * @og.rev 5.3.0.0 (2010/12/01) 新規作成 hayabusa\taglib\ViewFormTag#doStartTag() hayabusa\taglib\ViewFormTag#splitViewParamSet() TLDファイルに追加します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld サンプル画面も修正しておきます。 gf\jsp\GF6130 [軽微な修正、警告対応] メソッドの引数で使われていない物を削除しました。 hayabusa\taglib\DirectWriteTableTag#executeCall( final Connection conn,final CallableStatement callStmt,final String[] args ) 若干、コメント修正 hayabusa\taglib\CommonTagSupport#doEndTag() [web.xml修正] gf の WEB-INF/web.xml が、version="2.5" の場合は、taglib 定義を、 jsp-config で括る必要があるにもかかわらず、括っていなかった。 正式な形式に修正します。 ge の web.xml は、version="2.4" であり、gf と整合性が取れていないため、 version="2.5" に変更するとともに、taglib 定義の箇所を修正します。 ge/WEB-INF/web.xml tld宣言がコメントされていますが、修正しておきます。 gf/WEB-INF/web.xml hayabusa/servlet/TestCometServlet.javaを一旦削除します。 これは、Cometのサンプルですが、Tomcat7 以降、CometEvent、CometProcessor の パッケージが、異なります。よって、このまま、Tomcat6 と Tomcat7 との互換性を 取ることが難しいため、一旦削除し、Tomcat7 を標準とするバージョンで 必要であれば復活させます。 org.apache.catalina.CometEvent ⇒ org.apache.catalina.comet.CometEvent org.apache.catalina.CometProcessor ⇒ org.apache.catalina.comet.CometProcessor (Comet自体がそもそも苦し紛れの仕様なので、今後どうするかは未定です。) hayabusa/servlet/TestCometServlet.java 削除 これに伴い、web.xml に記述してあるサーブレットの設定サンプルも削除します。 ge/WEB-INF/web.xml gf/WEB-INF/web.xml [headタグ・バグ修正] linkタグの終了がscriptで終了しているバグを修正します。 org.opengion.hayabusa.taglib.HeadTag.addStyleTag(String, StringBuilder) [topMenuタグ・改善] menuType="NEXTGUI"の場合でも、マルチセッションチェックを行わないようにします。 org.opengion.hayabusa.taglib.TopMenuTag.doEndTag() [ヘッダー固定改善] 左右分割時のヘッダー固定で、表示データをCtrl+Aで選択後、Excel等で貼り付けると左右で行がずれる問題に対応します。 jsp/common/scrollBar2.js [リソース登録画面バグ修正] リソース登録画面で以下のバグを修正します。 @キー差分で差分データに対して"変更"処理を行った場合に、接続先(From)のUNIQ番号で接続先(To)のデータが 更新されてしまうバグを修正(キー差分では「複写」ボタンのみ、属性差分では「変更」ボタンのみを表示するように変更) Aリソース登録画面で、変更時にシステムIDを変更して登録すると、変更後のシステムIDでデータが「追加」される のではなく、変更前のシステムIDのデータが「変更」されてしまうバグを修正 Bカラム、ラベル、コードの各画面で、システムID='**'のラベルが適用されているデータに対して、追加、変更を行うと、 システムID='**'のデータが変更されてしまうバグを修正 ge/jsp/GE0002 ge/jsp/GE0003 ge/jsp/GE0004 ge/jsp/GE0005 [DB定義追加] @ユーザーアクセス画面管理テーブル(GEA09) の次画面リストカラム追加 ALTER TABLE GEA09 ADD ( NEXTGUI VARCHAR2(1000)) ; ge\changes\changes.txt ge\changes\5300\alter(GE).txt [jfreechartの改造] jfreechart のグラフ表示用タグ ChartDatasetTag で、DBTableModel の値を 利用して、表示する機能を追加します。 * useTableData="false"(初期値)の場合は、BODY部に書かれた SQL 文を実行してデータを取得します。 * useTableData="true" にすると、その前の query タグ等で作成した DBTableModel を利用して * グラフ化します。その場合は、BODY部の SQL 文は、無視されます。 * 利用する DBTableModel は、tableId と scope 属性から取得します。 useTableData , tableId , scope 属性を追加します。 hayabusa.taglib.ChartDatasetTag#doStartTag() { hayabusa.taglib.ChartDatasetTag#doAfterBody() { hayabusa.taglib.ChartDatasetTag#doEndTag() { hayabusa.taglib.ChartDatasetTag#release2() { hayabusa.taglib.ChartDatasetTag#setUseTableData( final String flag ) { 新規追加 hayabusa.taglib.ChartDatasetTag#setTableId( final String tableId ) { 新規追加 hayabusa.io.ChartDataset#makeDataset( final DBTableModel table ) { 新規追加 hayabusa.io.ChartFactory#newDataset( final Connection conn,final String query,final String type ) hayabusa.io.ChartFactory#newDataset( final DBTableModel table , final String type ) { 新規追加 hayabusa.io.ChartFactory#newChartPlot( final String type ) { これに伴い、TLDを変更します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld サンプル画面も修正します。 gf/jsp/GF6110 gf/jsp/GF6120 [daemon処理の強化] 帳票デーモンで、不審な停止が起こったが、原因が不明であった。 暫定処置ではあるが、デーモン処理を見直すことで、発生頻度を低下します。 現在、Throwable で catch しているが、その内容として、 1.LogWriter 2.insertErrorGE56 3.updateGE50 4.vals == null の HybsSystemException 5.USE_LISTID.remove 6.rc の 初期化(= nullセット) の順番で、処理をしているが、エラー発生の確率の少ない5番を、 先に持ってきます。 また、今回は、LogWriter による書き込みもありませんでしたが、 標準出力へも書き込んで置くようにします。 plugin.daemon.Daemon_Report#startDaemon() { plugin.daemon.Daemon_MailReceive.HybsTimerTask#startDaemon() { [使われていない変数の削除] メソッドの引数で使用されていない引数を削除します。 hayabusa.taglib.DirectWriteTableTag#create( final PrintWriter out ) { hayabusa.taglib.DirectWriteTableTag#ResultSet executeCall( final Connection conn,final CallableStatement callStmt,final String[] args ) throws SQLException { 5.2.3.0 (2010/12/01) [URLHashFilter 追加 ※試作中] URLHashFilter で、レベル対応を実装します。 これとともに、ハッシュ化と暗号化の両方をサポートします。 fukurou.security.URLHashMap.java hayabusa.filter.URLHashFilter.java hayabusa.common.SystemData#URL_ACCESS_SECURITY_LEVEL = "0" ; * レベル0:なにも制限はありません。 * レベル1:Referer チェックを行います。つまり、URLを直接入力しても動作しません。 * ただし、Refererが付いてさえいれば、アクセス許可を与えます。 * Referer 無しの場合でも、URLにパラメータが存在しない、または、 * アドレスがハッシュ化/暗号化されている場合は、アクセスを許可します。 * レベル1の場合、ハッシュ戻し/複合化処理は行います。あくまで、ハッシュ化 * 暗号化されていない場合でも、Refererさえあれば、許可するということです。 * (パラメータなし or ハッシュあり or Refererあり の場合、許可) * レベル2:フィルター処理としては、レベル1と同じです。 * 異なるのは、URLのハッシュ化/暗号化処理を、外部URLに対してのみ行います。 * (パラメータなし or ハッシュあり or Refererあり の場合、許可) * レベル3:URLのパラメータがハッシュ化/暗号化されている必要があります。 * レベル1同様、URLにパラメータが存在しない場合は、アクセスを許可します。 * レベル1と異なるのは、パラメータは必ずハッシュ化か、暗号化されている * 必要があるということです。(内部/外部問わず) * (パラメータなし or ハッシュあり の場合、許可) * それ以外:アクセスを停止します。 [画面アクセス履歴管理 ※試作中] (※ 正式には、GEA09 テーブルに項目追加が必要な為、Ver.5.3.0.0 でリリースします。) 画面アクセスの履歴(順番)を管理する機能を追加します。 この機能により、ある画面から次の画面に遷移する場合の統計情報が 取得できます。 これは、QUERY画面上部のショートカットリンクに、次に使用する画面の リンクを用意することで、出来るだけ画面を広く使える様になります。 (query_info.jsp の topMenu タグのmenuType を ONELEVEL から NEXTGUI に変更) hayabusa.resource.GUIInfo#setNextGuiKey( final String guiKey ) { hayabusa.resource.GUIInfo#getNextGuiKeys() { hayabusa.taglib.HeadTag#doStartTag() hayabusa.resource.UserInfo#setAccessGui( final GUIInfo guiInfo ) hayabusa.resource.UserInfo#saveGUIAccessInfo() hayabusa.resource.UserAccessTable#updateLastAccessTime( final String systemId,final String userId,final String guiKey,final String lastAccessTime,final String nextGuiKeys ) hayabusa.taglib.TopMenuTag#makeNextguiMenu() menuType に NEXTGUI 属性を追加 gf\jsp\custom\query_info.jsp topMenu タグのmenuType を ONELEVEL から NEXTGUI に変更 [テーブル罫線対応] テーブルに罫線を表示できるように機能追加します。 なお、現時点では、IE ではうまく表示できないため、使えません。 (Firefox ではうまく表示されます。) hayabusa.common.SystemData#HTML_TABLE_PARAM plugin.view.ViewForm_HTMLTable#getTableTag() { gf\src\script\common\scrollBar2.js ヘッダーに属性をコピーする際に、"bordercolor", "frame", "rules" を追加 [マルチメニュー対応] マルチメニューで、2種類存在する方式のそれぞれの問題箇所を修正します。 ・MATRIX(大分類付きマルチメニュー)で、sideCount の機能を追加 ・sideCount の初期値を、1 から 無制限 に変更 ・matrixMenu.jsp の CSS 指定部を、共通、MATRIX用、MATRIX2用に整理 ・標準サンプルの設定値変更(sideCount = "6") gf\jsp\menu\matrixMenu.jsp hayabusa.taglib.TopMenuTag#release2() hayabusa.taglib.TopMenuTag#makeMatrixMenu() { [カラムのリソースの初期値利用] カラムでリソースファイルの初期値を使うかどうかを指定。 カラムの値や初期値がセットされていないときに、カラムリソースの 初期値を利用するかどうかを、true/false で指定します。 true の場合は、初期値を使用します。 過去との互換性の関係で、この属性は、false に設定されています。 hayabusa.taglib.ColumnTag#release2() { hayabusa.taglib.ColumnTag#setUseDefaultPropertieVal( final String dv ) { hayabusa.common.SystemData#USE_DEFAULT_PROPERTIE_VALUE = "false" ; [switch タグ、case タグ作成] switch タグとcase タグを新規に追加します。 これは、equals タグで、ごちゃごちゃ書かれている箇所を、スムーズに書くためのタグです。 基本的には、JSP にロジックを持ち込みたくないので、多用しないでください。 hayabusa.taglib.SwitchTag.java hayabusa.taglib.CaseTag.java これに伴い、TLDを変更します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [bulkSet チェックボックス、ラジオボタン対応] カンマ文字列対応とチェックボックス対応を行います。 カンマ文字列対応とは、一括入力欄に対して、カンマ区切りの文字列を入力した場合に 変換する仕様とします。 また、コピー&ペーストした結果を、クリップボード経由で取得、設定する場合は、 カンマを改行文字に置き換えて処理します。 また、EXCEL等で、縦でなく横の文字列は、タブ区切り文字になりますので、 その場合も、タブをカンマに置き換えて、一括設定できるようにします。 ・テキストは、カンマ区切り文字で分割して設定します。 ・プルダウンは、Ctrl-V/Ctrl-V というオプションを新規作成し、値をセットします。 ・プルダウンは、値:ラベル文字列で抜き出し、設定時は、":"で分割した値のみ設定します。 ・チェックボックスは、1,0 の値を取得します。"1" の場合にチェックをONします。 ・ラジオボタンは、設定部は、プルダウン(MENU)に変更して簡素化します。 gf\src\script\common\resultScript.js#bulkSet( obj ) gf\src\script\common\resultScript.js#bulkPaste( obj ) gf\src\script\common\resultScript.js#ctrlCV( obj ) チェックボックスでは、onChange ではなく、onClick でイベントを発生させます。 また、ラジオボタンは、制御が特殊なので、プルダウン(MENU)に変換して使用します。 hayabusa.html.AbstractViewForm#getSortedColumnLabel( final int column ) 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 追加 5.2.1.0 (2010/10/01) [画面削除] GF6060:テーブル回転表示 と GF7070:Valueタグ は、同じJSPソースなので GF7070:Valueタグ を削除します。 jsp/GF7070/ 削除 画面リソース削除 [must , mustAny 属性] inputタグと textarea タグについて、must , mustAny 属性をサポートします。 これと平行に、must , mustAny 属性 のセッターメソッドを、HTMLTagSupport に移動します。 hayabusa.taglib.HTMLTagSupport#release2() hayabusa.taglib.HTMLTagSupport#setMust( final String flag ) hayabusa.taglib.HTMLTagSupport#setMustAny( final String flag ) hayabusa.taglib.HTMLTagSupport#getMustType() hayabusa.taglib.HTMLTagSupport#makeMustHidden( final String name ) hayabusa.taglib.InputTag#makeTag() hayabusa.taglib.TextareaTag#makeTag() hayabusa.taglib.ColumnTag#release2() hayabusa.taglib.ColumnTag#makeTag() hayabusa.taglib.ColumnTag#setMust( final String flag ) hayabusa.taglib.ColumnTag#setMustAny( final String flag ) hayabusa.taglib.SelectTag#release2() hayabusa.taglib.SelectTag#makeTag() hayabusa.taglib.SelectTag#setMust( final String flag ) hayabusa.taglib.SelectTag#setMustAny( final String flag ) hayabusa.taglib.ColumnEditorTag#release2() hayabusa.taglib.ColumnEditorTag#doEndTag() hayabusa.taglib.ColumnEditorTag#setMust( final String flag ) hayabusa.taglib.ColumnEditorTag#setMustAny( final String flag ) clazz="must" で色だけ必須入力色にしている箇所を修正します。 jsp/GF6010/query.jsp(27): jsp/GF6020/query.jsp(28): jsp/GF6040/query.jsp(28): jsp/GF6280/query.jsp(23): jsp/GF6310/query.jsp(23): jsp/GF7050/query.jsp(28): gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [ViewForm_HTMLEntry の must 属性対応] ViewForm の テーブル系は、columnCheckが、DBTableModel を直接処理するので、 問題ないが、HTMLEntry は、通常のカラムに出力して、あたかもQUERYから 登録するように使用するため、mustチェックするには、hidden を出力しておく 必要がある。その対応。 ここでは、mustAny は対応していません。(対応が難しい為) plugin.view.ViewForm_HTMLEntry#create( final int startNo, final int pageSize ) plugin.view.ViewForm_HTMLEntry#init( final DBTableModel table ) [DBTableModelImpl コメント修正] DBTableModelImpl のコメントを修正しました。 getMustArray() 、getMustAnyArray() の戻り値は、文字列配列なのに、 元のコメントは、カンマ区切り文字列 となっていたため、修正しました。 hayabusa.db.DBTableModelImpl.java [popup のheight、width の px] IE7 より、height、width には、"px" などの単位をつけないと認識しないという 仕様になったため、height、width 属性の 形式チェックをソースチェックで行っている。 og:popup では、タグ側も、JavaScript側も px を「付けない」仕様になっているため、 例外的な設定になっている。これを、px をタグリブの属性段階から付けるように修正する。 hayabusa.taglib.PopupTag#makePopup( final boolean useKey ) hayabusa.taglib.PopupTag#setHeight( final String ht ) hayabusa.taglib.PopupTag#setWidth( final String wh ) src/script/common/default.js# function ogPopup( p_pgid,p_height,p_width,p_in_Array,p_this,p_out_Array,command,event ) { jsp/GF9100/query.jsp(46): などを整形(前後のスペース付与等) jsp/ORA02/check_extent_warning.sql < , > などを整形(前後のスペース付与等) jsp/GFX018/result.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GFX018/result2.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF9230/update.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF9130/update.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF6180/copy.jsp include file="../common/Excel_insert.jsp" 削除(該当するファイルはない) jsp/GF6180/modify.jsp include file="../common/Excel_update.jsp" jsp/GF2070/query.jsp 作成途中のファイルで、エラーだったので、取り合えず修正 jsp/GF2070/result.jsp 作成途中のファイルで、エラーだったので、取り合えず修正 jsp/GF1060/query.jsp サンプルデータ( など) を修正( など) jsp/GANTT06C/viewX2.jsp
    タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/GANTT06B/viewX2.jsp
    タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/GANTT06/viewX2.jsp
    タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/DOC18/query.jsp jspInclude カラムの初期値を、false から true に変更(今回改造したので) jsp/DOC10/result.jsp リンクで、displayMsg を   に設定するように修正。(登録しました、と出るので消す) jsp/DOC10/group.jsp リンクで、displayMsg を   に設定するように修正。(登録しました、と出るので消す) [JSPソースチェック バッチ版] バッチ処理で、JSPソースチェックを実行できる環境(サンプル)を提供します。 gf/BAT/jspCheck 以下の bat ファイル [JavaScriptの整理] jsp/custom 分は、圧縮しないように元に戻します。 ついでに、背景色のグラディエーションは、コメントを物理削除しておきます。 これを使うと、表示時間が非常に長くなるため、今後も使いません。 src/script/custom/custom.css ⇒ jsp/custom/custom.css に移動。元のフォルダは削除 jsp/custom/custom.css 既存のコメント部分を削除 [JavaScriptの整理] YUICompressor の改造クラスである、OGCompressor を修正します。 オリジナルのファイルと圧縮後のファイルのタイムスタンプが同じ場合は、 処理をスキップします。 また、圧縮変換後は、オリジナルのタイムスタンプで圧縮ファイルのタイムスタンプを 書き換えます。 gf/doc/src/org/opengion/tools/OGCompressor.java gf/yuicompressor-2.4.2og.jar [Calc帳票システム・シート名定義対応] Calc帳票システムでCalc出力、Excel出力した際にシート名を独自に定義できる機能を追加します。 具体的には、帳票の雛形で、シート名に"__"を区切り文字として定義しておくことで、"__"より後ろの文字列 を出力シート名として設定します。 例として、雛形シート名が、"sheet1__ABC"となっている場合、出力されたCalcまたはExcelでは、ページ毎に、 ABC1,ABC2,ABC3...というシート名が割り振られます。 雛形シート名に"__"が含まれていない場合は、既存と同じくPageN_RowNとなります。 また、シートブレイク機能については、"__"より前のデータをシートキーとして使用します。 上記の場合であれば、"sheet1"がシートブレイクで参照されるシート名になります。 org.opengion.hayabusa.report2.OdsContentParser.writeParsedSheet(OdsSheet, BufferedWriter) org.opengion.hayabusa.report2.OdsSheet.analyze(String, int) org.opengion.hayabusa.report2.OdsSheet.getSheetName() org.opengion.hayabusa.report2.OdsSheet.getConfSheetName() org.opengion.hayabusa.report2.OdsSheet.getOrigSheetName() [JSPソースチェックの改善] JSPソースチェックの機能を改善します。 ・JspIncludeReader.java で、タグのエスケープ方法の変更 ・XML宣言 の削除 ・コメントの削除 従来と異なり、jsp:directive.include されるファイルにも、jsp:root を 記述するので、XSLTパースで、インクルードファイルも対象になってしまう。 これにより文法的におかしな場合、エラーチェックに引っかかる可能性が出てくる。 fukurou.xml.XSLT#transform( final String file, final boolean isJspInclude ) fukurou.xml.JspIncludeReader#getString( final File file,final String encode ) XML形式を変更します。(TEXT⇒TEXT_DATA) fukurou.xml.XSLT#toXmlRow( final HybsEntry[] entry,final TransformerException ex ) チェック用 GF70_PROG.xsl で、メッセージに、名前空間が書かれている分は削除 これは、mis: でも、og: でも処理できるので、汎用性を持たせた。 jsp/DOC18/GF70_PROG.xsl [JSPソースチェック] JSPソースチェックを行った結果、不正なエラーが出る箇所を修正しました。 jsp/ORA02/check_extent_error.sql < , > などを整形(前後のスペース付与等) jsp/ORA02/check_extent_warning.sql < , > などを整形(前後のスペース付与等) jsp/GFX018/result.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GFX018/result2.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF9230/update.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF9130/update.jsp include file="/jsp/common/htmlend.jsp" 追加 jsp/GF6180/copy.jsp include file="../common/Excel_insert.jsp" 削除(該当するファイルはない) jsp/GF6180/modify.jsp include file="../common/Excel_update.jsp" jsp/GF2070/query.jsp 作成途中のファイルで、エラーだったので、取り合えず修正 jsp/GF2070/result.jsp 作成途中のファイルで、エラーだったので、取り合えず修正 jsp/GF1060/query.jsp サンプルデータ( など) を修正( など) jsp/GANTT06C/viewX2.jsp
    タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/GANTT06B/viewX2.jsp
    タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/GANTT06/viewX2.jsp
    タグと、タグが入れ子でなく、クロスしていたので修正。 jsp/DOC18/query.jsp jspInclude カラムの初期値を、false から true に変更(今回改造したので) jsp/DOC10/result.jsp リンクで、displayMsg を   に設定するように修正。(登録しました、と出るので消す) jsp/DOC10/group.jsp リンクで、displayMsg を   に設定するように修正。(登録しました、と出るので消す) [DB定義変更] JSPソースチェックの改善に伴うDB定義を変更します。 これは、チェックを行ったときに、桁あふれを起こしたカラムを増やします。 GF72、GF73 LBLCD VARCHAR2(60) GF70、GF71、GF72、GF73、GF74、GF75、GF76、GF77、GF79 FILENAME VARCHAR2(60) [JavaScriptの整理] jsp/custom 分は、圧縮しないように元に戻します。 ついでに、背景色のグラディエーションは、コメントを物理削除しておきます。 これを使うと、表示時間が非常に長くなるため、今後も使いません。 src/script/custom/custom.css ⇒ jsp/custom/custom.css に移動。元のフォルダは削除 jsp/custom/custom.css 既存のコメント部分を削除 [エラーメッセージ表示方法の改善] システムリソースの設定で、エラーメッセージの表示内容を変更することができるように対応します。 (※ここでのエラーメッセージとは、例外がスローされた場合のエラーメッセージの表示方法です columnCheckタグ等で表示されるアプリケーションエラーの内容は、この設定と関係ありません) 0:エラー内容は何も表示されません。エラー発生時刻のみが表示されます。 1:例外名とエラー内容のメッセージのみが表示されます。スタックとレースは表示されません。 2:スタックトレースも含めてエラー内容を表示します。 org.opengion.hayabusa.common.SystemData.ERR_DISP_LEVEL common/error_dev.jsp 削除 common/error.jsp common/error_0.jsp common/error_1.jsp common/error_2.jsp common/error_Auth.jsp common/error_Forbidden.jsp [表示種別追加] 表示種別として、"PN2"を追加します。この表示種別では、従来のPNと異なり、3-5-3のデータをハイフン区切りで 表示するのではなく、3-5-3の各部位にclass属性(PN_1,PN_2,PN_3)を付加しています。 これにより、真ん中の部分だけの色を変える等を行って、データの区切りを識別できるようにすることができます。 org.opengion.plugin.column.Renderer_PN2 [Valueタグ・バグ修正] command="SET" action="APPEND"でvalueをbody部に書いた場合に動作しないバグを修正します。 org.opengion.hayabusa.taglib.ValueTag.doAfterBody() [JavaScriptの整理2] jsp/common の 標準、option の各 js,css ファイルの配置を 見直します。 これは、option にあるが、ほとんど標準で使用している js を標準へ、 標準に有るが、標準では使用していない js を、オプションへ移動させます。 これに伴い、headerタグも、修正します。 common/option/jqog.js ⇒ common/jqog.js common/tabLink.js ⇒ common/option/tabLink.js hayabusa.taglib.HeadTag.java 関係する private static final 初期値 custom/multiChoose.jsp において、スクリプトの組み込みに、キャッシュを制御する バージョン番号を指定するようにします。 これは、エンジン標準の JavaScript や CSSファイルは、キャッシュされるため、 キャッシュの開放条件を指定しておく必要があるためです。 custom/multiChoose.jsp JavaScript の圧縮ファイル(yuicompressor) 処理で発生した警告を修正します。 判る範囲で修正しています。 ・Found an undeclared symbol: ・The symbol XXXX is declared but is apparently never used. ・The variable XXXX has already been declared in the same scope... doc\5.2.1.0_refactoring.txt 参照 [JSPサンプル修正] GF6090(【ビュー関連】棒グラフ)で、バーが、右寄せになっていたので、左寄せに修正します。 jsp/GF6090/result.jsp [JavaScriptのキャッシュ] キャッシュのパラメータを、各ファイルの最終更新日を使用するように変更します。 従来は、BuildNumber.BUILD_ID をパラメータとして表示させていましたが、この方法では、 開発時や、JavaScriptのみ変更した場合に、キャッシュが効いて、うまく反映されませんでした。 そこで、キャッシュのパラメータを、各JavaScript/CSSファイルのタイムスタンプとすることで JavaScriptのみの修正でも、キャッシュを無効化して読み取らせることが出来るようになります。 ただし、都度、ファイルのタイムスタンプを取得すると遅くなるため、adminメニューの [プール削除]で初期化(リロード)するようにします。これにより、JavaScript等を修正後、 プール削除で反映、ということが可能になります。 hayabusa.taglib.HeadTag#VERSION_PREFIX hayabusa.taglib.HeadTag#addScriptTag( final String filename, final StringBuilder buf ) hayabusa.taglib.HeadTag#addStyleTag( final String filename, final StringBuilder buf ) ※ 現時点では、圧縮するJavaScript/CSSファイルのタイムスタンプは、ソースコンパイル時に 変更されます。よって、ほとんどのケースで、エンジンバージョンアップを行うと、 各ファイルは、キャッシュが無効(初期化)されます。 [DisplayCapture 機能強化] 画面キャプチャを行う機能を強化します。 具体的には、実用性を重視して、エンジン本体に機能を組み込みます。 ・BAT\displayCapture\DisplayCapture.bat を作成。 通常のサンプルである fukurouSample から独立させます。 ・自動キャプチャに必要な、画面IDと実行ファイル名のクリップボードへの 書込み関係のファンクションを、default.js に追加します。 これにより、jsp\custom\result_info_Capture.jsp サンプルを廃止します。 ・画面自動キャプチャを行うための、JSP側の仕込みを、jsp\indexc.jsp に入れます。 具体的には、h_capture=true という値を、セッションにセットしておきます。 これを、custom\result_info.jsp で window.onload でファンクションを呼び出します。 ・src\org\opengion\fukurou\util\DisplayCapture.java を見直し、エラーメッセージや パラメータを実用レベルにまで機能アップします。 fukurou.util.DisplayCapture.java 全般的に手直し BAT\displayCapture\DisplayCapture.bat 新規追加 jsp\custom\result_info_Capture.jsp サンプルを廃止 jsp\custom\result_info.jsp 自動化のための仕掛けを追加 jsp\indexc.jsp(c が余分に付いている) 自動化のためのTop画面 src\script\common\default.js function 追加 (setDisplayCapture、getDisplayCapture) 以下、BAT\displayCapture\DisplayCapture.bat の説明文です。 画面イメージをキャプチャして、ファイルに書き出す クリップボードに、"GUI:画面ID xxxxx.jsp" 形式の文字が書き込まれると、flavorsChanged イベントが 発生して、画面を、ファイルに書き出す処理が実行されます。 エンジンの機能と連動すれば、画面IDやファイル名をクリップボード経由でこのアプリケーションに 渡すことで、画面操作を行うだけで、自動的に画面キャプチャを行うことが可能です。 エンジンでは、jsp/indexc.jsp に、この機能が組み込まれているため、gf\BAT\displayCapture の DisplayCapture.bat を起動後、アプリケーションを、jsp/indexc.jsp で呼び出せば、自動的に 画面のキャプチャを開始できます。 キャプチャは、全画面のみですので、IEを最大に広げて操作してください。 また、「Prnt Scrn」ボタンにも対応していますので、操作中やポップアップ等の非自動化の 画面キャプチャも、手動で取得できます。 [linkタグ・バグ修正] linkタグで、href属性を指定しなかった場合に、リンク先の画面のロール(gamenId指定)が存在しない場合に、 NullPointerExceptionが発生するバグを修正します。 org.opengion.fukurou.util.XHTMLTag.addUrlEncode(String, String, String) [業務ロジックバグ修正] @パラメーターセットの変数名チェックのバグを修正します。 AClassファイルのみが存在し、ソースファイルが存在しない場合にエラーとなるバグを修正します。 org.opengion.fukurou.business.AbstractBizLogic.set(String, String) org.opengion.fukurou.util.HybsLoader.getQualifiedName(String) org.opengion.fukurou.util.HybsLoader.findFileByCls(String, String) org.opengion.fukurou.util.HybsLoader.compileClass(String) [JavaScriptの整理] jsp\common のJavaScript を整理します。 それぞれのシチュエーションごとに、ファイルをマージ(統合)し、 圧縮します。 ソースを、gf\src\script に置くことで、そこに含まれる .js , .css ファイルを gf\jsp 以下に圧縮コピーします。 これに伴い、個別に、制御していた headタグの属性を削除します。 ※ 互換性は保障されませんので、ご注意ください。 private static final String DEFAULT_JS = "common/default.js"; // 5.2.1.0 (2010/10/01) 統合 // private static final String DEFAULT_JS = "common/default.js"; 廃止 // private static final String INPUTMENU_JS = "common/inputMenu.js"; 廃止 // private static final String OGPOPUP_JS = "common/ogPopup.js"; 廃止 private static final String EVENT_SCRIPT_JS = "common/eventScript.js"; // 5.2.1.0 (2010/10/01) 統合 // private static final String FOCUS_HILIGHT_JS = "common/focusHilight.js"; 廃止 // private static final String AUTO_CONVERT_JS = "common/autoConvert.js"; 廃止 // private static final String EVENT_COLUMN_JS = "common/eventColumn.js"; 廃止 // private static final String REAL_TIME_CHECK_JS = "common/realTimeCheck.js"; 廃止 // private static final String BIND_EVENTS_JS = "common/bindEvents.js"; 廃止 private static final String QUERY_SCRIPT_JS = "common/queryScript.js"; // 5.2.1.0 (2010/10/01) 統合 // private static final String TIME_SET_JS = "common/timeSet.js"; 廃止 // private static final String TOGGLE_FRAME_JS = "common/toggleFrame.js"; 廃止 // private static final String ADJUST_FRAME_HEIGHT_JS = "common/adjustFrameHeightEvent.js"; 廃止 // private static final String FOCUS_FIRST_ELM = "common/focusFirstElm.js"; 廃止 private static final String RESULT_SCRIPT_JS = "common/resultScript.js"; // 5.2.1.0 (2010/10/01) 統合 // private static final String HILIGHT_ROW_JS = "common/hilightRow.js"; 廃止 // private static final String BULK_SET_JS = "common/bulkSet.js"; 廃止 // private static final String PRINT_LINE_JS = "common/printLine.js"; 廃止 // private static final String TIME_CHECK_JS = "common/timeCheck.js"; 廃止 // private static final String ROW_COUNT_REPLACE = "common/rowCountReplace.js"; 廃止 パラメータの削除 これらのパラメータは初期値が true なので、基本的には組み込まれているものです。 よって、利用する場合は、false を登録しますが、通常は、headerType で大枠を制御 しているので、個別に false にしているケースは、ほとんどないと考えます。 万一、使用している場合は、その属性を、削除してください。 hayabusa.taglib.HeadTag#setUseTimeSet( final String flag ) { hayabusa.taglib.HeadTag#setUseToggleFrame( final String flag ) { hayabusa.taglib.HeadTag#setUseInputFocus( final String flag ) { hayabusa.taglib.HeadTag#setUseHilightRow( final String flag ) { hayabusa.taglib.HeadTag#setUsePrintLine( final String flag ) { hayabusa.taglib.HeadTag#setUseRealTimeCheck( final String flag ) { hayabusa.taglib.HeadTag#setUseAutoConvert( final String flag ) { hayabusa.taglib.HeadTag#setUseFocusHilight( final String flag ) { hayabusa.taglib.HeadTag#setUseFocusFirstElm( final String flag ) { hayabusa.taglib.HeadTag#setUseAdjustFrameHeight( final String flag ) { hayabusa.taglib.HeadTag#setUseEventColumn( final String flag ) { hayabusa.taglib.HeadTag#setUseRowCountReplace( final String flag ) { gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld システムリソースのデータ削除 hayabusa.common.SystemData#USE_REAL_TIME_CHECK hayabusa.common.SystemData#USE_INPUT_AUTO_CONVERT hayabusa.common.SystemData#USE_ROWCNT_REPLACE enter.js は、個別組み込みなので、unrecommend フォルダに移動します。 jsp\common\enter.js ⇒ jsp\common\unrecommend\enter.js に移動 上記統合において、JavaScript Lint 処理で発生したエラー、警告は、 判る範囲で修正しています。 doc\5.2.1.0_refactoring.txt 参照 [JavaScriptの圧縮] JavaScript ファイルと CSSファイルを、src\script に集め、これを元に 圧縮処理を行ったファイルを、通常の jsp 以下のフォルダに置きます。 現時点では、src\scriptl には、common 、common\option 、common\unrecommend、 custom 、 menu と、jquery の一部をおきます。(本体は処理を実行しません。) この圧縮処理は、yuicompressor を用いて行います。ただし、ant でコンパイルする 時に、この処理を行いたいので、1ファイルづつの対応を行いたくないため、 openGion でカスタマイズした、yuicompressor-2.4.2og.jar を再作成します。 この jar より、org.opengion.tools.OGCompressor を呼び出して、ディレクトリ階層の 圧縮処理を行うように、build.xml に組み込みます。 gf\build.xml gf\yuicompressor-2.4.2og.jar ※ 拡張した OGCompressor.java ソースは、gf\doc 以下に保存しておきます。 実際には、これと、yuicompressor-2.4.2.zip によるソース他も必要です。 コンパイル環境はopenGion 配布パッケージには含めません。 [head タグの修正] 先のJavaScript関係の修正と別に、VERSION_PREFIX の設定方法を若干変更します。 これは、アドレス合成の方法を少し変えておくだけです。 hayabusa.taglib.HeadTag#addScriptTag( final String filename, final StringBuilder buf ) hayabusa.taglib.HeadTag#addStyleTag( final String filename, final StringBuilder buf ) [JavaScriptの日本語処理] JavaScript内のコメント以外の日本語(alert で表示したりしている箇所)を英語に変更します。 たとえ、alert とはいえ、日本語コメントをハードコーディングしておくのは良くないと判断します。 eventScript.js(52): setTimeout(alert("custom/query_info.jsp及びcustom/result_info.js・・・ eventScript.js(202): alert( "[SYSTEM_ERROR] : イベントカラムで置き換え対象の要素が存在しません" ); eventScript.js(220): alert( "[SYSTEM_ERROR] : イベントを処理するURLが指定されていません。(変数未定義)" ); eventScript.js(224): alert( "[SYSTEM_ERROR] : イベントを処理するURLが指定されていません。" ); queryScript.js(313): alert("custom/query_info.jsp及びcustom/result_info.jspで次の部分を削除して下さい。・・・ scrollBar2.js(7): function scrollBar2( obj ){alert("custom/query_info.jsp及びcustom/result_info.jspで次・・・ scrollBar2.js(8): function AdjustScroll2( obj ){alert("custom/query_info.jsp及びcustom/result_info.jspで・・・ option\jqog.js(43): "

    エラーが発生しました。

    ×" [TLDファイルとソースの見直し] ソースにはセッターメソッドが存在するが、TLDファイルに記述されていない などの不整合を修正します。 主な作業は、TLDファイルの属性追加ですが、それに伴い、ソースの修正を 行っているケースもあります。 hayabusa.taglib.CommonTagSupport#getScope() コメントの【TAG】と @og.tag を削除します。(単純な間違い) hayabusa.taglib.ChartCreateTag#doEndTag() debugPrint() の条件で、isDebug() されていたのを省きます。 hayabusa.taglib.ChartDatasetTag#doEndTag() debugPrint() メソッド追加 hayabusa.taglib.ViewParamTag#toString() デバッグ時のMapの表示を個々のキー=値 にまで展開します。 hayabusa.taglib.TableFilterTag#doEndTag() debugPrint() の条件で、isDebug() されていたのを省きます。 tldの修正(属性を追加します) debug hayabusa.taglib.ChartDatasetTag fontName hayabusa.taglib.WriteTableTag fontPoint hayabusa.taglib.WriteTableTag scope hayabusa.taglib.FileQueryTag gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [@Override の追記] taglib クラスで、doStartTag() 、doAfterBody()、doEndTag()、release2() に対して、 @Override アノテーションを付与します。 単に、記述漏れのクラスをピックアップして修正しただけです。 hayabusa.taglib.ChartCreateTag.java hayabusa.taglib.ChartDatasetTag.java hayabusa.taglib.DatabaseMetaDataTag.java hayabusa.taglib.EqualsTag.java hayabusa.taglib.JspCreateTag.java hayabusa.taglib.PopupTag.java hayabusa.taglib.RequestValueTag.java hayabusa.taglib.TableFilterTag.java hayabusa.taglib.TableMergeTag.java hayabusa.taglib.UpdateTag.java hayabusa.taglib.ColumnTag.java hayabusa.taglib.InputTag.java hayabusa.taglib.FileQueryTag.java hayabusa.taglib.FrameTag.java [JSP自動作成関係の見直し] JspCreate 関係のクラスの内容を見直します。 下記の修正以外に、JavaDocコメントの整理、引数の final 付与など 関係するソースの修正を行っています。 実行クラスのクラス名を変更します。 当然、元のクラスファイルは削除になります。 plugin.develop.JspCreate_COLUMN.java JspCreate_OG_COLUMN ⇒ JspCreate_COLUMN plugin.develop.JspCreate_COMMENT.java JspCreate_OG_COMMENT ⇒ JspCreate_COMMENT plugin.develop.JspCreate_QUERY.java JspCreate_OG_QUERY ⇒ JspCreate_QUERY plugin.develop.JspCreate_SELECT.java JspCreate_OG_SELECT ⇒ JspCreate_SELECT plugin.develop.JspCreate_VIEW.java JspCreate_OG_VIEW ⇒ JspCreate_VIEW hayabusa.taglib.JspCreateTag#execute() メソッドの引数を、OGAttributes から OGElement に変更します。 hayabusa.develop.AbstractJspCreate#execute( final OGElement ele) hayabusa.develop.AbstractJspCreate#filter( final OGDocument doc ) plugin.develop.JspCreate_COLUMN#execute( final OGElement ele, final String nameSpace ) plugin.develop.JspCreate_COMMENT#execute( final OGElement ele, final String nameSpace ) plugin.develop.JspCreate_QUERY#execute( final OGElement ele, final String nameSpace ) plugin.develop.JspCreate_SELECT#execute( final OGElement ele, final String nameSpace ) plugin.develop.JspCreate_VIEW#execute( final OGElement ele, final String nameSpace ) その他、軽微な修正など hayabusa.develop.JspConvertEntity.java hayabusa.develop.JspCreateFactory.java hayabusa.develop.JspEnumeration.java [XML 関連で、nameSpace の取り扱い機能追加] OGElement で、nameSpace の機能を追加します。 JspCreate 関係のクラスで、nameSpace を "og:" 決め撃ちにしている箇所を修正します。 これで、標準の og: に加えて、mis: も取り扱うことができるようになります。 plugin.develop.OGElement#OGElement( final String qName , final String attTab , final Attributes atts ) plugin.develop.JspCreate_COLUMN.java plugin.develop.JspCreate_COMMENT.java plugin.develop.JspCreate_QUERY.java plugin.develop.JspCreate_SELECT.java plugin.develop.JspCreate_VIEW.java OGDocument で、nameSpace を取り扱えるようにします。 fukurou.xml.OGDocument#getNameSpace() fukurou.xml.OGElement#OGElement( final String qName , final String attTab , final Attributes atts ) [findbugs 対策] findbugs で、指摘された箇所を修正します。 不要な import の削除と、警告の修正です。 while ループ中での + での 文字列連結を、解消します。 奇数判定処理で、( x % 2 == 1 ) を ( x % 2 != 0 ) にします。 ※ x が負の数の場合に、x % 2 が、-1 になるためだそうです。 ここでは、個数なので、負にはなりませんが、警告を止める意味で、修正しておきます。 plugin.io.TableReader_Default#readDBTable( final BufferedReader reader ) plugin.io.TableWriter_Default.java [戻るボタンの表示の変更] jsp/common/history_back.jspの標準の戻るボタンについて、accessKey="R"が割り当てられていましたが、 表示に(R)が含まれていなかったため、ラベル名称を変更します。 本来であれば、og:inputタグ側で、accessKeyの文字を自動的にラベルに付加すべきですが、過去との互換性を 考慮し、ラベル名称を変更します。 MSG0079 ラベル追加 jsp/common/histroy_back.jsp jsp/common/errorMessage.jsp jsp/gamen/13_EDIT/update.jsp [一括入力カラムのアシスト機能] 一括入力カラムのアシスト機能を利用するカラム名を、カンマ区切りで与えます。 これは、カラムの書き込み時に、一括入力可能なカラムをヘッダーに表示し、 一括登録できる機能を提供します。 この機能は、jsp/common/bulkSet.js JavaScript とともに提供されます。 IE については、クリップボードも利用できます。Ctrl-C と Ctrl-V でそれぞれ 一連のカラムの値の取り出しと書き込みが可能になります。 "*" を指定すると、すべてのカラムを(columnBulkSet)指定したことになります。 システムリソースで、VIEW_USE_DEFAULT_BULKSET を true に設定すると、初期値が "*" になりますので、個別の view に設定しなくてもこの機能が使用できるようになります。 この機能は一括入力の手間削減が目的なので、selectedType が radio の場合は、 この機能は無効になります。 bulkSet.js の新規追加と、realTimeCheck.js の一括入力カラムのチェック解除 common/bulkSet.js 新規追加 common/realTimeCheck.js 修正 ヘッダーに、common/bulkSet.js を設定するロジックを追加します。 hayabusa.taglib.HeadTag#doEndTag() common/bulkSet.js の設定 システムリソースに BULKSET の初期値を指定します。(互換性からfalse) hayabusa.common.SystemData#VIEW_USE_DEFAULT_BULKSET = "false" ; 各クラスを修正します。 hayabusa.html.ViewForm#setColumnBulkSet( final String columnName ); hayabusa.html.AbstractViewForm#init( final DBTableModel table ) { hayabusa.html.AbstractViewForm#clear() { hayabusa.html.AbstractViewForm#getSortedColumnLabel( final int column ) { hayabusa.html.AbstractViewForm#isClmBulkSet( final int column ) { hayabusa.html.AbstractViewForm#setColumnBulkSet( final String columnName ) { hayabusa.taglib.ViewFormTag#doEndTag() { hayabusa.taglib.ViewFormTag#release2() { hayabusa.taglib.ViewFormTag#setColumnBulkSet( final String columnName ) { 上記変更に伴う、TLD ファイルの修正を行います。 view タグに、columnBulkSet 属性を追加します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld jsp/common/bulkSet.js [ReadTableTag 実装変更/レンデラー対応] 読取処理でラベルをコードリソースに逆変換を行うかどうかを指定します。(初期値:USE_TABLE_READER_RENDERER) TableWriter_Renderer 系のクラスで出力した場合は、コードリソースがラベルで出力されます。 そのファイルを読み取ると、当然、エラーになります。 ここでは、コードリソースのカラムに対して、ラベルからコードを求める逆変換を行うことで、 Renderer 系で出力したファイルを取り込むことができるようにします。 ここでは、TableWriter 系と同様に、TableReader_Renderer 系のクラスを作るのではなく、 属性値のフラグで、制御します。 将来的には、TableWriter 系も廃止して、同様のフラグで制御するように変更する予定です。 初期値は、システム定数の USE_TABLE_WRITER_RENDERER で指定できます。 longLabel をキーとした、コードのマップを構築します。これに関連して、DBColumn の getCodeData()メソッドで、null の場合のExceptuin を止めて、そのまま返すように変更します。 hayabusa.db.DBColumn#getCodeData() { hayabusa.resource.CodeData#makeLabelMap() { システムリソースに レンデラーを使うかどうかの初期値を指定します。(互換性からfalse) hayabusa.common.SystemData#USE_TABLE_READER_RENDERER = "false" ; 関係するクラスの修正 hayabusa.io.TableReader#setUseRenderer( final boolean useRenderer ) ; hayabusa.io.AbstractTableReader#setTableDBColumn( final String[] names ) { hayabusa.io.AbstractTableReader#setTableColumnValues( final String[] values ) { hayabusa.io.AbstractTableReader#setUseRenderer( final boolean useRenderer ) { hayabusa.taglib.ReadTableTag#release2() { hayabusa.taglib.ReadTableTag#create( final BufferedReader out ) { hayabusa.taglib.ReadTableTag#setUseRenderer( final String flag ) { 各サブクラスは、直接対応するのではなく、setTableColumnValues( String[] )メソッドを通して DBTableModel に値を読み取るように修正します。 AbstractTableReader#setTableColumnValues( String[] )メソッド内で実際のラベル変換処理を 行います。 plugin.io.TableReader_Calc#makeBody( final RowInfo rowInfo ) { plugin.io.TableReader_Default#readDBTable( final BufferedReader reader ) { plugin.io.TableReader_Excel#readDBTable() { plugin.io.TableReader_JExcel#readDBTable() { [WriteTableTag 実装変更/レンデラー対応] 書込処理でコードリソースのラベル変換を行うかどうかを指定します。(初期値:USE_TABLE_WRITER_RENDERER) コードリソースをそのままの値で出力すると、数字や記号になり何が書かれているのか 不明になります。 これは、コードリソースをラベルに変換して出力するかどうかを指定します。 当然、コードはユニークですが、ラベルはユニークになるかどうか保障はされていませんので TableReader 系で読み込む場合には、リスクが発生します。 また、TableReader 系で読み込む場合にも、ラベルからコードを求める逆変換を行うように、 setUseRenderer メソッドで指定する必要があります。 従来は、TableWriter 系に、TableWriter_Renderer 系のクラスを作って対応していましたが、 このメソッドの属性値のフラグで、制御します。 初期値は、システム定数の USE_TABLE_WRITER_RENDERER で指定できます。 システムリソースに レンデラーを使うかどうかの初期値を指定します。(互換性からfalse) hayabusa.common.SystemData#USE_TABLE_WRITER_RENDERER = "false" ; 関係するクラスの修正 hayabusa.io.TableWriter#setUseRenderer( final boolean useRenderer ) ; hayabusa.io.AbstractTableWriter#writeData( final DBTableModel table,final PrintWriter writer ) ; abstract 化します。 hayabusa.io.AbstractTableWriter#setUseRenderer( final boolean useRenderer ) { hayabusa.io.AbstractTableWriter#isUseRenderer() { hayabusa.taglib.WriteTableTag#release2() { hayabusa.taglib.WriteTableTag#create( final PrintWriter out ) { hayabusa.taglib.WriteTableTag#setUseRenderer( final String flag ) { 各サブクラスの対応 plugin.io.TableWriter_Calc#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_CSV#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_CSV2#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_Data#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_Data2#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_Default#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_Excel#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_T#writeData( final DBTableModel table,final PrintWriter writer ) { plugin.io.TableWriter_XML#writeData( final DBTableModel table,final PrintWriter writer ) { [ReadTableTag/WriteTableTag 関連] 上記変更に伴う、TLD ファイルの修正を行います。 readTable タグに、useRenderer 属性を追加します。 writeTable タグに、useRenderer 属性を追加します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [TableWriter/TableWriter 関連クラスの整理] plugin.io から、Default クラスを hayabusa.io にAbstractクラスとして移動させた際の クラスの整理を行います。 今回の、useRenderer 属性の追加により、サブクラスも廃止されているものがあります。 廃止クラスは、WriteTableTag 内で互換性を持つように修正しています。 hayabusa.io.TableReader_Default.java 廃止(完全に不要なクラス) hayabusa.io.TableWriter_Default.java 廃止(完全に不要なクラス) plugin.io.TableReader_Default.java メソッドの内、hayabusa.io.AbstractTableReader と重複する分を削除 plugin.io.TableWriter_Default.java メソッドの内、hayabusa.io.AbstractTableWriter と重複する分を削除 plugin.io.TableWriter_ExcelRenderer.java 廃止(このクラス名が指定されると、useRenderer=true を自動セット) plugin.io.TableWriter_Renderer.java 廃止(このクラス名が指定されると、useRenderer=true を自動セット) [パッケージ移動後の関連クラスの整理] hayabusa.db.DBTypeCheckUtil に移動した、plugin.column.DBTypeCheckUtil を削除します。 plugin.column.DBTypeCheckUtil.java 廃止(完全に不要なクラス) 5.2.0.0 (2010/09/01) [システム単位のシステム設定画面追加] 共通メニューとしてシステム単位にそのシステムで設定すべきシステム定数を設定する画面を追加します。 jsp/common/gamen/07_CONFIG [JavaScript関連・実装変更] JavaScriptのカラムに対するイベント処理の方法を見直します。具体的には、各JS毎に、イベントをバインドする のではなく、イベントを付加する要素のセレクタ、バインドするイベント、関数をマップにスタックし、後で、 一括でイベントのバインド処理を行います。 これにより、セレクタ処理の回数を減らし、レスポンスを向上させます。 また、画面遷移なし登録などで、動的に要素を追加した場合においても、予めスタックされたイベント定義情報 から、追加した要素に対してイベントをバインドすることで、追加要素でも、リアルタイムチェックや、動的プル ダウン等の処理が正常に動くように対応しています。 org.opengion.hayabusa.taglib.HeadTag.doEndTag() jsp/common/default.js jsp/common/bindEvents.js jsp/common/autoConvert.js jsp/common/eventColumn.js jsp/common/eventColumn.jsp jsp/common/focusHilight.js jsp/common/realTimeCheck.js jsp/common/scrollBar2.js jsp/common/option/noTransition.js [ファイル取り込み処理バグ修正] 共通のファイル取り込み処理が正常に動作しない問題に対応します。 jsp/common/upload.jsp [初回インストール時の管理者ユーザーの変更] 初回インストール時の管理者ユーザーを"C00000"から"admin"に変更します。 adminユーザーの初期パスワードは、ユーザー名と同じく"admin"です。 org.opengion.hayabusa.common.SystemData#CONTEXT_INITIAL_CALL_USERPASS [不正アクセス防止機能追加] 画面IDのパラメーターを付加し、URLを直接指定した際に、本来ロール制御されるべき画面にアクセス できてしまうバグを修正します。 今回の問題は、以下のようなURLでアクセスした場合に発生します。 @URLとして、本来ロール制御がかかるパスを指定 A画面ID(GAMENID)にそのユーザーで許可されている画面IDを指定 具体的には、http://localhost:8824/jsp/GF9999/index.jsp?GAMENID=GF9110 等のURLで直接アクセスした 場合、ロール制御は、GAMENIDに指定されたGF9110で行われますが、実際にアクセスされる画面は、 パスとして指定された、GF9999の画面になります。 これを利用することで、本来ロールエラーとなる画面にもアクセスすることが可能になります。 【今回の対応】 今回の対応では、既存の画面動作に影響を与えないように、以下の対応を行ってます。 @画面リソースに存在するアドレスで、ロール設定により、"許可されないアドレス"に対してのチェックを行う。 A但し、画面リソースで、アドレスに異なるパスへの参照を定義している('/'が含まれる)場合は、 チェック対象外とする。 org.opengion.hayabusa.resource.ResourceManager.makeGUIInfos(UserInfo) org.opengion.hayabusa.resource.UserInfo.setGUIMap(Map, Set) org.opengion.hayabusa.resource.UserInfo.isValidAddr(String) org.opengion.hayabusa.taglib.HeadTag.sessionInit() [リアルタイムチェックバグ修正] リアルタイムチェックで、クエリ画面で「必須入力エラー」が不正に出力されるバグを修正します。 この問題は、以下のコーディングがされている場合に、以下の操作手順で発生します。 【コーディング条件】 @query.jspで任意の項目に対して、必須属性(must="true")を付加 Aresult.jspで@で指定したカラムの必須チェックを行わない。 (columnCheckタグを記述しない、またはcolumnCheckタグでnullCheck属性を個別に指定し、@の項目を 除外する) 【操作手順】 @コーディング@で必須に指定した(但し必須チェックをしない)項目に、何も入力せずに検索 A通常通り、データ選択⇒登録を行う。 B以降は、query.jspで全ての項目について、フォーカスが離れると「必須入力エラー」が出る。 ※再現パターンは、これ以外にも存在する可能性があります。 この問題は、クエリ項目における、必須の自動チェックと、リクエストキャッシュの相互影響により 発生します。クエリ項目における必須チェックは、"h_must_must"というパラメーターキーに対して、 項目名を送信することで、必須チェック対象の項目を判別しています。 但し、この内容は、リクエストキャッシュに保存されるため、コーディング方法によっては、 realtimecheck.jspでこのパラメーターが復元され、不正なエラーチェックが発生します。 org.opengion.hayabusa.taglib.ColumnCheckTag.makeErrorMessage(ErrorMessage) [戻るボタン改善] 登録エラー時などに表示される、history.back()を利用した戻るボタン(common/history_back.jsp)について、 formボタンで囲わないようにします。 これは、戻るボタンJSP自体をformタグの中に記述すると、formタグが入れ子になら、パラメーターが正しく 送信されなくなるためです。 jsp/common/histry_back.jsp [urlConnectタグ・バグ修正] 接続時のエラー処理でNullPointerExceptionが発生し、正しくエラー処理が行われないバグを修正します。 org.opengion.hayabusa.taglib.URLConnectTag.doEndTag() [テキストファイル入力改善] テキストファイルの入力(readerClass="Default")で、ダブルクオーテーションで囲われたデータ中に改行Cが 存在する場合に、正しく取り込めないバグを修正します。 Excelでは、タブ区切りや、カンマ区切りのデータを取り込む際、そのデータが"(ダブルクオーテーション)で 囲われている場合、そのダブルクオーテーション内の、改行Cは、行の区切りではなく、データの一部と見なされる ため、正しく取り込むことができます。 今回の対応では、Excelの取り込みに合わせて、"(ダブルクオーテーション)の改行Cが正しく取り込みできる ように対応します。 org.opengion.fukurou.util.StringUtil.countChar(String, char) org.opengion.fukurou.util.CSVTokenizer.nextToken() org.opengion.plugin.io.TableReader_Default.readDBTable(BufferedReader) [動的プルダウンバグ修正] 動的プルダウン機能で、tabindexなど項目に指定した属性情報が、項目入替え後に引き継がれないバグを 修正します。 jsp/common/eventColumn.js jsp/common/eventColumnMarker.jsp org.opengion.hayabusa.taglib.ColumnTag.setEventURL(String) Javadocのみ修正 [選択行スクロールバグ修正] 2回連続で(再検索を行うことなく)登録処理を行った場合に、2回目の行編集時に、選択行に スクロールしないバグを修正します。 org.opengion.hayabusa.html.AbstractViewForm.init(DBTableModel) [リアルタイムチェック改善] ヘッダー固定が適用されているビューに、リアルタイムチェックの吹き出しが表示された場合、 ビューをスクロールすると、吹き出しがスクロールせず、吹き出しの位置と実際の入力ボックスが ずれてしまう不具合に対応します。 これは、リアルタイムチェックの吹き出しの要素をbody要素の直下に配置しているためで、bodyに対する スクロールには追随しますが、ヘッダー固定のようなbody内部の要素でのスクロールには追随しないためです。 今回の対応では、ヘッダー固定をスクロール時には、吹き出しを一旦全て非表示にするように対応しています。 jsp/common/realTimeCheck.js [マトリクスメニュー改善] マトリクスメニューで、画面の実アドレスと画面IDが異なる場合に、正しく画面が開かないバグを修正します。 jsp/result.jsp [Java業務ロジック改善] テーブルモデルに指定のカラムが存在しているかどうかを確認できるメソッドを追加します。 org.opengion.fukurou.business.AbstractBizLogic.isLine(String) [Ver4互換モード対応] openGionの旧バージョンであるVer4の環境に対して、互換モードの設定を追加することで旧環境でも openGionが起動できるように対応します。 具体的には、互換モードが設定された場合、openGion本体(Java)及びGEシステムの各画面からアクセスする際の 項目名が、旧項目名に変換されます。 これにより、Ver4環境のDB環境に変更を加えることなく、openGionを導入することができるようになります。 なお、互換モードは、リステムリソースの"VER4_COMPATIBLE_MODE"を"true"に設定することで動作します。 また、この互換モードの設定により、内部的に項目名が変化される項目一覧は以下の通りです。 テーブルID (false) ※openGion標準 (true) ※Ver4互換 ------------ ----------------------- -------------------- GEA05 ROLES ROLE GEA10 NAME_JA NAME GE50 OUT_FILE OUTFILE GE50 OUT_DIR OUTDIR GE51 TEXT_DATA TEXT GE51 CLM COLUMN_NAME GE53 OUT_FILE OUTFILE GE53 OUT_DIR OUTDIR GE55 HOST_ID HOST GE58 CLM COLUMN_NAME GE30 H_TXT HEADER GE30 F_TXT FOOTER GE31 CONTENTS CONTENT GE32 CONTENTS CONTENT GE33 ADDRESS MEMBER GE33 NAME_JA NAME GE33 KBNAME NM_KBN (以下変更ソースリスト) org.opengion.hayabusa.common.SystemData.VER4_COMPATIBLE_MODE org.opengion.hayabusa.report.GE50Access org.opengion.hayabusa.report.RFIDPrintRequest org.opengion.hayabusa.report2.QueueManager_DB org.opengion.hayabusa.report2.QueueManager_DB.DBTableModelCreator org.opengion.hayabusa.mail.MailManager_DB org.opengion.hayabusa.mail.MailPattern org.opengion.hayabusa.mail.AbstractMailManager org.opengion.plugin.daemon.Daemon_Report jsp/ge/GE0001 jsp/ge/GE0002 jsp/ge/GE0016 jsp/ge/GE0017 jsp/ge/GE0018 jsp/ge/GE0019 jsp/ge/GE0020 jsp/ge/REP01 jsp/ge/REP02 jsp/ge/REP03 jsp/ge/REP04 jsp/ge/REP06 jsp/ge/REP14 jsp/ge/MAIL01 jsp/ge/MAIL02 jsp/ge/MAIL03 jsp/ge/MAIL07 [Popupタグ、リアルタイムチェックバグ修正] Popupタグ、リアルタイムチェックの機能で、"+"など一部の文字が正しく引数として渡されないバグを修正します。 これは、JavaScriptで文字をエンコードする際に、独自関数、又はencodeURI()を利用していたためです。 今回の対応では、encodeURIComponent()を使用するように変更します。 jsp/common/ogPopup.js jsp/common/realTimeCheck.js [共通項目名の変更] 5.1.0.0 (2009/11/04) で実施された共通項目名の変更で、一部対応漏れがありましたので、これに対応します。 定義が変更されるテーブルは、GE36,GEA05,GEA06,GF95です。 alter文については、GE、GFのコンテキストフォルダのchanges/5200/以下のファイルに記述されています。 GE36 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加 GEA05 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加 GEA06 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加 GF95 PRGUPD->PGUPD(リネーム),PGSET,PGPSET,PGPUPD追加 [Calc帳票・バグ修正] Calc帳票システムで、表紙となる雛形にボディー部分のデータ{@xxx_n}を定義していない場合に エラーとなるバグを修正します。 org.opengion.hayabusa.report2.OdsContentParser.writeParsedSheet(OdsSheet, BufferedWriter) [ユーザーリソース・LDAP対応] ユーザーリソースをLDAPから取得できるように対応します。 Tomcatを含めたLDAP認証の設定方法については、以下のURLを参照して下さい。 ( URL : http://www.opengion.com/227.html ) org.opengion.hayabusa.common.SystemData.RESOURCE_USER_SRC_TYPE org.opengion.hayabusa.common.SystemData.RESOURCE_USER_LDAP_CLM org.opengion.hayabusa.common.SystemData.RESOURCE_USER_LDAP_FILTER org.opengion.hayabusa.common.SystemData.RESOURCE_USER_ROLE_LDAP_FILTER org.opengion.hayabusa.resource.UserInfoFactory.clear() org.opengion.hayabusa.resource.UserInfoFactory.newInstance(String, String, String) org.opengion.hayabusa.resource.UserInfoFactory.getVals(String, String, ApplicationInfo) org.opengion.hayabusa.resource.UserInfoFactory.getValsByLdap(String, String) 5.1.9.0 (2010/08/01) [DB定義DB・シーケンス定義追加] build.xml シーケンス出力を追加 GF09 新規テーブル gf/jsp/GF2042 新規画面 gf/jsp/GF2140 シーケンススクリプト出力機能追加 gf/jsp/GF2150 シーケンススクリプト出力機能追加 org.opengion.plugin.table.TableFilter_SEQRESET org.opengion.plugin.table.TableFilter_SEQRESET_FIREBIRD org.opengion.plugin.table.TableFilter_SEQRESET_HSQLDB org.opengion.plugin.table.TableFilter_SEQRESET_MYSQL org.opengion.plugin.table.TableFilter_SEQRESET_POSGRE org.opengion.plugin.table.TableFilter_SEQRESET_SQLSERVER [UNIQ番号シーケンス名/トリガー名変更] Oracleでは、MySQLやPostgreSQLなどのように、シーケンス番号を採番するためのカラム種別が 存在していません。このため、テーブル毎にシーケンスを作成し、トリガーでシーケンス番号を 採番しています。 現状では、このシーケンス名は、[TABLE_NAME]S01となっていますが、この場合、同じ命名規則で 新たにシーケンスを定義しようとすると、[TABLE_NAME]S02から採番する必要があり、管理上不都合が 生じる可能性があるため、UNIQカラムのシーケンス番号を取得するためのオブジェクトは、 [TABLE_NAME]S00(トリガーは、[TABLE_NAME]T00)にオブジェクト名を変更します。 但し、既に[TABLE_NAME]S02などのように定義されている、GE32S02(メールモジュールで使用)については、 過去との互換性を考慮し、今回のタイミングでは変更しません。 org.opengion.plugin.table.TableFilter_TABLE.makeUniqSeq(int[], String[]) org.opengion.plugin.table.TableFilter_TABLE.makeUniqTrig(int[], String[], String) org.opengion.plugin.table.TableFilter_TABLE_FIREBIRD.makeUniqSeq(int[], String[]) org.opengion.plugin.table.TableFilter_TABLE_FIREBIRD.makeUniqTrig(int[], String[], String) [ファイル入出力不具合対応] "[Abstractクラス移動]"による変更で、Defaultのファイル入出力が正しく動作しないバグを修正します。 org.opengion.hayabusa.io.TableReader_Default org.opengion.hayabusa.io.TableWriter_Default org.opengion.hayabusa.io.AbstractTableReader org.opengion.plugin.io.TableReader_Default org.opengion.plugin.io.TableWriter_Default [メソッド修正] メソッドの引数を使わずに、インスタンス変数をそのまま使用していた ため、引数を使用するように変更します。 処理的には同じですが、将来的に、何か不測の事態を招く可能性があるため 修正しておきます。 fukurou.xml.XML2TableParser#getCpParentTagName( final String fQName ) BufferedInputStream のスコープを小さくします。(単に変数が離れていたため) fukurou.util.ZipFileUtil#addZipEntry( final ZipOutputStream zos, ・・・・ if 文の 判定を 反転し、then と else を入れ替えます。 ソースチェックの警告対応です。 Avoid if (x != y) ..; else ..; plugin.daemon.Daemon_Report#initDaemon() [画面自動作成] 不要なメソッド・使われていないメソッドを廃止します。 fukurou.xml.OGNode#addTabNode( final int tab ) 廃止 fukurou.xml.OGNode#addTabNode( final int tab , final OGNode node ) 廃止 fukurou.xml.OGAttributes#setAttrTab( final String attTab ) 廃止 id 属性のみ特別にキャッシュしておきます。 fukurou.xml.OGAttributes#OGAttributes( final String attTab , final Attributes attri , final boolean useCR ) fukurou.xml.OGAttributes#setVal( final int adrs , final String val ) { fukurou.xml.OGAttributes#add( final String key , final String val ) { fukurou.xml.OGAttributes#add( final int adrs , final String key , final String val ) { fukurou.xml.OGAttributes#remove( final int adrs ) { メソッドの新規追加 fukurou.xml.OGAttributes#getVal( final String key ) { fukurou.xml.OGAttributes#getId() { return id; } JspSaxParser 、OGAttributes 、OGDocument、OGElement、OGNode について、 それぞれ、修正を行いました。 新規クラスの追加・パッケージの追加 画面自動作成 に伴って、関連するクラスを追加します。 ただし、現状は、仮状態とします。内容の見直しが入る予定です。 hayabusa.taglib.JspCreateTag.java 新規追加 hayabusa.develop パッケージの追加 AbstractJspCreate.java JspConvertEntity.java JspCreateFactory.java JspEnumeration.java plugin.develop パッケージの追加 JspCreate_OG_COLUMN.java JspCreate_OG_COMMENT.java JspCreate_OG_QUERY.java JspCreate_OG_SELECT.java JspCreate_OG_VIEW.java これに伴い、JspCreateTag に関する tld の変更があります。 jspCreate タグ追加 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [画面自動作成 JSP側、リソース追加] 画面リソースの追加、修正を行います。 既存のアドレス、名称の変更もありますので、ご注意ください。 GF2200 common/gamen/13_GUILIST GF2201 common/gamen/11_GUIMAKE GF2202 common/gamen/12_GUIMAKEGUI GF2203 廃止 SPCDEF_SHIYO 仕様書DB登録 GF2250 青紙定義 GF90 GF2251 ← GF2252 移動(利用DB定義) GF91 A, GF90 GF2252 ← GF2252 移動(画面項目定義) GF92 GF2253 画面リンク設定 GF2254 項目チェック基準 GF2255 DBセット基準 GF2256 PG変更履歴 [シーケンス対応] Oracle,Postgresql,MySQL,HSQLDB,Firebirdについて、透過的にシーケンスが扱えるようにします。 近い将来に、シーケンス自体も、DB定義DBで管理し、ここからスクリプトを自動生成することで、 より各DBを意識することなく、シーケンスを扱うことが出来るように対応する予定です。 org.opengion.hayabusa.taglib.BizLogicTag.call(String, Transaction) org.opengion.fukurou.db.DBFunctionName.getSequence(String, Transaction) org.opengion.fukurou.business.BizLogicHelper.setConnection(Connection) 廃止 org.opengion.fukurou.business.BizLogicHelper.setDbid(String) org.opengion.fukurou.business.BizLogicHelper.setTransaction(Transaction) org.opengion.fukurou.business.AbstractBizLogic.seq(String) org.opengion.fukurou.business.AbstractBizLogic.setConnection(Connection) 廃止 org.opengion.fukurou.business.AbstractBizLogic.setDbid(String) org.opengion.fukurou.business.AbstractBizLogic.setTransaction(Transaction) org.opengion.fukurou.business.AbstractBizLogic.exec() org.opengion.fukurou.business.AbstractBizLogic.call(String, String, String, int, ArrayTableModel) [DBスクリプトの移動] DBスクリプトの配置場所を見直します。 db/[DBName]/sql/06_DATA -> db/common/sql/01_DATA に移動(各DB共通化) db/[DBName]/xml/install/06_DATA -> db/common/xml/install/01_DATA に移動(各DB共通化) db/xml -> db/common/xml/install/01_DATA db/common/xml/update/const に移動(不要データが更新される問題に対応) build.xml org.opengion.hayabusa.common.SystemInstaller.loadXMLScript(String, String) org.opengion.hayabusa.common.SystemInstaller.execScripts(String, String) [Calc帳票・複数シート(シートブレイク)機能 バグ修正] Calc帳票システムの複数シート(シートブレイク)機能で、要求NOの最終行に対して、正しくシートブレイク処理が 行わないバグを修正します。 org.opengion.hayabusa.report2.OdsContentParser.getBodyValue(String, int) [パッケージ依存関係見直し] fukurouパッケージは、最下位(最もベースとなる)パッケージなので、hayabusa パッケージを 混ぜないようにします。 hayabusa.common.HybsSystem をコメントアウトして、fukurou 内部に記述します。 fukurou.util.ErrMsg.java(18): import org.opengion.hayabusa.common.HybsSystem; fukurou.util.ErrorMessage.java(21): import org.opengion.hayabusa.common.HybsSystem; fukurou.util.SystemParameter.java(27): import org.opengion.hayabusa.common.HybsSystem; [クラス見直し] JspSaxParser で、static メソッドを廃止。通常のオブジェクトクラスとして扱います。 また、JspSaxParser で、ディレクトリコピー処理で、間にフィルター機能を追加します。 これは、JspParserFilter インターフェースを add できるようにします。 fukurou.xml.JspSaxParser.java fukurou.xml.JspParserFilter.java 新規追加 [taglet の表示方法見直し] カスタムタグの説明用の 独自タグ og.tag の処理方法を変更します。 従来は、og.tag の配列を、テーブルに設定するようなイメージでしたが、 元々、このタグは一つしか現れないため、単純に合成するようにします。 その際、
     タグで囲うことで、元のドキュメントのレイアウトを生かすように
    	します。
    	他のタグレットも、若干修正します。
    		fukurou.taglet.TagletRev#toString( final Tag[] tagTags )
    		fukurou.taglet.TagletFormSample#toString( final Tag[] tagTags )
    		fukurou.taglet.TagletTag#toString( final Tag[] tagTags )
    
    	AbstractTaglet.java に対して、処理中のテキストのインラインコメント {@link ・・・}
    	を処理できるようにメソッドを追加します。
    	例えば、{@link org.opengion.hayabusa.db.CellEditor CellEditor} と登録すると、
    	Editor
    	に変換します。
    		fukurou.taglet.AbstractTaglet#link( final String in )		新規追加
    
    	[コメント修正]
    	BizLogicTag の setCommandメソッドのドキュメントを修正します。
    	入力可能な引数を指定するところで、自分のではなく、QueryTag の static 変数を指定していたため。
    	自分で指定するには、private static 変数を、public static に変更します。
    		hayabusa.taglib.BizLogicTag#CMD_ENTRY			private static final → public static final 変更
    		hayabusa.taglib.BizLogicTag.java(420): 	 * @see		コマンド定数
    
    	javaDoc で警告が出ていたので、修正します。(BizLogic インターフェースが削除された件)
    		hayabusa.taglib.BizLogicTag.java:101		警告 - タグ @link: 参照が見つかりません: org.opengion.fukurou.business.BizLogic
    			BizLogic → BizLogicHelper に変更
    
    	renderer
    		hayabusa.taglib.ColumnEditorTag.java(544): 	 * editor
    		hayabusa.taglib.ColumnEditorTag.java(561): 	 * dbType
    		hayabusa.taglib.ColumnTag.java(797): 	 * renderer
    		hayabusa.taglib.ColumnTag.java(814): 	 * editor
    		hayabusa.taglib.ColumnTag.java(831): 	 * dbType
    		hayabusa.taglib.ProcessTag.java(142): 	 * process
    		hayabusa.taglib.QueryTag.java(635): 	 * queryType
    		hayabusa.taglib.ReadTableTag.java(679): 	 * readerClass
    		hayabusa.taglib.ReportTableTag.java(468): 	 * reportClass
    		hayabusa.taglib.ViewFormTag.java(948): 	 * viewFormType
    		hayabusa.taglib.WriteTableTag.java(531): 	 * writerClass
    
    	【タグ】と、@og.tag の位置関係がおかしいコメントを修正します。
    	基本的には、【タグ】 と@og.tag はセットで記述します。
    	また、【タグ】のすぐ下に、@og.tag を記述して、コメント自体をすべて取り込むようにします。
    		BackGamenTag.java 、CommonForwardTag.java、CommonTagSupport.java、DBMetaDataQueryTag.java、
    		EntryTag.java、FileWhereTag.java、MessageTag.java、TextTag.java、TfootTag.java、ViewParamTag.java
    
    	[コメント削除]
    	古い API へのリンクを、削除します。
    	すでに、@see タグで、JavaDoc へのリンクは貼られているので、ほとんど重複状態でした。
    		hayabusa.taglib.FileWhereTag.java(194): 	 * 正規表現
    		hayabusa.taglib.FileWhereTag.java(211): 	 * 正規表現
    
    	[build.xml 修正]
    	taglet で外部指定しているので、内部の tag 指定は不要なので、コメントアウトしておきます。
    	 以下の、javadoc タグの入れ子指定部分
    		
    		
    		
    				これは使われていなかったので、取り合えずコメントアウト
    
    	[Abstractクラス移動]
    	pluginパッケージに含まれていた各種Abstractクラスをhayabusaパッケージ内に移動します。
    		org.opengion.plugin.column.AbstractDBType					org.opengion.hayabusa.db に移動
    		org.opengion.plugin.column.DBTypeCheckUtil					org.opengion.hayabusa.db に移動
    		org.opengion.plugin.column.AbstractEditor					org.opengion.hayabusa.db に移動
    		org.opengion.plugin.column.AbstractRenderer					org.opengion.hayabusa.db に移動
    		org.opengion.plugin.io.TableReader_Default					org.opengion.hayabusa.io に移動
    		org.opengion.plugin.io.TableWriter_Default					org.opengion.hayabusa.io に移動
    		org.opengion.plugin.query.AbstractQuery						org.opengion.hayabusa.db に移動
    		org.opengion.plugin.table.AbstractTableFilter				org.opengion.hayabusa.db に移動
    		org.opengion.plugin.view.AbstractViewForm					org.opengion.hayabusa.html に移動
    
    	[Javaソース削除]
    	TLD に存在していないソース 2点と、JSPサンプルに使用されていないソース 1点を削除します。
    	SQLTag は、TLD からも削除します。
    		hayabusa.taglib.JFreeChartTag.java			完全廃止(javaファイル削除) / すでに、TDLに存在しません。
    		hayabusa.taglib.TableInOut.java				完全廃止(javaファイル削除) / すでに、TDLに存在しません。
    		hayabusa.taglib.SQLTag.java					廃止タグ。サンプルJSPにないため、TDL から削除します。
    
    	[ソースチェック XSLT定義修正]
    	廃止タグ、廃止属性の警告の関係で、定義ファイルを修正しました。
    	JFreeChartTag、TableInOut、SQLTag のクラス廃止
    	headタグの useInputFocus属性、 writeTableタグの direct 属性を警告に追加しました。
    	あと、画面表示で、display 属性を追加しました。
    		gf\jsp\DOC18\xslt\GF70_PROG.xsl
    		gf\jsp\DOC18\query.jsp
    		gf\jsp\DOC18\result.jsp
    
    	[tldファイル 整合性]
    	hybs-taglib.tld の指定と、各カスタムタグの設定の整合性を取ります。
    	以下の設定は、あくまで openGion のケースです。一般のTLDやカスタムタグの設定ルールと
    	異なるケースがあります。
    
    	・TLDファイルの body-content の設定
    		JSP				:JSPとして解釈します。BODYを使う場合は、基本的に JSP です。
    		tagdependent	:そのまま使用します。BODYを使わない場合に設定します。
    		Empty			:BODYなしの場合の設定ですが、厳密にBODYを書いてはいけないので、基本、使いません。
    	・doStartTag() の戻り値
    		SKIP_BODY			:BODY部の評価を行いません。つまり、tagdependent とセットで使用します。
    		EVAL_BODY_INCLUDE	:BODY部の評価を行いますが、バッファしません。つまり、doAfterBody()メソッドを呼ばないケースです。
    								BODY に書かれた内容が、そのまま、出力されます。
    		EVAL_BODY_BUFFERED	:BODY部の評価を行い、かつ、doAfterBody()メソッドを呼ぶ場合は、必須です。
    								BODY に書かれた内容は出力されません。
    
    	つまり、下記の組み合わせのみとします。
    		BODYなし	tagdependent	SKIP_BODY			BODY部になにか書かれていてもなにもしない。
    		BODYあり	JSP				EVAL_BODY_INCLUDE	BODY部のJSP結果がそのまま、出力されます。
    		BODYあり	JSP				EVAL_BODY_BUFFERED	doAfterBody()を使用、または、BODY部の出力を明示的に制御したい場合。
    
    	※ Empty が使えなくなった今、tagdependent と JSP の違いは、BODYあり/なし を明示的に示すためだけに
    		設定することにします。すべてを、JSP に統一することも可能ですが、あえて区別することにします。
    	※ EVAL_BODY_INCLUDE と EVAL_BODY_BUFFERED の違いは、doAfterBody() で値を使用するには、必ず
    		EVAL_BODY_BUFFERED にしなければなりませんが、使わない場合は、BODY部に書かれた設定値を
    		JspWriter に渡すかどうかの判定になります。
    		EVAL_BODY_BUFFERED の場合は、BODY に書かれた内容は、JspWriter に渡されません。
    		例えば、一連の処理をBODY部で実行させる場合、その結果(例えば、エラーメッセージ等も含む)を表示させたい
    		場合は、EVAL_BODY_INCLUDE にしておく必要があります。
    		逆に、BODY部のタグが、findAncestorWithClass などで上位の親に設定値をすべて渡してしまうケースでは、
    		上位の親に doAfterBody() がなかったとしても、EVAL_BODY_BUFFERED として、JspWriter に出力しない
    		ケースもありえます。
    
    	・TLDファイルの body-content の設定
    		InputTag.java					→	JSP
    
    		DatabaseMetaDataTag.java		→	tagdependent
    		DirectXMLSaveTag.java			→	tagdependent
    		MailSenderTag2.java				→	tagdependent
    		PopupTag.java					→	tagdependent
    		RegistryQueryTag.java			→	tagdependent
    		TableMergeTag.java				→	tagdependent
    		TableUpdateParamTag.java		→	tagdependent
    		TabListTag.java					→	tagdependent
    
    	・doStartTag() の戻り値(処理用タグなので、BODY部の表示は出さない。)
    		ViewMarkerTag					→	EVAL_BODY_BUFFERED
    		ViewLinkTag						→	EVAL_BODY_BUFFERED
    		EntryTag						→	EVAL_BODY_BUFFERED
    
    		WEB-INF/hybs-taglib.tld
    		src/META-INF/hybs-taglib.tld
    
    	[Transaction 続き]
    		fukurou.db.DBUtil.java		ほぼ、すべてのメソッドを修正、Transaction 対応メソッドを新規追加
    		hayabusa.taglib.QueryTag#traceQuery( final String sql , final Transaction tran )
    		hayabusa.taglib.TableExistTag.java		廃止タグなので、修正を行いません。
    		hayabusa.taglib.DataCheckTag.java#doEndTag()
    		hayabusa.taglib.DataCheckTag.java#checkSql( final String str, final ErrMessageManager manager, final String[] values ・・・
    		hayabusa.taglib.DataCheckTag.java#checkRows( final String str, final ErrMessageManager manager, final Transaction tran )
    
    		hayabusa.db.TableFilter#setApplicationInfo( ApplicationInfo appInfo ) ;				廃止
    		hayabusa.db.TableFilter#setTransaction( Transaction tran ) ;						新規追加
    		hayabusa.taglib.TableFilterTag#doEndTag()
    		plugin.table.AbstractTableFilter#setApplicationInfo( ApplicationInfo appInfo ) ;	廃止
    		plugin.table.AbstractTableFilter#setTransaction( Transaction tran ) ;				新規追加
    		plugin.table.TableFilter_DBSELECT#execute()
    		plugin.table.TableFilter_INDEX#execute()
    		plugin.table.TableFilter_TABLE#execute()
    
    	[DB定義DB・リソース連携改善]
    	DB定義DB・リソース連携機能で、差分を取る際のリソースの検索方法について、'**'も含むことができるようにします。
    		gf/jsp/GF2120
    
    	[JSPチェック]
    	データベース定義の変更
    	VIEW_LENGTH、MAX_LENGTH の属性情報が、標準リソースと異なるので、
    	ここでは別の名称に変更します。
    	それぞれ、_LENGTH を _SIZE にし、桁数は、20桁とします。
    		※ 前回分のおさらい。
    			ALTER TABLE GF73 MODIFY ( USE_LENGTH VARCHAR2(20) NULL) ;
    			ALTER TABLE GF73 RENAME COLUMN USE_LENGTH TO MAX_LENGTH;
    
    			ALTER TABLE GF73 MODIFY ( VIEW_LENGTH VARCHAR2(20) ) ;
    			ALTER TABLE GF73 MODIFY ( READONLY    VARCHAR2(20) ) ;
    			ALTER TABLE GF73 MODIFY ( DISABLED    VARCHAR2(20) ) ;
    			ALTER TABLE GF74 MODIFY ( DBID        VARCHAR2(20) ) ;
    
    		※ 前回分から、さらに変更分
    			ALTER TABLE GF73 RENAME COLUMN VIEW_LENGTH TO VIEW_SIZE;
    			ALTER TABLE GF73 RENAME COLUMN MAX_LENGTH  TO MAX_SIZE;
    
    		gf\jsp\DOC18\xslt\GF73_PROG.xsl
    		gf\jsp\DOC13\result.jsp
    
    	[spaceタグ修正]
    	spase タグに、width 属性、colspan 属性を追加します。
    	従来は、ラベル部分(前半部分)の大きさ(width 属性)を指定するための labelWidth 属性と
    	値部分(後半部分)の大きさ(width 属性)を指定指定するための valueWidth 属性が
    	ありましたが、全体の大きさを指定することができませんでした。
    	そこで、全体の大きさとして、width 属性を指定できるようにしました。
    	width 属性を指定した場合に、colspan を指定しなかった場合は、colspan="2" に強制的に
    	セットされます。
    		hayabusa.taglib.SpaceTag#release2()
    		hayabusa.taglib.SpaceTag#makeTag()
    		hayabusa.taglib.SpaceTag#setWidth( final String width )			新規追加
    		hayabusa.taglib.SpaceTag#setColspan( final String colspan )		新規追加
    
    	[selectタグ修正]
    	select タグに、addNoValue 属性を追加します。
    	この属性は、ColumnTag と、ColumnEditorTag にはありましたが、SelectTag には
    	ありませんでした。
    	(SelectTagは、option を自分で登録するため、NoValue も自分で登録できるので。)
    	ここでは、ColumnTag と同様の方法で、NoValue を登録できるように修正します。
    	(※ 初期値は、ColumnTag と異なり、false  に設定します。これは、旧環境との
    		 互換性のためです。)
    		hayabusa.taglib.SelectTag#doStartTag()
    		hayabusa.taglib.SelectTag#release2()
    		hayabusa.taglib.SelectTag#setAddNoValue( final String flag )			新規追加
    
    	[andタグ修正]
    	and タグに、matchKey 属性、matchVal 属性を追加します。
    	and タグは、value 属性の中の、{@XXXX} が、null の場合、その条件を
    	消します。ところが、条件そのものが分岐するケースの場合、引数が、
    	null にならない場合や、条件違いで、検索するカラムが異なる場合など
    	分岐処理が発生すると、equals タグで判断する必要が出てきます。
    	SQL文のWHERE条件が、あまり複雑になると、見通しの悪いプログラムに
    	なってしまいます。
    	そこで、この and タグを利用する/しない の判断に、matchKey 、matchVal
    	属性を使えるように機能追加します。
    	これは、Java の String クラスの、正規表現メソッドを利用して、
    	matchKey.matches( matchVal ) が、true の場合のみ、and タグを使用するように
    	します。ただし、matchKey 、matchVal どちらかが null の場合は、
    	判定が無効ということで、true (利用する)とします。
    		hayabusa.taglib.SqlAndTag#release2()
    		hayabusa.taglib.SqlAndTag#doEndTag()
    		hayabusa.taglib.SqlAndTag#setMatchKey( final String mkey )
    		hayabusa.taglib.SqlAndTag#setMatchVal( final String mval )
    
    	[コードリソースのサブセット対応]
    	コードリソースは、予め決められたプルダウンを作成するための情報を
    	持っていますが、それは、動的には変えることができません。
    	(DBMENUは、Select文の引数次第で条件を変えることができます。)
    	例えば、管理者と一般担当者で、選択できる項目が異なると、従来は、
    	2種類のコードリソースを用意しておく必要がありました。
    	また、進捗や状況、パターンに応じて、サブセットを用意したいケースが
    	あったと思います。
    	ここでは、codeList 属性を追加することにより、ここに、コードリソースの
    	コード値のサブセット(選択範囲)をカンマ区切りで指定することで、
    	指定のサブセットのみのコードリソースを再作成する機能を用意します。
    		hayabusa.resource.CodeData#subset( final String codeCsv )
    		hayabusa.resource.CodeData#subsetList( final String codeCsv ) 							新規追加
    		hayabusa.resource.CodeData#subsetGroup( final String group ) 							新規追加
    		hayabusa.resource.CodeData#subsetRole( final RoleMode role ) 							新規追加
    		hayabusa.taglib.ColumnTag#release2()
    		hayabusa.taglib.ColumnTag#setCodeList( final String list )
    		hayabusa.taglib.ColumnTag#setCodeGroup( final String list )
    		hayabusa.taglib.ColumnTag#getInsertTag( final DBColumn clm, final String value )
    		hayabusa.taglib.ColumnEditorTag#release2()
    		hayabusa.taglib.ColumnEditorTag#setCodeList( final String list )
    		hayabusa.taglib.ColumnEditorTag#getModifyConfig( final DBColumn dbColumn )
    
    	[tldファイルの修正]
    	spaceタグの、width 属性、colspan 属性
    	selectタグの、addNoValue 属性
    	andタグの、matchKey 属性、matchVal 属性
    	columnタグの、codeList 属性、codeGroup 属性
    	columnEditorタグの、codeList 属性、codeGroup 属性
    	Transactionタグ
    	これらの属性追加に伴う、hybs-taglib.tld ファイルの更新を行います。
    		WEB-INF/hybs-taglib.tld
    		src/META-INF/hybs-taglib.tld
    
    	[コードリソースの階層メニュー対応]
    	Selection_DB には実装されている、optgroup (階層メニュー)を、Selection_CODE にも入れます。
    	CodeData 、CodeDataLoader 上には、CODELVL などの階層メニューを作成するための
    	属性は取得しているが、Selection_CODE で利用していません。
    	データベースから直接取得する、Selection_DB では対応済みです。
    	ここでは、Selection_CODE にも階層メニューを作成機能を実装します。
    		hayabusa.resource.CodeData#	CodeData( final String clm, final Map data )
    		hayabusa.resource.CodeData#useGroup()													新規追加
    		hayabusa.resource.CodeData#useParam()													新規追加
    		hayabusa.resource.CodeData#getCodeGroup( final int seqNo,final String group )			廃止
    		hayabusa.resource.CodeData#isUse( final int seqNo ) 									新規追加
    		hayabusa.resource.CodeData#useRoleMode() 												新規追加
    		hayabusa.db.Selection_CODE#Selection_CODE( final CodeData cdData )
    		hayabusa.resource.CodeDataLoader#QUERY = "select CLM,CODE,
    		hayabusa.resource.CodeDataLoader#QUERY2 = "select CLM,CODE,
    
    	[秀丸エディタ 単語補完機能対応]
    	秀丸エディタの 単語補完機能が、秀丸 Ver7 以降で利用可能になっています。
    	これを受けて、jsp.hokan.txt ファイルを作成します。
    	なお、これを、秀丸の実行フォルダにコピーし、ファイルタイプ別の単語補完設定を行います。
    	※ このファイルを利用するに当たり、以下の設定も追記しておいてください。
    		・[その他]→[ファイルタイプ別の設定]→[その他・単語補完]の単語補完の検索対象で、
    			辞書ファイルとして、この、jsp.hokan.txt ファイルを登録します。
    			ファイルタイプは、.jsp にしておきます。
    		・辞書ファイルの詳細ボタンで、右下 「さらに」ボタンをクリックします。
    			・単語の先頭文字:<
    			・単語の途中文字:: ="|
    			という設定をしておく必要があります。
    		その他の設定は、お好みで、お願いします。
    
    		build.xml
    		src/xslt/jspHokan.xsl
    
    	[JavaDoc の整合性チェック機能追加]
    		fukurou.taglet.DocletSpecific
    
    		build.xml
    		_build.bat
    
    	[タグリブのトランザクション対応]
    	通常のタグでは、コネクションプールより、その時々のコネクションを取り出して利用するため、
    	タグごとに異なるコネクションで処理されます。
    	また、commit や rollback などもそれぞれのタグで行われるため、連続処理時にエラーが
    	発生しても、中途半端な状態になります。
    	ここでは、各 DBID 単位にコネクションを共有し、このタグの間は、同じオブジェクトを
    	commit や、rollback せずに使いまわすようにします。
    	これにより、複数タグ間のトランザクションや、異なる DBID 間のトランザクションを
    	実現します。
    		fukurou.db.Transaction						新規追加
    		fukurou.db.TransactionReal					新規追加
    		fukurou.db.TransactionImpl					新規追加
    		hayabusa.db.Query#setTransaction( final Transaction tran ) ;
    		hayabusa.db.DBTableModelUtil#makeDBTable( final String stmt ,final String[] args ,
    		hayabusa.common.HybsSystem#TRANSACTION_KEY = "h_tran";			セッションにセーブするキー
    		plugin.query.AbstractQuery#init()
    		plugin.query.AbstractQuery#commit()
    		plugin.query.AbstractQuery#rollback()
    		plugin.query.AbstractQuery#close()
    		plugin.query.AbstractQuery#realClose()
    		plugin.query.AbstractQuery#getConnection()
    		plugin.query.AbstractQuery#setTransaction( final Transaction tran )
    		hayabusa.taglib.TransactionTag				新規追加
    		hayabusa.taglib.QueryTag#doAfterBody()
    		hayabusa.taglib.DirectTableInsertTag#create( final BufferedReader reader )
    		hayabusa.taglib.DirectWriteTableTag#create( final PrintWriter out )
    		hayabusa.taglib.DirectXMLSaveTag#doEndTag()
    		hayabusa.taglib.BizLogicTag#
    		hayabusa.taglib.BizLogicTag#release2()
    		hayabusa.taglib.BizLogicTag#execute()
    		hayabusa.taglib.BizLogicTag#call( final BizLogic logic )
    		hayabusa.taglib.QueryOptionTag#doAfterBody()
    		hayabusa.taglib.UserInfoTag#doAfterBody()
    		hayabusa.taglib.ValueTag#doAfterBody()
    
    	[ConnData,ConnDataFactory の廃止(Deprecated)]
    	fukurou専用のコネクション管理クラスでしたが、
    	現在は、ConnectionFactory.java と DBConfig.xml が使用できますので、
    	廃止します。(Deprecated)
    		fukurou.process.ConnData
    		fukurou.process.ConnDataFactory
    
    	[JSPチェック]
    	JSPファイルをUTF-8 でセーブする場合、BOM が付与されてしまうケースがありますが、
    	BOMが付くと、XSLT 変換できないケースがあります。
    	セーブするときに、BOM マーカーをOFF(つけない)します。
    		gf\jsp\GF6170\entry.jsp
    		gf\jsp\GF6170\result.jsp
    		gf\jsp\GF6170\undo.jsp
    		gf\jsp\GF6170\update.jsp
    		gf\jsp\GF9130\entry.jsp
    		gf\jsp\GF9130\result.jsp
    		gf\jsp\GF9130\undo.jsp
    		gf\jsp\GF9130\update.jsp
    		gf\jsp\GF9140\entry.jsp
    		gf\jsp\GF9230\entry.jsp
    		gf\jsp\GF9230\result.jsp
    		gf\jsp\GF9230\update.jsp
    		gf\jsp\GF9430\entry.jsp
    		gf\jsp\GF9430\result.jsp
    		gf\jsp\GF9500\result.jsp
    		gf\jsp\GF9540\result.jsp
    		gf\jsp\GF9610\entry.jsp
    		gf\jsp\GF9620\entry.jsp
    	JSPソースチェックの XSLT と、実データベースの整合性が取れていなかったため、
    	XSLT の修正と、DB定義の変更を行います。
    	以前のDB定義見直し時の対応漏れ(Ver5 専用設計とします)
    		(TEXT → TEXT_DATA)
    			jsp\DOC18\xslt\GF70_PROG.xsl
    			jsp\DOC18\xslt\GF73_PROG.xsl
    		(KEYS → P_KEYS)
    		(VALS → P_VALS)
    			gf\jsp\DOC18\xslt\GF71_PROG.xsl
    			gf\jsp\DOC18\xslt\GF72_PROG.xsl
    		(NAME  → FORM_NAME)
    		(VALUE → FORM_VAL)
    			gf\jsp\DOC18\xslt\GF73_PROG.xsl
    		(GF73 DB定義)
    			gf\jsp\DOC13\result.jsp
    			db\oracle\sql\01_TABLE\GF73S.sql
    			db\oracle\xml\install\01_TABLE\GF73S.xml
    		ALTER TABLE GF73 MODIFY ( USE_LENGTH VARCHAR2(20) NULL) ;
    		ALTER TABLE GF73 RENAME COLUMN USE_LENGTH TO MAX_LENGTH;
    			USE_LENGTH  VARCHAR2(9)    DEFAULT 0 NOT NULL     /* 150 使用桁数 */
    				↓
    			MAX_LENGTH  VARCHAR2(20)                          /* 150 使用桁数 */
    		ALTER TABLE GF73 MODIFY ( VIEW_LENGTH VARCHAR2(20) ) ;
    		ALTER TABLE GF73 MODIFY ( READONLY    VARCHAR2(20) ) ;
    		ALTER TABLE GF73 MODIFY ( DISABLED    VARCHAR2(20) ) ;
    			VIEW_LENGTH , READONLY , DISABLED
      				VARCHAR2(10) → VARCHAR2(20)
    		(NAMES     → CLMS)
    		(QUERYTYPE → SQL_TYPE)
    		(SCOPE     → JSP_SCOPE)
    		(QUERY     → SQL_TEXT)
    			gf\jsp\DOC18\xslt\GF74_PROG.xsl
    		(GF74 DB定義)
    			db\oracle\sql\01_TABLE\GF74S.sql
    			db\oracle\xml\install\01_TABLE\GF74S.xml
    		ALTER TABLE GF74 MODIFY ( DBID VARCHAR2(20) ) ;
    			DBID      VARCHAR2(10)                           /* 90  データベースID */
    							  ↓
    			DBID      VARCHAR2(20)                           /* 90  データベースID */
    		(VERSION → VERNO)
    			gf\jsp\DOC18\xslt\GF76_PROG.xsl
    		(NAME  → NAME_JA)
    			gf\jsp\DOC18\xslt\GF79_PROG.xsl
    	JSPチェックの新しい警告を追加します。
    	match="og:view" の WARNING21A、WARNING21B、WARNING21C、WARNING21D
    			jsp\DOC18\xslt\GF70_PROG.xsl
    			jsp\DOC18\xslt\GF7X_PROG.xsl		削除
    			gf\jsp\DOC18\query.jsp
    
    	[DBConfig.xml編集機能追加]
    	DBConfig.xmlを画面から編集するための機能を追加します。
    	編集は、管理メニューの「接続先編集」から行います。
    		jsp/common/gamen/05_DBCONFIG			追加
    		hybs-taglib.tld
    		org.opengion.fukurou.db.DatabaseConfig.DBID_INFO_KEYS
    		org.opengion.fukurou.db.DatabaseConfig.DBDRIVER_CLASS_KEY
    		org.opengion.fukurou.db.DatabaseConfig.init()
    		org.opengion.fukurou.db.DatabaseConfig.reload()
    		org.opengion.fukurou.db.DatabaseConfig.getDbidMap(Element, EDbid)
    		org.opengion.fukurou.db.DatabaseConfig.getDbidInfoKeys()
    		org.opengion.fukurou.db.DatabaseConfig.getDbidInfo()
    		org.opengion.fukurou.db.DatabaseConfig.setDbidInfo(String[][])
    		org.opengion.fukurou.db.DatabaseConfig.getDriverList()
    		org.opengion.fukurou.db.DatabaseConfig.getDriverList(Element)
    		org.opengion.fukurou.db.DatabaseConfig.setDriverList(String[])
    		org.opengion.fukurou.xml.DomParser.write(File, Document)
    		org.opengion.hayabusa.taglib.DataCheckTag.setSelectedAll(String)
    		org.opengion.hayabusa.taglib.DataCheckTag.getParameterRows()
    		org.opengion.hayabusa.taglib.DataCheckTag.release2()
    
    	[Java業務ロジック改善]
    	Java業務ロジックを実装しているorg.opengion.fukurou.businessパッケージで、タブリブなど外部クラスから
    	情報をセットするためのメソッドと、業務ロジック内で使用する各種Utilメソッドを分離し、業務ロジックの
    	各実装クラスから、不要なメソッドが見えないように改善します。
    		org.opengion.fukurou.business.BizLogicHelper
    		org.opengion.fukurou.business.BizLogic					削除
    		org.opengion.fukurou.business.AbstractBizLogic
    		org.opengion.fukurou.business.BizLogic_ENTRY
    		org.opengion.fukurou.business.BizLogic_TABLE
    		org.opengion.fukurou.business.BizLogic_CURSOR
    		org.opengion.hayabusa.taglib.BizLogicTag.execute()
    		org.opengion.hayabusa.taglib.BizLogicTag.call(String)
    
    	[fileタグ改善]
    	fileタグでファイルを読み込み(action="READ")する際のエンコードを指定できるようにします。
    	エンコードを指定しない場合は、過去との互換性を考慮し、OS依存の文字コードでファイルを読み込みます。
    		hybs-taglib.tld
    		org.opengion.hayabusa.taglib.FileTag.release2()
    		org.opengion.hayabusa.taglib.FileTag.actionExec(String)
    		org.opengion.hayabusa.taglib.FileTag.setEncode(String)
    
    	[メール送信・改善]
    	メール送信時のパラメータとして、mail.smtp.localhostの設定を追加します。
    	これは、openGionとSTMPが同一サーバーで動作している場合、メールサーバーの設定によっては、
    	"501 Syntax: HELO hostname"というエラーメッセージが返される場合があります。
    	これに対応するため、localhost接続時にも、ドメイン名つきのホスト名が適用されるように上記の
    	設定を追加します。
    		org.opengion.fukurou.mail.MailTX.MailTX(String, String)
    
    	[文字種別追加(KCL)]
    	全角+改行のみを許可する文字種別として"KCL"を追加します。
    	これは、全角のみ(K)をベースとして、改行C(CR+LF)を許可する文字として追加したものになります。
    		org.opengion.plugin.column.DBType_KCL
    
    	[readTableタグ・自動読み取り機能のバグ修正]
    	readTableでreaderClassを"AUTO"(自動読み取り)にした場合に、Excel以外の読み取りが正しく処理できない
    	バグを修正します。
    		org.opengion.hayabusa.taglib.ReadTableTag.doEndTag()
    
    	[リソース登録画面・改善]
    	画面リソース登録画面(カラム、コード、ラベル)で、同じ画面ID、アドレスで複数のデータを登録した場合に、
    	画面上1件しか表示されないバグを修正します。
    	従来は、異なる作成区分で同じ画面IDのデータについて、もっとも上位の作成区分のデータのみを表示させるため、
    	画面ID+アドレスでグループ化して表示していましたが、画面リソースの構造上、画面ID、アドレス、作成区分が
    	同じデータでもロール違いで登録できるため、今回の対応では、グループ表示そのものを廃止しています。
    		ge/jsp/GE0002/result.jsp
    
    	[ヘッダー固定不具合修正]
    	画面遷移なし登録で、選択形式をラジオボタンや非選択形式にする、またはカスタムテーブルを使用した場合に、
    	行を変更する度に、行の幅が広がってしまうバグを修正します。これは、5.1.4.0 (2010/03/01)の以下の修正と
    	関連して、ヘッダーとデータ部の構造が異なる際に、ヘッダー部にコピーされる1行目のデータ部のtdのpaddingが
    	0pxに設定されていないために起こります。今回の対応では、ヘッダー、データ部ともに左右のpaddingについては、
    	明示的に0pxを指定するようにします。
    	---------------------------------------------------------------------------------------------------
    		[画面遷移なし登録・バグ修正]
    		画面遷移なし登録で、viewFormTypeにHTMLCutomTableや、HTMLFormatTable等を使用している場合に、
    		変更ボタン等を押すごとに、各項目の幅が少しずつ広がってしまうバグを修正します。
    		これは、IEのCSS実装のバグで、IEでは、THタグのpaddingが0より大きい場合は、width属性の指定値と、
    		その結果で表示されるサイズが異なってしまう問題があります。
    		(但し、この場合でも、colgroupが指定されている場合(HTMLTableの場合)は、正しい値が返ります)
    		今回の対応としては、ヘッダー固定時のTHタグのpaddingを0にします。
    		(実際は、データ項目よりヘッダーの方が幅があるということは、レアケースであるため、影響はないと
    		 判断しています)
    			jsp/common/scrollBar2.js
    			jsp/common/scrollBar2.css
    	---------------------------------------------------------------------------------------------------
    		jsp/common/scrollBar2.css
    
    	[eventColumnバグ修正]
    	5.1.8.0 (2010/07/01) の 以下の改善で、動的入替え(eventColumn)が動作しなくなっていた問題に対応します。
    	----------------------------------------------------------------------------------------------------
    	[DBColumnConfig 改善]
    	DBColumnConfig ⇔ DBColumn 間の相互データ更新で、すべての内容をコピーしていなかったため、
    	再作成すると属性が抜けてしまっていた。
    	必要な属性を設定するように修正。
    	今回は、DBColumnConfig の コンストラクタの修正は行っていませんので、セッターメソッドで
    	データを設定しています。
    		org.opengion.hayabusa.db.DBColumnConfig#setRawEditParameter( final String param )
    		org.opengion.hayabusa.db.DBColumnConfig#setRawRendParameter( final String param )
    		org.opengion.hayabusa.db.DBColumn#getConfig()
    	----------------------------------------------------------------------------------------------------
    		jsp/common/eventColumn.jsp
    		org.opengion.hayabusa.db.DBColumnConfig
    		org.opengion.hayabusa.db.DBEventColumn
    		org.opengion.hayabusa.taglib.SelectTag
    
    	[DB定義DB・リソース連携バグ修正]
    	DB定義DBのリソース連携機能で、属性差分更新時に、ラベルリソースが更新されず、新規に追加されてしまう
    	バグを修正します。
    		gf/jsp/GF2120/GFM0010.jsp,GFM0011.jsp
    
    	[リソース登録画面・改善]
    	リソース登録画面(カラム、コード、ラベル)で、カラムを検索条件に指定しない状態で、登録を行うと、
    	再検索時に、登録したデータしか表示されない不具合を修正します。
    		ge/jsp/GE0003/entry.jsp
    		ge/jsp/GE0004/entry.jsp
    		ge/jsp/GE0005/entry.jsp
    		ge/jsp/REP03/entry.jsp
    
    	[dataCheckタグ改善]
    	dataCheckタグで、エラーが発生した際、エラー表示の前後に処理・表示を行うJSPをincludeできる機能を追加します。
    	通常、entry.jspでdataCheckを行う場合は、entry.jsp内で/jsp/common/history_back.jspをincludeしているため、
    	別途戻るボタンなどのJSPをincludeする必要はありません。
    	しかし、update.jspでエラーチェックを行った場合は、エラー発生時のみ、戻るボタンを表示する必要があります。
    	このような場合に対応するため、エラー発生時のみ、処理を行うことが出来る機能を追加します。
    		hybs-taglib.tld
    		org.opengion.hayabusa.taglib.DataCheckTag.doEndTag()
    		org.opengion.hayabusa.taglib.DataCheckTag.includeJsp(String)
    		org.opengion.hayabusa.taglib.DataCheckTag.release2()
    		org.opengion.hayabusa.taglib.DataCheckTag.setBeforeErrorJsp(String)
    		org.opengion.hayabusa.taglib.DataCheckTag.setAfterErrorJsp(String)
    		jsp/common/history_back.jsp
    
    	[columnCheckタグ改善]
    	columnCheckタグで、ラジオボタンなど、同じ名前で複数の要素を持つ項目に対して、必須チェックを自動行った場合、
    	エラーメッセージが要素数分出力されてしまう問題に対応します。
    		org.opengion.hayabusa.taglib.ColumnCheckTag.makeErrorMessage(ErrorMessage)
    
    	[Java業務ロジック改善]
    	パラメーターを設定する際、int型、double型でもString.ValueOf()を行うことなく、直接登録できるように
    	します。但し、内部的には、String.ValueOf()を呼び出して、String型で管理していますので、値を取り出す際は、
    	vari(),vard()等、戻り値の型に対応したメソッドを呼び出す必要があります。
    		org.opengion.fukurou.business.AbstractBizLogic.set(String, int)
    		org.opengion.fukurou.business.AbstractBizLogic.set(String, double)
    
    	[各種修正(ドキュメント関係)]
    	JavaDoc関係のワーニングや、設定漏れなど、繻子瑛しました。
    	詳細は、5.1.9.0_refactoring.txt に記述しておきます。
    		・@og.tag は、taglib 専用のタグ説明用の キーワードです。
    		・【TAG】は、タグリブ用のキーワードです。
    		・Javadoc で、パッケージ 説明のHTML(package.html)を追加します。
    		・@Deprecated の説明(コメント)追加
    		・public 定数のJavaDocコメント追加
    		・public定数 ⇒ private定数に変更
    		・そものも、定数自体を廃止
    		・protected 定数のJavaDocコメント追加
    		・@param の記述が不足しているものに、追記しました。
    		・@return の記述が不足しているものに、追記しました。
    
    	[自動インストール対応]
    	画面からシステムのインストールを行うことの出来る機能を追加します。
    	インストールは、管理メニューの「システムインストール」の画面から行います。
    	インストール方法の詳細(インストールアーカイブの形式)は、sysInstallタグのタブリブドキュメントを
    	参照して下さい。
    		hybs-taglib.tld								sysInstallタグ追加
    		jsp/common/gamen/06_INSTALL
    		org.opengion.hayabusa.common.SystemInstaller
    		org.opengion.hayabusa.common.SystemParameter.loadDBResource(Map)
    		org.opengion.hayabusa.taglib.SysInstallTag
    
    5.1.8.0 (2010/07/01)
    	[PostgreSQL対応]
    	openGionでは、select文の結果から、DBTableModelの作成や各種パラメーターへのセットする際は、select文の
    	項目名を全て大文字化して、管理しています。
    	これは、元々のベースであるOracleが項目名を全て大文字で管理しているからです。
    	一方、PostgreSQLでは、項目名は、基本的に全て小文字として扱われます。これはselect文発行時に、項目名に別名を
    	つけた場合でも同様で、結果として返される項目名は、全て小文字になります。
    	しかしながら、一部のロジックにおいて、大文字化が不十分であったため、今回はその対応を行っています。
    		org.opengion.hayabusa.io.HybsJDBCCategoryDataset.innerQuery(Connection, String)
    		org.opengion.fukurou.business.AbstractBizLogic.execSQL(String, int, ArrayTableModel)
    
    	[Java業務ロジック・バグ修正]
    	引数のチェック不備により、NullPointerExceptionが発生するバグを修正します。
    		org.opengion.fukurou.business.AbstractBizLogic.replaceParam(String, int, ArrayTableModel)
    
    	[ファイル入力(Calc)・バグ修正]
    	Calcからのファイル読み込みで、セル内に書式設定がされている場合に、内容が正しく読み取れないバグを修正します。
    		org.opengion.plugin.io.TableReader_Calc.DomOdsParser.processRow(Element, int)
    
    	[ReadTableタグ・自動読み取り改善]
    	ReadTableタグの自動読み取り機能で、Calcも自動読み取りの対象とします。
    	なお、読み取りの優先順は、Excel、Calc、Text(UnicodeLittle)、Text(Windows-31J)です。
    		org.opengion.hayabusa.taglib.ReadTableTag.doEndTag()
    
    	[直列化復元]
    	直列化復元の際に設定されないtransientフィールドがあります。
    	readObject メソッド中で、初期化する必要があります。
    	writeObject 、readObject メソッドを新規に追加します。
    		hayabusa.servlet.TestCometServlet#writeObject( final ObjectOutputStream strm ) throws IOException {
    		hayabusa.servlet.TestCometServlet#readObject( final ObjectInputStream strm ) throws IOException , ClassNotFoundException {
    
    	初期化漏れの対応
    	変数 tabData の初期化が行われていなかったため、処理を追加します。
    		hayabusa.taglib.TabLinkTag#readObject( final ObjectInputStream strm ) throws IOException, ClassNotFoundException {
    
    	[Exception キャッチ]
    	Exceptionが発生しないのにExceptionをキャッチしています。正式なExceptionをキャッチするように対応します。
    	ここでは、IOException と、InvalidFormatException をキャッチします。
    		plugin.io.TableReader_Excel#readDBTable() {
    
    	[ユーザーリソース登録画面・改善]
    	ユーザーリソース登録画面で、初期ログインFG='0'(初期)のデータが2件登録できないようにチェックをを行います。
    	これは、2件存在する場合、どちらのロールでログイン処理が行われるかが判別できなくなるためです。
    		ge/jsp/GE0001/entry.jsp
    
    	[3色ボタン・改善]
    	フレームを拡大・縮小するための3色ボタンについて、マトリクスメニューから各画面を表示した際に、
    	メニューの縮小ボタンを押すと、フレームサイズが不正になり、画面が表示されなくなるバグを修正します。
    		jsp/common/toggleFrame.js
    
    	[ユーザーIDの大文字・小文字区別化]
    	userInfoの作成で、従来は、ログインIDを全て大文字として扱っていましたが、これを大文字・小文字を区別
    	して処理するように変更します。
    		org.opengion.hayabusa.taglib.HeadTag.sessionInit()
    
    	[Java業務ロジック・改善]
    	テーブル系の処理を行うためのJava業務ロジック(BizLogic_TABLE)で、#first()、#last()を
    	行ループの中で呼び出しするように変更します。
    		org.opengion.fukurou.business.BizLogic_TABLE.main()
    
    	[lint , pmd , findbugs などのチェック]
    	各種バグ発見ツールによるチェックを行いました。
    	メソッドの置換え、変数名修正、不要 import 削除など。
    	・META-INF/hybs-taglib.tld 属性削除(andのandVals、jspInitのdebug、reportのencode)
    	詳細は、5.1.8.0_refactoring.txt を参照願います。
    
    	[enum NativeType 機能追加]
    	指定の文字列のNativeType の判定処理を行うメソッドを、enum NativeType クラスに追加しました。
    	これにより、従来より、StringUtil.getNativeType( String ) で行われていた判定処理を、
    	NativeType.getType( String ) 処理に置き換えます。
    		fukurou.model.NativeType#getType( final String str )					新規追加
    		fukurou.util.getNativeType( final String str )							廃止
    		fukurou.business.ArrayTableModel#getNativeType( final int clm )
    		fukurou.model.ArrayDataModel#getNativeType( final int clm )
    		fukurou.process.LineModel#getNativeType( final int clm )
    		hayabusa.report2.OdsContentParser#getNativeType( final String key, final String val )
    
    	[ViewFormTag 修正]
    	ViewFormTag で、同時設定の不可属性のチェック方法を、各メソッドから、doStartTag() の
    	最初に移動します。
    	同時設定属性 = (columnWritable,noWritable,columnDisplay,noDisplay,columnGroup,noGroup)
    	以前は、属性へのセットの順番が不明なため、チェックロジックが複雑 かつ 間違いがありました。
    	すべて受け取ってから、判断するようにすると、簡単になります。
    		org.opengion.hayabusa.taglib.ViewFormTag#doStartTag()
    		org.opengion.hayabusa.taglib.ViewFormTag#setColumnWritable( final String columnName )
    		org.opengion.hayabusa.taglib.ViewFormTag#setNoWritable( final String columnName )
    		org.opengion.hayabusa.taglib.ViewFormTag#setColumnDisplay( final String columnName )
    		org.opengion.hayabusa.taglib.ViewFormTag#setNoDisplay( final String columnName )
    		org.opengion.hayabusa.taglib.ViewFormTag#setColumnGroup( final String group )
    		org.opengion.hayabusa.taglib.ViewFormTag#setNoGroup( final String group )
    
    	[ヘッダー固定・バグ修正]
    	左右分割でヘッダー固定を使用した際に、画面遷移時に左右位置の表示位置が異なるバグを修正します。
    		jsp/common/scrollBar2.js
    
    	[選択行スクロール・バグ修正]
    	5.1.1.1 (2009/12/02)の以下の修正の影響で、ある画面から行を選択し、ヘッダー固定を行わない画面に
    	対して、遷移した場合にJavaScriptのエラーが出る不具合を修正します。
    	---------------------------------------------------------------------------------------------
    		5.1.1.1 (2009/12/02)
    		[選択行スクロール・バグ修正]
    		行選択後、画面遷移した際に、選択行に自動的に遷移する機能で、ヘッダーラベルに改行が
    		含まれている場合に、入力行が隠れてしまう(スクロールし過ぎてしまう)バグを修正します。
    		このバグを修正するため、スクロールする際の基準となる行を、既存の「選択行の1つ前」から
    		「選択行自身」に変更します。
    			jsp/common/default.js#focus2()
    			org.opengion.plugin.view.AbstractViewForm.isFirstChecked(int)
    	---------------------------------------------------------------------------------------------
    		jsp/common/default.js
    
    	[Viewタグ・バグ修正]
    	5.1.7.0 (2010/06/01)の以下の改善によりviewFormType="HTMLCustomData"等で、不要なdivタグが
    	出力されてしまう不具合に対応します。
    	対応としては、画面遷移なし登録の場合に限って、divタグを必ず出力するようにし、それ以外の場合は、
    	従来通り(useHilightRow="false"でdivも出力しない)とします。
    	--------------------------------------------------------------------------------------------
    		[画面遷移なし登録・バグ修正]
    		画面遷移なし登録で、行が1件もない状態で追加ボタンを押した際、update.jspのviewの設定で、
    		useHilightRowがfalseになっていると正しく行が表示されないバグを修正します。
    		これは、update.jspから返されるHTMLをresult.jspに挿入する際に、「div onclick="hilightRow」
    		という文字列でマッチさせていたためですが、useHilightRowをoffにすると、このdivが出力されない
    		ために、マッチせず、データが表示されていませんでした。
    		今回の対応では、useHilightRowでも、
    元の文字 例えば、バックカラーに色を付ける、文字を薄い灰色にする、などできます。 ただし、データ量が圧倒的に増えるため、大量のデータ等で使用するのは避けたほうが良いと思います。 この修正にあわせて、noGroup (まとめないカラム名を指定する)方法を追加しました。 columnGroup との同時使用は出来ません。 org.opengion.hayabusa.html.ViewForm#setNoGroup( final String group ) 新規追加 org.opengion.hayabusa.html.ViewForm#setGroupClass( final String grpCls ) 新規追加 org.opengion.plugin.view.AbstractViewForm#clear() org.opengion.plugin.view.AbstractViewForm#setNoGroup( final String group ) 新規追加 org.opengion.plugin.view.AbstractViewForm#setGroupClass( final String grpCls ) 新規追加 org.opengion.plugin.view.AbstractViewForm#enum CLM_GRP { KIGO , CHAR }; org.opengion.plugin.view.AbstractViewForm#getRendererValue( final int row,final int column , final String inVal ) org.opengion.hayabusa.taglib.ViewFormTag#release2() org.opengion.hayabusa.taglib.ViewFormTag#doEndTag() org.opengion.hayabusa.taglib.ViewFormTag#setColumnWritable( final String columnName ) 実装修正 org.opengion.hayabusa.taglib.ViewFormTag#setNoWritable( final String columnName ) 実装修正 org.opengion.hayabusa.taglib.ViewFormTag#setColumnGroup( final String group ) 実装修正 org.opengion.hayabusa.taglib.ViewFormTag#setNoGroup( final String group ) 新規追加 org.opengion.hayabusa.taglib.ViewFormTag#setGroupClass( final String grpCls ) 新規追加 gf/jsp/DOC02/result.jsp サンプル hybs-taglib.tld 追加(noGroup,groupClass) 上記の修正に便乗して、boolean 配列への初期値設定の方法を、一つのメソッドに統一しました。 org.opengion.plugin.view.AbstractViewForm#setBooleanArray( final String clsm , final boolean def , final boolean[] arrays ) org.opengion.plugin.view.AbstractViewForm#setColumnWritable( final String columnName ) org.opengion.plugin.view.AbstractViewForm#setNoWritable( final String columnName ) org.opengion.plugin.view.AbstractViewForm#setColumnDisplay( final String columnName ) org.opengion.plugin.view.AbstractViewForm#setNoDisplay( final String columnName ) org.opengion.plugin.view.AbstractViewForm#setColumnGroup( final String group ) org.opengion.plugin.view.AbstractViewForm#setNoGroup( final String group ) org.opengion.plugin.view.AbstractViewForm#setTableSorterKeys( final String columnName ) org.opengion.plugin.view.AbstractViewForm#setWritableControl( final String wrtCtrl ) Viewの行単位のゼブラ処理で、TR(テーブル要素の行指定) に class 属性を付与できるようにします。 これは、bgColorClsClm で指定のカラムの値を、各行の class 要素として出力します。 このとき、ヘッダー固定のJavaScriptの関係で、クラス名は、"row_XX" 形式にする必要があります。 (同時に、それに対応するように、JavaScript本体も修正します。 org.opengion.hayabusa.taglib.ViewFormTag#doEndTag() org.opengion.hayabusa.taglib.ViewFormTag#release2() org.opengion.hayabusa.taglib.ViewFormTag#setBgColorClsClm( final String clsClm ) 新規追加 org.opengion.hayabusa.html.ViewForm#setBgColorClsClm( final String clsClm ) 新規追加 org.opengion.plugin.view.AbstractViewForm#setBgColorClsClm( final String clsClm ) 新規追加 org.opengion.plugin.view.AbstractViewForm#getBgColorCycleClass( final int row ) 修正 ge/jsp/common/option/jqog.js row_0,row_1 ・・・ をrow_ だけ見るように修正 gf/jsp/common/option/jqog.js row_0,row_1 ・・・ をrow_ だけ見るように修正 gf/jsp/DOC02/result.jsp サンプル hybs-taglib.tld 追加(bgColorClsClm) [ValueTag 改善] value が NULL の時に、設定するかどうか(true/false)を指定する、nullSet 属性を廃止します。 内部ロジックを削除し、インターフェースは、互換性のために残します。 ただし、早期にメソッドそのものも廃止される可能性がありますので、Ver5 のJSP移行時に、 属性の削除をお願いします。 org.opengion.hayabusa.taglib.ValueTag#doStartTag() org.opengion.hayabusa.taglib.ValueTag#release2() org.opengion.hayabusa.taglib.ValueTag#setAttribute( final String key,final String value,final String action ) org.opengion.hayabusa.taglib.ValueTag#setSQLAttribute( final DBTableModel table ) org.opengion.hayabusa.taglib.ValueTag#setNullSet( final String flag ) 廃止(論理的) org.opengion.hayabusa.taglib.ValueTag#toString() org.opengion.hayabusa.taglib.CommonTagSupport#release2() org.opengion.hayabusa.taglib.CommonTagSupport#getRequestValue( final String key, final boolean xssCheckFlg ) org.opengion.hayabusa.taglib.CommonTagSupport#setUseValue( final boolean flag ) 廃止 gf/jsp/ common\eventColumnMaker.jsp(45): common\fileDownload.jsp(102): common\gamen\12_GUIMAKEGUI\selectTable.jsp(19): common\gamen\12_GUIMAKEGUI\selectTable.jsp(27): DOC04\query.jsp(26): ge/jsp/ common\eventColumnMaker.jsp(45): common\fileDownload.jsp(102): common\gamen\12_GUIMAKEGUI\selectTable.jsp(19): common\gamen\12_GUIMAKEGUI\selectTable.jsp(27): [XML関連クラス 追加] JSP画面のXMLパースの基本クラスとして、JspSaxParser.java および、関連クラスを追加します。 これは、SAXParser を利用した、独自のOGNode/OGElement オブジェクトを取得する、ユーティリティークラスです。 DOM で構築した Element では、属性の並び順が保障されません。 そこで、独自に、OGElement をSAXパーサーから作成することで、簡易的に DOM 的なオブジェクトを作成しています。 これは、XML パース用に用意したというより、JSP をパーすするために今後も拡張していきます。 JSPをパースする目的は、JSP画面 ⇒ 仕様書DB ⇒ JSP画面 というサイクルを設けて、画面の自動作成への流れを 作ることにあります。 org.opengion.fukurou.xml.JspSaxParser.java 新規作成 org.opengion.fukurou.xml.OGAttributes.java 新規作成 org.opengion.fukurou.xml.OGDocument.java 新規作成 org.opengion.fukurou.xml.OGElement.java 新規作成 org.opengion.fukurou.xml.OGNode.java 新規作成 org.opengion.fukurou.xml.OGNodeType.java 新規作成 [GUESTユーザー対応] ユーザー認証が行われないページにおいて、GUESTユーザーとしてログインできる機能を追加します。 この機能については、既に実装されていましたが、利用するには、headタグでuseGuest="true"を個別に指定する という設計思想でしたが、現状の実装では、この属性をJSP上で設定しても、反映されません。 (つまり、GUESTユーザー機能が有効にならない) 今回の対応では、useGuest="true"を指定しない場合でもGUESTユーザーが有効になるようにします。 但し、この場合でも、実際にGUESTユーザーを利用するには、ユーザーリソースにGUESTユーザーを別途意図的に 登録する必要があります。 org.opengion.hayabusa.taglib.HeadTag.sessionInit() [Java業務ロジック・改善] @bizLogicタグでvalsを指定する際、同じキーで複数のパラメーターが存在した場合に、値を連結する機能を 追加します。これを利用するには、bizLogicタグでmulti="true"を指定する必要があります。 AbizLogicタグでkeysだけを指定してvalsを指定しない場合に、Keysで指定された項目名に対応するパラメーターを 自動的に取得し、Valsとして使用するようにします。 Blineメソッドで存在しないカラムを指定した場合に、NullPointerExceptionが発生するバグを修正します。 Cパラメーターのキー一覧、テーブルのキー一覧を返すメソッドを追加します。 Dbizの配下にあるclassファイルも自動コンパイルのクラスパスとして追加します。 hybs-taglib.tld org.opengion.fukurou.business.AbstractBizLogic.line(String, int) org.opengion.fukurou.business.AbstractBizLogic.lineKeys() org.opengion.fukurou.business.AbstractBizLogic.varKeys() org.opengion.hayabusa.taglib.BizLogicTag.setMulti(String) org.opengion.hayabusa.taglib.BizLogicTag.release2() org.opengion.hayabusa.taglib.BizLogicTag.setVals(String) org.opengion.hayabusa.taglib.BizLogicTag.makeVals() org.opengion.hayabusa.taglib.BizLogicTag.doEndTag() [Java業務ロジック・バグ修正] @fukurou.jarが読み込まれず、自動コンパイルが正常に動作しないバグを修正します。 AソースコードのエンコーディングがOS依存になっていましたが、これをUTF-8固定にします。 org.opengion.hayabusa.taglib.BizLogicTag org.opengion.fukurou.util.HybsLoader.compileClass(String) [表示種別追加・複数件QUERY型] 表示種別として、「複数件QUERY型」を新規に追加します。 この表示種別では、単一データを取得するQUERY型と異なり、複数件のデータが存在した場合に、 各値をタグで連結して返します。 また、QUERY定義で、第2パラメーターにclass属性を指定することができますので、各データを縦に並べて 表示したり、各各データ毎に文字色を変更することもできます。 各項目に対して、表示種別を画面から登録するには、システムID:**、作成区分:0(エンジン)で定義されている RENDERERのコードリソースで、MULTIQUERYのコード値が定義されている必要があります。 org.opengion.plugin.column.Renderer_MULTIQUERY [リソース登録画面・バグ修正] リソース登録画面で"エラーデータを除外"の機能が利用できない不具合を修正します。 ge/jsp/GE0002/update.jsp ge/jsp/GE0003/update.jsp ge/jsp/GE0004/update.jsp ge/jsp/GE0005/update.jsp ge/jsp/GE0007/update.jsp ge/jsp/GE0008/update.jsp [グループメニューバグ修正] グループメニューで、コードリソースのキーが存在しない場合にエラーとなるバグを修正します。 org.opengion.hayabusa.taglib.TopMenuTag.makeTagMenuString(String, String, String, String, int) [画面帳票発行機能改善] 画面帳票発行機能で、画面から出力する帳票雛形ファイルを、先に対応したコメント形式に変更します。 jsp/common/gamen/14_EDIT/download.jsp org.opengion.plugin.io.TableWriter_CalcDef.writeData(DBTableModel, PrintWriter) org.opengion.plugin.io.TableWriter_CalcDef.createTextCell(OdfFileDom, String, DBColumn, Boolean, Boolean) org.opengion.plugin.io.TableWriter_CalcDefAno 新規追加 [全チェック機能改善] 全チェックを押した状態でresult.jspからupdate.jsp等に遷移した場合に、遷移先のJSPでも全チェックボックスが チェックされた状態になるように改善します。 org.opengion.hayabusa.taglib.ViewFormTag.doStartTag() org.opengion.plugin.view.AbstractViewForm.getAllCheckControl() [画面リソース登録画面改善] 画面リソース登録画面で、追加時に、システムID+画面ID+アドレス+作成区分で存在チェックをかけるようにします。 ge/jsp/GE0002/entry.jsp [Calc帳票システム・コメント定義機能追加] Calc帳票システムで、コメントに{@xxx_n}の定義ができる機能を追加します。 従来は、セルに対して、{@xxx_n}の定義を行う必要があったため、データの桁数を確認しながら雛形を定義する ことができませんでした。 今回の機能追加では、{@xxx_n}の定義を、そのセルのコメントとして定義することで、セルには、一般的な 帳票開発ツールと同じように、XXXXX(文字型)、99999(数値型)を記述することができるようになり、出力結果を イメージしながら雛形の開発を行うことができるようになります。 また、テキストボックスなどのオブジェクトに対しても、「名前」の定義に{@xxx_n}の記述することができます。 但し、この機能を利用するには、以下の制約があります。 (1)コメントまたは、オブジェクトの名前に変数を定義する場合、項目定義の先頭には、必ず"ANO."を付加し、 {@ANO.xxx_n}の形式で定義する必要があります。 (2)コメントまたは、オブジェクトの名前に{@ANO.xxx_n}が定義された場合、そのセル全体が{@ANO.xxx_n}の値に よって置き換わります。このため、これらのセルについては関数定義などを行うことはできません。 また、この定義方法の詳細については、別途マニュアルを用意します。 org.opengion.hayabusa.report2.TagParser.checkKey(String, StringBuilder) org.opengion.hayabusa.report2.OdsContentParser.writeParsedRow(String, BufferedWriter, String, String) org.opengion.hayabusa.report2.OdsContentParser.parseByAnnotation(String, int, String, StringBuilder) org.opengion.hayabusa.report2.OdsContentParser.isCell(String, int) [Calc帳票システム・改善] Calc帳票システムで、セルの値に{@xxx_n}を定義し、これを変換すると、データが数値の場合に先頭に'が 付加されてしまう問題に対応します。 これは、セルの定義で、数値タイプを指定していても、セルの内容が文字列({@xxx_n})である場合に、Calcが 自動的に文字列であると判断し、この状態で数値データを埋め込むと、データの先頭に'が付加されてしまいます。 今回の対応では、カラムの定義で、数値タイプの場合は、パース時にセルの定義を数値型に置き換えることで、 先頭の'が付加されないようにします。 なお、数値タイプかどうかの判断については、ローカルリソース使用時はリソース定義から、未使用時はデータ に応じて数値タイプかどうかを判断します。 org.opengion.hayabusa.report2.OdsContentParser.writeParsedRow(String, BufferedWriter, String, String) org.opengion.hayabusa.report2.OdsContentParser.changeType(String, int, String, String, NativeType, StringBuilder) org.opengion.hayabusa.report2.OdsContentParser.getNativeType(String, String) [Calc帳票システム・グラフ対応] Calc帳票システムで、雛形で定義されたグラフが正しく出力されるように改善します。 グラフ表示については、1つの雛形シートから複数シートが出力された場合でも、それぞれのシートで 独立して、シート毎のデータでグラフ表示が行われます。 但し、グラフデータで他のシートのデータを参照することはできません。自身のシートのデータのみを 参照することができます。 また、グラフ対応に伴い、内部のパースロジックを共通化を行い、内部処理を見直しています。 org.opengion.hayabusa.report2.OdsSheet 新規追加 org.opengion.hayabusa.report2.TagParser 新規追加 org.opengion.hayabusa.report2.OdsContentParser.appendValue(String, int, String, StringBuilder) org.opengion.hayabusa.report2.OdsContentParser.writeParsedRow(String, BufferedWriter, String, String) org.opengion.hayabusa.report2.OdsContentParser.replaceOoocError(String) org.opengion.hayabusa.report2.OdsContentParser.execStyles() org.opengion.hayabusa.report2.OdsContentParser.replaceGraphInfo(String, String, String) org.opengion.hayabusa.report2.OdsContentParser.parseGraphContent(String, String, String) org.opengion.hayabusa.report2.OdsContentParser.parseManifest(String, String[]) [エラーメッセージ表示改善] システムエラー発生時に画面に表示されるエラーメッセージを改善し、テーブル形式でエラーメッセージが 表示されるようにします。 ラベルリソース(SYSERR) 追加 jsp/common/error.jsp org.opengion.hayabusa.taglib.ErrorTag.getTableMsg(Throwable) org.opengion.hayabusa.taglib.ErrorTag.VIEW_MSGTYPE org.opengion.hayabusa.taglib.ErrorTag.setViewMsgType(String) org.opengion.hayabusa.taglib.ErrorTag.doEndTag() [画面帳票発行機能・画面改善] 画面帳票発行機能の帳票定義画面を見直しします。 jsp/image/hatena_min.gif jsp/common/gamen/14_EDIT/ [forwardタグ・バグ修正] 5.1.7.0 (2010/06/01)の以下の修正で、forwardタグのpage属性にhttpから始まる外部URLを直接記述した 場合に、自身の画面IDが付加されてしまうバグを修正します。 org.opengion.hayabusa.taglib.ForwardTag.doEndTag() ---------------------------------------------------------------------------------------------- [og:forwargタグ改善] og:forwardタグでGAMENIDをパラメーターとして渡すようにします。 gamenId属性で指定された場合はその画面IDが、指定されていない場合は、自身の画面IDが渡されます。 また、過去との互換性を考慮し、keys属性にGAMENIDが含まれている場合は、valsで指定されている 画面IDが優先されます。 org.opengion.hayabusa.taglib.ForwardTag.doEndTag() ---------------------------------------------------------------------------------------------- [ラベルリソース登録画面修正] ラベルリソース登録画面で、言語を検索条件に指定しない場合に、日本語のデータしか表示されないバグを 修正します。 ge/jsp/GE0005/result.jsp [ヘッダーソート機能・バグ修正] ヘッダーソート機能で、result.jsp以外のJSPをforward.jsp経由で呼び出した場合に、ヘッダーソートが 正しく機能しないバグを修正します。 これは、forward.jspに記述されているcommonForwardタグの遷移先の制御で、command=VIEWの場合に、必ず result.jspに遷移していたためです。 今回の対応では、直前にアクセスされたJSPに遷移するように変更し、result.jsp以外でもヘッダーソート 機能が正しく動作するようにします。 org.opengion.hayabusa.taglib.CommonForwardTag.getForwardURI(HttpServletRequest, HttpSession) 5.1.7.0 (2010/06/01) [ヘッダー固定・バグ修正] ヘッダー固定(ScrollBar2.js)で、tdタグで指定した高さが無視されてしまうバグを修正します。 jsp/common/scrollBar2.css [画面キャプチャ機能 追加] org.opengion.fukurou.util.DisplayCapture.java クラスを新規に追加します。 これは、画面イメージをキャプチャして、ファイルに書き出すためのクラスです。 基本的な使い方は、main メソッドから立ち上げて、クリップボードの状態を監視します。 クリップボードに、"GUI:画面ID xxxxx.jsp" 形式の文字が書き込まれると、flavorsChanged イベントが 発生して、画面を、ファイルに書き出す処理が実行されます。 書き出すファイル名の初期形式は、useGuiDir の設定により異なります。 org.opengion.fukurou.util.DisplayCapture.java 新規追加 gf\jsp\custom\result_info_Capture.jsp クリップボードに画面IDとJSPファイル名をセットする。 * Usage: java org.opengion.fukurou.util.DisplayCapture * [BASE_DIR] [useGuiDir(false/true)] [imageFormat(png|gif|jpg)] [startCnt] * * args[0] BASE_DIR : キャプチャファイルをセーブするベースとなるディレクトリ(初期値:起動フォルダ) * args[1] useGuiDir : キャプチャ画像をセーブするファイル方式を指定します。(初期値:false) * true(保存時は、ベースフォルダに、画面ID+jspファイル名で、ファイルを作成する) * false(保存時に画面IDのフォルダを作成し、その下に、jspファイル名で、ファイルを作成する。) * args[2] imageFormat : 作成するイメージの形式。png|gif|jpg のどれか。 * args[3] startCnt : セーブファイル名をユニークにするためのカウント(初期値:100) [DBConfig.xml 取得方法変更] DBConfig.xml の取得方法を、jaxb とDBConfig.xsd 方式から、DocumentBuilder による DOM処理に変更します。 スキーマの定義情報をコンパイルして、毎回、作り直す処理は、複雑なためです。 ただし、DBConfig.xml を変更した場合は、読取クラスも修正する必要があります。 # 以前は、DBConfig.xsd を変更するだけで、Javaのソースを自動作成していました。しかし、実際には # 修正箇所は、何箇所も発生するため、スキーマからJavaソースを作成するメリットはありませんでした。 これに伴い、org.opengion.fukurou.xml.jaxb.dbid のクラスは、廃止されます。 org.opengion.fukurou.xml.DomParser.java 新規追加 org.opengion.fukurou.db.DatabaseConfig.java 大幅書き換え org.opengion.fukurou.db.EDbid.java Cloneable の追加と、メソッドの若干の修正 org.opengion.fukurou.xml.jaxb.dbid.DbConfig.java 廃止 org.opengion.fukurou.xml.jaxb.dbid.DbDriver.java 廃止 org.opengion.fukurou.xml.jaxb.dbid.Dbid.java 廃止 org.opengion.fukurou.xml.jaxb.dbid.ObjectFactory.java 廃止 org.opengion.fukurou.xml.jaxb.dbid.DBConfig.xsd 廃止 gf/build.xml DBConfig.xsd 廃止に伴う修正 [filter関連修正] filter関連で、isClosed == true の場合に 安全のため、Exception を発行していますが、 これを、無視して、単に、return のみとします。 これは、GZIPResponseWrapper の finishResponse() メソッドで、 public void finishResponse() { Closer.ioClose( writer ); Closer.ioClose( stream ); } のような処理を行っていますが、writer 自体が、stream を元に作られているため、 writer の close() で、自動的に、stream もclose() されています。 この処理で、Closer.ioClose( stream ) を止めれば、解決すると思われますが、 何らかの問題で、IO関連のリソースが開放されないケースでは、システムダウンにも 繋がりかねないため、すでに、close 済みの場合は、何もしないという実装で対処します。 org.opengion.hayabusa.filter.FileResponseStream#flush() org.opengion.hayabusa.filter.FileResponseStream#write(final int bt) org.opengion.hayabusa.filter.FileResponseStream#write(final byte bt[], final int off, final int len) org.opengion.hayabusa.filter.GZIPResponseStream#flush() org.opengion.hayabusa.filter.GZIPResponseStream#write(final int bt) org.opengion.hayabusa.filter.GZIPResponseStream#write(final byte bt[], final int off, final int len) [og:view(フォーマット処理)バグ修正] og:viewタグで、HTMLFormatテーブルやHTMLCustomテーブルを利用して、Body部分にフォーマットを記述した際、 そのフォーマット部分に{@xxx}形式の変数が存在し、さらにその値に"["が含まれてる場合、その値が フォーマット定義として処理されてしまい、エラーとなる問題に対応します。 今回の対応では、og:view、og:tbody、og:thead、og:tfoot、og:Itdの各タグで、{@xxx}の変数の値に"["が含ま れていた場合は、予めサニタイズ(無効化)し、表示時に戻すという処理を加えることで、その値がフォーマット 定義として処理されないようにします。 org.opengion.fukurou.util.SystemParameter.getColumns() org.opengion.fukurou.util.SystemParameter.getFormats() org.opengion.hayabusa.html.TableFormatter.getFormat() org.opengion.hayabusa.html.TableFormatter.getTrTag() org.opengion.hayabusa.html.TableFormatter.makeFormat(DBTableModel) org.opengion.hayabusa.html.TableFormatter.decodeSanitizedStr(String) org.opengion.hayabusa.taglib.CommonTagSupport.getSanitizedBodyString() org.opengion.hayabusa.taglib.ViewFormTag.doAfterBody() org.opengion.hayabusa.taglib.TFormatTag.doEndTag() [columnタグ、selectタグのdefaultVal属性の改善] columnタグ、selectタグでcommandがRENEWの場合は、defaultValを適用しないようにします。。 これは、defaultValの値が埋め込まれた項目が存在する画面に戻った際に、 defaultValの項目の値がnullとなっていた場合に、defaultValの値が復元されると、 検索結果との不一致が発生するためです。 ※この問題は、command=NEW(画面リンクした場合)でも発生します。 しかし、この場合、遷移先の画面がエントリー画面などであった場合は、defaultValが適用されないと 問題が発生する可能性があります。 このため、command=NEWの場合の問題を根本的に解決するには、今回の対応方法ではなく、画面遷移時の forward制御を見直す必要があります。 具体的には、forward.jspでcommand=NEWの場合に、自動的にresult.jspに遷移するのではなく、query.jspで 自動サブミットさせることで、これをトリガとして、result.jspを表示することで、query.jspとresult.jspの 整合性をあわせることができます。 但し、この方法も、result.jspのみが存在し、query.jspが存在しない場合に、result.jspが開かなくなる可能性があります。 つまり、JSPを変えないと言う前提の上では、対応は困難であるため、command=NEWに対する対応は見送っています。 org.opengion.hayabusa.taglib.ColumnTag.doStartTag() org.opengion.hayabusa.taglib.SelectTag.doStartTag() [ポップアップボタン・閉じるボタン標準化] ポップアップ画面で、閉じるボタンを標準化します。 閉じるボタンを表示するには、query.jspでpopup_info.jsp、または、popup_info.jsp_minを インクルードして下さい。 (ポップアップ画面の標準雛形もこれをインクルードするように変更しています。) /jsp/custom/popup_info.jsp /jsp/custom/popup_info.jsp_min /jsp/image/close.gif /jsp/image/close_min.gif /gf/jsp/GF9510/query.jsp [1行用のヘッダー追加] クエリ部分に表示される標準のヘッダー(query_info.jsp)について、表示領域の高さを縮小したものを 標準として提供します。 これを利用するには、custom/query_info.jsp_minを標準のcustom/query_info.jspと置き換えて下さい。 /jsp/custom/query_info.jsp_min /jsp/image/separator_min /jsp/image/back_min.gif [Calc帳票・シートブレイク機能追加] Calc帳票システムで、データを埋め込む雛形シートを動的に切り替えることのできる機能を追加します。 この機能を利用するには、以下の手順を踏む必要があります。 @1つの雛形ファイルに対して、複数シートSHEET1,SHEET2を定義しておく A帳票レイアウト定義で、(SHEETBREAK)という項目を予め用意しておき、その項目の値としてシート名 (SHEET1,SHEET2)を定義しておく。 これにより、SHEETBREAKのシート名がブレイクしたタイミングでデータを埋め込むシートを切り替える ことができます。 org.opengion.hayabusa.report2.OdsContentParser.SHEET_BREAK org.opengion.hayabusa.report2.OdsContentParser.execContent() org.opengion.hayabusa.report2.OdsContentParser.getBodyValue(String, int) TEST10.ods シートブレイク用のサンプル追加 [Calc帳票システム・バグ修正] Calc帳票システムで雛形シートにセル参照(セルBをセルAの参照にするなど)を行った際に、正しくパース されない不具合を修正します。 org.opengion.hayabusa.report2.OdsContentParser.replaceOoocError(String) [tableUpdateタグ・SQLインジェクション対策対応] tableUpdateタグでSQLインジェクション対策を行うための、quotCheck属性が利用できるようにします。 但し、現状のJSPとの互換性を考慮し、初期値は、false(SQLインジェクションチェックを行わない)です。 hybs-taglib.tld org.opengion.hayabusa.taglib.TableUpdateTag.doStartTag() org.opengion.hayabusa.taglib.TableUpdateTag.release2() org.opengion.hayabusa.taglib.TableUpdateTag.setQuotCheck(String) [ヘッダーソート機能・バグ修正] ヘッダーソート後に画面遷移し、戻ってきた際にstartNoがクリアされるバグを修正します。 org.opengion.hayabusa.taglib.ViewFormTag.doStartTag() [画面遷移なし登録・バグ修正] 画面遷移なし登録で、行が1件もない状態で追加ボタンを押した際、update.jspのviewの設定で、 useHilightRowがfalseになっていると正しく行が表示されないバグを修正します。 これは、update.jspから返されるHTMLをresult.jspに挿入する際に、「div onclick="hilightRow」 という文字列でマッチさせていたためですが、useHilightRowをoffにすると、このdivが出力されない ために、マッチせず、データが表示されていませんでした。 今回の対応では、useHilightRowでも、
    がSQL文中で利用できないバグを修正 gf/jsp/GF6410 hybs-taglib.tld valueタグ、columnタグにxssCheck属性を追加 jsp/common/htmlend.jsp jsp/common/eventColumnSql.jsp 廃止 jsp/common/eventColumn.jsp 新規追加 jsp/common/eventColumn.js jsp/common/eventColumnMarker.jsp jsp/common/jquery/jquery.js 1.4.2にバージョンアップ org.opengion.hayabusa.common.HybsSystem.EVENT_COLUMN_CLASS org.opengion.hayabusa.common.HybsSystem.EVENT_COLUMN_WRITABLE org.opengion.hayabusa.common.HybsSystem.EVENT_COLUMN_ID org.opengion.hayabusa.common.HybsSystem.EVENT_COLUMN_INITVAL org.opengion.hayabusa.db.DBEventColumn 新規追加 org.opengion.hayabusa.db.DBColumn.DBColumn(String, ColumnData, LabelData, CodeData) org.opengion.hayabusa.db.DBColumn.getRawParam() 廃止 org.opengion.hayabusa.db.DBColumn.getRawEditParam() org.opengion.hayabusa.db.DBColumn.getRawRendParam() org.opengion.hayabusa.db.DBColumnConfig.getRawParameter() 廃止 org.opengion.hayabusa.db.DBColumnConfig.getRawEditParameter() org.opengion.hayabusa.db.DBColumnConfig.getRawRendParameter() org.opengion.hayabusa.db.DBColumnConfig.setRawParameter(String) org.opengion.hayabusa.db.DBColumn.getEventColumnTag(String, String, boolean) org.opengion.hayabusa.db.DBColumn.getEventColumnTag(String, String, int, boolean) org.opengion.hayabusa.html.StringFormat org.opengion.plugin.columnから移動 org.opengion.hayabusa.taglib.CommonTagSupport.addEventColumn(String, String) 廃止 org.opengion.hayabusa.taglib.CommonTagSupport.addEventColumn(String, String, String, String, String, String) org.opengion.hayabusa.taglib.CommonTagSupport.addEventColumn(DBColumn) org.opengion.hayabusa.taglib.ColumnTag.doAfterBody() org.opengion.hayabusa.taglib.ColumnTag.release2() org.opengion.hayabusa.taglib.ColumnTag.setXssCheck(String) org.opengion.hayabusa.taglib.ColumnTag.getInsertTag(DBColumn, String) org.opengion.hayabusa.taglib.ColumnEditorTag.doAfterBody() org.opengion.hayabusa.taglib.ColumnEditorTag.setParameter(String) org.opengion.hayabusa.taglib.QueryOptionTag.doAfterBody() org.opengion.hayabusa.taglib.QueryOptionTag.doEndTag() org.opengion.hayabusa.taglib.QueryOptionTag.release2() org.opengion.hayabusa.taglib.QueryOptionTag.getEventColumn() 廃止 org.opengion.hayabusa.taglib.SelectTag.makeTag() org.opengion.hayabusa.taglib.SelectTag.setRawParam(String) org.opengion.hayabusa.taglib.SelectTag.release2() org.opengion.hayabusa.taglib.ValueTag.doStartTag() org.opengion.hayabusa.taglib.ValueTag.doAfterBody() org.opengion.hayabusa.taglib.ValueTag.doEndTag() org.opengion.hayabusa.taglib.ValueTag.release2() org.opengion.hayabusa.taglib.ValueTag.setXssCheck(String) org.opengion.hayabusa.taglib.ValueTag.commandExec(String) org.opengion.hayabusa.taglib.ValueTag.getSQLAttribute(DBTableModel) org.opengion.hayabusa.taglib.ViewFormTag.doEndTag() org.opengion.plugin.view.AbstractViewForm.init(DBTableModel) org.opengion.plugin.view.AbstractViewForm.getRendererValue(int, int, String) org.opengion.plugin.view.AbstractViewForm.getEditorValue(int, int, String) org.opengion.plugin.view.AbstractViewForm.setColumnWritable(String) org.opengion.plugin.view.AbstractViewForm.setNoWritable(String) org.opengion.plugin.view.AbstractViewForm.setUseEventCols() org.opengion.plugin.column.AbstractEditor.AbstractEditor(DBColumn) org.opengion.plugin.column.AbstractEditor.getValue(String) org.opengion.plugin.column.AbstractEditor.getValue(int, String) org.opengion.plugin.column.AbstractEditor.createEventColumnJS(String, String, int, String) 廃止 org.opengion.plugin.column.Editor_AUTOAREA.getValue(String) org.opengion.plugin.column.Editor_AUTOAREA.getValue(int, String) org.opengion.plugin.column.Editor_DBMENU.Editor_DBMENU(DBColumn) org.opengion.plugin.column.Editor_DBMENU.getValue(String) org.opengion.plugin.column.Editor_DBMENU.getValue(int, String) org.opengion.plugin.column.Editor_DBMENU.getOption(TagBuffer, String, boolean) org.opengion.plugin.column.Editor_DBRADIO.getValue(int, String) org.opengion.plugin.column.Editor_DBRADIO.getValue(String) org.opengion.plugin.column.Editor_HIDDEN.Editor_HIDDEN(DBColumn) org.opengion.plugin.column.Editor_INDBMENU org.opengion.plugin.column.Editor_INDBMENU.getOption(TagBuffer, String) org.opengion.plugin.column.Editor_MENU.Editor_MENU(DBColumn) org.opengion.plugin.column.Editor_MENU.getValue(String) org.opengion.plugin.column.Editor_MENU.getValue(int, String) org.opengion.plugin.column.Editor_MENU.getValue(int, String) org.opengion.plugin.column.Editor_QUERY.getValue(int, String) org.opengion.plugin.column.Editor_QUERY.getValue(String) org.opengion.plugin.column.Editor_TEXTAREA.getValue(String) org.opengion.plugin.column.Editor_TEXTAREA.getValue(int, String) org.opengion.plugin.column.Renderer_DBMENU.getValue(int, String) org.opengion.plugin.column.Renderer_DBMENU.getValue(String) org.opengion.plugin.column.Renderer_FORM org.opengion.plugin.column.Renderer_FORM.getValue(String) org.opengion.plugin.column.Renderer_QUERY org.opengion.plugin.column.Renderer_QUERY.getValue(String) [左右分割画面不具合対応] 左右分割画面で、右側のビューに他画面のリンク・マーカーがセットされてしまうバグを修正します。 これは、右側のビュー表示のcommandが"VIEW"で設定されていることにより、他画面のビュー情報のキャッシュが 復元されてしまうため発生します。(通常、右側のビューは、viewFormId="viewX2"となっており、他画面で 同じviewFormIdが存在すると、復元されてしまう) 今回の対応では、ビュー情報をキャッシュから復元する条件を厳しくし、同一画面IDのキャッシュ情報のみしか 復元しないようにします。 org.opengion.hayabusa.html.ViewForm.setGamenId(String) org.opengion.hayabusa.html.ViewForm.getGamenId() org.opengion.plugin.view.AbstractViewForm.setGamenId(String) org.opengion.plugin.view.AbstractViewForm.getGamenId() org.opengion.hayabusa.taglib.ViewFormTag.doStartTag() [og:forwargタグ改善] og:forwardタグでGAMENIDをパラメーターとして渡すようにします。 gamenId属性で指定された場合はその画面IDが、指定されていない場合は、自身の画面IDが渡されます。 また、過去との互換性を考慮し、keys属性にGAMENIDが含まれている場合は、valsで指定されている 画面IDが優先されます。 org.opengion.hayabusa.taglib.ForwardTag.doEndTag() [Calc帳票64Bit対応] Calc帳票が64Bit版Javaでも動作するように対応します。 但し、64Bit版Javaで動作させる場合は、システムリソースのREPORT_OOO_CONN_TYPEを"TCP"に設定した上で、 "そのサーバー上で動作する他のCalc帳票と重複しない"ようにREPORT_OOO_MIN_PORTを設定する必要があります。 REPORT_OOO_MIN_PORTについては、「プロセス毎に割り当てるポート番号を初期値」ですので、REPORT_OOO_MIN_PORT を基準として、プロセスの最大数分までのポート番号は予め明けて置いてください。 ---------------------------------------------------------------------------------------------------- 設定例) REPORT_OOO_CONN_TYPE = "TCP"、REPORT_OOO_MIN_PORT = "8100"、REPORT_MAX_PROCESS_COUNT = "256" の場合、8100から、最大で8355までのポート番号が自動で割り振られます。 ---------------------------------------------------------------------------------------------------- 但し、プロセスを起動しようとしたポート番号が、他のプロセス(OpenOffice以外のプロセスを含む)で、 既にバインド(使用中)の場合は、そのポート番号をスキップした上で空きポートを検索します。 org.opengion.hayabusa.common.SystemData.REPORT_OOO_CONN_TYPE org.opengion.hayabusa.common.SystemData.REPORT_OOO_MIN_PORT org.opengion.hayabusa.report2.ProcessFactory.ProcessPool.createInstance() org.opengion.hayabusa.report2.SOfficeProcess.ENV_DIR org.opengion.hayabusa.report2.SOfficeProcess.bootstrap() org.opengion.hayabusa.report2.SOfficeProcess.execOffice(String, String, int) org.opengion.hayabusa.report2.SOfficeProcess.getConnParam(String) org.opengion.hayabusa.report2.SOfficeProcess.getProcParam(String) org.opengion.hayabusa.report2.SOfficeProcessTcp 新規作成 [og:popupタグ改善] og:popupタグでポップアップ先に渡すコマンドを指定できるようにします。 従来は、JavaScriptでcommand="NEW"を固定で渡していましたが、今回の対応で、これを引数として 渡せるようにします。 hybs-taglib.tld jsp/common/ogPopup.js org.opengion.hayabusa.taglib.PopupTag.release2() org.opengion.hayabusa.taglib.PopupTag.setCommand(String) org.opengion.hayabusa.taglib.PopupTag.makePopup(boolean) [og:errorMessageタグ改善] エラー・ワーニングメッセージの後に改行を入れるようにします。 「登録しました。」(displayMsg)の後には、改行が入っているため、これに仕様を合わます。 org.opengion.hayabusa.taglib.ErrorMessageTag.makeTitle() 5.1.6.0 (2010/05/01) [docConvertタグ追加] xlsやodsなど各種ファイルを変換するためのタグを追加します。 --- Javadocより抜粋 ------------------------------------------------------------ 変換を行うことのできる入出力のフォーマット以下の通りです。 [対応フォーマット] 入力[Calc(ODS) ,Excel(XLS) ] -> 出力[Calc(ODS) ,Excel(XLS) ,PDF] 入力[Writer(ODT) ,Word(DOC) ] -> 出力[Writer(ODT) ,Word(DOC) ,PDF] 入力[Impress(ODP),PowerPoint(PPT)] -> 出力[Impress(ODP),PowerPoint(PPT),PDF] -------------------------------------------------------------------------------- hybs-taglib.tld jsp/GF6420 サンプル画面追加 org.opengion.hayabusa.taglib.DocConvertTag org.opengion.hayabusa.report2.ExecProcess.output(String...) org.opengion.hayabusa.report2.OdsConverter 廃止 org.opengion.hayabusa.report2.DocConverter 新規追加 [リアルタイム帳票・マルチスレッド対応] 画面からのリアルタイム帳票機能のマルチスレッド対応を行います。 具体的には、リクエスト毎のスレッドを生成することで、マルチスレッド対応を行います。 但し、デーモン起動時とは異なり、生成されたスレッドは、処理後、WAITすることなく、 即座にスレッドを終了します。 org.opengion.hayabusa.report2.ExecThread.finishAfterExec() org.opengion.hayabusa.report2.ExecThreadManager.insertQueueOnNewThread(ExecQueue) org.opengion.hayabusa.report2.QueueManager_DIRECT.create() [DBTypeの初期値] DBTypeの初期値を "XK" とし、各種設定時にこれを使用するように変更します。 org.opengion.hayabusa.db.DBType#DEF_TYPE = "XK" ; 追加 org.opengion.hayabusa.db.DBTypeFactory#newInstance( final String id ) org.opengion.hayabusa.db.DBColumnConfig#DBColumnConfig( final String name ) org.opengion.hayabusa.db.DBColumnConfig#DBColumnConfig( final String lang , ・・・ org.opengion.hayabusa.db.DBColumnConfig#setDbType( final String dbType ) org.opengion.hayabusa.resource.ColumnData#ColumnData( final String[] data ) [TableWriterのDbType判定方法の初期化] TableWriter で、DbType が、NVAR や S9,R などの場合の処理分岐を、 事前にチェックしておく方法に変更します。 現時点で、TableWriter_Default 、TableWriter_Renderer などで、判定方法(の順番)の 相違による動作の違い(先のDBTypeがnullの場合のエラーの発生の仕方が異なる) が発生しているため。 処理的にも、データ件数分の判定を行っているため、事前にカラム作成時に 判定しておくほうが効率的にもなります。 org.opengion.plugin.io.TableWriter_Default#createDBColumn() org.opengion.plugin.io.TableWriter_Default#writeData( final DBTableModel table,final PrintWriter writer ) org.opengion.plugin.io.TableWriter_Default#writeData( final DBTableModel table,final PrintWriter writer ) org.opengion.plugin.io.TableWriter_CSV#writeData( final DBTableModel table,final PrintWriter writer ) org.opengion.plugin.io.TableWriter_CSV2#writeData( final DBTableModel table,final PrintWriter writer ) org.opengion.plugin.io.TableWriter_Data#writeData( final DBTableModel table,final PrintWriter writer ) org.opengion.plugin.io.TableWriter_Data2#writeData( final DBTableModel table,final PrintWriter writer ) org.opengion.plugin.io.TableWriter_Renderer#writeData( final DBTableModel table,final PrintWriter writer ) org.opengion.plugin.io.TableWriter_T#writeData( final DBTableModel table,final PrintWriter writer ) org.opengion.plugin.io.TableWriter_XML#writeData( final DBTableModel table,final PrintWriter writer ) org.opengion.hayabusa.io.TableWriter#NUMBER_TYPE_LIST 削除 [readDBTableのエラーチェック強化] 読み取るファイルが、0件の場合で、かつ、#NAME が見つからない、または、 columns で設定されていない場合(つまり、DBTableModel が作成されなかった場合)は、 エラーにします。 org.opengion.plugin.io.TableReader_Default#readDBTable( final BufferedReader reader ) [readDBTableのcolumns対応] TableReader_Default.java などに実装されている、columns が設定されている場合は、 その情報を使用する対応を実装します。 あと、useNumber 属性が考慮されていなかったので、それも対応しておきます。 org.opengion.plugin.io.TableReader_Excel$HeaderData#setColumns( final String columns ) org.opengion.plugin.io.TableReader_Excel$HeaderData#setUseNumber( final boolean useNumber ) org.opengion.plugin.io.TableReader_Excel#readDBTable() org.opengion.plugin.io.TableReader_JExcel$JxlHeaderData#setColumns( final String columns ) org.opengion.plugin.io.TableReader_JExcel$JxlHeaderData#setUseNumber( final boolean useNumber ) org.opengion.plugin.io.TableReader_JExcel#readDBTable() useNumber 属性を考慮 org.opengion.plugin.io.TableReader_Calc#makeHeaderFromClms() [ReadTable系 機能追加] ReadTable系で、入力データの読み飛ばし機能を追加します。 タグ属性は、skipRowCount とします。 org.opengion.hayabusa.taglib.ReadTableTag#release2() org.opengion.hayabusa.taglib.ReadTableTag#setSkipRowCount( final String count ) org.opengion.hayabusa.taglib.ReadTableTag#create( final BufferedReader out ) org.opengion.hayabusa.io.TableReader#setSkipRowCount( final String count ) org.opengion.hayabusa.io.TableReader#getSkipRowCount() org.opengion.hayabusa.io.TableReader#readDBTable( final BufferedReader reader ) org.opengion.plugin.io.TableReader_Calc#makeDBTableModel( final RowInfo[] rowInfoList ) org.opengion.plugin.io.TableReader_Excel#readDBTable() org.opengion.plugin.io.TableReader_JExcel#readDBTable() 動作確認用に、JSPを修正します。 jsp/GF6370/query.jsp jsp/GF6370/entry.jsp jsp/GF6370/result.jsp [forwardタグ・日本語ファイル名の文字化け対応(Firefox対応)] Firefoxでforwardタグ経由で、日本語ファイル名のファイルをダウンロードした場合に、文字化けが発生する バグを修正します。 このバグは、ブラウザ毎に日本語ファイル名の取り扱いが異なるためです。(詳細は以下を参照下さい) -------------------------------------------------------------------------------------------- [日本語ファイル名でダウンロードさせる方法] (1)IEの場合 @ファイル名(URL)に直接日本語(Shift_JIS)を指定。 AContent-Dispositionヘッダに、UTF-8でURLエンコード(x-www-form-urlencoded) された日本語を指定する。 (※ただし、Content-Dispositionヘッダのファイル名に拡張子がふくまれない 場合は、URLでコードされないため、%xx...のままのファイル名でダウンロード される) (2)FireFoxの場合 @Content-Dispositionヘッダに、UTF-8でMIMEエンコーディングを指定する -------------------------------------------------------------------------------------------- org.opengion.hayabusa.taglib.ForwardTag.doEndTag() [リアルタイムチェック・jQuery1.4対応] リアルタイムチェック機能で、エラー発生後、正しいデータを入力してもエラーバルーンが消えないバグを 修正します。 jsp/common/realTimeCheck.js [画面項目並べ替え機能対応] ユーザー自身が画面の項目の並び順及び、項目の表示/非表示を設定することのできる機能を追加します。 詳細は、別途マニュアル及び設計資料を用意しますので、そちらを参照して下さい。 taglib.tld jsp/common/hilightRow.js jsp/common/default.css jsp/common/gamen/14_EDIT/ jsp/common/fileDownload.jsp org.opengion.hayabusa.common.HybsSystem.USER_VIEW_CLMS org.opengion.hayabusa.db.DBLastSql.isTableMatch(String, String) org.opengion.hayabusa.db.DBLastSql.setViewNotEditable() org.opengion.hayabusa.db.DBLastSql.isViewEditable() org.opengion.hayabusa.db.DBLastSql.setViewClmNames(String) org.opengion.hayabusa.db.DBLastSql.getViewClmNames() org.opengion.hayabusa.taglib.FileUDTag.doStartTag() org.opengion.hayabusa.taglib.CommonTagSupport.release2() org.opengion.hayabusa.taglib.CommonTagSupport.startQueryTransaction(String) org.opengion.hayabusa.taglib.CommonTagSupport.commitTableObject(String, DBTableModel) org.opengion.hayabusa.taglib.CommonTagSupport.useMainTrans(boolean) org.opengion.hayabusa.taglib.QueryTag.doStartTag() org.opengion.hayabusa.taglib.QueryTag.release2() org.opengion.hayabusa.taglib.QueryTag.setMainTrans(String) org.opengion.hayabusa.taglib.QueryTag.doAfterBody() org.opengion.hayabusa.taglib.ReadTableTag.doStartTag() org.opengion.hayabusa.taglib.ReadTableTag.release2() org.opengion.hayabusa.taglib.ReadTableTag.setMainTrans(String) org.opengion.hayabusa.taglib.DBMetaDataQueryTag.doStartTag() org.opengion.hayabusa.taglib.DBMetaDataQueryTag.release2() org.opengion.hayabusa.taglib.DBMetaDataQueryTag.setMainTrans(String) org.opengion.hayabusa.taglib.LDAPQueryTag.doStartTag() org.opengion.hayabusa.taglib.LDAPQueryTag.release2() org.opengion.hayabusa.taglib.LDAPQueryTag.setMainTrans(String) org.opengion.hayabusa.taglib.RegistryQueryTag.doStartTag() org.opengion.hayabusa.taglib.RegistryQueryTag.release2() org.opengion.hayabusa.taglib.RegistryQueryTag.setMainTrans(String) org.opengion.hayabusa.taglib.TableMergeTag.doStartTag() org.opengion.hayabusa.taglib.TableMergeTag.release2() org.opengion.hayabusa.taglib.TableMergeTag.setMainTrans(String) org.opengion.hayabusa.taglib.URLConnectTag.doStartTag() org.opengion.hayabusa.taglib.URLConnectTag.release2() org.opengion.hayabusa.taglib.URLConnectTag.setMainTrans(String) org.opengion.hayabusa.taglib.ViewFormTag.doStartTag() org.opengion.hayabusa.taglib.ViewFormTag.doEndTag() org.opengion.hayabusa.taglib.ViewFormTag.checkUseSeqClmTable() org.opengion.hayabusa.taglib.ViewFormTag.setViewClms() org.opengion.hayabusa.html.ViewForm.getViewClms() org.opengion.hayabusa.html.ViewForm.isEditable() org.opengion.plugin.view.AbstractViewForm.getViewClms() org.opengion.plugin.view.AbstractViewForm.isEditable() org.opengion.plugin.view.ViewForm_HTMLFormatTable.getViewClms() org.opengion.plugin.view.ViewForm_HTMLCustomTable.getViewClms() org.opengion.plugin.view.ViewForm_HTMLCustomTreeBOM.getViewClms() org.opengion.plugin.view.ViewForm_CustomData.isEditable() org.opengion.plugin.view.ViewForm_HTMLCalendar.isEditable() org.opengion.plugin.view.ViewForm_HTMLCrossTable.isEditable() org.opengion.plugin.view.ViewForm_HTMLDynamic.isEditable() org.opengion.plugin.view.ViewForm_HTMLEntry.isEditable() org.opengion.plugin.view.ViewForm_HTMLFormatTextField.isEditable() org.opengion.plugin.view.ViewForm_HTMLGanttTable.isEditable() org.opengion.plugin.view.ViewForm_HTMLRotationTable.isEditable() org.opengion.plugin.view.ViewForm_HTMLSimpleList.isEditable() org.opengion.plugin.view.ViewForm_HTMLSeqClmTable.getViewClms() org.opengion.plugin.view.ViewForm_HTMLTextField.isEditable() [リソース登録画面不具合修正] カラム、画面、コードリソースの画面で行を選択しない状態で登録を行うと、ラベルリソースに登録されない 不具合を修正します。 ge/jsp/GE0002/entry.jsp ge/jsp/GE0003/entry.jsp ge/jsp/GE0004/entry.jsp [画面帳票発行機能対応] 画面から帳票発行することのできる機能を追加します。 この機能は、Calc帳票システムをベースとして、ユーザー自身が画面に対して帳票雛形を登録し、その雛形に 従って、画面の検索結果を出力するための機能です。 詳細は、別途マニュアルを用意しますので、そちらを参照して下さい。 taglib.tld fileUDタグのeditImg追加、readTableのscope、valueタグのtblScopeを追加 jsp/image/edit.png jsp/common/fileDownload.jsp jsp/common/fileDownloadListDef.txt jsp/common/gamen/14_EDIT WEB-INF/web.xml [ContextRoot]/report以下を公開できるように設定変更 org.opengion.hayabusa.taglib.FileUDTag.doEndTag() org.opengion.hayabusa.taglib.FileUDTag.setEditImg( String ) [ユーザー永続化テーブル(GE20)の定義変更] ユーザー永続化テーブル(GE20)の定義変更でパラメータの値(PARAM)のNOT NULL制約を解除します。 ge/changes/5160/alter(GE)_GE20.txt [画面自動作成対応] 画面作成を行う画面JSPをgf/jsp以下から、common以下に移動します。また、これに伴い、既存のJSPから 動的にJSPを作成するための画面を廃止します。 gf/jsp/GF2200 廃止 gf/jsp/GF2201 廃止 gf/jsp/GF2202 廃止 gf/jsp/GF2203 廃止 gf/jsp/GF2251 廃止 gf/jsp/GF2252/query.jsp gf/jsp/GF2253/query.jsp common/11_GUIMAKE 新規画面(共通) common/12_GUIMAKEGUI 新規画面(共通) common/13_GUILIST 新規画面(共通) common/jquery/jquery-ui.js 新規追加(現時点では、headタグでの読み込みは行いません) customUserDef/ 作成した画面のJSPを置くフォルダ [DB定義DB改善] DB定義DBでテーブル間の関連情報(テーブルJOINを行うための項目の関連情報)を管理できるようにします。 GF2041(テーブル関連) 新規画面 GF08(テーブル関連定義) 新規テーブル [Calc出力対応] Calc出力用のwriterクラスを追加します。また、CalcDefのwriterクラスを使用することで、帳票雛形を作成する ための元情報({@XXXX_n})を指定行数分列挙したファイルを出力を出力することができます。 org.opengion.plugin.io.TableWriter_Calc org.opengion.plugin.io.TableWriter_CalcDef odfdom.jar Calc出力対応 xercesImpl.jar Calc出力対応 [機能追加] DBTableModelの行を物理削除します。 通常のデータベース等で削除する場合は、DELETE行も残しておかないと、どの行を削除するか 判らなくなります。また、アプリケーションによっては、削除ではなく、フラグだけを立てる ケースもあるため、現在の commend="DELETE" では、論理削除+値の書き換えも可能になっています。 ここでの物理削除は、WriteTable など、ファイル出力時には、その行そのものをなくしておくほうが 良いケースがあるためです。 org.opengion.hayabusa.taglib.EntryTag.commandExec( final String command ) org.opengion.hayabusa.taglib.EntryTag.realDelete() gf/jsp/GF6370/delete.jsp [FileUtil改善] 内部構造で、copy等の機能を見直しました。 以前は、バイナリファイルの 改行コードをCR+LF に統一する処理を、copy メソッド中に 入れていましたが、メソッド自体を完全に分離しました。 また、copy メソッドの第3引数に、keepTimeStamp=true 属性を追加し、コピー元の ファイルのタイムスタンプを、コピー先にもセットする機能を追加しました。 org.opengion.fukurou.util.FileUtil#copy( final String fromFile,final String toFile ) org.opengion.fukurou.util.FileUtil#copy( final String fromFile,final String toFile,final boolean keepTimeStamp ) org.opengion.fukurou.util.FileUtil#copy( final File fromFile,final File toFile ) org.opengion.fukurou.util.FileUtil#copy( final File fromFile,final File toFile,final boolean keepTimeStamp ) org.opengion.fukurou.util.FileUtil#changeCrLfcopy( final File fromFile,final File toFile ) org.opengion.fukurou.util.FileUtil#copy( final InputStream input,final OutputStream output ) org.opengion.fukurou.util.FileUtil#copyDirectry( final String fromDir, final String toDir ) org.opengion.fukurou.util.FileUtil#copyDirectry( final File fromDir, final File toDir ) org.opengion.fukurou.util.FileUtil#copyDirectry( final File fromDir, final File toDir, final boolean keepTimeStamp ) org.opengion.fukurou.process.Process_FileCopy#action( final LineModel data ) サンプルの実行に、mainメソッドを修正しています。 org.opengion.fukurou.util.FileUtil#main( final String[] args ) [ファイル伝送関係 新規追加] ファイル伝送に関するクラスを新規に追加します。 ※ ファイル伝送関連クラスの インターフェース定義 org.opengion.fukurou.util.ConnectIF.java ※ ファイル伝送関連クラスの アブストラクトクラス定義 org.opengion.fukurou.util.AbstractConnect.java ※ ファイル伝送関連クラスで、FTP伝送クラス定義 org.opengion.fukurou.util.FTPConnect.java ※ ファイル伝送関連クラスで、Samba伝送クラス定義 org.opengion.fukurou.util.SMBConnect.java ※ ファイル伝送関連クラスで、SFTP伝送クラス定義 org.opengion.fukurou.util.SFTPConnect.java ※ 標準ライブラリ追加 jsch-0.1.42.jar FTP/SMP対応 commons-net-ftp-2.0.jar FTP/SMP対応 jcifs-1.3.14.jar FTP/SMP対応 [Process_FileFtp 新規追加] org.opengion.fukurou.process.Process_FileFtp.java [ヘッダーソート機能・バグ修正] 左右分割を行っている画面で、ヘッダーソート機能を利用してソートを行うと、左のビューと 右のビューでデータの並び順が一致しなくなるバグを修正します。 これは、左右のそれぞれのビューで、ヘッダーソートが処理されてしまうことが原因です。 今回の対応では、1リクエストにおいて、1つのテーブルモデルに対してはヘッダーソートが1回しか 処理されないように対応します。 org.opengion.hayabusa.common.HybsSystem.VIEW_SORT_KEY org.opengion.hayabusa.taglib.ViewFormTag.doStartTag() [GF・DB定義変更] @GF90 に 参照PGID:SPGID , 画面編集FG:FGGAMEN 追加 alter(GF)_GF90.txt @GF91 に AS_TABLE テーブル別名 , SEQ 表示順 追加 gf/changes/5160/alter(GF)_GF91.txt @GF92 に USE_ORDER 表示順指定追加 AGF92 に AS_CLM カラム別名追加 BGF92 に JOINTYPE 連携タイプ追加 CGF92 に AS_TABLE テーブル別名追加 DGF92 に CLS_NAME DBクラス追加 gf/changes/5160/alter(GF)_GF92.txt [DB定義DBバグ修正] テーブルカラムの画面で、新規にカラムの追加ができないバグを修正します。 gf/jsp/GF2020/entry.jsp [valueタグ・バグ修正] valueタグで、actipn="ALL_APPEND"を使用した際に、選択行がない場合に処理されないバグを修正します。 org.opengion.hayabusa.taglib.ValueTag.setTableAttribute(DBTableModel, String, String) org.opengion.hayabusa.taglib.ValueTag.getTableAttribute(DBTableModel, String, String) [ヘッダー固定バグ修正] ヘッダー固定で、段組表示を行った状態で、ポップアップエラーメッセージをドラッグした際に、 ヘッダー固定が崩れてしまうバグを修正します。 これは、IEで段組表示を行う際のヘッダー部分の高さの設定に問題があったためです。 IEの場合、段組表示(正確には、body部分とheader部分のcolspan、rowspanの構造が異なる場合) の場合に、ヘッダー部分の各項目の幅を計算するため、ヘッダー固定を行うためにコピーしたヘッダー にデータの1行目を付加した上で、幅を計算しています。但し、このヘッダーにコピーしたデータ部分は、 画面表示には不要なため、今までは、body部分のtopに1行目の高さ分のマイナス値を与えることで ヘッダーにコピーされたデータ部分が表示されないように対応していました。但し、この場合に、 ヘッダー部分の高さを明示して指定していなかったため、リサイズが発生したタイミングで、 レイアウトが崩れてしまうことがありました。 今回の対応では、body部分にマイナス値のtopを指定するのではなく、header部分に表示に必要な 高さを明示的に指定するに変更します。 jsp/common/scrollBar2.js [画面帳票作成機能対応] @帳票雛型で行番号・ページ番号を出力できるようにします。 具体的な方法として、行番号は、{@ROWNO_n} (nは、通常のカラムと同じ配列番号)、 ページ番号は{@PAGENO}を指定します。 org.opengion.hayabusa.report2.OdsContentParser.getHeaderFooterValue(String) org.opengion.hayabusa.report2.OdsContentParser.getBodyValue(String, int) ACalc形式で出力するためのWriterClassを追加します。 org.opengion.hayabusa.taglib.WriteTableTag.doEndTag() org.opengion.hayabusa.taglib.WriteTableParamTag.KEY_LIST BODFDOMで出力されたODSファイルをパースできるように、パーサーを改善します。 org.opengion.hayabusa.report2.OdsContentParser.execMeta() [ポップアップエラー・バグ修正] headタグで、noTransition="true"または、useAjaxSubmit="true"を指定した際に、エラー時に表示される ポップアップがドラッグできないバグを修正します。 jsp/common/jquery/jqDnR.js [URLConnectタグ・DBTableModel変換機能拡張] URLConnectタグで結果として返されたXMLをDBTableModelに変換する機能で、rowKeyに指定されたタグの 親タグ名を取得できるように対応します。 これは、1つのXML内に 123 ABC XYZ という構造があった場合に、rowKeyにITEMを指定するだけでは、その後の処理で、それが、group1に属する ものか、group2に属するもの何かが判別できないため、このgroup1,group2をDBTableModelにセットできる ようにします。 具体的には、colKeysで、"PARENT_TAG","PARENT_FULL_TAG"を指定すると、それぞれ直近の親タグ、及び rowKeyより上の全ての親タグ名を連結した文字列をDBTableModel上にセットするようにします。 org.opengion.fukurou.xml.XML2TableParser.getCpParentTagName(String) org.opengion.fukurou.xml.XML2TableParser.setTableCols(String, String[]) org.opengion.fukurou.xml.XML2TableParser.startElement(String, String, String, Attributes) org.opengion.fukurou.xml.XML2TableParser.getColIdx(String) [URLConnectタグ・バグ修正] URLConnectタグでPOSTデータがエンコードされないバグを修正します。 また、これと同時にリクエスト、レスポンスのデータの入出力のデフォルトエンコードとして "UTF-8"を設定します。さらにこのエンコード指定をurlConnectタグのencode属性で指定できる ようにします。 hybs-taglib.tld org.opengion.hayabusa.taglib.URLConnectTag.release2() org.opengion.hayabusa.taglib.URLConnectTag.connect() org.opengion.hayabusa.taglib.URLConnectTag.setEncode(String) org.opengion.fukurou.util.URLConnect.connect() [ViewForm_HTMLTable改善] caption 属性が使われていないため、削除します。 org.opengion.plugin.view.ViewForm_HTMLTable#clear() { org.opengion.plugin.view.ViewForm_HTMLTable#getTableTag() { org.opengion.plugin.view.ViewForm_HTMLTable#setCaption( final String caption ) int[] rowNo 宣言が使われていないため、削除します。 [ユーザー単位カラム表示編集機能] ユーザー単位に表示するカラムの順番、表示可非を指定できるように対応します。 標準的な、ViewForm_HTMLTable に対応すると、カラムのアドレス指定が発生するため、 (言うほどの処理速度低下にはなりませんが)処理クラスを分けておきます。 ここでは、ViewForm_HTMLSeqClmTable クラスを新規に追加します。 具体的には、setColumnDisplay( final String columnName ) に、指定された順番に 表示するというHTMLFormatTable の簡易版として用意します。 # setColumnDisplay は、表示するカラムだけを指定していますが、このクラスでは、 # 表示順も指定するという機能に格上げします。 org.opengion.plugin.view.ViewForm_HTMLSeqClmTable.java org.opengion.hayabusa.taglib.ViewFormTag#doStartTag() org.opengion.hayabusa.taglib.ViewFormTag#release2() org.opengion.hayabusa.taglib.ViewFormTag#setClmSeqDisplay( final String columnName ) src/META-INF/taglib.tld リクエスト変数 {@SYS.XXXX} に対する値の取得で、パラメータ指定機能を追加します。 引数に、@変数が使用できる用に修正します。具体的には、{@SYS.@XXXX} で、@XXXX をリクエスト変数から取得した値を利用します。 この中で、@GUIID だけが、さらに特殊で、実行中の画面IDを割り当てます。 この @GUIID は、ここまでの文字列を画面IDに置き換えるとともに、それ以降の 文字列を、画面IDに連結させます。 {@SYS.@GUIID_XXXX} ⇒ 画面ID_XXXX 文字列で、システムパラメータ の値を取得します。 org.opengion.hayabusa.taglib.CommonTagSupport#sys( final String key ) 5.1.5.0 (2010/04/01) [Process_FileCopy改善] ファイルのコピー時に、元のファイルのタイムスタンプをコピーする機能を追加します。 -keepTimeStamp パラメータを追加します。初期値は、false(コピー時刻が設定される) org.opengion.fukurou.process.Process_FileCopy#init( final ParamProcess paramProcess ) org.opengion.fukurou.process.Process_FileCopy#action( final LineModel data ) [Webサービス対応] Webサービス対応として、以下の2つの機能を追加します。 @URLConnectタグで、SOAPで提供されているWebサービスを呼び出しできる機能を追加します。 呼び出しを行うには、methodに"SOAP"を指定した上で、EndPointにあたるURLに加えて、 メソッド名(soapMethodName)、メソッド名の名前空間(soapNameSpace)、メソッドパラメータ (keys,vals又は、Body部分でXMLを指定)を指定する必要があります。 AURLConnectタグで、Webサービスを呼び出した返されるXMLを表形式(DBTableModel)及び属性 パラメーターに変換するための機能を追加します。 この機能は、SOAPだけでなく、URLベース(いわゆるREST)のWebサービスでも利用することができます。 DBTableModelへの変換を行うためには、行及び項目のタグをそれぞれ、rowKey、colKeys属性で指定します。 属性パラメーター({@xxx}で取り出せる形式)に変換するためには、キーをrtnKeysで指定します。 hybs-taglib.tld org.opengion.fukurou.util.SOAPConnect 新規追加 org.opengion.fukurou.util.URLConnect.getConnection() org.opengion.fukurou.xml.XML2TableParser 新規追加 org.opengion.hayabusa.taglib.URLConnectTag.doStartTag() org.opengion.hayabusa.taglib.URLConnectTag.doEndTag() org.opengion.hayabusa.taglib.URLConnectTag.release2() org.opengion.hayabusa.taglib.URLConnectTag.setSoapNameSpace(String) org.opengion.hayabusa.taglib.URLConnectTag.setSoapMethodName(String) org.opengion.hayabusa.taglib.URLConnectTag.setTableId(String) org.opengion.hayabusa.taglib.URLConnectTag.setRowKey(String) org.opengion.hayabusa.taglib.URLConnectTag.setColKeys(String) org.opengion.hayabusa.taglib.URLConnectTag.setRtnKeys(String) gf/jsp/GF7020 [ログ出力改善] 出力が2重、3重に出力されるのを回避します。 org.opengion.fukurou.process.MainProcess#init() org.opengion.fukurou.process.MainProcess#run() [JavaDoc コメント修正] org.opengion.fukurou.util.Argument.java [コンパイル Warning 対策] OpenOffice 3.2 での冗長なキャスト警告の抑止を行います。 キャストをはずすと、旧3.1 では、エラーになるため、@SuppressWarnings("cast") で 警告を出さないように修正します。 org.opengion.hayabusa.report2.OdsConverter.java org.opengion.hayabusa.report2.SOfficeProcess.java [画面遷移なし登録・改善] 画面遷移なし登録で、連続して追加・複写ボタンで行追加を行うと、1行→2行→4行と 行数が倍々に増えていきます。 これは、追加・複写処理がチェックされた全ての行を対象として行われるためです。 但し、場合によっては、1行ずつ追加したい場合もあるため、今回はこれに対応します。 具体的には、submitボタンでcommand="INSERTONE"定義すると、1行ずつ行が追加されます。 (repeatCountを指定した場合は、複数行を一度に追加することが可能です。) また、画面遷移なし登録時のINSERTONEの処理では、画面上の行の並びとサーバー上のDBTableModel上の 順番が合うように整合性を取った状態で行の追加を行います。 org.opengion.hayabusa.taglib.EntryTag.commandExec(String) org.opengion.hayabusa.taglib.EntryTag.insertOne() jsp/common/option/jqog.js jsp/common/option/noTransition.js 5.1.4.0 (2010/03/01) [ヘッダー固定バグ修正] ヘッダー固定で、ビューの高さ、幅を%で指定した場合に、正しく動作しない問題に対応します。 これは、%指定が誤ってpx指定として処理されていたためです。 jsp/common/scrollBar2.js [メニューハイライト機能追加] 通常の左メニューで、現在開いている画面メニューがハイライトされるように修正します。 また、これに伴いボタンメニューでのハイライト処理もjQueryで実装するように見直しします。 org.opengion.hayabusa.taglib.TopMenuTag.makeTagMenuString(String, String, String, String, int) org.opengion.hayabusa.taglib.TopMenuTag.setUseButtonScript(String) jsp/menu/multiMenu.jsp jsp/menu/menuHilight.js jsp/menu/menuHilight_button.js [tabLinkタグ・Firefox対応] tabLinkタグの初期タブ表示がFirefoxで動作しない問題に対応します。 これは、Firefoxでaタグに対して、JavaScriptでobj.click()を発行しても、マウスクリックと同等の 処理が行われないためことが原因です。 今回の対応では、aタグのクリックイベント(タブのハイライト)の処理は、obj.onclick()で処理を行い、 リンク先のオープンは、JavaScriptで処理するようにします。 org.opengion.hayabusa.taglib.TabLinkTag.makeTag() jsp/common/tagLink.js [タグリブ検索画面改善] タグリブ検索画面で、タグ名称を大文字・小文字区別なく検索出来るように修正します。 jsp/DOC01/result.jsp jsp/DOC02/result.jsp [標準メニュー改善] 標準で表示される左メニューで、隠しメニューを定義した際に表示される、隠しメニュー表示用の文字 "←・・・→"に、カーソルをあてた際に、通常のリンクと同じようにマウスカーソルの形状が変更される ようにします。 jsp/menu/multiMenu.jsp [Excel出力のカラム指定] writeTable タグで、writerClass が Excel、ExcelRenderer の場合に、 カラム指定できない件の対応を行いました。 今回は、カラム指定と、useNumber 属性の対応と合わせて行いました。 なお、JExcel については、互換性のために残しているだけですので、 今回は、対応していません。 org.opengion.plugin.io.TableWriter_Excel.java org.opengion.plugin.io.TableWriter_ExcelRenderer.java 【ファイル入出力】ダウンロード のJSP を修正します。 主に、この画面で、columns 属性とuseNumber 属性のテストが行えるように 改造しました。 また、writerClass の引数も最新にあわせて用意しました。 gf/jsp/GF6270/query.jsp gf/jsp/GF6270/result.jsp [タブリンク機能バグ修正] タブリンクタグを使用して、タブを複数行に渡って表示している場合に、行の最後に表示されているタブを 選択状態にすると、最後のタブのみが折り返してしまうバグを修正します。 これは、選択状態のタブのみ、タブの下のボーダーを表示していないことが原因でした。 対応しては、選択状態のタブは、下のボーダーをtransparentの状態で表示するようにします。 (つまり、見た目上の変更はありません) jsp/common/default.css [IE8対応] IE8で各画面のフレームの幅を手動で調節した後、QUERY画面の上に表示されている自動調節ボタンを 押すと、正しくフレームの幅が設定されないバグを修正します。 これは、IE8のバグです。http://support.microsoft.com/kb/973210/ja 対応としては、以下の通りです。 @メニューフレームの調整 -> 手動で幅を変更した場合は、強制的にメニューフレームの幅を160pxにします。 Aクエリフレームの調整 -> 手動で幅を変更した場合は、縮小機能が働かないようにします。 (手動で変更する場合は、クエリフレームの狭める場合が大半であると想定され、 縮小機能が働かなくても問題ないはずです) jsp/common/toggleFrame.js [DB定義ファイル取込] DB定義ファイル(GF80)を、DB定義DBテーブル(GF02,GF05,GF06,GF07)に取り込む処理で、 PoatgreSQL では、NULL と ''(空文字列)が異なるため、WHERE条件で 不要な情報まで取り込まれてしまいました。 (これは、前回の修正で、 ( UK is not null and UK != '' ) を、( UK is not null or UK != '' ) に変更したことが原因です。 ORACLE では、AND にすると、0件になり、OR にすると正常に取れていましたが、 PostgreSQLでは、セット方法により、カラムが、空文字で満たされ、OR にすると すべてのデータが引っかかってしまいました。 そこで、( LENGTH(UK) != 0 ) とすることで、空文字以外という事を、明確にします。 GF2060/dbdefIn.jsp [NVL⇒COALESCE 置換] ORACLE固有の関数である、NVL を、ANSI標準の COALESCE に置き換えます。 今回は、コメントアウトされている箇所も置き換えておきます。 gf/jsp/GANTT07/result.jsp gf/jsp/GF2020/entry.jsp gf/jsp/GF2120/GFM0010.jsp gf/jsp/GF2120/GFM0011.jsp gf/jsp/GF9100/result.jsp gf/jsp/GFX013/query.jsp gf/jsp/GFX014/sourceSQL.jsp gf/jsp/ORA10/dba_table.jsp ge/jsp/MAIL01\entry.jsp ge/jsp/MAIL01\result.jsp ge/jsp/MAIL01\showPtn.jsp ge/jsp/MAIL02\entry.jsp ge/jsp/MAIL02\result.jsp ge/jsp/MAIL03\result.jsp ge/jsp/MAIL03\showDetails.jsp ge/jsp/MAIL04\result.jsp ge/jsp/MAIL06\result.jsp ge/jsp/MAIL07\result.jsp [EXCEL(CSV)取込処理] リソースで、一括EXCEL取込処理で、ラベルリソースへの値セットが 行われない件の対応を行いました。 sqlType が、COPY|MODIFY の場合のみ、処理するようになっていますが、 EXCEL登録時は、INSERT が帰ってきます。 よって、判定を、COPY|MODIFY|INSERT に修正します。 ge/jsp/GE0002/entry.jsp ge/jsp/GE0003/entry.jsp ge/jsp/GE0004/entry.jsp ge/jsp/GE0004/result.jsp [repeatCount反映、SYSTEM_ID初期値設定] リソース登録画面で、repeatCount を入力しても、データに反映されない件で JSP を修正します。 これは、entry タグにパラメータ設定されていなかったためです。 それと、SYSTEM_ID を初期検索条件の値をデフォルト設定するように修正します。 ge/jsp/GE0002/update.jsp ge/jsp/GE0003/update.jsp ge/jsp/GE0004/update.jsp ge/jsp/GE0005/update.jsp ge/jsp/GE0007/update.jsp ge/jsp/GE0008/update.jsp ge/jsp/GE0016/update.jsp [SYSTEM_ID の再セット] 現在、SYSTEM_ID の 初期値は、{@SYS.SYSTEM_ID} になっており、画面で検索する都度、 この値にセットされる。 リソース画面(GE)は、各システムごとに組み込むのではなく、共通利用するように なったため、この初期値では、毎回、手で書き換える必要があった。 そこで、QUERYで検索したSYSTEM_IDをセッションに登録し、初期値をその値を利用する 様に修正します。 (以下のリストは、修正前の行。修正後は、defaultVal="{@U_SYSID}" となる) ge/jsp/custom/init.jsp ログイン時に、U_SYSID に、SYS.SYSTEM_ID をセットする。 ge/jsp/custom/result_info.jsp QUERY から SYSTEM_ID が引数から登録されると、U_SYSID にセットする。 ge/jsp/GE0001/query.jsp(25): ge/jsp/GE0002/query.jsp(23): ge/jsp/GE0003/query.jsp(23): ge/jsp/GE0004/query.jsp(23): ge/jsp/GE0005/query.jsp(23): ge/jsp/GE0007/query.jsp(23): ge/jsp/GE0008/query.jsp(23): ge/jsp/GE0009/query.jsp(23): ge/jsp/GE0011/query.jsp(25): ge/jsp/GE0013/query.jsp(25): ge/jsp/GE0016/query.jsp(25): ge/jsp/GE0017/query.jsp(29): ge/jsp/GE0018/query.jsp(29): ge/jsp/GE0019/query.jsp(29): ge/jsp/GE0020/query.jsp(29): ge/jsp/MAIL01/query.jsp(26): ge/jsp/MAIL02/query.jsp(26): ge/jsp/MAIL03/query.jsp(26): ge/jsp/MAIL06/query.jsp(25): ge/jsp/MAIL07/query.jsp(25): ge/jsp/REP01/query.jsp(25): ge/jsp/REP02/query.jsp(25): ge/jsp/REP03/query.jsp(25): ge/jsp/REP04/query.jsp(25): ge/jsp/REP05/query.jsp(25): ge/jsp/REP06/query.jsp(25): ge/jsp/REP07/query.jsp(25): ge/jsp/REP14/query.jsp(25): ge/jsp/REP20/query.jsp(24): ge/jsp/REP21/query.jsp(16): [jfreechart-1.0.13.jar 対応] jfreechart-1.0.13.jar に対応する準備を行います。 jfreechart は、バージョンアップするたびに、どこかで不具合が発生しますので、 本体のアップは、行いません。 ただし、将来的なことを考え、影響範囲が少ないと思える箇所は、対応しておきます。 jfreechart-1.0.13は、org.jfree.chart.plot.CategoryPlot の継承もとの org.jfree.chart.plot.Plot に、 public void setNotify( boolean ) メソッドが追加されたため、HybsCategoryPlot.java に作成していた protected void setNotify( boolean ) メソッドがコンパイルエラーになります。 よってsetNotify メソッドをpublic にします。 また、equals と hashCode もあまり意味が無かったので、削除します。 org.opengion.hayabusa.io.HybsCategoryPlot#setNotify( final boolean isNotify ) protected ⇒ public org.opengion.hayabusa.io.HybsCategoryPlot#equals( final Object anObject ) 削除 org.opengion.hayabusa.io.HybsCategoryPlot#hashCode() 削除 ChartPlot_Category において、CategoryDataset は、setRangeAxis より先に行う必要がある。 org.opengion.hayabusa.io.ChartPlot_Category#getPlot( final ChartCreate create ) jfreechart 評価用画面(GF6110:【ビュー関連】集計グラフ)を修正します。 gf/jsp/GF6110/JfreeChartType.jsp 削除 gf/jsp/GF6110/typeOption.jsp 削除 gf/jsp/GF6110/chartTypeXY.jsp gf/jsp/GF6110/typeOptionXY.jsp gf/jsp/GF6110/typeOptionBar.jsp gf/jsp/GF6110/chartTypePie.jsp gf/jsp/GF6110/query.jsp gf/jsp/GF6110/typeOptionVal.jsp gf/jsp/GF6110/typeOptionPie.jsp gf/jsp/GF6110/result.jsp gf/jsp/GF6110/chartTypeVal.jsp gf/jsp/GF6120/typeOption.jsp [画面遷移なし登録・バグ修正] 画面遷移なし登録で、viewFormTypeにHTMLCutomTableや、HTMLFormatTable等を使用している場合に、 変更ボタン等を押すごとに、各項目の幅が少しずつ広がってしまうバグを修正します。 これは、IEのCSS実装のバグで、IEでは、THタグのpaddingが0より大きい場合は、width属性の指定値と、 その結果で表示されるサイズが異なってしまう問題があります。 (但し、この場合でも、colgroupが指定されている場合(HTMLTableの場合)は、正しい値が返ります) 今回の対応としては、ヘッダー固定時のTHタグのpaddingを0にします。 (実際は、データ項目よりヘッダーの方が幅があるということは、レアケースであるため、影響はないと 判断しています) jsp/common/scrollBar2.js jsp/common/scrollBar2.css [標準環境バージョンアップ] 標準環境の各ソフトウェア・モジュールをバージョンアップします。 これに伴い、app環境として、openGion_apps_win32_5.0_jdk160u18_tomcat6024_ooo32.zipをリリースします。 JDK : 160_18 Tomcat : 6.0.24 POI : 3.6-20091214 jQuery : 1.4 OpenOffice : 3.2 [Tomcat6.0.24対応] tldの設定で、emptyと記述した場合にタグのボディが記述 されているとエラーになる問題に対応します。 (tagdependentに変更) 参照 : https://issues.apache.org/bugzilla/show_bug.cgi?id=47977 src/META-INF/taglib.tld [各種パッチソースの場所を移動] Tomcatのパッチや、hsqldbの拡張関数など、周辺環境に関連する部分のソースフォルダを uap/webapps/gf/src/other から apps/src 以下に移動します。 [インデックス作成JSP] GF80 の検索で、インデックスやインデックスカラムを作成する箇所で、 UK や IXA などのカラムから、インデックス情報を取得する際に、 and ( UK is not null and UK != '' ) というSQL文で取得しているが、AND 結合なので、同時に発生することが ないので、結果、一件もデータを取得できない状況であった。 ここは、or 結合とすることで、対応します。 and ( UK is not null or UK != '' ) 取り込んだ情報を、DB定義に反映させるボタンを、result から query に移動 させます。(ボタンの存在に気づきにくいため) jsp/GF2060/dbdefIn.jsp jsp/GF2060/query.jsp jsp/GF2060/result.jsp 各チェック処理において、0件ストップと、オリジナル件数の表示を加えます。 データが無いために、0件なのか、チェック結果が0件なのか分かりにくいためです。 jsp/GF2060/GFM0032.jsp jsp/GF2060/GFM0034.jsp jsp/GF2060/GFM0035.jsp jsp/GF2060/GFM0036.jsp jsp/GF2060/GFM0039.jsp jsp/GF2060/GFM0040.jsp jsp/GF2060/GFM0045.jsp 取り込んだ DB定義情報を DB定義テーブルへ反映させるボタンの名称を変更します。(リソース修正) DbdefIn 定義テーブル取込 ⇒ 廃止 DBDEF_IN DB定義テーブル反映 ⇒ 新規追加 [画面ロールのrootの扱いに関するバグ対応] 画面ロールに、"root" と登録されると、root しか見えないのではなく すべての人から見えるようになってしまう。 これは、RoleMode で、共通化を図っているため、"root" 文字を すべて許可 してしまうためです。 ここでは、GUIData で、ロールが、"root" の場合、特殊な記号("r00t")に 置換えることで、通常のロールでは見えないようにします。 この場合は、user が、root であれば、見ることが可能です。 # 本件は、暫定対応です。 org/opengion/hayabusa/resource/GUIData#GUIData( final String[] data ) [ユーザーの言語・ロールの動的切り替え機能] ロールの動的切り替え機能は、すでに対応済みで、接続時に、引数として、 ?ROLES=XXXX と渡せば切り替わります。 ただし、下記の仕様とする。 1.自分が持っているロールと、ぴたりと一致すること。(部分ではない) 2.切り替えは、途中からではなく、新しいセッションで再接続する必要がある。 言語の切り替えは、接続時に、引数として、?NEWLANG=en などと指定する。 こちらに関しては、自分のユーザーリソースの制限はない。 (ただし、その言語に対応したリソースが必要) こちらも、切り替えは、新しいセッションで再接続する必要がある。 両方を同時に指定する場合は、?ROLES=XXXX&NEWLANG=en などと指定する。 org/opengion/hayabusa/resource/UserInfo#setLang( final String newLang ) org/opengion/hayabusa/taglib/HeadTag#sessionInit() [データベース単位のファンクション] データベース名の情報も、取得できるようにします。 データベース名毎に異なるファンクション名の処理を少し見直します。 ここでは、{@DBF.CON},{@DBF.SUBSTR} 以外に、{@DBF.NAME} を追加します。 また、fukurou.db.DBFunctionName の呼び出しで、データベース名を引数に取っていた 箇所を、dbid 名に変更します。 # 考え方は、データベース名 で良いのですが、エンジン内部では、すべて、dbid で # 接続先を管理しているため。 org/opengion/fukurou/db/ConnectionFactory#getDBName( final String dbid ) { 新規追加 org/opengion/fukurou/db/ConnectionFactory#getDBFullName( final String dbid ) { 廃止(getDBName に置換え) org/opengion/fukurou/db/DBFunctionName.java クラスから enum へ変更 org/opengion/hayabusa/report2/QueueManager_DB#final String CON = DBFunctionName.getFunctionName( "CON", null ); org/opengion/hayabusa/taglib/CommonTagSupport#getDBFunctionName( final String key ) { [データ集合処理のまとめカラム処理] TableMergeTag で、集合処理するときに、相違データをCSV連結する機能を追加します。 masterKeysで集合処理するときに、通常、最初に見つかった行データのみ残りますが、 ここに指定したカラムについては、発生都度、自分自身の情報に、CSV形式で連結して いくカラムを指定する属性、 groupAddClms を追加します。 この操作により、本来削除された情報が、1行のCSV形式で取得できる効果が得られます。 これは、value タグの action="APPEND" を、DBTableModel に対して実施するような感じです。 この機能を利用することで、PL/SQL関数である、INDEX_BIKO を廃止します。 これに伴い、INDEX_BIKO関数を利用している、GF2040 と GF2110 のロジックを修正します。 org/opengion/hayabusa/taglib/TableMergeTag#makeKeyMap( final DBTableModel table, final String keys, final boolean useCheckOnly ) { org/opengion/hayabusa/taglib/TableMergeTag#release2() { org/opengion/hayabusa/taglib/TableMergeTag#setGroupAddClms( final String groupAddClms ) { META-INF/hybs-taglib.tld db/oracle/sql/05_SRC/INDEX_BIKO.sql 廃止 jsp/GF2040/directGF07.jsp jsp/GF2110/directGF07.jsp [Javadoc 警告修正] {@DBF.XXX} 表記が、タグとして認識されて、警告となった。 {@DBF.XXX} に修正。 org/opengion/fukurou/db/DBFunctionName.java:44: 警告 - @DBF.XXX は未知のタグです。 [tomcat6.0.24 対応] tomcat6.0.24 のカスタマイズ分を、対応します。 JSPをコンパイルするときのCLASSローダーのキャッシュ処理のカスタマイズを 新バージョン対応します。 gf\src\other\tomcat_Modify-jasper.jar 以下のソースを修正します。 なお、継承により作成しています、tomcat_CacheControl は、ソース修正不要です。 org.apache.jasper.EmbeddedServletOptions.java org.apache.jasper.compiler.JspRuntimeContext.java [クエリ画面・高さ自動調整対応] クエリ画面での高さ自動調整対応で以下の機能改善を行います。 @横スクロールが出る場合にも正しく自動調節されるように修正 AFireFoxで正しく自動調節されるように修正 jsp/common/default.js#adjustFrameHeight(); 5.1.3.0 (2010/02/01) [選択プルダウン・バグ修正] メニューまたは、DBメニューで、ラベル(短)が定義されている場合に、検索画面でも、ラベル(短)でプルダウン の内容が表示されているバグを修正します。 対応としては、入力不可能な状態での表示(レンデラー適用時)と同じく、一覧表示の場合のみ、ラベル(短)が適用 されるようにします。 org.opengion.hayabusa.db.Selection.getOption(String, boolean, boolean) org.opengion.hayabusa.db.Selection_CODE.Selection_CODE(CodeData) org.opengion.hayabusa.db.Selection_CODE.getOption(String, boolean) org.opengion.hayabusa.db.Selection_CODE.getOption(String, boolean, boolean) org.opengion.hayabusa.db.Selection_RADIO.getOption(String, boolean, boolean) org.opengion.hayabusa.db.Selection_DBRADIO.getOption(String, boolean, boolean) org.opengion.hayabusa.db.Selection_DB.Selection_DB(String, String, String) org.opengion.hayabusa.db.Selection_DB.getOption(String, boolean) org.opengion.hayabusa.db.Selection_DB.getOption(String, boolean, boolean) org.opengion.plugin.column.Editor_MENU.getValue(String) org.opengion.plugin.column.Editor_MENU.getValue(int, String) org.opengion.plugin.column.Editor_DBMENU.getValue(String) org.opengion.plugin.column.Editor_DBMENU.getValue(int, String) org.opengion.plugin.column.Editor_DBMENU.getOption(TagBuffer, String, boolean) [DBメニュー・バグ修正] DBメニューを定義する際に、ラベル(短)(第3カラム)を指定した場合に、ラベル(短)の値がnullの場合でも ラベル短で表示されてしまい、選択項目の表示がnullとなってしまうバグを修正します。 org.opengion.hayabusa.db.Selection_DB.Selection_DB(String, String, String) [画面遷移なし登録・バグ修正] 画面遷移なし登録を有効にした場合に、特定のcommandでsubmitした際に、submit先のog:forwardタグが 正しく動作しない問題に対応します。 これは、画面遷移なし登録を行う際にog:headタグに指定する、noTransition="true"の属性値に関して、 サーバーサイドでの状態とクライアントサイドでの状態が一致していないことが原因です。 noTransition="true"の設定については、result.jspでのみ設定を行うことで、これを起点にバックグラウンド で実行されるupdate.jsp、entry.jspでは、設定しなくても動作するように、セッションにその情報を保存 しています。(サーバーサイドの状態) 一方、クライアントに読み込まれるJavaScriptでは、そのsubmitをバックグラウンドで実行するかどうかを submitする際のコマンドにより制御しています。(通常の他画面への遷移等は、バックグラウンドで実行しないため) ここで、submitするcommandをNEWとすると、クライアント側では、バックグラウンドsubmitは、行われません。 しかしながら、サーバー側ではセッション情報の値からバックグラウンドsubmitされたものとして処理される ため不整合が発生していました。 今回の対応では、サーバー側の状態をセッションに保存するのではなく、クライアント側からパラメーターとして 送ることで、そのリクエストを画面遷移なしモードとして処理するかどうかを判定するように変更します。 この場合の弊害として、「無効である」という状態は、リクエストで送信されなくなるため、システムリソースで システム全体で有効となっている場合に、特定の画面だけを無効にする場合は、result.jspだけでなく、関連する 全てのJSPでnoTransition="false"を指定する必要があります。 jsp/common/option/noTransition.js jsp/common/option/ajaxSubmit.js jsp/common/option/jqog.js org.opengion.hayabusa.taglib.CommonTagSupport.setNoTransitionRequest(boolean) org.opengion.hayabusa.taglib.CommonTagSupport.isNoTransitionRequest() org.opengion.hayabusa.taglib.CommonTagSupport.setAjaxSubmitRequest(boolean) org.opengion.hayabusa.taglib.CommonTagSupport.isAjaxSubmitRequest() org.opengion.hayabusa.taglib.HeadTag.setUseAjaxSubmit(String) org.opengion.hayabusa.taglib.HeadTag.setNoTransition(String) org.opengion.hayabusa.taglib.HeadTag.doEndTag() org.opengion.hayabusa.taglib.EntryTag.doEndTag() org.opengion.hayabusa.taglib.EntryTag.setNoTransition(String) org.opengion.hayabusa.taglib.ForwardTag.doEndTag() org.opengion.hayabusa.taglib.ForwardTag.setNoTransition(String) org.opengion.hayabusa.taglib.ForwardTag.setUseAjaxSubmit(String) org.opengion.hayabusa.taglib.ViewFormTag.doEndTag() org.opengion.hayabusa.taglib.ViewFormTag.setNoTransition(String) [DB定義DB修正] DB定義DBが、PostgreSQL でも使用できるように調整しました。 また、PL/SQL の DATA_DEFAULT.sql を廃止するために、 エンジンに新規クラス plugin/column/DBType_DD.java を作成しました。 (一部、使用箇所が残っているため、PL/SQLの廃止はまだ) org/opengion/plugin/column/DBType_DD.java jsp/GF2000/insertGF01.jsp jsp/GF2010/insertGF02.jsp jsp/GF2020/directGF05.jsp jsp/GF2020/entry.jsp jsp/GF2020/insertGF05.jsp jsp/GF2030/insertGF06.jsp jsp/GF2060/GFM0034.jsp jsp/GF2060/GFM0035.jsp jsp/GF2060/GFM0036.jsp jsp/GF2060/GFM0040.jsp jsp/GF2060/GFM0045.jsp jsp/GF2090/query.jsp jsp/GF2110/directGF02.jsp jsp/GF2110/directGF05.jsp jsp/GF2150/result.jsp jsp/GF2160/GFM0035.jsp jsp/GF2160/GFM0036.jsp jsp/GF2160/GFM0040.jsp jsp/GF2160/GFM0045.jsp リソース修正 カラムリソースの DATA_DEFAULT(初期値) に、DBTYPE(文字種別) に、「DD」を設定 コードリソースの DBTYPE に、「DD」を追加 [ヘッダー固定バグ修正] ヘッダー固定が画面遷移なし登録で正しく動作しないバグについて修正します。 この問題は、ヘッダー固定の仕様として、テーブルを初回に描画した後、セル幅を固定 (CSSのtable-layout:fixed)していたため、HTMLを後から挿入してもセル幅の再調整が行われない ことが原因です。 今回の修正では、セル幅の固定を行わず、自動で再計算を行うように変更します。 また、このヘッダー固定の仕様として、元のヘッダー部分のコピーを作成することで、ヘッダー固定を 実現していますが、このコピーする際のヘッダーのセルの計算方法をIEとFireFoxで同じとなるように 内部ロジックの見直しも行います。 jsp/common/scrollBar2.js jsp/common/scrollBar2.css jsp/common/option/jqog.js [ヘッダー固定バグ修正] 上記の修正の影響で発生した、ヘッダーとボディーで異なるcolspan構造を定義した場合にレイアウトが 崩れてしまう問題に対応します。 これは元々、IEのバグであり、IEでは、th,tdタグにcolspanが含まれている場合に、widthを指定しても、 これが無視されてレンダリングされてしまうためです。(FireFoxでは、widthの指定でレンダリングされます) この問題は、theadとtbodyのcolspanの構造が同じであれば、発生しませんが、異なる場合に、レイアウトが 崩れてしまいます。 今回の対応では、IEの場合のみ、データの1行目のcolspan構造を解析し、これがtheadと異なる場合には、 ヘッダー固定を行うためのヘッダーテーブルに1行目をダミーデータとして付加し、正しくレンダリングされる ように対応します。(この対応は、IEのみ影響を受けます。FireFox等ではこの処理は行われません) jsp/common/scrollBar2.js [Ajaxツリーテーブル表示・バグ修正] Ajaxツリー表示で、展開ボタンを押した後に、その行に対して変更ボタンを押すと、再度展開できてしまう バグを修正します。 この問題は、変更時のHTMLの置き換えで、展開ボタンの状態(クラス属性)がクリアされてしまうことが原因 です。(展開ボタンの画像のみは、入れ替えていました) 今回の修正では、展開ボタンについては、クラス属性を含めて、元のものに置き換えるようにします。 jsp/common/option/noTransition.js [行選択エラー画面の改善] og:submitタグ等で、forward.jsp経由で別画面に遷移した際に、行が選択されていない場合に 表示されるエラーメッセージ(ERR0028 選択されていません。もう一度、選択しなおして下さい。) の背景色が真っ白になるバグを修正します。 これは、forward.jspで記述されているog:headタグで、headTypeがnullの場合に、CSSファイルがinclude されていなかったことが原因です。 今回の対応では、CSSファイルに限っては、headTypeがnullの場合でもincludeするように修正します。 org.opengion.hayabusa.taglib.HeadTag.doEndTag() 5.1.2.0 (2010/01/01) [Calc帳票・256ページを超えた場合の対応] Calc帳票で、1要求番号当りのページ数が256を超えた場合に、256枚目までしか出力されない件について 対応します。元々、この問題は、Calcが1ファイル当りに256シートまでしか扱えないことが原因でした。 今回の対応では、256シートを超える場合、再度続きのデータから処理を行うことによって、それ以降の データも出力されるように対応します。 但し、以下の2点については、ご注意下さい。 @データの解析、出力処理は、ファイル単位(最大256シート)に行われます。このため、257枚目以降で エラーが発生した場合、それより前の部分については、出力されてしまいます。 (要求番号のステータスとしては、"アプリエラー"となります) Aファイル出力を行った場合、256シート単位でファイルが分割されます。この場合、出力ファイル名は、 1ファイル目 : GE50にセットした出力ファイル名(現状通り) 2ファイル目以降 : "ファイル名"_[1から始まる連番]."拡張子"となります。 また、今回の対応と合わせて、処理後に、GE50の処理行数と処理ページ数が正しくセットされるように 改善します。 org.opengion.hayabusa.report2.ExecQueue.getOutputName() org.opengion.hayabusa.report2.ExecQueue.addExecPageCnt(int) org.opengion.hayabusa.report2.ExecQueue.getExecPagesCnt() org.opengion.hayabusa.report2.ExecQueue.setExecRowCnt(int) org.opengion.hayabusa.report2.ExecQueue.getExecRowCnt() org.opengion.hayabusa.report2.ExecQueue.setEnd(boolean) org.opengion.hayabusa.report2.ExecQueue.isEnd() org.opengion.hayabusa.report2.ExecQueue.MAX_SHEETS_PER_FILE org.opengion.hayabusa.report2.ExecProcess.process() org.opengion.hayabusa.report2.ExecThread.exec(ExecQueue) org.opengion.hayabusa.report2.OdsContentParser.OdsContentParser(ExecQueue, String) org.opengion.hayabusa.report2.OdsContentParser.execContent() org.opengion.hayabusa.report2.QueueManager_DB.SQL_UPDATE_GE50 org.opengion.hayabusa.report2.QueueManager_DB.status(ExecQueue, int) [Calc帳票・バグ修正] Calc帳票で、出力時の例外処理でCalcオブジェクトが正しくCloseされていないバグを修正します。 org.opengion.hayabusa.report2.ExecProcess.output(String...) [タグリブマニュアル・クイックリファレンスマニュアル作成] build時にタグリブマニュアルのクイックリファレンスを作成するようにします。 クリックリファレンスは、アーカイブ内の、uap/webapps/gf/doc/taglib/quickReference.htmlに 保存されます。 GFX004 -> DOC08 画面ID変更 build.xml [サンプル・HSQLDB対応] サンプル画面が、HSQLDBで動作しない問題について対応します。 gf/jsp/GF9130 gf/jsp/GF9430 gf/jsp/GF9500 gf/jsp/GF9510 [MySQL対応・不具合修正] MySQL対応で、ロール登録画面が動作しなくなっていた問題に対応します。 ge/jsp/GE0019 ge/jsp/GE0020 [Calc帳票システム・MySQL対応] Calc帳票システムで、帳票明細データの各カラムへの分割処理を内部で処理するようにします。 従来は、帳票レイアウト登録(REP03)画面で、レイアウト変更時に、データを分割するための SQL文を生成し、これを利用して、帳票明細データを分割し、DBTableModelを生成していました。 しかし、このSQL文で必要となる、バイト数ベースの文字分割関数(OracleのSUBSTRB)は、他の DBでは通常、用意されていません。このため、今回、MySQL等、他のデータベースに対応するため、 データの分割処理を、内部で処理するように変更します。 これに伴い、GE54(帳票雛形定義)のHSQL,FSQL,BSQLの項目については、Calc帳票としては、有閑 となります。また、レイアウト変更時も、これらの項目に対してのSQL文のセットは行いません。 もし、旧Excel帳票システムを利用する場合は、GE54のトリガを利用して、SQL文をセットして下さい。 (具体的には、ge\db\oracle\sql\05_SRC\forOldExcelReportSystem内のスクリプトを参照して下さい) ge/jsp/REP02/verify.jsp ge/jsp/REP03/entry.jsp org.opengion.fukurou.db.DBFunctionName.getFunctionName(String, String) org.opengion.hayabusa.report2.ExecQueue.setFsql(String) 廃止 org.opengion.hayabusa.report2.ExecQueue.getFsql() 廃止 org.opengion.hayabusa.report2.ExecQueue.setBsql(String) 廃止 org.opengion.hayabusa.report2.ExecQueue.getBsql() 廃止 org.opengion.hayabusa.report2.ExecQueue.setHsql(String) 廃止 org.opengion.hayabusa.report2.ExecQueue.getHsql() 廃止 org.opengion.hayabusa.report2.QueueManager_DB.create() org.opengion.hayabusa.report2.QueueManager_DB.set(ExecQueue) org.opengion.hayabusa.report2.QueueManager_DB.DBTableModelCreator org.opengion.hayabusa.report2.OdsConverter.print(XComponent, String) org.opengion.plugin.table.TableFilter_REPORTDATA org.opengion.plugin.table.TableFilter_REPORTLAYOUT.execute() [og:equalsタグ・仕様変更] og:equalsタグで、ignoreCase属性を指定しない場合でも、大文字、小文字を区別して条件判定を行う ように仕様を変更します。 org.opengion.hayabusa.taglib.EqualsTag org.opengion.hayabusa.taglib.EqualsTag.release2() [編集種別(AUTOAREA,TEXTAREA)の仕様変更] 編集種別のAUTOAREA,TEXTAREAで、データの先頭が'_'となっている場合に、自動的に書き込み不可に なる機能を廃止します。データより書き込み制御を行う場合は、og:viewタグのwritableControl属性で 明示的に対象となるカラムを指定して下さい。 org.opengion.plugin.column.Editor_AUTOAREA.getValue(String) org.opengion.plugin.column.Editor_AUTOAREA.getValue(int, String) org.opengion.plugin.column.Editor_TEXTAREA.getValue(String) org.opengion.plugin.column.Editor_TEXTAREA.getValue(int, String) [フィルター機能追加] HybsFileFilter に、ディレクトリの判定を行うかどうかを指定する引数を、コンストラクタに追加します。 これを利用できるように、Process_FileSearch に、useDIR パラメータを実装します。 fukurou.util.HybsFileFilter#HybsFileFilter( final boolean useDIR ) fukurou.process.Process_FileSearch#init( final ParamProcess paramProcess ) [機能追加] ValueTag で、DBTableModel を参照する場合の scope を指定できるように、tblScope 属性を追加します。 従来は、DBTableModel は、scope="session" からのみ、取得するようになっていました。 (tableId は、パラメータで指定可能でした。) 従来から存在している scope パラメータは、出力のValue に対する指定でした。 hayabusa.taglib.ValueTag#setTblScope( final String scp ) hayabusa.taglib.ValueTag#release2() hayabusa.taglib.ValueTag#doEndTag() [機能追加] HybsFileFilter で、引数のパラメータを、'|' 区切り文字で複数設定可能にします。 また、reverse 引数を追加することで、結果を反転できるようにします。 この対応により、UnMatchesFilter が不要になったため、削除します。 これに伴い、Process_FileSearch に、反転させるパラメータを追加します。 hayabusa.taglib.FileWhereTag#doEndTag() fukurou.process.Process_FileSearch#init( final ParamProcess paramProcess ) fukurou.util.HybsFileFilter$StartsWithFilter fukurou.util.HybsFileFilter$EndsWithFilter fukurou.util.HybsFileFilter$InstrFilter fukurou.util.HybsFileFilter$EqualsFilter fukurou.util.HybsFileFilter$MatchesFilter fukurou.util.HybsFileFilter$UnMatchesFilter 削除 fukurou.util.HybsFileFilter#startsWith( final String prefix,final boolean reverse ) fukurou.util.HybsFileFilter#endsWith( final String suffix,final boolean reverse ) fukurou.util.HybsFileFilter#instr( final String str,final boolean reverse ) fukurou.util.HybsFileFilter#fileEquals( final String str,final boolean reverse ) fukurou.util.HybsFileFilter#matches( final String str,final boolean reverse ) fukurou.util.HybsFileFilter#unMatches( final String str ) 削除 [微修正] MainProcess で、実行が行われているかどうかの表示で、50件ごとの、"." や、1000件毎の Count=[件数] 表示を、標準出力ではなく、エラー出力に変更します。 これは、出力のログを、リダイレクト ">" 記号で出力させると、混ざって出力されるためです。 fukurou.process.MainProcess#run() TableDiff で、debug 出力時の項目を増やします。また、デバッグ出力が判る様に、文字列 "DEBUG:" を 先頭に付与します。 fukurou.process.TableDiff.java [表示機能修正] display 属性と、debug 属性を見直します。 display 属性は、基本的に、条件に合致した場合の次ぎに渡す行を出力します。 また、debug 属性は、先頭に、"DEBUG:"文字列を追記しますので、通常の画面出力と区別できるようにします。 fukurou.process.Process_DBWriter#action( final LineModel data ) fukurou.process.Process_FileCopy#action( final LineModel data ) fukurou.process.Process_FileSearch#action( final LineModel data ) fukurou.process.Process_Grep#action( final LineModel data ) fukurou.process.Process_TableDiff#action( final LineModel model ) fukurou.process.Process_TableFilter#action( final LineModel data ) fukurou.process.Process_TableWriter#action( final LineModel data ) [共通JSP] 共通JSP(common/gamen/03_DBSEARCH)で、検索結果に、tableFilter で、LABEL を付ける箇所で、 DB登録処理(INSERT,UPDATE,DELETE など)で、エラーになるため、検索件数が0件以上のみ、処理するように変更。 jsp/common/gamen/03_DBSEARCH/result.jsp [FireBird対応] DBスクリプト作成 画面で、FireBird を選択できるように、項目を追加します。 jsp/GF2140/query.jsp [MySQL対応] 明示的に、TransactionIsolation に、TRANSACTION_READ_COMMITTED を指定する。 fukurou.db.ConnectionPool#createInstance() setObject に ParameterMetaData の getParameterType を渡す。(PostgreSQL対応) fukurou.business.AbstractBizLogic.execSQL( String, int, ArrayTableModel ) fukurou.db.DBUtil.dbExecute( final String stmt ,final String[] args, final ApplicationInfo appInfo, final String dbid, final boolean useHeader ) fukurou.db.DBUtil.dbExist( final String stmt ,final String[] args, final ApplicationInfo appInfo , final String dbid ) fukurou.process.Process_DBCountFilter#init( final ParamProcess paramProcess ) fukurou.process.Process_DBCountFilter#end( final boolean isOK ) fukurou.process.Process_DBCountFilter#action( final LineModel data ) fukurou.process.Process_DBMerge#init( final ParamProcess paramProcess ) fukurou.process.Process_DBMerge#end( final boolean isOK ) fukurou.process.Process_DBMerge#action( final LineModel data ) fukurou.process.Process_DBMerge#makePrepareStatement( final String table,final LineModel data ) hayabusa.db.DBSimpleTable#startInsert() hayabusa.db.DBSimpleTable#startUpdate() hayabusa.db.DBSimpleTable#startDelete() hayabusa.db.DBSimpleTable#execute( final String[] values ) hayabusa.db.DBSimpleTable#close( final boolean commitFlag ) [GrepChange修正] 置換処理を実施する(true)かどうかを指定するパラメータを追加します。(初期値:置換する[true]) 処理速度向上と、置換する場合の前処理(ファイルのコピーやリネームなど)を実行しないようにします。 fukurou.process.Process_GrepChange#init( final ParamProcess paramProcess ) fukurou.process.Process_GrepChange#action( final LineModel data ) [微修正] connection.setAutoCommit は、ConnectionFactory で設定済みなので、コメントアウトする。 hayabusa.common.SystemParameter#loadDBResource( final Map sysParam ) 5.1.1.2 (2009/12/10) [業務ロジックフレームワーク・Linux対応] 業務ロジックフレームワークで、Javaソースのコンパイル時に指定しているクラスパスの区切り文字が Windows依存(;)になっていたため、File.pathSeparatorCharを使い、Linuxでも動作するようにします。 org.opengion.hayabusa.taglib.BizLogicTag org.opengion.fukurou.util.HybsLoaderConfig.HybsLoaderConfig(String, String, boolean) org.opengion.fukurou.util.HybsLoaderConfig.HybsLoaderConfig(String, String, boolean, boolean, String) [MySQL対応] MySQLで、500Byte以上のカラムについては、カラム定義をVARCHARではなく、TEXTで定義します。 これは、MySQLの制限として @ユニークインデックスは、767 bytes 以内にする必要がある。 Aインデックスは、1000byte 以内にする必要がある。 Bテーブルの全カラムの合計バイト数が、65535 を超えるとエラー(UTF-8の場合、実バイト数x3) が存在するためです。 この対応に伴い、ROLES等、インデックスのキーになっている項目も、定義がTEXTになります。 このような場合、INDEXの定義として、部分インデックス(先頭255Bytesのみインデックス化)を使用 することで、対応を行います。 org.opengion.plugin.table.TableFilter_TABLE_MYSQL.makeLineList(String[], boolean) org.opengion.plugin.table.TableFilter_INDEX.execute() org.opengion.plugin.table.TableFilter_INDEX.makeIndexClmStr(String, int) org.opengion.plugin.table.TableFilter_INDEX_MYSQL.makeIndexClmStr(String, int) org.opengion.fukurou.db.DBFunctionName.getFunctionName(String, String) [Admin管理画面・バグ修正] Admin管理画面の「パラメータ」が正しく表示されないバグを修正します。 (原因:リンク時に画面IDが正しくセットされていなかったため) org.opengion.hayabusa.servlet.HybsAdmin.getAdminLink() 5.1.1.1 (2009/12/02) [選択行スクロール・バグ修正] 行選択後、画面遷移した際に、選択行に自動的に遷移する機能で、ヘッダーラベルに改行が 含まれている場合に、入力行が隠れてしまう(スクロールし過ぎてしまう)バグを修正します。 このバグを修正するため、スクロールする際の基準となる行を、既存の「選択行の1つ前」から 「選択行自身」に変更します。 jsp/common/default.js#focus2() org.opengion.plugin.view.AbstractViewForm.isFirstChecked(int) 5.1.1.0 (2009/12/01) [業務ロジックフレームワーク・α版リリース] 業務ロジックをJavaでコーディングするためのフレームワークのα版をリリースします。 (今回のリリースは、あくまで開発者向けリリースです。正式版リリースまでの間にインターフェース レベルで仕様が変更される可能性があります) taglib.tld org.opengion.common.SystemData org.opengion.hayabusa.resource.ResourceManager.getLabel(String, String[]) org.opengion.hayabusa.taglib.BizLogicTag org.opengion.fukurou.business.AbstractBizLogic org.opengion.fukurou.business.ArrayTableModel org.opengion.fukurou.business.BizLogic_CURSOR org.opengion.fukurou.business.BizLogic_ENTRY org.opengion.fukurou.business.BizLogic_TABLE org.opengion.fukurou.business.BizLogic org.opengion.fukurou.util.HybsLoaderFactory org.opengion.fukurou.util.HybsLoader org.opengion.fukurou.util.HybsLoaderConfig org.opengion.fukurou.util.SystemParameter.replace(HybsEntry[]) org.opengion.fukurou.util.SystemParameter.replace(Map) gf.common.GFP00001 サンプル gf.gf9140.GFP19140A サンプル gf.gf9440.GFP19440A サンプル gf.gf9540.GFP19540S サンプル gf/jsp/GF9140 サンプル gf/jsp/GF9240 サンプル gf/jsp/GF9340 サンプル gf/jsp/GF9440 サンプル gf/jsp/GF9540 サンプル [リファクタリング] ErrMsgクラス及びErrorMessageクラスをorg.opengion.fukurou.utilに移します。 (業務ロジックからこれらのクラスを参照するため) org.opengion.fukurou.util.ErrMsg パッケージ移動 org.opengion.fukurou.util.ErrorMessage パッケージ移動 org.opengion.fukurou.business.AbstractBizLogic org.opengion.fukurou.business.BizLogic org.opengion.fukurou.business.BizLogic_ENTRY org.opengion.fukurou.business.BizLogic_TABLE org.opengion.hayabusa.db.DBColumn org.opengion.hayabusa.db.DBErrMsg org.opengion.hayabusa.db.DBTableModelUtil org.opengion.hayabusa.db.DBType org.opengion.hayabusa.db.Query org.opengion.hayabusa.db.TableFilter org.opengion.hayabusa.resource.ResourceManager org.opengion.hayabusa.taglib.BizLogicTag org.opengion.hayabusa.taglib.ColumnCheckTag org.opengion.hayabusa.taglib.CommonForwardTag org.opengion.hayabusa.taglib.DataCheckTag org.opengion.hayabusa.taglib.DBMetaDataQueryTag org.opengion.hayabusa.taglib.DirectTableInsertTag org.opengion.hayabusa.taglib.DirectWriteTableTag org.opengion.hayabusa.taglib.EntryTag org.opengion.hayabusa.taglib.ErrorMessageTag org.opengion.hayabusa.taglib.LDAPQueryTag org.opengion.hayabusa.taglib.MailSenderTag2 org.opengion.hayabusa.taglib.PlsqlUpdateTag org.opengion.hayabusa.taglib.QueryTag org.opengion.hayabusa.taglib.ReadTableTag org.opengion.hayabusa.taglib.TableExistTag org.opengion.hayabusa.taglib.TableFilterTag org.opengion.hayabusa.taglib.TableUpdateTag org.opengion.hayabusa.taglib.TaglibUtil org.opengion.plugin.column.AbstractDBType org.opengion.plugin.column.DBType_ALL org.opengion.plugin.column.DBType_DATE org.opengion.plugin.column.DBType_K org.opengion.plugin.column.DBType_OASNM org.opengion.plugin.column.DBType_R org.opengion.plugin.column.DBType_S9 org.opengion.plugin.column.DBType_X9 org.opengion.plugin.column.DBType_XH org.opengion.plugin.column.DBType_XHU org.opengion.plugin.column.DBType_XK org.opengion.plugin.column.DBType_XKZ org.opengion.plugin.column.DBType_XL org.opengion.plugin.column.DBType_XLU9 org.opengion.plugin.column.DBType_XU org.opengion.plugin.column.DBType_XU9 org.opengion.plugin.column.DBType_YM01 org.opengion.plugin.column.DBType_YM31 org.opengion.plugin.column.DBType_YMD org.opengion.plugin.query.AbstractQuery org.opengion.plugin.query.Query_JDBC org.opengion.plugin.query.Query_JDBCArrayCallable org.opengion.plugin.query.Query_JDBCCallable org.opengion.plugin.query.Query_JDBCErrMsg org.opengion.plugin.query.Query_JDBCKeyEntry org.opengion.plugin.query.Query_JDBCPLSQL org.opengion.plugin.query.Query_JDBCPrepared org.opengion.plugin.query.Query_JDBCTableUpdate org.opengion.plugin.query.Query_JDBCUpdate org.opengion.plugin.table.AbstractTableFilter org.opengion.plugin.table.TableFilter_CLMSET org.opengion.plugin.table.TableFilter_DBARG org.opengion.plugin.table.TableFilter_DBARG_OUT org.opengion.plugin.table.TableFilter_DBSELECT org.opengion.plugin.table.TableFilter_DTYPE org.opengion.plugin.table.TableFilter_INDEX org.opengion.plugin.table.TableFilter_LABEL org.opengion.plugin.table.TableFilter_TABLE [表示種別=DECIMALの仕様変更] 表示種別=DECIMALでリソースの初期値がnullに、そのままnullで表示されるようにします。 これまでは、nullの場合でも0が表示されていました。この変更により、nullの場合に0を 表示する際は、リソースの初期値に明示的に0を設定を行う必要があります。 org.opengion.plugin.column.Renderer_DECIMAL.Renderer_DECIMAL() org.opengion.plugin.column.Renderer_DECIMAL.Renderer_DECIMAL(DBColumn) [Google Chrome対応] Google Chromeで左メニューのプルダウンが正しく動作しない問題に対応します。 jsp/common/menu/GmisTree.js [Linux版起動スクリプト修正] CentOSでも起動スクリプトが動作するように修正します。 bin/startup.sh bin/startHsqldb.sh bin/shutdown.sh [MySQL/PostgreSQL 対応] MySQL対応 明示的に、TRANSACTION_READ_COMMITTED を指定する。 fukurou/process/ConnData#ConnData( final String url,final String user, final String passwd,final int uniq ) fukurou/xml/HybsXMLSave#main( final String[] args ) ※ main メソッドなので、サンプル実行時のみ影響 PostgreSQLの場合は、stmt.setObject() する場合に、 ParameterMetaData の Type を利用して 型変換を明示的に指定する必要があります。(Oracle,hsqldb,Mysql,MS SQL Server は、自動変換可能) よって、PostgreSQL の場合だけ、true を返すように修正します。 fukurou/util/ApplicationInfo#useParameterMetaData( final Connection conn ) 実行エラー時に、rollback を追加(PostgreSQL対応) SQLException が発生した場合に、ほとんどのケースで、rollback を入れているが、 ORACLE の場合は、自動的に次のトランザクションの実行が可能であったが、PostgreSQL では、 明示的に、rollback しておかないと、次の処理がエラーになってしまう。 hayabusa/common/SystemInstaller#getOldMaxVersion() hayabusa/common/SystemInstaller#getOldSystemVersion() throws SQLException [Connection 関連の見直し] connection.setAutoCommit は、ConnectionFactory で設定済みなので、コメントアウトする。 hayabusa/common/SystemParameter.#loadDBResource( final Map sysParam ) throws SQLException [loadXMLScript 関連の見直し] 新規にスキーマを作成する場合に、もう少しコメントを出して、処理中ということが判る様にします。 hayabusa/common/SystemInstaller#loadXMLScript( final String type, final String context ) throws SQLException [TableFilter 関連の見直し] HybsSystem.CR を AbstractTableFilter にのみ配置し、各サブクラスはそれを利用するように修正。 FIREBIRD、HSQLDB、MYSQL、SQLSERVER、POSGRE を追加、見直し。 データのアクセス用の配列番号のIDを private ⇒ protected にし、各サブクラスはそれを利用するように修正。 各種メソッドのコメント(JavaDoc)の記述 plugin/table/AbstractTableFilter.java plugin/table/TableFilter_INDEX_FIREBIRD.java plugin/table/TableFilter_DBARG_OUT.java plugin/table/TableFilter_INDEX.java plugin/table/TableFilter_INDEX_HSQLDB.java plugin/table/TableFilter_INDEX_MYSQL.java plugin/table/TableFilter_INDEX_POSGRE.java plugin/table/TableFilter_INDEX_SQLSERVER.java plugin/table/TableFilter_REPORTLAYOUT.java plugin/table/TableFilter_TABLE.java plugin/table/TableFilter_TABLE_FIREBIRD.java plugin/table/TableFilter_TABLE_SQLSERVER.java plugin/table/TableFilter_TABLE_HSQLDB.java plugin/table/TableFilter_TABLE_MYSQL.java plugin/table/TableFilter_TABLE_POSGRE.java [_build.bat,build.xml の見直し] データベース定義を出力する箇所で、MYSQL,POSGRE 等のスキーマ出力に対応 データ出力は、target=xml 、スキーマ出力は、taget=table と分離する。 target=compile で、コンパイルオプションに、-Xlint:all を追加 webapps/gf/_build.bat webapps/gf/build.xml [startup**.bat の追加] MySQL と PostgreSQL の 起動バッチ(インストーラ版)を追加します。 bin/startupMySQL.bat bin/startupPostgres.bat [データベース自動インストールの機能修正] hsql , mysql , oracle , postgres について、VIEWの変更と初期データの変更を 行いました。 GEA10V01.sql に、RMCN_USR が設定されていましたが、これを GEA10.xm のデータとして 設定するようにします。 ge/db/hsql/ ge/db/mysql/ ge/db/oracle/ ge/db/postgres/ 5.1.0.0 (2009/11/04) [クロス集計機能バグ修正] 5.0.0.3 (2009/09/22)で機能追加した合計列の先頭表示の機能について、合計列が 複数カラム存在する場合に正しく表示されないバグを修正します。 org.opengion.plugin.view.ViewForm_HTMLCrossTable.create(int, int) [ユーザーリソース項目追加] ユーザーリソースにメールアドレスの項目を追加します。 これに伴い、メールモジュールのメール取得用ビュー(GE35)も変更しています。 ge/jsp/GE0001 GEA10 MAILADの項目を追加 GE35 ビュー定義変更 [My SQL対応] 標準的なデータベースの予約語に対して、カラム名を置き換えます。 これに伴い、Javaソース、JSP、データベース定義等も変更いたします。 GE30 FOOTER ⇒ F_TXT GE30 HEADER ⇒ H_TXT GE31 CONTENT ⇒ CONTENTS GE32 CONTENT ⇒ CONTENTS GE33 MEMBER ⇒ ADDRESS GE33 NAME ⇒ NAME_JA GE33 NM_KBN ⇒ KBNAME GE50 OUTDIR ⇒ OUT_DIR GE50 OUTFILE ⇒ OUT_FILE GE51 TEXT ⇒ TEXT_DATA GE52 COLUMN_NAME ⇒ CLM GE53 OUTDIR ⇒ OUT_DIR GE53 OUTFILE ⇒ OUT_FILE GE55 HOST ⇒ HOST_ID GE58 COLUMN_NAME ⇒ CLM GEA05 ROLE ⇒ ROLES (桁数 500 変更含む) GEA10 NAME ⇒ NAME_JA GF21 GF70 〜 GF77 カラム追加 GF21 PREFIX ⇒ PRE_FIX GF21 VERSION ⇒ VERNO GF22 PREFIX ⇒ PRE_FIX GF22 TYPE ⇒ VAL_TYPE GF22 VERSION ⇒ VERNO GF23 VERSION ⇒ VERNO GF24 VERSION ⇒ VERNO GF25 VERSION ⇒ VERNO GF43 MONTH ⇒ MM GF43 YEAR ⇒ YYYY GF44 NAME ⇒ NAME_JA GF60 NAME ⇒ NAME_JA GF60 ROLE ⇒ ROLES (桁数 500 変更含む) GF61 NAME ⇒ NAME_JA GF62 NAME ⇒ NAME_JA GF62 VERSION ⇒ VERNO GF63 FUNCTION ⇒ FUNC GF63 LOAD ⇒ SU_LOAD GF63 NAME ⇒ NAME_JA GF64 NAME ⇒ NAME_JA GF65 FUNCTION ⇒ FUNC GF66 LOAD ⇒ SU_LOAD GF70 TEXT ⇒ TEXT_DATA GF71 KEYS ⇒ P_KEYS GF71 TEXT ⇒ TEXT_DATA GF71 VALS ⇒ P_VALS GF72 KEYS ⇒ P_KEYS GF72 VALS ⇒ P_VALS GF73 NAME ⇒ FORM_NAME GF73 TEXT ⇒ TEXT_DATA GF73 VALUE ⇒ FORM_VAL GF74 NAMES ⇒ CLMS GF74 QUERY ⇒ SQL_TEXT GF74 QUERYTYPE ⇒ SQL_TYPE GF74 SCOPE ⇒ JSP_SCOPE GF76 VERSION ⇒ VERNO GF79 NAME ⇒ NAME_JA GF93 KEYS ⇒ P_KEYS GF93 VALS ⇒ P_VALS WKGE52_XIN COLUMN_NAME ⇒ CLM java,sql,xml,xsl の各修正ファイルは、別途一覧をご確認ください。 jsp に関しましては、ほぼ、すべての箇所に修正が及んでいますので、 一覧での提供は行いません。 5.0.2.0 (2009/11/01) [Google Chrome対応] Google Chromeで拡張検索条件を表示すると、縦に表示されてしまう問題に対応します。 jsp/common/default.css [ガントチャート機能・バグ修正] ガントチャート表示機能(og:ganttHeaderタグ)で、view_zoomに1(2週間)を指定した際に、日付表示が おかしくなるバグを修正します。 これは、4.3.7.3 (2009/06/22)の以下の修正によるものです。今回の対応では、letter-spacing属性を コメントアウトします。(firefox対応については、別途検討します) --- 元の修正 -------------------------------------------------------------------------- 4.3.7.3 (2009/06/22) [FireFox対応] ・ガント表示でヘッダー表示される日付が枠からはみ出して正しく表示されないバグを修正します。 jsp/common/default.css --------------------------------------------------------------------------------------- jsp/common/default.css [リファクタリング] common,customフォルダ内のJSPでリンクパスが相対パスになっているものについて、他と同様に {@SYS.JSP}を経由した絶対パス形式の記述に変更します。 jsp/custom/query_info.jsp jsp/custom/query_tab_info.jsp jsp/custom/matrix_info.jsp [DB検索画面修正] @ファイルセーブ機能が正しく動作しないバグを修正します。(パスの設定に誤りがあったため) Aオブジェクト依存関係の正展開、逆展開機能を追加します。 executionで (a)referenced(recur down) を 選択し、オブジェクト名を入力するとそのオブジェクトを基点として 正展開することができます。展開結果に対して、REF_NAMEを入力し、参照オブジェクトの絞込み を行うことも可能です。 (b)referenced(recur up) を 選択し、REF_NAMEを入力するとそのオブジェクトを基点として 逆展開することができます。展開結果に対して、オブジェクト名を入力し、参照オブジェクトの絞込み を行うことも可能です。 jsp/common/gamen/03_DBDSEARCH/ [tabLinkタグ改善] openTab属性がfalseの場合でも、openTabNameに指定された場合、その指定されたタブをハイライトする ようにします。 これは、他の画面からタブ画面に遷移した場合に、リンクの引数(command=NEW)と、タブの自動オープンの 2重でタブの中身が開かれ、タイミングによっては、 ”QueryTag Query処理が割り込まれました。DBTableModel は登録しません。” のエラーになります。 このような場合に対応は、openTabをfalseにし、openTabNameのみを指定することで、タブのよる自動オープン をせずに、開かれたタブのハイライトのみを行うことで対応することができます。 org.opengion.hayabusa.taglib.TabLinkTag.makeTag() jsp/common/tabLink.js#initialTabSelect(boolean, Object) [Calc帳票システム改善] @ローカルリソースフラグ 今まではローカルリソースフラグがfalseの場合、GEのリソース(帳票システムが起動しているリソース) を適用していましたが、この仕様を変更し、ローカルリソースフラグがfalseの場合は、リソースを 使用しないようにします。(GEのリソースは意識されることがなく、不要な変換が行われるため) Aリソース適用時のデータ変換 リソース適用時、数値カラムでマイナスデータが存在すると、spanタグで囲われてしまうバグを 修正します。(spanタグを除去) org.opengion.hayabusa.report2.OdsContentParser.getHeaderFooterValue(String) org.opengion.hayabusa.report2.OdsContentParser.getBodyValue(String, int) org.opengion.hayabusa.report2.OdsContentParser.checkValue(String) [戻るリンク・機能追加] 戻るリンクタグ(backGamenタグ)に相対パスで戻るリンクを作成する機能を追加します。 通常、戻るリンクは、linkタグで生成された絶対パスを利用して戻る先のアドレスを決定しており、 通常利用においては、他システム間での画面リンクも正常動作するため、問題ありません。 但し、ロードバランサーなどを経由し、アドレス変換されているような場合は、絶対パスが 有効とならないケースがあるため、相対パスによる戻るリンクを対応します。 当然のことながら、この機能を利用する場合は、異なるシステム間のリンクは正しく動作しません ので、ご注意下さい。 org.opengion.hayabusa.taglib.BackGamenTag.makeTag() org.opengion.hayabusa.taglib.BackGamenTag.makeLinkTag() org.opengion.hayabusa.taglib.BackGamenTag.makeButtonTag() org.opengion.hayabusa.taglib.BackGamenTag.setType(String) [リソース登録画面不具合修正] リソース登録画面(カラム、ラベル、コード)で差分更新を行った際、関係のないラベルリソースの内容が 書き換えられてしまうバグを修正します。 これは、差分更新を行う際、Fromの接続先から取得されたラベルリソースのユニーク番号をキーとして、 Toの接続先のラベルリソースのデータを更新していたためです。 ge4/jsp/GE0002 ge4/jsp/GE0003 ge4/jsp/GE0004 [クリアボタン・バグ修正] 戻るボタンが出力されている状態で、クリアボタンを押すと、戻るボタンが消える不具合を修正します。 org.opengion.hayabusa.taglib.QueryButtonTag.getReset() [JSP解析・改善] QUERY定義検索から、使用カラム検索への画面リンクを追加します。 この目的は、QUERY定義検索で、呼び出しPL/SQLを調査する際、PL/SQLのcallステートメント自体が 引数で渡されている場合、QUERY定義検索だけでは、呼び出しPL/SQLがわからないことに対応するため のものです。(このため、リンクの引数には、ファイル名は付加していません。) gf/jsp/DOC14/result.jsp [JSP解析・バグ修正] QUERY定義検索、JSPファイルの一覧でタグのbody部分を指定する際に、textデータが抜き出されない (子供のタグ要素の部分しか抜き出されない)バグを修正します。 gf/jsp/DOC18/xslt/GF74_PROG.xsl gf/jsp/DOC18/xslt/GF76_PROG.xsl [拡張機能・リソース連携修正] リソース連携の差分検索時の条件のシステムIDが "**" の条件をはずします。 gf/jsp/GF2120/GFM0007.jsp gf/jsp/GF2120/GFM0010.jsp gf/jsp/GF2120/GFM0011.jsp gf/jsp/GF2120/GFM0012.jsp gf/jsp/GF2120/GFM0013.jsp gf/jsp/GF2120/GFM0014.jsp gf/jsp/GF2120/GFM0029.jsp gf/jsp/GF2120/GFM0030.jsp gf/jsp/GF2120/GFM0031.jsp [selectタグ機能追加] selectタグでmultiple="true"を選択した場合に、初期状態で複数選択が有効になるように 対応します。具体的には、同一のカラム名を複数持つ画面から、selectタグが記述された 次画面に遷移した際、それぞれのカラムに入力された全ての値に対し、プルダウンが選択 状態になります。(この機能は、multiple="true"の場合のみ有効です) org.opengion.hayabusa.taglib.SelectTag.setValue(String) org.opengion.hayabusa.taglib.SelectTag.doStartTag() org.opengion.hayabusa.taglib.SelectTag.setDefaultVal(String) org.opengion.hayabusa.taglib.OptionTag.doEndTag() org.opengion.hayabusa.taglib.OptionTag.makeTag() org.opengion.hayabusa.taglib.QueryOptionTag.doEndTag() org.opengion.hayabusa.taglib.QueryOptionTag.makeLabel(SelectTag) [帳票デーモン起動画面バグ修正] 起動状況に他のシステムIDのデータが表示されるバグを修正します。 ge/jsp/REP21/result.jsp [帳票システムバグ修正] Calcの関数内に、{@xxxx_}が存在し、かつそのデータに"(ダブルクオーテーション)が 含まれていた場合にエラーとなるバグを修正します。 org.opengion.hayabusa.report2.OdsContentParser.replaceOoocError(String) [帳票システムバグ修正] Calc帳票でデータに改行Cが含まれている場合に、Calc上で改行されないバグを修正します。 関数内に改行Cが含まれている場合、改行Cは無視されます。(OOoの制限上、関数の引数として 改行Cを含む文字列は受け取れないため) org.opengion.hayabusa.report2.OdsContentParser.checkValue(String) org.opengion.hayabusa.report2.OdsContentParser.replaceOoocError(String) [アクセス統計テーブル(GE15)再編成機能追加] アクセス統計テーブルの再編成機能を追加します。再編成処理は、Tomcatシャットダウン時に 実行されます。データの保存期間の初期値は、180日です。この期間は、システムリソースの ACCESS_TOKEI_ALIVE_DAYSで変更することができます。 (nullを指定した場合、再編成は行われません) ※既存バグにより、本バージョンより以前のバージョンで追加されたGE15のデータは、DYSETが セットされていないため、再編成が実施されません。 本バージョンを導入する際に、以下のSQLにより、DYSETの設定をして下さい。 update ge15 set dyset=dylogout; -------------------------------- org.opengion.hayabusa.common.SystemData.ACCESS_TOKEI_ALIVE_DAYS org.opengion.hayabusa.common.HybsContextListener.contextDestroyed(ServletContextEvent) org.opengion.hayabusa.common.SystemManager.deleteGUIAccessInfo() org.opengion.hayabusa.resource.UserInfo.saveGUIAccessInfo() org.opengion.hayabusa.db.DBSimpleTable.setWhere(String) DELETE処理が実行できないバグを修正 org.opengion.hayabusa.db.DBSimpleTable.getDeleteSQL() DELETE処理が実行できないバグを修正 GE15 インデックス追加(GE15_SC SYSTEM_ID,DYSET) 5.0.1.1 (2009/10/02) [行ハイライト機能バグ修正] 5.0.0.3 (2009/09/22)で実施した改善で、チェックボックスが存在しない行で行ハイライト機能 が正常に動作しない問題に対応します。 jsp/common/hilightRow.js 5.0.1.0 (2009/10/01) 5.0.0.4 (2009/10/01) [レスポンス測定画面追加] 画面レスポンスを追加するための画面を新規に作成します。(実験のカテゴリー内) gf/jsp/GF7120 [noTransition利用時のuseSelectedRow不具合修正] これまでnoTransitionを利用して登録した際にはuseSelectedRowをfalseに 指定する必要がありました。(最終行に戻ってしまうため) noTransitionのJavaScript側で戻るための行番号をname="SEL_ROW"で出力するようにします。 entry.jspのforwardタグにkey="SEL_ROW",value="{@SEL_ROW}"を追加して下さい。 jsp/common/option/jqog.js jsp/common/option/noTransition.js 5.0.0.3 (2009/09/22) [ユーザーリソース登録画面修正] ユーザーリソース登録画面で、Excel取込した場合に重複されるユーザーが登録できるバグを 修正します。 ※リソース登録画面は、エンジンタグによりデータチェック・登録を行っているため、画面から 入力されたデータに対する重複チェックは、画面単位に実装を行う必要があり、この対応は、 根本的な解決にはなりません。恒久対策については、業務ロジックのJava化時に検討します。 ge/jsp/GE0001/entry.jsp [ヘッダーソート機能バグ改善] ヘッダーソート後に、追加ボタンなどを押し、その後取り消しボタンを押すと逆順にソートされ てしまうバグを修正します。 hayabusa/taglib/ViewFormTag#doStartTag() [タスク埋め画面修正] タスク埋めガント(GANTT09)で、左右分割の左と右のViewの間に 空のtdタグが大量に出力され、スペースが出来ていました。 (空tdはIEのcolspanバグの対応のために出力) og:theadタグ内でitdタグを利用している場合と利用していない場合で この空tdタグの出力数を変える事で対応します。 plugin/view/FiewForm_HTMLGanttTable#clear() plugin/view/FiewForm_HTMLGanttTable#create( int, int ) plugin/view/FiewForm_HTMLGanttTable#getHeadLine() [行ハイライト機能バグ修正] 行ハイライトで全行チェックボックスを押した後、行の選択を外すのに、2回クリックしなければ ならないバグを修正します。 (これは、行ハイライトの判断基準が行の背景色(ハイライトされているか)で判断していたためです。 今回の対応で、行のチェックボックスの状態を元に、ハイライトするかを判断します) jsp/common/hilightRow.js [メニュー表示(グループス)・バグ修正] グループメニューの表示で、表示対象のグループスが1件の場合に表示されないバグを修正します。 hayabusa/taglib/TopMenuTag#makeGroupMenu() [クロス集計機能改善] クロス集計の合計列をCUBEの先頭に表示できるようにします。 crossParamタグのfirstClmGokei属性をtrueにセットして下さい。 初期値はfalse(最終列)です。 hybs-taglib.tld hayabusa/html/ViewCrossTableParam#FIRST_CLM_GOKEI_KEY hayabus/taglib/ViewCrossParamTag#setFirstClmGokei( String ) plugin/view/ViewForm_HTMLCrossTable#create() plugin/view/ViewForm_HTMLCrossTable#paramInit( DBTableModel ) plugin/view/ViewForm_HTMLCrossTable#getHeadLine() 5.0.0.2 (2009/09/15) [セキュリティ対応:エラーメッセージ制御・カスタマイズエラー画面作成] Tomcat及びJSPのエラーが発生した際に出力される情報を減らす事で セキュリティ上のリスクを軽減します。 スタックトレース情報及びバージョンの情報が出力されなくなります。 tomcatのconf/web.xml内を置き換えて下さい。 (ログは今まで通り出力されます。) tomcat/conf/web.xml error-page修正 context/jsp/common/error.jsp hayabusa/taglib/ErrorTag#VIEW_MSGTYPE hayabusa/taglib/ErrorTag#doEndTag() hayabusa/taglib/ErrorTag#getStackTrace( Throwable, String ) hayabusa/taglib/ErrorTag#getStackData( StringBuilder, Throwable, String ) [リクエスト変数のXSS対策] {@xxx}で変換するリクエストパラメータに対してless/greater than sign(<,>)のチェックを 行うようにします。 チェックを行うかどうかはシステムパラメータのUSE_XSS_CHECKで設定します。(初期値true) 但し、一部タグではこのチェックをかけないようにしています。 SQL文で利用する可能性のあるQuery,QueryOption,And,Updateタグに関しては xssCheck属性で個別に設定可能です。 XSSチェックの利用に際しては全画面に対して動作確認をして下さい。 hybs-taglib.tld hayabusa/common/SystemData#USE_XSS_CHECK hayabusa/taglib/CommonTagSupport#release2() hayabusa/taglib/CommonTagSupport#getRequestValue( String ) hayabusa/taglib/CommonTagSupport#getRequestValue( String, boolean ) hayabusa/taglib/CommonTagSupport#useXssCheck( boolean ) hayabusa/taglib/QueryOptionTag#doAfterBody() hayabusa/taglib/QueryOptionTag#release2() hayabusa/taglib/QueryOptionTag#setXssCheck( String ) hayabusa/taglib/Querytag#doAfterBody() hayabusa/taglib/Querytag#release2() hayabusa/taglib/Querytag#setXssCheck( String ) hayabusa/taglib/SqlAndTag#doStartTag() hayabusa/taglib/SqlAndTag#release2() hayabusa/taglib/SqlAndTag#setXssCheck( String ) hayabusa/taglib/EntryTag#setRequestValues() ALLをチェック対象から外す hayabusa/taglib/FavoritelinkTag#doStartTag() XSSチェックをかけない hayabusa/taglib/ColumnCheckTag#doStartTag() XSSチェックをかけない hayabusa/taglib/FrameTag#doStartTag() XSSチェックをかけない hayabusa/taglib/CommonForwardTag#doEndTag() XSSチェックをかけない [メッセージのサニタイジング処理廃止] XSSチェックを導入したため、導入したメッセージ引数の HTMLサニタイジング処理を廃止します。 又、columnCheckタグでxssチェックをしない箇所をユーザが実際に 入力したリクエストパラメータに限定します。 その他タグで無条件許可していたものも変更します。 hayabusa/resource/LabelData#getMessage(String[]) サニタイジング処理廃止 hayabusa/resource/LabelData#getDescription(String[]) サニタイジング処理廃止 hayabusa/taglib/ColumnCheckTag#doStartTag() hayabusa/taglib/ColumnCheckTag#makeErrorMessage( ErrorMessage ) hayabusa/taglib/ColumnCheckTag#makeEntryErrorMessage( ErrorMessage ) hayabusa/taglib/FavoritelinkTag#doStartTag() hayabusa/taglib/FavoritelinkTag#makeUrlEncode( HttpServletRequest ) hayabusa/taglib/FrameTag#doStartTag() hayabusa/taglib/CommonForwardTag#doEndTag() [DB定義システム・不具合修正] DB定義書の取込機能がHSQLDBで正しく動作しない問題について対応します。 gf/jsp/GF2060/dbdefIn.jsp [自動インストール機能不具合修正] 拡張子がxmlファイル以外のファイルは読み込まないように修正します。 (subversionにアップした際、各フォルダに.svnが作成され、これも読み込もうとしていた) org.opengion.hayabusa.common.SystemInstaller#loadXMLScript(String,String) [ViewFormの修正] viewタグ内で[KEY.xxx]や[I]の形式が利用できなかったHTMLFormatTextFieldを、 利用できるように修正します。 plugin/view/ViewForm_HTMLFormatTextField#create( int, int ) [ボタンメニューの修正] ボタンメニューのボタン間隔を狭くして、ボタンが多く入るようにします。 jsp/common/default.css .buttonMenu変更 [リソースXML抜き出し画面修正] リソースXML抜き出し画面で作成区分の条件に'<','>'を指定した場合にxssCheckで エラーになるバグを修正します。 jsp/GE0009/result_resource.jsp --------------------------------------------------------------------------- [配布パッケージの変更] devパッケージから、appsフォルダを分離します。 appsフォルダは、環境毎(現状は、win32とlinux32のみ)に用意し、配布します。 [Calc帳票LINE_COPY機能] Calc帳票で{@LINECOPY}と記述する事で、その行以降データが存在しなくなるまで 該当行と同じレイアウトでBODY部分を出力し続けます。 ヘッダ・フッタ処理は通常通り行われますが、LINECOPY行以降のオブジェクトが ずれるため、下部にオブジェクトを配置するような帳票では利用できません。 hayabusa/report2/OdsContentParser#LINE_COPY hayabusa/report2/OdsContentParser#execContent() hayabusa/report2/OdsContentParser$OOoCalcSheet#incrementKey( String, int ) hayabusa/report2/OdsContentParser$OOoCalcSheet#analyze( String, int ) hayabusa/report2/OdsContentParser$OOoCalcSheet#lineCopy( String, int ) jsp/GF2020/DBDEF.ods LINE_COPY版に変更 [andタグのmulti機能修正] mis:andタグでmulti属性をtrueにすると'A','B'という形式で出力されますが、 空文字のみで送信した場合に'',''のように出力されていました。 複数のリクエストが全てnullか空文字の場合は{@xxx}がnullという扱いとし、 通常のnull値の場合と同様にand句そのものを出力しないようにします。 hayabusa/taglib/SqlAndTag#getRequestValue( String ) hayabusa/taglib/SqlAndTag#release2() hayabusa/taglib/SqlAndTag#doEndTag() [JDK,Tomcatのバージョンアップ] Windows標準環境をJDK1.6update16、Tomcat6.0.20にバージョンアップします。 (Linux版については、まだリリースされていません) openGion_apps_win32_5.1.zip [新規クラス Process_StringUtil 作成] ・StringUtilクラスの特定のメソッドでデータ変換する、Process_StringUtil クラスを新規追加します。 現時点で利用できるStringUtil のメソッドは、下記の通りです。 urlEncode : UTF-8 で、URLエンコードを行う。 rTrim : 文字列の後ろのスペースを削除 htmlFilter : HTML上のエスケープ文字を変換 getMD5 : MessageDigestにより、MD5 でハッシュした文字に変換 code39 : CODE39 の 文字列を作成(チェックデジット付き) getUnicodeEscape : HTML のエスケープ記号(&#xZZZZ;)に変換 getReplaceEscape : HTML のエスケープ記号(&#xZZZZ;)を戻す spanCut : 引数からspanタグを取り除く ・このクラスの追加に伴い、Process_UnicodeEscape.java をdeprecatedにします。 類似機能に、Process_StringUtil を利用してください。 -action 引数に、getUnicodeEscape か、getReplaceEscape を指定することで、 ESCAPE(変換)/REVERSE(戻し) の指定と同一の処理を行います。 fukurou/process/Process_StringUtil 新規追加 fukurou/process/Process_UnicodeEscape deprecated コメント追記 [整合性チェック(種別間) 修正] GF2090 整合性チェック(種別間) を修正しましたので、更新願います。 更新処理を、update.jsp , entry.jsp 形式に変更・複写機能、削除機能を追加(削除機能のみあった) ・使用フラグが無効だったので、削除、JSPフォルダを差し替えてください。 [画面自動作成機能追加] 画面自動作成を行うサンプル機能を追加します。 gf/jsp/GF2200 gf/jsp/GF2201 gf/jsp/GF2202 gf/jsp/GF2203 gf/jsp/GF2251 gf/jsp/GF2252 gf/jsp/GF2253 GE90 テーブル追加 GE91 テーブル追加 GE92 テーブル追加 GE93 テーブル追加 GE94 テーブル追加 GE95 テーブル追加 GE96 テーブル追加 5.0.0.1 (2009/08/15) [起動スクリプト不具合] ・HSQLDBの起動用スクリプト(uap/bin/startupHSQLDB.bat)に不具合があり、 正しく起動しないバグを修正します。 ・Oracleの起動環境変数設定スクリプト(uap/bin/init.bat)のドライバークラスが oracle.jdbc.driver.OracleDriver から oracle.jdbc.OracleDriver に変更します。 uap/bin/startupHSQLDB.bat uap/bin/init.bat [リファクタリング] 1.StringBuffer の箇所を、StringBuilder に置き換えます。 hayabusa\mail\AbstractMailManager.java(184): // StringBuffer errMsgBuf = new StringBuffer(); hayabusa\mail\AbstractMailManager.java(209): StringBuffer errMsgBuf = new StringBuffer(); hayabusa\mail\AbstractMailManager.java(505): StringBuffer idBuf = new StringBuffer(); hayabusa\mail\MailPattern.java(182): StringBuffer contentBuf = new StringBuffer(); hayabusa\mail\MailPattern.java(429): StringBuffer rtnBuf = new StringBuffer(); hayabusa\mail\MailPattern.java(452): StringBuffer to_id = new StringBuffer(); hayabusa\mail\MailPattern.java(453): StringBuffer to_name = new StringBuffer(); hayabusa\mail\MailPattern.java(454): StringBuffer to_addr = new StringBuffer(); hayabusa\mail\MailPattern.java(455): StringBuffer cc_id = new StringBuffer(); hayabusa\mail\MailPattern.java(456): StringBuffer cc_name = new StringBuffer(); hayabusa\mail\MailPattern.java(457): StringBuffer cc_addr = new StringBuffer(); hayabusa\mail\MailPattern.java(458): StringBuffer bcc_id = new StringBuffer(); hayabusa\mail\MailPattern.java(459): StringBuffer bcc_name = new StringBuffer(); hayabusa\mail\MailPattern.java(460): StringBuffer bcc_addr = new StringBuffer(); hayabusa\taglib\HeadTag.java(850): StringBuffer errBuf = new StringBuffer(100); hayabusa\taglib\TabLinkTag.java(495): StringBuffer errBuf = new StringBuffer( 100 ); hayabusa\taglib\ValueTag.java(513): StringBuffer buf = new StringBuffer(); plugin\io\TableReader_Calc.java(472): StringBuffer sb = new StringBuffer(); plugin\view\ViewForm_HTMLCustomTreeBOM.java(123): StringBuffer newtg = new StringBuffer( HybsSystem.BUFFER_LARGE ); 2.pmd-4.2.5 (カスタマイズ版)での警告の修正 org\opengion\hayabusa\mail\MailPattern.java:413 New exception is thrown in catch block, original stack trace may be lost org\opengion\hayabusa\taglib\TabLinkTag.java:302 Avoid instantiation through private constructors from outside of the constructor's class. org\opengion\hayabusa\taglib\TabLinkTag.java:336 Avoid instantiation through private constructors from outside of the constructor's class. org\opengion\plugin\column\Renderer_TEXTAREA.java:49 Private field 'tagBuffer' could be made final; it is only initialized in the declaration or constructor. org\opengion\plugin\io\TableReader_Calc.java:113 A throw statement in a finally block makes the control flow hard to understand. org\opengion\plugin\io\TableReader_Calc.java:114 Avoid using if statements without curly braces org\opengion\plugin\io\TableReader_Calc.java:347 Avoid using implementation types like 'ArrayList'; use the interface instead 3.直接出力用の Writer 引数追加を ViewForm に追加します。 これは、ViewForm で、大量のString を StringBilder で作成する際、 expand が発生し、大量の無駄なオブジェクトが作成されます。 Writer で直接、クライアントに返送すれば、余計なオブジェクトの 生成が抑制されます。 ただし、途中でエラーが発生した場合は、途中までデータが返送 されているため、エラーメッセージがデータ(画面)の下に表示されますので エラー時に、Javaエラーを表示させず、エラー画面へ転送するように変更 する必要があります。 その対応が完了してから、各実装クラスの機能修正を行います。 * @og.rev 5.0.0.1 (2009/08/15) 直接出力用の Writer 引数追加 package org.opengion.hayabusa.html; public interface ViewForm { void create( int startNo, int pageSize, Writer wrt ) throws IOException ; package org.opengion.plugin.view; public abstract class AbstractViewForm implements ViewForm { public void create( final int startNo, final int pageSize, final Writer wrt ) throws IOException { package org.opengion.fukurou.util; public final class StringUtil { public static String replace( final String target,final String from,final String to ) { public static String urlAppend( final String url1,final String url2 ) { 4.メソッドのパラメータに、final を付けるルールを実行 fukurou\model\ArrayDataModel.java(163): public NativeType getNativeType( int clm ) { fukurou\process\LineModel.java(315): public NativeType getNativeType( int clm ) { fukurou\xml\JspIncludeReader.java(178): public static void main( String[] args ) { fukurou\xml\jaxb\dbid\DbConfig.java(66): public void setDbDriver(DbDriver value) { fukurou\xml\jaxb\dbid\Dbid.java(79): public void setDbidKey(String value) { fukurou\xml\jaxb\dbid\Dbid.java(103): public void setUrl(String value) { fukurou\xml\jaxb\dbid\Dbid.java(127): public void setUser(String value) { fukurou\xml\jaxb\dbid\Dbid.java(151): public void setPassword(String value) { fukurou\xml\jaxb\dbid\Dbid.java(175): public void setReadonly(Boolean value) { fukurou\xml\jaxb\dbid\Dbid.java(199): public void setMincount(Integer value) { fukurou\xml\jaxb\dbid\Dbid.java(223): public void setMaxcount(Integer value) { fukurou\xml\jaxb\dbid\Dbid.java(247): public void setPooltime(Integer value) { fukurou\xml\jaxb\dbid\Dbid.java(271): public void setApplicationInfo(Boolean value) { hayabusa\db\DBTableModelImpl.java(383): public void addValues( String[] values ,int aRow, boolean isWritable ) { hayabusa\io\HybsCategoryAxis.java(117): public List refreshTicks(Graphics2D g2, hayabusa\io\HybsCategoryAxis.java(256): public double getCategoryJava2DCoordinate(CategoryAnchor anchor, hayabusa\io\HybsStackedBarRenderer.java(97): public void drawItem(Graphics2D g2, hayabusa\io\ShapeList.java(56): public Shape getShape( int index ) { hayabusa\report2\OdsConverter.java(211): public void printJobEvent( PrintJobEvent event ) { hayabusa\report2\OdsConverter.java(216): public void disposing( EventObject event ) { hayabusa\report2\OdsConverter.java(371): public static void main( String[] args ) throws Exception { plugin\view\AbstractViewForm.java(255): public void create( int startNo, int pageSize, Writer wrt ) throws IOException { plugin\view\AbstractViewForm.java(1746): public void setHeight( String high ) { plugin\view\AbstractViewForm.java(1761): public void setWidth( String wide ) { plugin\view\AbstractViewForm.java(1827): public void setNoTransition( boolean flag ) { hayabusa\io\HybsCategoryPlot.java(226): protected void drawRangeGridlines(Graphics2D g2, Rectangle2D dataArea, fukurou\xml\XSLT.java(485): private String toXmlRow( TransformerException ex ) { hayabusa\taglib\TableUpdateParamTag.java(383): private String getInsertSQL( NamesData namesData ) { hayabusa\taglib\TableUpdateParamTag.java(430): private String getUpdateSQL( NamesData namesData ) {