JSPカスタムタグをベースとした、Webアプリケーションフレームワークです。
SQLの知識さえあれば、データのCRUD操作をメインとした業務システムが
簡単に構築することができます。
このフレームワークは、村田機械株式会社の基幹システムを構築するために
開発され、ほぼ全ての基幹システムは、これを利用して構築し、稼動しています。
(基本機能)
・ユーザー管理 ・認証・アクセス制御
・多言語対応 ・Excel入出力機能
・ガントチャート表示、編集機能 ・定型帳票作成、発行機能
・定型メール送信機能 ・データベース定義管理機能
・バッチ処理機能
各種詳細情報及びドキュメントについては、openGion@Websiteを参照して下さい。
Java を含む標章は、米国 Sun Microsystems, Inc.の商標であり、同社のJava ブランドの技術を使用した製品を指します。
Excel は、Microsoft Corporationの米国及びその他の国における登録商標です。
コンテンツ中に記載された社名および製品名は、すべて各社の商標または登録商標です。
5.5.8.0 (2012/11/01)
[headタグ修正]
スマートフォンやタブレット等で画面を閲覧する際に何も指定しない場合は通常、横幅980pxで計算されます。
これはタブレットの実際のサイズとは異なるため、文字が小さく見えてしまう場合があります。
metaタグのviewportをheadタグで出力できるようにして対応します。
システムリソースのUSE_VIEWPORT_HEADERをtrueにするか、headタグのuseViewPort属性をtrueにする事で
content="width=device-width, initial-scale=1"の設定でviewportを出力します。
初期値はUSE_VIEWPORT_HEADERで、falseです。
hayabusa.common.SystemData#USE_VIEWPORT_HEADER
hayabusa.taglib.HeadTag#MOBILE_HEAD
hayabusa.taglib.HeadTag#doEndTag()
hayabusa.taglib.HeadTag#release2()
hayabusa.taglib.HeadTag#setUseViewPort( final String flag )
hybs-taglib.tld
[adjustBar.js修正]
5.5.7.3の修正でアップデート漏れがあったため対応します。
common/option/adjustBar.js
[dataCheckタグ判別方法修正]
SQL判定を行うかどうかを、SELECTの文字が存在するかどうかで行っていました。
例えばJavaScriptに対して"select"の文字列を渡してもSQLタイプと判断されてしまいます。
SQLタイプではtrim後にSELECT以外が先頭に来る可能性は無いと言えるため、先頭にSELECTがある場合のみ
SQLタイプのチェックだと判別するように変更します。
common/option/adjustBar.js
[HTMLAREAエディタとHTMLPREレンデラ追加]
HTMLタグに利用される半角の<や>を登録する際に<>に変換するエディターとして、
HTMLエディタが存在しましたが、テキストエリア形式には対応していませんでした。
テキストエリア型のエスケープエディタとしてHTMLAREAを追加します。
同時にPREでHTMLレンデラと同様の動作を行うレンデラHTMLPREを追加します。
plugin.column.Editor_HTMLAEA
plugin.column.Renderer_HTMLPRE
5.5.7.5 (2012/10/27)
[システム GF リソース修正]
GFM0047 DB定義書 ⇒ DB定義書(GF02,05)
GFM0048 リソース ⇒ リソース(GEA03,04,08)
GFM0049 カラムリソース⇒テーブルカラムDB属性更新
[jsp:directive.include]
jsp:directive.include されるファイルは、jsp:root 属性や、jsp:directive.page の
contentType ではなく、jsp:directive.page の pageEncoding でファイルのエンコードを
指定する必要があります。
UTF-8 なので、ファイルに日本語が記述されていない場合は、Shift-JISもUTF-8も
同じなので、通常問題ないのですが、ソースに日本語を記載する場合(コメントなど)に
予期せぬ動きをする可能性がありますので、対処しておきます。
SQL文中に、<!-- **** --> コメントを入れてあるソースの jsp:root を外すと、コメント処理が
されずに、SQL文に反映されるため、エラーになります。その場合だけ注意が必要です。
<jsp:directive.page pageEncoding="UTF-8" />
詳細は、5.5.7.5_refactoring.txt に記述します。
[ge/db 06_SYNONYM 追加]
帳票関係(GE50~GE57)について、PUBLIC SYNONYM のスクリプトを用意しておきます。
ただし、ケースごとに使うか使わないかを判断する必要がある為、
SQLフォルダ だけ用意し、自動反映の xmlフォルダ には作成しません。
5.5.7.4 (2012/10/25)
[TableFilter_CLMSET 機能修正]
TableFilter_CLMSET で、表示種別、編集種別、DBタイプ、備考をリソースから
取得して再設定していましたが、備考の設定は、上書きではなく、NULLの場合のみ
設定します。
また、リソースに存在しない場合は、CLS_NAME と、USE_LENGTH を利用して
動的に割り当てます。
plugin.table.TableFilter_CLMSET#execute()
[TableFilter_DBARG 機能修正]
OBJ_NAME,SEQNO を追加することで、SEQNO を振りなおします。
plugin.table.TableFilter_DBARG#execute()
カラムの大文字化と、桁数の 前0 削除
plugin.table.TableFilter_DBARG#textSeparate( final String text )
[エンジン ** リソース修正]
エンジン標準リソースの KBCLM カラム区分 とFGCOM 共通項目F を見直します。
コードリソースの追加・変更です。
KBCLM カラム区分 FGCOM 共通項目F
初期 0 初期 0
主要 1 主要 1
一般 2 一般 2
省略 3 省略 3
共通 5 共通 5
除外 7 除外 7
未使用 8 未使用 8
削除 9 削除 9
[システム GF リソース修正]
GFシステムのメッセージ関連のリソースを修正しました。
GFM0032 リソース種別(表示,編集,文字) 未入力チェック ⇒ リソース種別(表示,編集,文字) チェック
GFM0035 カラム名称,DBクラス,桁数 整合性チェック ⇒ DBクラス,桁数 整合性チェック
GFM0036 カラム定義 整合性チェック ⇒ カラム名称 整合性チェック
GFM0040 カラム名称 推奨チェック ⇒ カラム定義 推奨チェック
[システム GF リソース追加]
GFシステムのメッセージ関連のリソースを追加しました。
GFM0047 DB定義書
GFM0048 リソース
DBDEF_IN DB定義書反映(GF80⇒GF02,05,06,07)
DBDEF_OUT DB定義書出力(GF02,05⇒EXCEL)
DBFILE_IN DB定義書取込(EXCEL⇒GF80)
5.5.7.3 (2012/10/12)
[adjustBar.jsの修正]
①棒グラフのヘッダを外部からコントロール可能にしました。
位置、文字、線種をiHeadタグから変更可能です。
②棒グラフに対してリンク、文字表示、attr設定を可能にしました。
common/option/adjustBar.js
gf/jsp/GF7216/グラフ画面の開発マニュアル.xls
gf/jsp/GF7203/result.jsp
common/default.css
[新伝送CB01登録処理修正]
CB01登録処理時はHPASSにスペース8バイト、HNAMEにスペース20バイトを入れるという
従来の処理に合わせて固定でスペースを登録するようにします。
fukurou/transfer/TransferExec_CB01#CB01_INSERT
5.5.7.2 (2012/10/09)
[HybsDateUtil.java 追加]
日付関係の処理をおこなうユーティリティー群を集めたクラスを新規追加します。
既存のばらばらに点在する日付関係の処理をこちらに移します。
ただし、hayabusa関係では、デフォルトの日付フォーマットをシステムリソースで
指定しているため、一部の処理は、hayabusa に残ります。
fukurou.util.HybsDateUtil.java
fukurou.business.AbstractBizLogic#makeParamMap()
fukurou.process.FileLineModel#setFileVals( final int level, final File file )
fukurou.transfer.TransferExec_CB01#execute( final String[] vals, final TransferConfig config, final Transaction tran )
fukurou.transfer.TransferExec_CB01#getDate( final String form ) 削除
fukurou.transfer.TransferExec_CB01#getCalendar( final String value ) 削除
fukurou.transfer.TransferExec_CB01#getDate( final String baseDate,final int diff ) 削除
fukurou.util.AbstractObjectPool#toString()
fukurou.util.DateSet#changeForm( final String form )
fukurou.util.DateSet#getDate( final String form )
fukurou.util.HybsTimerTask#isExecution()
fukurou.util.LogSender#log( final String level ,final String message )
fukurou.util.LogWriter#log( final String message )
fukurou.util.LogWriter#Shell#toString()
fukurou.util.SystemParameter#SystemParameter( final String orig )
fukurou.util.SystemParameter#getDateFormat( final String value )
fukurou.xml.XSLT#getXmlParameter( final String xmlIn )
fukurou.xml.XSLT#useFileInfo( final boolean flag )
hayabusa.common.HybsSystem#getDate( final long time )
hayabusa.common.HybsSystem#getDate( final String form )
hayabusa.common.HybsSystem#getDate( final long time,final String form )
hayabusa.common.HybsSystem#getYMDate( final int plus )
hayabusa.common.HybsSystem#getCalendar( final String value )
hayabusa.common.HybsSystem#getDate( final String baseDate,final int diff )
hayabusa.filter.AccessStopFilter#isStop( final ServletRequest request )
hayabusa.report.ExcelDataPickup#getNumericTypeString( final HSSFCell oCell )
hayabusa.taglib.CommonTagSupport#getDateFormat( final String value )
hayabusa.taglib.ValueTag#actionExec( final String action,final String value )
[日付データ自動変換機能 復活]
5.3.2.0 (2011/02/01) で、行った、日付データの自動変換機能の廃止を、復活します。
廃止の理由が書かれていませんが、日付フォーマットの場合、ケースが多岐にわたる為、
処理が煩雑になるのと、基本的には、日付データはフォーマットなしのデータを扱って
いたため、変換が不要でした。今回、Firebird対応で、TIMESTAMP型のデータを
扱うにあたり、この辺りを整理していく必要があります。
plugin.column.DBType_DATE#valueAdd( final String value )
plugin.column.DBType_DATE#valueSet( final String value )
plugin.column.DBType_YM#valueAdd( final String value )
plugin.column.DBType_YM#valueSet( final String value )
plugin.column.DBType_YM01#valueAdd( final String value )
plugin.column.DBType_YM01#valueSet( final String value )
plugin.column.DBType_YM31#valueAdd( final String value )
plugin.column.DBType_YM31#valueSet( final String value )
plugin.column.DBType_YMD#valueAdd( final String value )
plugin.column.DBType_YMD#valueSet( final String value )
plugin.column.DBType_YMDH#valueAdd( final String value )
plugin.column.DBType_YMDH#valueSet( final String value )
plugin.column.Renderer_DATE#Renderer_DATE( final DBColumn clm )
plugin.column.Renderer_DATE#getValue( final String value )
plugin.column.Renderer_DATE#getCalendar( final String value ) 廃止
plugin.column.Renderer_DATE#getValue( final String value )
[日付データ変換処理の見直し]
plugin.column.Renderer_HM#getValue( final String value )
plugin.column.Renderer_HMS#getValue( final String value )
plugin.column.Renderer_MD#getValue( final String value )
plugin.column.Renderer_YM#getValue( final String value )
plugin.column.Renderer_YMD#getValue( final String value )
plugin.column.Renderer_YMD31#getValue( final String value )
plugin.column.Renderer_YMDH#getValue( final String value )
[Types.TIMESTAMP型のデータ取得]
現在、Types.TIMESTAMP 型は、Firebirdのテーブルでしか使っていませんが、
文字列として取得するのではなく、YYYYMMDDHHMMSS 形式で取得するようにします。
これは、後々の内部処理をしやすくするためです。
なお、日付フォーマットで出力したい場合は、レンデラー等を設定してください。
fukurou.db.DBUtil#getValue( final ResultSet res, final int col, final int type )
[Renderer_TMSTMP 変更]
TMSTMP レンデラーは、日付ネイティブのカラムのデータから、数字部分だけをピックアップし、
日時(年/月/日 時:分:秒)または、日付(年/月/日)表示する場合に使用するクラスです。
数字以外は、各データベースによって、まちまちなので、'/',':','-',' ' を削除します。
なお、並び順は、必須に、YYYYMMDDHHMISS の順番とし、January 8 などの形式や、
04:05 AM 、1/8/1999 などの形式は受け付けることは出来ません。
あくまで、先頭から 数字を順次取得し、YYYYMMDDHHMISS 形式に当てはめていきます。
また、時刻部分 HHMISS が 000000 の場合は、日付のみに自動的にします。
これは、日付ネイティブでは、時刻情報も持っているため、使っているのかどうかの
判定は、実際のデータが、000000 に設定されているかどうかでしか判断できないためです。
plugin.column.Renderer_TMSTMP#getValue( final String value )
[リソース追加]
CLS_NAME DBクラス に、日時 TIMESTAMP というコードリソースを追加します。
作成区分=エンジン(0) 、システムID="**" です。
RENDERER 表示種別 に、TMSTMP 日付 というコードリソースを追加します。
[FileFilter修正]
雛形自動作成のフィルター機能を見直します。
自動作成のパターンから漏れた分を処理するように変更します。
hayabusa.filter.FileResponseTransform#ChangeData[] data
hayabusa.filter.FileResponseTransform#HrefChangeData extends ChangeData
queryButtonTag で、検索ボタンに不要な ")" が出力されていたので、削除します。
また、検索ボタン(accesskey)と、クリアボタン(clearAccesskey)に使用する
ショートカットキー文字を削除するロジックを簡素化します。
hayabusa.taglib.QueryButtonTag#getSubmit()
hayabusa.taglib.QueryButtonTag#setAccesskey( final String accsKey )
hayabusa.taglib.QueryButtonTag#setClearAccesskey( final String accsKey )
[EXCELの複数シートの読み込み]
readTable において、EXCEL読み込み時に複数シートをマージして取り込む機能を追加します。
ヘッダーは、最初のシートのカラム位置に合わせます。(ヘッダータイトルの自動認識はありません。)
よって、指定するシートは、すべて同一レイアウトでないと取り込み時にカラムのずれが
発生します。
シート番号は、0から始まる数字でしていしますが、0,1,3 の様にカンマ区切り、5-8 のような
ハイフン区切りによる連続指定、* による、全シート指定が可能です。
また、これらの組み合わせも可能です。
0,1,3,5-8,10-*
これらの数字は、かならず、昇順に並んでおり、重複してはいけません。 3-8,6-10 などの指定はできません。
* は、すべてを意味しますが、一番最後に現れる場合は、昇順ルールが適用され、残りすべてを意味します。
先頭や、途中には、現れません。
fukurou.util.StringUtil#csv2ArrayExt( final String csvData , final int maxNo )
hayabusa.taglib.ReadTableTag#release2()
hayabusa.taglib.ReadTableTag#create( final BufferedReader out )
hayabusa.taglib.ReadTableTag#setSheetNos( final String sheet )
hayabusa.taglib.ReadTableTag#toString()
hayabusa.io.TableReader#setSheetNos( final String sheet )
hayabusa.io.AbstractTableReader#setSheetNos( final String sheetNos )
plugin.io.TableReader_Calc#setSheetNos( final String sheetNos )
plugin.io.TableReader_JExcel#setSheetNos( final String sheetNos )
plugin.io.TableReader_Excel#setSheetNos( final String sheetNos )
plugin.io.TableReader_Excel#readDBTable()
5.5.7.1 (2012/10/05)
[URLDaemon起動画面追加]
GEにURLDaemonをステータス指定で起動できる画面を追加します。
ge/jsp/URLD/*.jsp
[DirectWriteTable機能追加]
DirectWriteTableタグでは、必ず行番号が出力されますが、
これを出力しないための属性useNumberを追加します。
初期値はtrue(出力する)です。
hayabusa.taglib.DirectWriteTableTag#setUseNumber( final String flag )
hayabusa.taglib.DirectWriteTableTag#release2()
hayabusa.taglib.DirectWriteTableTag#create( final PrintWriter out )
hybs-taglib.tld
[queryButtonタグ修正]
sumitボタンに不要な括弧が出力されていたため削除します。
hayabusa.taglib.QueryButtonTag#getSubmit()
[DirectTableInsertタグ機能追加]
取り込み時に先頭行(ヘッダ)を除外するための属性skipRowCountを追加します。
外部アプリケーションで出力されたファイルを取り込む際に、
定期的に自動取込をするような場合にはヘッダの先頭に#を付加できない場合があります。
ワークテーブル取込後にカラムの値で判断できる場合もありますが、ヘッダが可変の場合等で
テーブルの桁数が足りずに取込時エラーが発生する可能性があります。
そのような場合に当属性を設定して回避して下さい。
初期値は0(1行もスキップしない)です。
hayabusa.taglib.DirectTableInsertTag#setOmitFirstLine( final String flag )
hayabusa.taglib.DirectTableInsertTag#create( final BufferedReader reader )
hybs-taglib.tld