SVF for PlainTXTII/Java Edition 6.2cから6.3リリース情報

公開日時:2012/10/04 17:22 記事番号:000009323
製品ブランド:SVF

機能追加事項

・イメージを縦横比固定で貼り付ける機能を追加しました。
 vfreport.propertiesにBitmap.StretchMode=1と設定することにより有効になります。
・フィールドなしの帳票も印字できるようにオプションを追加しました。
 vfreport.propertiesに下記を追加しました。
 VrSetForm()の全モードに対応しています。
 ReportWriter.FormOutputMode=0 or 1 (規定値はゼロ)
 0 ... フィールドなしの帳票を出力しない。(従来互換)
 1 ... フィールドなしの帳票を出力する。 (VrComout("/{FOUT 1}/")を使用)
・全APIの文字列パラメタに対してnullチェック処理を追加しました。
 オプション設定によりnull文字列パラメタを空文字に変換する機能を追加しました。
 ただし、従来通り、ログにはnullを示す"(null)"が出力されます。
 vfreport.propertiesに次のオプションを追加
 ReportWriter.NullCheck=false or true (default is false)
 false ... 従来通りNullPointerExceptionが発生し、-4971が返される。
 この場合、PDF等のファイル出力はされません。
 true ... 文字列パラメタがnullの場合、空文字(")に変換します。
・親リンクフィールド値の参照方法のプロパティを追加しました。
 [vfreport.properties]
 ReportWriter.linkFieldRefMode=0 or 1 ... (1=デフォルト)
 0 ... 入力データを返す(C版のデフォルトと同じ動作です)
 ただし、編集式からの自己参照時は分割データを返します。
 1 ... 分割データのみを返します(Java版の従来のデフォルト動作です)
・JARの起動で機種別バージョンを表示するようにしました。
 (java -jar svf.jar で、機種別のバージョンも表示します。)
・システム変数(_TOTAL_PAGE_CNT)を追加
 _TOTAL_PAGE_CNTは、各サブページの総頁数を返します。
 ※この変数は、_TOTAL_PAGE_COUNTと同様に2度印刷処理を行うことで実現します。

修正事項

・空白文字のみの出力の場合に、印刷がなされない不具合を修正しました。
・VrAttribute("BLANK=レコード名")が常に印字されてしまうのを修正しました。
 "BLANK"は、合計レコードが改頁なしで印字後に、印字可能な場合のみ印字します。
・ビットマップファイルをURLで指定した場合に、原寸サイズの指定が効かない点を修正しました。
・フィールド塗りこみで、塗りこみ枠の線幅を考慮していなかったので、塗りこみ枠が塗り潰されてしまう点を修正しました。
・リンク先の様式で改頁した場合、部数の指定がクリアされてしまう点を変更しました。
・数値項目桁あふれ時の表示をC版に合わせました。
・0xOCで改ページした時のExceptionを回避する様にしました。
・リンクフィールドにおいて、デリミッターを含む文字数がフィールドの桁数と同じ場合に、デリミッターが残ってしまう不具合に対応しました。
・自動リンクフィールドの場合のフィールドバッファ長の修正を行ないました。
・開始行にフィルタリング処理の4が指定されているPNGファイルに対応しました。
・方向を横に設定したレコードの罫線サプレスが正しくなかった点を修正しました。
・右詰の文字列描画がずれる場合があった点を修正しました。
・RWバナー(VrAttribute("FIELD", "BANNER=FORM.FRM")の印字方法を変更しました。
 今までは、VrSetForm(0)&VrSeqOut()で実現していたがフィールドなしの帳票も印字できるように、VrComout("/{FOUT 1}/")を使用するように変更しました。
・総頁数と連番変数を組み合わせると文書管理番号が取得できない点を修正しました。
 _TOTAL_PAGE_COUNTと_SERIAL_PAGE_COUNTを組み合わせたとき、VrInit()~VrQuit()までが繰り返しの範囲となり、VrGetManageNum()がその範囲に含まれることにより、VrGetManageNum()が適切に動作しなくなるため、繰り返しの範囲をVrInit()~VrGetManageNum()までに変更しました。
 ただし、VrGetManageNum()が使用されていない場合は従来通りの範囲となります。
・明細リピートフィールドでの自動リンク処理がうまく動作しなかったため修正しました。
・明細フィールドが全てマスクされているとき印字されない点を修正しました。
・後ろに空白があるフィールド名をVrsOut()するとエラー(-21)になる点を修正しました。
・多倍精度十進演算のゼロ値比較が誤った結果を返す現象を修正しました。
・クエリ実行で「テーブルが結合されていません」エラーが発生する点を修正しました。
・リンクフィールドの計算ロジックの変更を行ないました。
 計算式/編集式からのフィールド値参照は再帰的に処理していたが、子リンクフィールド値の参照に関しては、リンク関係を無視していたため計算順によっては誤った値を取得してしまう可能性があったため、リンク関係も考慮した処理ロジックに改良しました。
・VrAttribute()の不具合を修正しました。
 固定フィールドに対して、VrAttribute()を使うと改頁しても設定値がクリアされない点を修正しました。
・VrEndPage() の印字なしステータス(-35)の対応を行ないました。
 VrEndPage()にて、-35が返された場合、ページ番号等を変更しないように修正しました。
 モード(4 or 5)では、アプリ側に-35を返すことはできないが、モード(0, 1)では、vfreport.propertiesの設定によりアプリに返すことができるので、デフォルトでは返さないように、次のように-35を設定しました。
 ReportWriter.IgnoreErrors=-35
・タイミングにより印刷処理が停止してしまうことがあった点を修正しました。
・システム変数_PREV_Pの戻り値が正しく取得できなかった不具合を修正しました。
・文書名をバイトコードに変換する際にエンコーディングを指定しないため、UNIXなどデフォルトエンコーディングがEUCの環境の場合に文書名が正しくDP用のコードに変換されずプリンタ側でエラーになる点を修正しました。
・QRコードのセル幅が8の整数倍の場合に、例外が発生する点を修正しました。
・VrQuit()で返されるファイルサイズが正しく返されない場合がある点を修正しました。
 VrInit()
 VrSetForm()
 VrEndPage() ... 1000バイトのファイル出力
 VrSetForm()
 VrEndPage() ... 0バイトのファイル出力
 VrQuit() ... 0が返されるが、1000が正解。
 問題は、上記のようにVrInit()からVrQuit()間で複数のVrSetForm()をしている場合に発生します。
・レコードフィールドでの_NEXT_P変数の対応を行ないました。
 ※この対応は、_TOTAL_PAGE_COUNTと同様に2回印刷処理を行うことで実現します。
・総ページ数取得機能の修正を行ないました。
 _SERIAL_PAGE_COUNTと_TOTAL_PAGE_COUNTを含む帳票を実行した後、_TOTAL_PAGE_COUNTを含まない帳票を実行すると、それ以前の結果が印刷されなくなる点を修正しました。
・ROUND()の結果に誤差が発生するため修正しました。
 UseMPL=false ... 特定の数値と丸め位置により誤差が発生するので内部的に十進演算を使うように変更。
 UseMPL=true ... 丸め位置が±10桁以上になると結果がおかしくなる点を修正。
・VrSetForm(4 or 5)でレコードのない帳票を実行したとき改頁後にデータが初期化されない点を修正しました。
・VrQuit/VrSetPrinter/VrEndDoc/VrOutputQueryの戻り値の補正、2G以上のファイルを作成したとき、今まではビットオーバーフローにより不正な値が返されていたが、2G以上である場合にint型の最大値を返すように改良しました。
・FORMAT/FORMAT2の改良を行ないました。
 先頭付加文字と可変位置の符合文字を組み合わせたとき、それらの位置関係 を反映した編集処理ができるように改良しました。
 先頭付加文字(,$など)と可変位置設定の符号文字(-,▲)の組み合わせをしたときに、
 その位置関係により、先頭付加文字をどの位置に入れるかを指定できるように改良しました。
 【▲を可変位置に設定したときの例】
 FORMAT(-1234,"▲ZZZZZZ") ... "▲1234"
 FORMAT(-1234,"▲ZZZZZZ") ... "▲1234"
 ※符号文字が固定位置設定になっている場合は、従来と同じ動作。
・様式切換え時に、未出力の連写帳票を出力する様、対応しました。
・現象:「フィールドの出力位置が左にずれる」
 原因:"FieldPadding"が"False"
 対処:"FieldPadding"が"True"
 フィールドの不足分桁数をスペースで埋めるフラグをTrueにしました。