5.7.7.0 (2014/06/06) [DB定義DB機能追加] カラム定義マスタの機能を追加します。 GF03テーブルをカラム定義情報として、この情報を元にテーブルカラムをセットできるようにします。 従来のテーブルカラムの画面GF2020はそのまま置いておき、GF2021としてマスタを利用する画面を 新規に作成しました。(つまり、この機能を利用せずに今まで通りの管理も可能) マスタ情報と異なるテーブルカラム定義をしている場合は該当箇所の背景色を変更しています。 GF03 新規テーブル(カラム定義マスタ) gf/jsp/GF2005 カラム定義マスタ登録画面 gf/jsp/GF2021 テーブルカラム定義登録画面 [DB定義 コメント] テーブルやカラムに、コメントを追加する SQL を作成するフィルターを作成します。 これは、テーブル定義などの作成と同様に、ファイル出力を行います。 構文: --☆テーブルにコメントを作成する。 COMMENT ON TABLE テーブル名 IS 'コメント'; --☆カラムにコメントを作成する。 COMMENT ON COLUMN テーブル名.カラム名 IS 'コメント'; --☆テーブルのコメントを表示する。 SELECT COMMENTS FROM USER_TAB_COMMENTS WHERE TABLE_NAME = 'テーブル名'; --☆テーブル.カラムのコメント一覧を表示する。 SELECT COLUMN_NAME, COMMENTS FROM USER_COL_COMMENTS WHERE TABLE_NAME = 'テーブル名' その他、DB定義関連、DB移行テーブル(GF84,85)関連の修正があります。 plugin.table.TableFilter_CMNT_CLM.java 追加 plugin.table.TableFilter_CMNT_TBL.java 追加 plugin.table.TableFilter_DBARG_OUT.java JavaDOC修正 plugin.table.TableFilter_DBSRC_OUT.java JavaDOC修正 plugin.table.TableFilter_INDEX.java JavaDOC修正 plugin.table.TableFilter_SEQUENCE.java JavaDOC修正 plugin.table.TableFilter_TABLE.java JavaDOC修正 gf/jsp/GF2010 テーブル gf/jsp/GF2020 テーブルカラム gf/jsp/GF2030 インデックス gf/jsp/GF2050 定義ファイル(GF80)取込 gf/jsp/GF2060 定義ファイル(GF80)検証 gf/jsp/GF2090 整合性チェック(種別間) gf/jsp/GF2110 スキーマ情報取込 gf/jsp/GF2130 簡易テーブル表(GF80) gf/jsp/GF2140 DBスクリプト作成 gf/jsp/GF2150 XML出力(定義情報) gf/jsp/GF2180 移行DB一覧 gf/jsp/GF2190 移行DB対応明細 5.7.6.3 (2014/05/23) [Excel出力時の文字扱い対応] 5.7.4.1でtableWriterのuseRenderer利用時に出力を全て文字扱いとしましたが、 指定したカラムのみ文字扱いしないような機能を追加します。 フラグをカラムオブジェクトに持ちます。 columnEditorでstringOutputをtrue/falseで指定してください。 false指定をすると文字ではなくdbTypeに従った方式で出力します。 hayabusa.db.DBColumn#DBColumn( final String lang, final ColumnData clmData , final LabelData lblData , final CodeData cdData ) hayabusa.db.DBColumn#DBColumn( final DBColumnConfig config ) hayabusa.db.DBColumn#getConfig() hayabusa.db.DBColumn#isStringOutput() hayabusa.db.DBColumnConfig#setStringOutput( final boolean flg ) hayabusa.db.DBColumnConfig#isStringOutput() hayabusa.taglib.ColumnEditorTag#release2() hayabusa.taglib.ColumnEditorTag#DBColumnConfig getModifyConfig( final DBColumn dbColumn ) hayabusa.taglib.ColumnEditorTag#etStringOutput( final String flag ) plugin.io.TableWriter_Excel#writeData( final DBTableModel table,final PrintWriter writer ) plugin.io.TableWriter_Excel#setRowCellValue( final Row oThisRow, final int indexOfCell, final String dataVal,final int cellType ) hybs-taglib.tld 初期値をシステムリソースUSE_STRING_EXCEL_OUTPUTで指定できるようにしておきます。 hayabusa.common.SystemData#USE_STRING_EXCEL_OUTPUT hayabusa.db.DBColumn#DBColumn( final String lang, final ColumnData clmData , final LabelData lblData , final CodeData cdData ) hayabusa.taglib.ColumnEditorTag#release2 hayabusa.taglib.DBColumnConfig#stringOutput [DBType_DD] 5.7.6.2 (2014/05/16) で、修正した、DBType_DD ですが、細かな修正を行います。 oldValue が null の時は、上位の valueAction を呼んでいたが、そのまま、newValue を 返すようにします。 また、action="VALSET" は、この、DBType_DD しか使えないため、リソースも、合わせる必要が ありますが、処理の直前に、columnEditor で、強制的に、dbType="DD" に変更します。 plugin.column.DBType_DD#valueAction( final String action,final String oldValue,final String newValue ) gf/jsp/GF2020/directGF05.jsp gf/jsp/GF2020/insertGF05.jsp gf/jsp/GF2110/directGF05.jsp [アップロードファイルのCSVセット] 個々に指定したアップロードファイル名は、XXX_NEW や XXX_ORG で取得できますが、 HTML5 の multiple 属性使用時や、アップロードされたファイルを一連で処理したい場合に ファイル名を、CSV形式で取り出せるようにします。 キーは、共通で、UPLOAD_FILES とします。 hayabusa.taglib.FileUploadTag#makeDBTable( final MultipartRequest multi ) hayabusa.taglib.FileUploadTag#makeDBTableFromClms( final MultipartRequest multi ) gf/jsp/GF6260 アップロード サンプル修正 gf/jsp/GF6040 Submit(HTML5) サンプル修正 [stringOutputサンプル] stringOutputのcolumnEditorでの設定サンプルをGF6440に記述しておきます。 gf/jsp/GF6440 ファイル出力サンプル修正 [report2] 5.7.6.2 (2014/05/16) で対応した、PAGEBREAKカラムの値を、シート名として使う場合の処理で、 FIRST雛形も、適用します。チェックする位置が悪かったため、FIRST雛形に適用されていませんでした。 追加機能で、FIRST雛形シート名が、FIRST**** の場合、**** 部分をシート名に使います。 優先順は、PAGEBREAKカラム があれば、こちらを先に使用します。 (FIRST****は、雛形に直接記述されているため、外部から動的に変更できるPAGEBREAKカラムを優先しました。) hayabusa.report2.OdsContentParser#execContent() hayabusa.report2.OdsContentParser#writeParsedSheet( final OdsSheet sheet, final BufferedWriter bw ) hayabusa.taglib.ReportTableTag2#setUseSheetName( final String useSName ) Javadoc修正のみ gf/jsp/GF2190/report2.jsp 移行DB対応明細 サンプル修正 [tbody] keyBreakClmで指定した値が、キーブレイクした場合、このタグを使用します。 usableKey,usableList とは、独立しているため、それぞれで有効になれば、使用されると判断されます。 hayabusa.taglib.TbodyTag.java JavaDocのみ修正 hayabusa.taglib.TFormatTag#release2() hayabusa.taglib.TFormatTag#doEndTag() hayabusa.taglib.TFormatTag#setKeyBreakClm( final String key ) hayabusa.html.TableFormatter#makeFormat( final DBTableModel table ) hayabusa.html.TableFormatter#setKeyBreakClm( final String key ) hayabusa.html.TableFormatter#isUse( final int row, final DBTableModel table ) gf/jsp/GF2130/result.jsp 簡易テーブル表(GF80) サンプル修正 gf/jsp/GF2190/view.jsp 移行DB対応明細 サンプル修正 TLDファイルに追加します。 gf/src/META-INF/hybs-taglib.tld TbodyTag に、keyBreakClm 追加 gf/WEB-INF/hybs-taglib.tld [ReadTableTag] sheetConstAdrs 指定で、EXCEL表記(A2,B1等)の対応と、特殊記号(SHEET)の対応を行います。 従来は、行-列 の数字指定のみでしたが、EXCEL表記に準拠した、A1,A2,B1 の記述も処理 できるように対応します。 0-0 ⇒ A1 , 1-0 ⇒ A2 , 0-1 ⇒ B1 になります。 @EXCEL表記に準拠した、A1,A2,B1 の記述も処理できるように対応します。 A処理中のEXCELシート名をカラムに割り当てるために、"SHEET" という記号に対応します。 例えば、sheetConstKeys="CLM,LANG,NAME" とし、sheetConstAdrs="0-0,A2,SHEET" とすると、 NAMEカラムには、シート名を読み込むことができます。 なお、A1,A2,B1 の記述は、必ず、英字1文字+数字 にしてください。(A〜Zまで) これは、処理の簡素化のためです。 hayabusa.taglib.ReadTableTag#setSheetConstAdrs( final String constAdrs ) JavaDocのみ修正 plugin.io.TableReader_Excel$HeaderData#setSheetConstData( final String constKeys,final String constAdrs ) plugin.io.TableReader_Excel$HeaderData#setSheetConstValues( final Sheet sheet ) gf/jsp/GF2050/uploadMics.jsp 定義ファイル(GF80)取込 sheetConstAdrs を、EXCEL表記 に修正 [DB定義DB修正] DB定義DBで、データ移行を定義するテーブルのインデックスを訂正します。 前回作成したばかりですので、一旦削除して作り直してください。 GF84(移行DB一覧)、GF85(移行DB対応明細) changes/5763 5.7.6.2 (2014/05/16) [ボディーフォーマット最大数変更] HTMLCustomTaleでのtbodyタグの同時利用個数を10から20に変更します。 plugin.view.ViewForm_HTMLCustomTable#BODYFORMAT_MAX_COUNT [ガントヘッダー表示拡張] 5.7.0.0での対応が、おそらくSVNアップ漏れで5.7.2.0で元に戻っていたため、マージして適用しなおします。 バージョン表示は5.7.0.0ママで上げます。(hayabusa.taglib.GanttHeaderTagのみ) hayabusa.taglib.GanttHeaderTag#makeHeaderMD( final StringBuilder bufH , final int fillCnt , final int mtCnt , final String mdStr ) { hayabusa.taglib.GanttHeaderTag#makeZoomTime( final int hourOfPixcel,final int step,final boolean useTani ) stackHeaderタグの互換機能として、DAY⇒40,WEEK⇒41,MONTH⇒42 対応しておきます。 hayabusa.taglib.GanttHeaderTag#setZoom( final String val ) [DB定義DB修正] DB定義DBで、データ移行を定義するテーブルを新規追加します。 これに伴う設定画面も新規追加します。 GF84(移行DB一覧)、GF85(移行DB対応明細) changes/5762 gf/jsp/GF2130 簡易テーブル表(GF80) 修正 gf/jsp/GF2180 移行DB一覧 新規追加 gf/jsp/GF2190 移行DB対応明細 新規追加 [DB定義DB関連] カラム区分(KBCLM GF05) と、共通項目F(FGCOM GF80) のコードリソースの定義を変更します。 これは、DB定義書や、カラムチェック、簡易定義書出力など、多くの箇所で 利用されていますので、JSP画面の修正が多数入ります。 従来、5:共通でしたが、7:共通(C) に変更します。これが一番大きな変更です。 8:有閑(Y) 9:削除(X) は、基本的には、DB定義的には使用しないカラムなので、共通より後ろに配置します。 通常の簡易定義書では、共通以下のみ表示させます。 また、6:除外 はリソース定義で使用しません。 1,2,3,4 が、DB関連図で使用する重要カラムになります。 3:IDX(+) と 4:NN(*) は優先付が難しいのですが、通常、インデックスを作成する場合、NotNull設定も しておくことを推奨しているため、インデックスのない、NotNullをNNとしています。 0:初期(未) 区分未設定の初期状態です 1:UK (◎) 物理ユニークカラムです 2:LUK (〇) 論理ユニークカラムです 3:IDX (+) インデックスカラムです 4:NN (*) Not Nullカラムです 5:一般(_) DB関連図では省略可能です 6:除外(-) リソース反映除外カラムです 7:共通(C) 全テーブル共通属性です 8:有閑(Y) 存在しますが未使用カラムです 9:削除(X) 実態は削除済みです gf/jsp/GF2060 定義ファイル(GF80)検証 修正 gf/jsp/GF2090 整合性チェック(種別間) 修正 gf/jsp/GF2120 リソース連携 修正 gf/jsp/GF2160 廃止(dbdefOut.jsp を GF2020 に移植) gf/jsp/GF2020/query.jsp テーブルカラム 修正、dbdefOut.jsp 新規 plugin.table.TableFilter_KBCLM.java 新規作成 DBDEF_OUT DB定義出力 DB定義出力(GF02,05⇒EXCEL) ラベルリソース変更 [DBType_DD] テーブルスクリプト作成で、初期値(DATA_DEFAULT)のスキーマ定義時に、 DEFAULT '1' --コメント のような書き方をしていると、コメント部も 初期値として取り込まれています。 NOT NULL 指定があれば、DEFAULT '1' NOT NULL --コメント とすることで 不要な初期値設定も避けられますが、そうでない場合、コメントが不要です。 SQL 文で、操作する分には問題ありませんが、エンジン内部で再作成している 関係で、コメントを削除する必要があります。 plugin.column.DBType_DD#valueAction( final String action,final String oldValue,final String newValue ) [stopZero , DB.COUNT 対応] 検索系のタグで、検索結果が 、0件の場合に、継続処理を止める stopZero 属性を 追加します。また、検索件数を表す、DB.COUNT パラメータを request に 書き出す処理も追加します。 stopZero 属性は、QueryTag、ReadTableTag に採用されています。 DB.COUNT 値は、BizLogicTag , DBMetaDataQueryTag , DirectWriteTableTag , FileUpdateTag , LDAPQueryTag , QueryTag , ReadTableTag , TableFilterTag , TableMergeTag に採用されています。 hayabusa.taglib.DirectTableInsertTag#release2() hayabusa.taglib.DirectTableInsertTag#doEndTag() hayabusa.taglib.DirectTableInsertTag#setStopZero( final String cmd ) hayabusa.taglib.TableFilterTag#release2() hayabusa.taglib.TableFilterTag#doEndTag() hayabusa.taglib.TableFilterTag#setStopZero( final String cmd ) hayabusa.taglib.TableMergeTag#release2() hayabusa.taglib.TableMergeTag#doEndTag() hayabusa.taglib.TableMergeTag#setStopZero( final String cmd ) hayabusa.taglib.FileQueryTag# tld に追加するだけ TLDファイルに追加します。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld サンプル画面も修正します。 gf/jsp/GF6280 直接ファイル出力 gf/jsp/GF6380 ファイルクエリー [帳票関連] PAGEBREAKカラムの値を、シート名として使うかどうか指定します。 初期値は、false:使用しない です。 これは、主に、リアルタイム帳票で使います。 hayabusa.report2.ExecQueue#setUseSheetName( final boolean useSheetName ) hayabusa.report2.ExecQueue#isUseSheetName() hayabusa.report2.OdsContentParser#execContent() hayabusa.report2.OdsContentParser#writeParsedSheet( final OdsSheet sheet, final BufferedWriter bw ) hayabusa.report2.QueueManager_DIRECT#create() hayabusa.report2.QueueManager_DIRECT#setUseSheetName( final boolean useSheetName ) hayabusa.taglib.ReportTableTag2#release2() hayabusa.taglib.ReportTableTag2#exec() hayabusa.taglib.ReportTableTag2#setUseSheetName( final String useSName ) hybs-taglib.tld report2 タグに、useSheetName 属性追加 [XSLT関連] jspInclude 時の /jsp/common/** 等の include ファイルですが、 エンジン共通として、jspCommon6.x.x.x.jar で提供しています。 今は、自身に存在しない場合は、相対パスで、../../../gf/jsp/commom/** という感じで、gf を見つけて利用していますが、Tomcatを実行している webapps 以外のJSPファイルをチェックする場合、gf が存在しないケースが あります。 そこで、確実にgf が存在する、処理をキックしている環境の gf を使用するように 変更します。 それには、パラメータで、REAL_PATH を渡す必要があります。 fukurou.process.Process_XSLT#init( final ParamProcess paramProcess ) fukurou.xml.XSLT#transform( final String file ) fukurou.xml.XSLT#setRealPath( final String path ) fukurou.xml.JspIncludeReader#getString( final File file,final String encode,final String realPath ) gf/jsp/DOC18/result.jsp [JSP解析] JSP解析で、iBar | iGanttBar | iGantt | iHead | iMatrix | iTable | iTask のチェックを追加 gf/jsp/DOC18/xsltV6/GF70_PROG.xsl JSP解析で、Ver6 に対応した、xsltV6\GF70_PROG.xsl を修正しました。 また、ERROR、WARNING、CAUTION の3レベルで記述し直し、番号も振りなおしています。 gf\jsp\DOC18\xsltV6\GF70_PROG.xsl [GuiQuery] GuiQuery タグは、BODY 無しなので、tldファイルは、tagdependent に 設定しておきます。 本来は、BODY 部がない場合は、empty なのですが、コメントなどを自由に 書き込めるように、tagdependent にしています。 本当に、empty にしたい場合は、tagdependent をすべて、empty 変更してください。 gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [ColumnTag] columnタグに、dbid属性を追加します。 これは、editor="DBMENU" や、editor="DATALIST" 時に、param 属性にSQL文を 指定しますが、このSQLの実行先のDBID を指定できるようにするものです。 一般には使用しませんが、管理画面で使用します。 hayabusa.taglib.ColumnTag#release2() hayabusa.taglib.ColumnTag#getInsertTag( final DBColumn clm, final String value ) hayabusa.taglib.ColumnTag#setDbid( final String id ) gf/src/META-INF/hybs-taglib.tld gf/WEB-INF/hybs-taglib.tld [廃止クラス,廃止メソッドに伴う、JSP修正] tableExist ⇒ dataCheck gf/jsp/common/gamen/07_CONFIG/entry.jsp(17):