Download List

Projeto Descrição

Projectの概要

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

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

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

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


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

System Requirements

System requirement is not defined

Liberado: 2012-12-03 11:43
opengion 5.5.9.0 (4 files Esconder)

Release Notes

5.5.9.0 (2012/12/03)
[積上ガント修正]
JavaScrip利用の積上ガントで、積上げ処理が終わるまで表示を遅延させます。
jsp\common\option\adjustGantTable.css
jsp\common\option\adjustGantTable.js

[入力欄のフォーカス色機能修正]
フォーカスが当たった入力欄をピンク色にしていますが、IE9のselectタグでは
一度のクリックで選択肢が出ない状態になっていました。
selectの場合のみ直接背景色を変更する仕様とします。
色は標準の.focusField と同様の#ffccccとします。
jsp\common\eventScript.js

[積上げガント機能拡張]
5.5.8.3で対応した積上げガント機能拡張ですが、内部的にObjectで扱っていた箇所を
ArrayList<String[]>で扱うように変更します。
これは、現時点では積上げガント以外で値を渡す機会が想定されないため、生のObjectではなく、
型を指定して渡すようにするためです。
hayabusa.html.ViewForm#setViewArrayList( ArrayList<String[]> list)
hayabusa.taglib.ViewFormTag#setViewArrayList( final ArrayList<String[]> list )
hayabusa.taglib.ViewFormTag#doEndTag()
hayabusa.taglib.ViewFormTag#release2()
hayabusa.taglib.StackHeaderTag#doEndTag()
hayasuba.html.ViewStackTableParam#STACK_CAL_KEY
hayabusa.html.AstractViewForm#clear()
hayabusa.html.AbstactViewForm#setViewArrayList( final ArrayList<String[]> list )
hayabusa.html.AbstactViewForm#ArrayList<String[]> getViewArrayList()
plugiin.view.ViewForm#ViewForm_HTMLStackGanttTable#paramInit()

5.5.8.5 (2012/11/27)
[TableFilter_DBARG の桁数なし対応]
NUMBER型などで、桁数が存在しない場合の対応を行いました。
これに伴い、GF81 テーブルのSE_LENGTH カラムは、 NOT NULL 制約ではなく、NULL 許可とする。
gf\changes\changes.txt

gf\db\common\xml\update\const\GEA11.xml GF2070 ARG変数検証 の RWMODE を -w ⇒ mw に変更
gf\db\firebird\sql\01_TABLE\GF81S.sql
gf\db\firebird\xml\install\01_TABLE\GF81S.xml
gf\db\hsql\sql\01_TABLE\GF81S.sql
gf\db\hsql\xml\install\01_TABLE\GF81S.xml
gf\db\mysql\sql\01_TABLE\GF81S.sql
gf\db\mysql\xml\install\01_TABLE\GF81S.xml
gf\db\oracle\sql\01_TABLE\GF81S.sql
gf\db\oracle\xml\install\01_TABLE\GF81S.xml
gf\db\postgres\sql\01_TABLE\GF81S.sql
gf\db\postgres\xml\install\01_TABLE\GF81S.xml

plugin.table.TableFilter_DBARG#execute()
plugin.table.TableFilter_DBARG#textSeparate( final String text )

[リソース登録ミス 対応]
CLS_NAME コードリソースで、Firebird対応時に、誤って、ORACLE分を削除してしまったため、
元に戻します。
リソース登録(コードリソースとラベルリソース)のデータを修正します。
ge\db\common\xml\update\const\GEA04.xml
ge\db\common\xml\update\const\GEA08.xml

[カラムリソースの編集パラメータ対応]
カラムリソースの編集パラメータで、"=" と記述されている場合は、表示パラメータを
利用する処理が、hayabusa.db.DBColumnConfig のみ記述されているが、ColumnData
作成時に処理しておくように変更します。
これは、どこかの修正で未対応のデータが使われる経路が発生したため、
元のオブジェクトで処理しておくようにしておきます。
hayabusa.resource.ColumnData#ColumnData( final String[] data )

[Firebird TIMESTAMP対応]
CLS_NAME に、Date型を指定した場合に、日付データを登録できるが、
TIMESTAMP型でも処理できるようにします。
java.sql.Timestamp オブジェクトで登録するには、yyyy-mm-dd hh:mm:ss[.f...] 形式
に文字列を変換する必要があります。それを、HybsDateUtil#parseTimestamp で
処理します。
fukurou.util.HybsDateUtil#parseTimestamp( final String value )
plugin.query.Query_JDBCTableUpdate#execute( final int[] rowNo, final DBTableModel table )

[TableUpdateParamTag の whereNames対応]
生成するQUERYのwhere 句を指定する方法として、複数のカラム名をCSV指定し、内部で
KEY=[KEY] 文字列を作成します。
ここでは、カラム名は、データベースのカラム名と同じで、かつ、DBTableModel にも
同じカラムのデータが存在していること、という条件付きとします。
また、where 条件との併用を行いますが、こちらの条件が先に使用され、where 条件は、
and を付けて、文字列結合されます。
例: CLM,SYSTEM_ID,KBSAKU ⇒ CLM=[CLM] and SYSTEM_ID=[SYSTEM_ID] and KBSAKU=[KBSAKU]
hayabusa.taglib.TableUpdateParamTag#release2()
hayabusa.taglib.TableUpdateParamTag#setWhereNames( final String wrnm )
hayabusa.taglib.TableUpdateParamTag#getUpdateSQL( final NamesData namesData )
hayabusa.taglib.TableUpdateParamTag#getDeleteSQL()

gf\src\META-INF\hybs-taglib.tld 項目追加 whereNames
gf\WEB-INF\hybs-taglib.tld 項目追加 whereNames

[maxRowCount の 0:[無制限]対応]
maxRowCount で、0を無制限として処理するように修正します。
-1 や無指定(null、ゼロ文字列)は、初期値を設定し、0 は、明示的に無制限を
設定することとします。その場合でも、無制限は、Integer.MAX_VALUE です。
コメントのみの修正と、引数の設定時に、0 の場合に、Integer.MAX_VALUE を再設定する
処理の2種類対応しています。
fukurou.mail.MailReceiver.java (0:[無制限]) コメント追加
hayabusa.db.AbstractQuery.java (0:[無制限]) コメント追加
hayabusa.taglib.FileQueryTag.java (0:[無制限]) コメント追加
hayabusa.taglib.PlsqlUpdateTag.java (0:[無制限]) コメント追加

fukurou.mail.MailRX#setMaxRowCount( final int maxRowCount )
hayabusa.io.AbstractTableReader.java(251): public void setMaxRowCount( final int maxRowCount ) {
hayabusa.taglib.DatabaseMetaDataTag.java(434): public void setMaxRowCount( final String maxSize ) {
hayabusa.taglib.QueryTag.java(670): public void setMaxRowCount( final String count ) {
hayabusa.taglib.ReadTableTag.java(780): public void setMaxRowCount( final String count ) {

common\upload.jsp(37): maxRowCount = "10000000"
DOC08\result_FULL.jsp(11): <og:query command="{@command}" debug="{@debug}" notfoundMsg = "" maxRowCount="10000">
DOC08\result_SHORT.jsp(11): <og:query command="{@command}" debug="{@debug}" notfoundMsg = "" maxRowCount="10000">
DOC23\result.jsp(25): <og:query command="{@command}" debug="{@debug}" maxRowCount="10000" displayMsg="MSG0033">
GF2010\sqlGF02.jsp(4): <og:query command="NEW" dbid="{@DBID}" debug="{@debug}" maxRowCount="100000">
GF2020\sqlGF05.jsp(4): <og:query command="NEW" dbid="{@DBID}" debug="{@debug}" maxRowCount="100000">
GF2030\sqlGF06.jsp(4): <og:query command="NEW" dbid="{@DBID}" debug="{@debug}" maxRowCount="100000">
GF2080\sqlGF09.jsp(4): <og:query command="NEW" dbid="{@DBID}" debug="{@debug}" maxRowCount="100000">
GF2080\sqlGF82.jsp(4): <og:query command="NEW" dbid="{@DBID}" debug="{@debug}" maxRowCount="100000">
GF2080\sqlGF83.jsp(4): <og:query command="NEW" dbid="{@DBID}" debug="{@debug}" maxRowCount="1000000">
GF2080\sqlGF83V.jsp(4): <og:query command="NEW" dbid="{@DBID}" debug="{@debug}" maxRowCount="1000000">
GF2082\sqlGF09.jsp(4): <og:query command="NEW" dbid="{@DBID}" debug="{@debug}" maxRowCount="100000">
GF2090\result.jsp(35): <og:query command="{@command}" debug="{@debug}" maxRowCount="100000">
GF2100\result_cube.jsp(2): <og:query command="{@command}" debug="{@debug}" maxRowCount="100000">
GF2150\result.jsp(28): <og:query command="{@command}" debug="{@debug}" maxRowCount="50000">
GF6170\getChildRow.jsp(19): <og:query command="{@command}" debug="false" maxRowCount="10000" scope="request" tableId="dummy">
GF6250\direct.jsp(10): maxRowCount = "10000" />
GF6250\fileCheckDirect.jsp(14): maxRowCount = "10000" />
GF6250\upload.jsp(20): maxRowCount = "10000"
GFX002\input.jsp(34): maxRowCount = "10000" />
GFX002\output.jsp(28): <og:query command = "{@command}" debug="false" maxRowCount="10000" >
ORA10\dba_index.jsp(22): <og:query command="{@command}" debug="{@debug}" dbid="{@DBID}" maxRowCount="100000">
ORA10\dba_sequences.jsp(22): <og:query command="{@command}" debug="{@debug}" dbid="{@DBID}" maxRowCount="100000">
ORA10\dba_source.jsp(22): <og:query command="{@command}" debug="{@debug}" dbid="{@DBID}" maxRowCount="100000">
ORA10\dba_table.jsp(22): <og:query command="{@command}" debug="{@debug}" dbid="{@DBID}" maxRowCount="100000">

[TableMergeTagの大文字・小文字比較]
TableMergeTagで、比較するキーなどの文字列は、大文字・小文字を区別しない様にします。
大文字・小文字を同一であるとみなす仕組み(DBのスキーマやファイル名など)を
考えると、標準的に区別なしで比較するようにしておきます。
本来なら、大文字・小文字の比較を考慮する/しないをパラメータで指定するほうが
ベストですが、現実的には、同一視することがほとんどと思われるため、現時点では
考慮しない のみ実装しておきます。
hayabusa.taglib.TableMergeTag#makeKeyMap( final DBTableModel table, final String keys, final boolean useCheckOnly )
hayabusa.taglib.TableMergeTag#makeUnion( final DBTableModel masterTbl,final Map<String,Integer> masterMap,
hayabusa.taglib.TableMergeTag#makeIntersect( final DBTableModel masterTbl,final Map<String,Integer> masterMap, final Map<String,Integer> slaveMap )
hayabusa.taglib.TableMergeTag#makeMinus( final DBTableModel masterTbl,final Map<String,Integer> masterMap,
hayabusa.taglib.TableMergeTag#makeDifference( final DBTableModel masterTbl,final Map<String,Integer> masterMap,
hayabusa.taglib.TableMergeTag#makeUnionClm( final DBTableModel masterTbl ,final String slaveKeys ,

[TableFilter_BIKO2CODEの変更]
DB定義書の備考欄から、コードリソースを作成する手順に於いて、
スペースで分割し、":" が存在する箇所のみを、コードリソース化するように
変更します。
つまり、スペースで分解した結果、":" が存在しなければ、コメント(備考)として
扱います。
plugin.table.TableFilter_BIKO2CODE#execute()

[TableFilter_CLMSETの変更]
plugin.table.TableFilter_CLMSET#execute()

[画面リソース変更(GF)]
5.5.2.2 (2012/05/09) で依頼した分のリソースの登録漏れ
GF2041 GF08(テーブル関連定義) 廃止のため
GF2042 シーケンス 廃止(GF2082 にフォルダ名変更)
GF2081 オブジェクト明細(GF83) 新規追加
GF2082 シーケンス 新規追加

[ラベルリソース追加(GF)]
5.5.7.5 (2012/10/27) で依頼した分のリソースの登録漏れ(再依頼)+ 新規に発生したリソースの登録
5.5.8.2 (2012/11/09) の再依頼
GFM0050 リソース不一致カラム除外設定(FGCOM=7) (新規)

[画面名称変更(GF)]
GF80関連のテーブルと、GF01,GF02,GF05,GF06,GF07 関連のテーブルが分かるように
画面にGF80であることが分かるようにしておきます。
GF2050 定義ファイル取込 ⇒ 定義ファイル(GF80)取込
GF2060 定義ファイル検証・反映 ⇒ 定義ファイル(GF80)検証
GF2130 テーブル一覧表 ⇒ テーブル一覧表(GF80)
GF2070 ARG変数検証 ⇒ ARG変数検証(GF81)
GF2080 オブジェクト一覧 ⇒ オブジェクト一覧(GF82)

gf\db\common\xml\update\const\GEA08.xml
gf\db\common\xml\update\const\GEA11.xml

5.5.8.4 (2012/11/22)
[グラフ機能機能追加]
(1)adjustBarを利用したグラフ描画時に、値が2px以下だった場合の処理パターンを追加します。
iBarタグにzeroBorder属性を設定できるようにしました。
この値がfalseの場合は、描画限界を切っている場合(つまり値が0と扱える場合)に
区切り線を表示しません。初期値はtrue(描画する)です。
(2)グラフ色を外部から指定する事を可能にしました。
色指定する場合にsrc:と先頭に付ける事で指定ファイルを利用します。
ファイルはpng限定で、区切り用の_L.png,_R.pngも必要です。
指定時は拡張子を除いた形で指定します。
(3)横棒グラフの場合のグラフの高さを指定可能にします。
graphThick="19px"のように指定して下さい。
この属性は横棒グラフ本体のみに指定可能です。
jsp/common/option/adjustBar.js
gf/jsp/GF7216/グラフ画面の開発マニュアル.xls

[friebird対応]
firebirdではcreate table後にcommitを発行しなければデータの追加ができないため、
installが自動で動作していませんでした。
フォルダ単位にcommitを発行する事で対応します。
hayabusa/common/SystemInstaller#execScripts( final EXEC_TYPE type, final String scriptPath )

5.5.8.3 (2012/11/17)
[日付パース処理の修正]
5.5.7.2での対応で、日付から/や:を取り除く処理を行っていましたが、通常の英字まで
取り除いていたため、除外対象以外はそのまま返すようにします。
(つまり、不正文字のエラーチェックそのものはカラムチェックタグで行われます)
fukurou.util.HybsDateUtil#parseNumber( final String value )

[積上げガント機能拡張]
積上げガントはJavaScriptで処理していましたが、積上げる数が増えると表示に時間がかかってしまいます。
エンジン内部で積上計算した上で、ガント部分の表示を行わないパターンの処理方法を追加します。
内部的にはStackHeaderで取得したカレンダーをform経由でHTMLStackedGanttTableで利用して休日処理を行い、
指定された場合に内部的な積上げ処理を行います。
本バージョンではエンジンの出力までの対応で、実際の描画部分のJavaScriptまでは含みません。
hayabusa.taglib.StackHeaderTag#makeZoom( final String upper ,final String lower ,final int add, final boolean useMonth )
hayabusa.taglib.StackHeaderTag#doEndTag()
hayabusa.taglib.ViewFormTag#setViewObject( final Map<String,Object> map )
hayabusa.taglib.ViewFormTag#doEndTag()
hayabusa.taglib.ViewStackParamTag#setCostColumn( final String costColumn )
hayabusa.taglib.ViewStackParamTag#setInnerStack( final String flg )
hayabusa.taglib.ViewStackParamTag#setStackHoliday( final String flg )
hayabusa.html.AbstractViewForm#clear()
hayabusa.html.AbstractViewForm#setViewObject( final Map<String,Object> obj )
hayabusa.html.AbstractViewForm#getViewObject( final String key )
hayabusa.html.ViewForm#setViewObject( Map<String,Object> map )
hayabusa.html.ViewStackTableParam#COST_COLUMNS_KEY,STACK_COLUMNS_VALUE
hayabusa.html.ViewStackTableParam#INNER_STACK_KEY,INNER_STACK_VALUE
hayabusa.html.ViewStackTableParam#STACK_HOLIDAY_KEY,STACK_HOLIDAY_VALUE
plugin.view.ViewForm_HTMLStackedGanttTable#create( final int sttNo, final int pgSize )
plugin.view.ViewForm_HTMLStackedGanttTable#clear()
plugin.view.ViewForm_HTMLStackedGanttTable#paramInit()
plugin.view.ViewForm_HTMLStackedGanttTable#differenceDays(Date date1,Date date2)
plugin.view.ViewForm_HTMLStackedGanttTable#calNumber(final Date date, final String zoom, Date calFD )
plugin.view.ViewForm_HTMLStackedGanttTable#makeBodyTable(int row, int stackRow, int bgClrCnt, int blc, double[] costAry)
hybs-tablib.tld
gf/jsp/GF7218

5.5.8.2 (2012/11/09)
[MICS用 DB定義EXCEL読み取り対応]
EXCELの読みこみにおいて、#NAME と、タグから columns 指定の2方法がありますが、
固定のセルから、シート単位の固定値を読み取る機能を追加します。
たとえば、DB定義書のような一覧取込みに於いて、テーブル名は、シートの一か所にだけ
書かれており、カラム定義は、行単位に書かれているようなケースに使用できます。
hayabusa\io\AbstractTableReader#setSheetConstData( final String constKeys,final String constAdrs )
hayabusa\io\AbstractTableReader#setNullBreakClm( final String clm )
hayabusa\io\TableReader#setSheetConstData( final String constKeys,final String constAdrs )
hayabusa\io\TableReader#setNullBreakClm( final String clm )
hayabusa\taglib\ReadTableTag#release2()
hayabusa\taglib\ReadTableTag#create( final BufferedReader out )
hayabusa\taglib\ReadTableTag#setSheetConstKeys( final String constKeys )
hayabusa\taglib\ReadTableTag#setSheetConstAdrs( final String constAdrs )
hayabusa\taglib\ReadTableTag#setNullBreakClm( final String clm )
plugin\io\TableReader_Excel#setSheetConstData( final String constKeys,final String constAdrs )
plugin\io\TableReader_Excel#setNullBreakClm( final String clm )
plugin\io\TableReader_Excel$HeaderData#setDebug( final boolean isDebug )
plugin\io\TableReader_Excel$HeaderData#setSheetConstData( final String constKeys,final String constAdrs )
plugin\io\TableReader_Excel$HeaderData#setColumns( final String columns )
plugin\io\TableReader_Excel$HeaderData#makeNames( final Row oRow )
plugin\io\TableReader_Excel$HeaderData#setSheetConstValues( final Sheet sheet )
plugin\io\TableReader_Excel$HeaderData#row2Array( final Row oRow ) 固定値の設定を行う
plugin\io\TableReader_Excel$HeaderData#getLastCellMsg() エラー情報に、シート名も追加

gf\src\META-INF\hybs-taglib.tld 項目追加 sheetConstKeys、sheetConstAdrs
gf\WEB-INF\hybs-taglib.tld 項目追加 sheetConstKeys、sheetConstAdrs

[RENDERER,EDITOR,DBTYPE の条件分けを変更]
RENDERER,EDITOR,DBTYPE の条件分けを、マスターデータレコードから見つけて、対応するレコードを返す方式に変更します。
これは、マスタデータは、順番に評価していき、最初に成立した値をセットします。
マスタデータは、clm,cls,len,biko について条件設定しておき、条件が成立するかどうか判断hし、成立するレコードを
返すことで、そのレコードに該当する、RENDERER,EDITOR,DBTYPE の値を返します。
これで、ある程度複雑な条件判定が可能になります。
マスタデータの null は、条件に含めない(無条件成立)を意味します。
plugin\table\TableFilter_CLMSET#execute()
plugin\table\serchMasterData( final String clmVal,final String clsVal,final String lenVal,final String bikoVal )

[DBTYPE の条件分けを変更]
X,S9 の条件分けを変更します。(MICS対応)
以前からの、S9:数字 と、 X:文字 だけではなく、R:少数、D:日時、CLOB:テキスト を追加します。
桁数未設定の場合は、(桁数) を使用せず、記号だけになります。
plugin\table\TableFilter_DTYPE#execute()
plugin\table\TableFilter_DTYPE#makeDTYPE( final String clsVal,final String lenVal ) 新規作成

[FIREBIRD版テーブル作成スクリプト変更]
FIREBIRD版テーブル作成スクリプトで、NUMBER の小数の扱いを、DECIMAL にする。
plugin.table.TableFilter_TABLE_FIREBIRD#makeLineList( final String[] data,final boolean first )

[日付指定時 null対応]
null と ゼロ文字列を判定する。
日付指定時に、「{@DATE.YMD @DYSTART D-7}」としていたところで @DYSTART がNULLの場合、エラーが出る対応
hayabusa.taglib.CommonTagSupport#getDateFormat( final String value )
fukurou.util.SystemParameter#getDateFormat( final String value )
fukurou.util.HybsDateUtil#getCalendar( final String value )

[ラベルリソース追加(GF)]
5.5.7.5 (2012/10/27) で依頼した分のリソースの登録漏れ(再依頼)+ 新規に発生したリソースの登録
GFM0047 DB定義書 ⇒ DB定義書(GF02,05) (変更)
GFM0048 リソース ⇒ リソース(GEA03,04,08) (変更)
GFM0049 カラムリソース⇒テーブルカラムDB属性更新 (新規)
GFM0050 リソース不一致カラム除外設定(FGCOM=7) (新規)

[コードリソース修正(**)]
エンジン標準のコードリソースで、RENDERER,EDITOR,DBTYPEの短ラベルを追加します。
これは、一覧検索時に文字数が多い為、見にくいので改善します。
具体的には、短ラベルは、長ラベルの日本語のみを表示するようにします。
変更は短ラベルのみなので、実質はラベルリソースの変更になります。
RENDERER
EDITOR
DBTYPE

[コードリソース追加(**)]
CLS_NAME DBクラス に、Firebirdで使用している一般的なコードを追加します。
TIMESTAMP 日時(FB)
VARCHAR 文字(FB)
INTEGER 整数(FB)
DECIMAL 実数(FB)

[GE0012 整合性チェック]
リソースの整合性チェックで、差分更新時のキーに、UNIQ キーを追加します。
重複チェックで、差分を削除すると、すべて消えてしまったため、UNIQを
追加して指定の行だけを消すようにします。
なお、UNIQ のみでユニークになりますが、万一のプログラムバグにより、
別のシステムIDや、カラムを消すことを避ける意味で、従来のキーは、
残しています。
GE0012/GEM0015.jsp
GE0012/GEM0016.jsp
GE0012/GEM0017.jsp

[GE0002 ~ GE0005 リソース登録時のバルクセット]
リソース登録画面で、バルクセットできるカラムを制限していましたが、
columnBulkSet="*" で、制限を解除します。
これは、指定のカラム以外のカラムでも、バルクセットしたいケースが
ある為です。
GE0002/update.jsp
GE0003/update.jsp
GE0004/update.jsp
GE0005/update.jsp

[GE0005 概要説明のメンテ画面リンクの件]
概要説明のみの変更画面(GE0006)に対するリンクを、
リンクアイコンを使用するように変更します。
これは、FGNVL フラグでごねごべしていた箇所を廃止します。
GE0005/result.jsp

5.5.8.1 (2012/11/05)
[MDレンデラ修正]
5.5.7.2での修正で、MDレンデラの区切り文字がスラッシュからコロンに変更されていたため修正します。
又、8文字を超える場合にエラー扱いになっていましたが、元の仕様通りに8文字以上の場合は先頭8文字を
YYYYMMDDとして扱い、MM/DDとして出力するようにします。(時分秒まで存在する場合を想定)
plugin.column.Renderer_MD#getValue( final String value )

Changelog

No Changelogs