概要: Webエンジン Ver 5.1.6.0 (2010/05/01) をリリースいたします。 今回のリリースのおける主な変更点は、以下の通りです。 @画面帳票発行機能の追加 各画面毎にユーザー自身が帳票発行を行う雛形を定義し、出力するための機能を追加します。 この機能は、各画面に表示されている項目を元に、ユーザー自身がこの項目のレイアウトを Excel(またはCalc)で編集し、これを帳票雛形として、検索データをPDF又はExcel形式で出力する ためのものです。 これにより、画面に表示されている項目であれば、別途開発を行うことなく、ユーザー自身が 帳票を定義し、発行することができるようになります。 なお、帳票雛形定義は、従来のExcelダウンロードボタンの右側のアイコンから行います。 (詳細については、別途ドキュメントを用意します) A画面項目並び替え機能 各画面毎に、ユーザー単位に画面項目の並び変えができる機能を追加します。 並び替えの定義は、ログアウトした後でも復元されます。 並び替えは、帳票雛形定義同様、従来のExcelダウンロードボタンの右側のアイコンから行います。 (詳細については、別途ドキュメントを用意します) BFTP、SFTP、SMB対応 ファイル転送機能として、FTP、SFTP、SMBに対応します。 (詳細については、別途ドキュメントを用意します) CWebサービス対応 og:urlConnectタグでSOAPプロトコルを利用して、Webサービスの呼び出しを行うための機能を追加します。 また、同様にog:urlConnectタグでSOAPまたはRESTによるWebサービスの呼び出しで、結果として返される XMLをDBTableModelに変換するための機能を追加します。 これにより、Webサービスの呼び出し結果を、DBやファイル等の他の入力形式と同じように処理できるように なります。 また、今回のバージョンアップに伴い、標準ライブラリやTomcatの設定を一部変更しています。 このため、標準環境の雛型のアーカイブも更新していますので、バージョンアップの際はappsフォルダも合わせて 更新して下さい。 [標準環境の雛型のアーカイブ] openGion_apps_win32_5.1_jdk160u18_tomcat6024_ooo32_20100501.zip ※ バージョンアップされる場合は、ビルドファイル(verup.x.x.x.x.zip)に含まれるchanges.txtを確認の上、 作業をお願いします。 ※ 変更点に関する詳細及びその他の修正内容については、添付のリリースノートを参照下さい。 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