Télécharger la liste

Description du projet

Projectの概要

JSPカスタムタグをベースとした、Webアプリケーションフレームワークです。
SQLの知識さえあれば、データのCRUD操作をメインとした業務システムが 簡単に構築することができます。

このフレームワークは、村田機械株式会社の基幹システムを構築するために 開発され、ほぼ全ての基幹システムは、これを利用して構築し、稼動しています。

(基本機能)
・ユーザー管理         ・認証・アクセス制御
・多言語対応          ・Excel入出力機能
・ガントチャート表示、編集機能 ・定型帳票作成、発行機能
・定型メール送信機能      ・データベース定義管理機能
・バッチ処理機能

各種詳細情報及びドキュメントについては、openGion@Websiteを参照して下さい。


Java を含む標章は、米国 Sun Microsystems, Inc.の商標であり、同社のJava ブランドの技術を使用した製品を指します。
Excel は、Microsoft Corporationの米国及びその他の国における登録商標です。
コンテンツ中に記載された社名および製品名は、すべて各社の商標または登録商標です。

Système requise

System requirement is not defined

Livrée : 2014-04-04 17:28
opengion 5.7.5.0 (4 files Cacher)

Notes de release

5.7.5.0 (2014/04/04)
[ファイル検索の隠しファイル除外対応]
隠しファイルを検索条件に考慮できるようにします。
FileWhereTag で、isHidden="false" とすると、隠しファイル(hidden)以外を検索します。
true にすると、隠しファイルのみ検索します。
すべてを検索したい場合(従来と同じ)は、何も指定しないでください。
fukurou.util.HybsFileFilter#isHidden( final String flag )
fukurou.util.HybsFileFilter#isHidden( final String flag,final boolean reverse )
fukurou.util.HybsFileFilter$IsHiddenFilter
fukurou.process.Process_FileSearch#init( final ParamProcess paramProcess )
hayabusa.taglib.FileWhereTag#doEndTag()
hayabusa.taglib.FileWhereTag#release2()
hayabusa.taglib.FileWhereTag#setIsHidden( final String flg )

jsp/GF6380/query.jsp
jsp/GF6380/result.jsp

[Tomcat8.0.5 対応]
Tomcat8.0.5 で、ClassLoader の getResources(String)で取得する
URL 名の最後に、"/" が付かなくなっています。
8.0.3 までは、付いていました。
その結果、フォルダの最後に "/" がある前提のプログラムが動作しなく
なっていますので対応します。
* ※ Tomcat8.0.3 では、ClassLoader の getResources(String)で取得するURL名が、
* /C:/opengionV6/uap/webapps/gf/WEB-INF/classes/org/opengion/plugin/
* の形式で、最後の "/" を取る為、filepath.length() - 1 処理していましたが、
* Tomcat8.0.5 では、/C:/opengionV6/uap/webapps/gf/WEB-INF/classes/org/opengion/plugin
* の形式で、最後の "/" がなくなっています。
* 最後の "/" があってもなくても、new File(String) でディレクトリのオブジェクトを
* 作成できるため、filepath.length() に変更します。
fukurou.util.FindClassFiles#FindClassFiles( final String filepath,final String keyword )

[HTML5 Editor_DATALIST 対応]
Editor_DATALIST に、display:none; が入っていなかったので、追加しました。
HTML5非対応ブラウザで見た場合に、option部分が表示されてしまいました。
下記のキャッシュ機能も追加しました。
* 一覧表出力時の getValue( int ,String ) 処理では、Selection オブジェクトの
* キャッシュ機能を利用して、同一Selection オブジェクトの間は、datalist は、
* 1度しか、出力しない様に制御しています。これにより、共有のdatalist を使用する為、
* HTMLの出力データ量を抑えることが可能になります。
* (キャッシュを利用しないと100行出力すると100個のdatalistを出力する事になります。)
* (同様の機能を持つ INDBMENU では、行ごとにプルダウンデータを作成しています。)
* ただし、行単位にSQLの条件を変える機能(AAA:BBB:CCC:DDD引数)が指定された場合は、
* 行ごとに出力します。
plugin.column.Editor_DATALIST#getValue( final String value )
plugin.column.Editor_DATALIST#getValue( final int row,final String value )
plugin.column.Editor_DATALIST#getOption( final TagBuffer buf,final String value,final boolean useSelCache )

[bulkSet 区切り文字変更]
5.2.3.0 (2010/12/01) で、bulkSet の区切り文字を、タブからカンマに変更しましたが、
数字や値段など、999,999形式の3桁区切りカンマで分割してしまうため、使いにくいため、
元のタブ文字列に戻します。
gf\src\script\common\resultScript.js#bulkSet( obj )
gf\src\script\common\resultScript.js#bulkPaste( obj )
gf\src\script\common\resultScript.js#bulkPasteBox( obj )
gf\src\script\common\resultScript.js#ctrlCV( obj )

[FileUDTag]
5.7.4.3 (2014/03/28) で、修正した FileUDTag の setClmEdit を元に戻します。
その機能の ON/OFF は、useEditLink 属性とします。
過去に導入済みのプログラムで使用されている可能性がある為です。
hayabusa.taglib.FileUDTag#doEndTag()
hayabusa.taglib.FileUDTag#release2()
hayabusa.taglib.FileUDTag#setEditLink( final String type )

[popup 関係]
popup 関係の見直しを行います。
①popup.jspページの head タグの headType に、"popup" を設定します。
これにより、BODY部に、<base target="_self" /> を記述する必要がなくなります。
gf/jsp/GF9110/popup.jsp
gf/jsp/GF6050/popup.jsp
②popupの、モーダルダイアログで、サイズが変更できるように、resizable:on; を追記。
gf\src\script\common\default.js#ogPopup( p_pgid,p_height,p_width,p_in_Array,p_this,p_out_Array,command,event )
③popup.jsp の queryButton タグに、編集機能の ON/OFFができる属性(useEditMenu)を追加。
useEditMenu="true" で、編集機能のプルダウンが表示されます。(初期値は互換性の関係で、true)
hayabusa.taglib.QueryButtonTag#doEndTag()
hayabusa.taglib.QueryButtonTag#release2()
hayabusa.taglib.QueryButtonTag#setUseEditMenu( final String flag )

gf/src/META-INF/hybs-taglib.tld
gf/WEB-INF/hybs-taglib.tld

④関連して、fileUD タグの EditMenu属性を、useEditMenu属性に変更します。
既存では、ほとんど使われていないハズなので、互換性を無視して置き換えます。
hayabusa.taglib.FileUDTag#setUseEditMenu( final String flag )

[HTML5 関係]
ViewForm_HTMLTable で使用している colgroup による、DBTypr属性の付与ですが、
HTML5 ネイティブモードで、。(原因不明です)
# CSSで左寄せなど指定している箇所で、R , S9 , X9 の右寄せの機能が効きません。
そこで、td:nth-child(n) を使用して、右寄せだけ設定します。
HTMLTable 以外は、基本的に、個々の td に class 属性をセットしているため、
動作しています。(共通の行番号を出力している箇所以外)
ViewForm_HTMLSeqClmTable も、本当は対応すべきですが、そもそもが暫定対応なので
良く使う ViewForm_HTMLTable のみ適用します。
# 他の ViewForm_XX でも、行番号を出力している箇所は、同様に対応が必要ですが、
# 取りあえず保留します。
plugin.view.ViewForm_HTMLTable#getTableHead()

[javadoc 関係]
JavaDocコメント欄に、<,> の記述があったため、エスケープします。
fukurou.mail.MailTX.java
plugin.column.Editor_DATALIST.java

5.7.4.3 (2014/03/28)
[ロールモード 関係]
ロールモードのJavaDocが古いので、最新の状態に合わせます。
また、MODE 定義が、public static final でしたが、ビットパターンは
将来的に変更する予定なので、privateに変更します。
hayabusa.resource.RoleMode.java

Edit機能の利用に、useClmEdit を加味します。
従来は、カラム編集画面の内、【表示項目設定】タブを表示しないだけでした。
この設定は、RWMODE を、 ##d , ##u , ##f の場合にも同様の設定が可能です。
カラム編集リンク自体を出さない機能は、現時点ではリソース設定できないため、
タグのパラメータとして指定できるようにします。
基本的には、このパラメータはほとんど使われていないハズなので、
機能を置き換えます。
初期値は、カラム編集リンクを出力する(=true)です。
hayabusa.taglib.FileUDTag#doEndTag()
hayabusa.taglib.FileUDTag#release2()
hayabusa.taglib.FileUDTag#setClmEdit( final String type )

[Editor_DATALIST 追加]
編集機能に、HTML5で採用された、DATALISTタグを利用した、入力候補となる
データリストを定義する編集用エディターを新規作成します。
機能的には、INDBMENUのHTML5版に対応します。
編集パラメータのQUERYに応じて、入力候補のリスト(datalistタグ)を出力します。
入力フィールドとdatalistタグとの関係付は、カラムIDに、"h_カラムID" で結びつけます。
plugin.column.Editor_DATALIST.java 新規作成

[ファイルアップロード機能]
ファイルアップロードで、filename のみ、リクエスト変数が使えるようにします。
他の変数では、リクエスト変数が使えない事をチェックするメソッドを用意します。
hayabusa.taglib.FileUploadTag.java 全般的に修正
hayabusa.servlet.MultipartRequest#MultipartRequest(final HttpServletRequest request, …
hayabusa.servlet.MultipartRequest#getReqParamFileName( final String fname )

[クロス集計機能]
useHeaderColumn の適用条件を、集計カラムすべてに行うのではなく、最初の集計カラムのみに適用します。
基本的には、複数の集計カラムには対応できていなかったので、互換性は保たれるはずです。
plugin.view.ViewForm_HTMLCrossTable#makeCrossTable( final DBTableModel table )

5.7.4.2 (2014/03/20) で、useHeaderResource を見直しましたが、再度見直します。
useHeaderResource と useHeaderColumn の両方が true でないと適用しない仕様でしたが、
現時点で、useHeaderResource は、他には使われていないため、単独でヘッダーのリソース適用を
実行するように変更します。

上記の変更に伴い、タグリブのJavaDocを修正します。
hayabusa.taglib.ViewCrossParamTag.java JavaDoc修正

[FileQueryTag 機能改善]
FileQueryTag にいくつかの機能改善を行います。
①WRITABLE カラムの追加
useWritable属性を指定すると、先頭カラムに、WRITABLE カラムが挿入されます。
②MD5の計算結果を設定する機能。
useMD5属性を指定する事で、MD5 というカラムを追加したうえで、MD5計算を行います。

hayabusa.taglib.FileQueryTag#release2()
hayabusa.taglib.FileQueryTag#initDBTable()
hayabusa.taglib.FileQueryTag#addFileData( final int rowNo,final int lvl,final File fin )
hayabusa.taglib.FileQueryTag#setUseWritable( final String flag )
hayabusa.taglib.FileQueryTag#setUseMD5( final String flag )

gf/src/META-INF/hybs-taglib.tld
gf/WEB-INF/hybs-taglib.tld

[FileQueryTag 関連]
File関連の対応の中で、FileWhereTag の isLarger、isSmaller を文字列での扱いに変更します。
また、現状は、org.opengion.fukurou.util.HybsFileFilter.java で処理していますが、
KB や バイトなど、JavaDoc上の誤記や、int型では、最大容量に対応できていない事、
指定方法も、MB や KB などの 記号を含めて指定したいことなどを合わせて、文字列での
受渡し方法に変更します。
fukurou.util.HybsFileFilter#getByteSize( final String slen )
fukurou.util.HybsFileFilter#isLarger( final String slen )
fukurou.util.HybsFileFilter$IsLargerFilter$IsLargerFilter( final long len )
fukurou.util.HybsFileFilter#isSmaller( final String slen )
fukurou.util.HybsFileFilter$IsSmallerFilter#IsSmallerFilter( final long len )
fukurou.process.Process_FileSearch#init( final ParamProcess paramProcess )
hayabusa.taglib.FileWhereTag#release2()

[JspInitTag 関連]
エラー時に、処理を停止していましたが、debug=true と引数に入れることで、
継続処理できるようにしました。
エラー内容によっては、DB検索など、各種処理を行いたい場合もある為です。
hayabusa.taglib.JspInitTag#doEndTag()

[HeadTag 関連]
①headType に、"frame" を用意します。
これは、index.jsp に使用することを想定しています。
index.jsp では、frameset を使用していますが、HTML5 で、frameset が廃止された
事を受けて、"frame" を指定したページは、 従来のHTML4 を出力して、frameset の
機能を実行しようとしています。
# 現時点では、IEしか調査していませんが、HTML5 にしても frameset は使えています。

②headType に、"popup" を用意します。
これは、popup.jsp に使用することを想定しています。
popup.jsp では、上下のフレーム処理をせずに、1枚のJSPに、query.jsp 部と
result.jsp 部を記述し、さらに、各種設定を行っています。
ほとんど、query.jsp、result.jsp と同じ内容ですが、ほんの少し異なる箇所があり、
コピー作成すると、メンテナンス性が悪化します。
そこで、(将来的に)popup.jsp の自動作成ができるように、マーカーしておきます。

hayabusa.taglib.HeadTag#doAfterBody()
hayabusa.taglib.HeadTag#doEndTag()
hayabusa.taglib.HeadTag#setHeadType( final String type )

5.7.4.2 (2014/03/20)
[@DATE.XXXX 関係]
fukurou.util.SystemParameter.java で、{@XXXX AA BB CC} の、AA,B,CC引数に
リクエスト変数を表す @ ではじまる値の設定は、エラーにします。
fukurou.util.SystemParameter#getDateFormat( final String value )

hayabusa.taglib.CommonTagSupport.java で、getSanitizedBodyString()メソッド内で
fukurou.util.SystemParameter を使って、{@XXXX} 処理を行っていますが、
これは、リクエスト変数が使えないため、機能制限されます。
このメソッドは、View関連のBODY処理で、リクエスト値の "[" 文字列を、
"\\]\\"に変換して、フォーマット処理されないようにしていますが、それらに、
SystemParameter を使っているため、{@XXXX AA BB CC} 機能が使えない状況に
なっています。
そこで、CommonTagSupport に一時的に、サニタイズ処理のフラグを設定し、
getRequestValue( String , boolean )の処理内の、getRequest().getParameter( String )
処理の直後に、サニタイズ処理を行う様に変更します。
hayabusa.taglib.CommonTagSupport#release2()
hayabusa.taglib.CommonTagSupport#getSanitizedBodyString()

[ViewForm_HTMLCrossTable 関係]
5.5.5.0 (2012/07/28) [クロス集計時のラベルリソース利用] で適用した処理で、
「カラムリソースがselectionを持たない場合(label表示等)や、カラムリソース
そのものが無い場合は何もしません。」
という箇所について、オリジナルのカラムリソースをヘッダー表示の値に適用するように
変更します。
条件は、useHeaderResource && useHeaderColumn && selection != null の時です。
なお、ViewCrossParamTag のJavaDocコメントが間違っていたので、修正します。
plugin.view.ViewForm_HTMLCrossTable#getHeadLine()
hayabusa.taglib.ViewCrossParamTag.java
gf/jsp/GF6070/query.jsp
gf/jsp/GF6070/result_sample6.jsp

5.7.4.1 (2014/03/15)
[useRenderer=true時のExcel出力修正]
useRendererがtrueの場合画面表示そのままをExcel出力しようとしますが、
DBタイプが数字型の場合に内部的にDouble変換をかけようとしてエラーになる場合があります。
(例えば税率で、DB上は数字で持っているが表示は%付きで出している等)
useRendererがfalseの場合のみdouble変換をかけるようにします。
plugin.io.TableWriter_Excel#setRowCellValue( final Row oThisRow, final int indexOfCell, final String dataVal,final int cellType )

[エラーメッセージ変更]
fileUDタグのエラー「選択されていません。もう一度、選択しなおして下さい。」は
ユーザにとって分かりにくいため、ERR0042を新規に追加して、標準メッセージを
「出力対象データが見つかりませんでした。再度検索して下さい。」に変更します。
hayabusa.taglib.fileUDTag#errorMsg
hayabusa.taglib.fileUDTag#release2()

[classのファイル分離]
public や、protected などの クラスに対する アクセス修飾子 で、
省略時のクラスを、public などと同一ファイルで管理していましたが、
ファイルそのものを分離します。
MailCharset.java から、MailCharsetFactory、UnicodeCorrecter、CharCodeConverter を分離します。
MailCharsetFactory のインナークラスとして、Mail_Windows31J_Charset、Mail_ISO2022JP_Charset、JISDataSource を
再定義しなおします。
fukurou.mail.MailCharset.java
fukurou.mail.MailCharsetFactory.java
fukurou.mail.UnicodeCorrecter.java
fukurou.mail.CharCodeConverter.java

[日本語ファイルのIE11対応]
5.7.1.2 (2013/12/20) で、FileDownloadサーブレットに対応した IE11の日本語対応処理で、
forwardタグにも同様の処理が存在したため、対応します。
User-Agent ヘッダーの取得と比較で、条件を反転したうえで、新しいAgent(Trident)に対応させます。
** IE11はUserAgnetが変更になりましたが、fileDownloadサーブレットの日本語対応ロジックの影響で
** IE11の非互換モードではサーブレット経由のダウンロードが上手くいきませんでした。
** とりあえず、新しいAgent(Trident)に対応させておきます。
hayabusa.taglib.ForwardTag#doEndTag()

[{@DATE.XXXX AA BB CC} 処理の見直し]
①日付処理で、AA 引数が、@ 付の場合、パラメータ処理しますが、null でなく
8ケタ以下の場合は、コマンドと判断している処理で、8ケタ以下ではなく、
先頭が、数字かどうかで判定します。
②H1 ~ HXXX :時を指定の分だけ進める処理が、実装できていなかったので、追加します。
③CC 引数で、日付の加減算処理を、"H" , "D" , "M" の 1文字パラメータの場合のみ利用可能
でしたが、他のコマンドでも処理できるように変更しました。
④これに伴い、01_ADMIN の [Parameter] JSP を修正します。
hayabusa.taglib.CommonTagSupport#getDateFormat( final String value )
fukurou.util.HybsDateUtil#getDateFormat( final String key ,final String prmA ,final String prmB )
fukurou.util.HybsDateUtil#getDateFormat( final String key ,final String prmA ,final String prmB ,final int intC )
fukurou.util.HybsDateUtil#calendarCalc( final Calendar now,final String prmB )
fukurou.util.HybsDateUtil#calendarCalc( final Calendar now , final String prmB , final int intC )
fukurou.util.SystemParameter#getDateFormat( final String value )
gf\jsp\common\gamen\01_ADMIN\printSystemParameter.jsp

[popupのIE11対応]
popupで、モーダルダイアログのフレーム対応がおかしくなったため、
ポップアップを見直します。
従来は、index.jsp を、og;popup タグから呼び出しても、フレームサイズを
指定できましたが、ネイティブモードではフレームサイズの指定ができなく
なりました。
そこで、popup は、popup.jsp を新規に作成し、query 部と result 部を一つのJSPファイルに
まとめる方式を標準とします。
①popup.jsp を別途用意します。
②custom/popup_info.jsp を include します。トグルボタンや他画面リンクを排除しています。
③head タグで、<base target="_self" /> を記述します。
④<form method="GET" action="popup.jsp" > で、自分自身を呼び出すようにします。
⑤queryButton タグに、usePrevNext="false" を記述します。
⑥query タグに、 scope="request" をセットします。
⑦view タグに、scope="request" 、selectedType = "radio"、popupReturnKeys に、引数 を指定します。
jsp/gf/custom/popup_info.jsp
jsp/gf/GF9110/popup.jsp
jsp/gf/GF9150/result.jsp
jsp/gf/GF9200/query.jsp
jsp/gf/GF9250/query.jsp
jsp/gf/GF9500/query.jsp
jsp/gf/GF9510/query.jsp

Changelog

No Changelogs