Super Visual Formade 設計部 2.12bから2.13リリース情報

公開日時:2012/10/01 19:38 記事番号:000009233
製品ブランド:SVF

機能追加事項

1.多倍精度十進浮動小数点演算に対応(32ビットのみ)
多倍精度十進浮動小数点演算ライブラリを追加しました。この演算ライブラリは最大33桁(整数部+小数部)の十進演算をサポートします。

注意1: 演算結果が最大有効桁数を超えた場合は、最下位桁が切捨てされます。
注意2: 演算途中で最大有効桁数を超えた場合も、その時点の結果の最下位桁が切捨てられます。

設定方法は、設定ファイルの変更と、API関数による設定と2種類あります。

[設定ファイルでの指定]
Windows配下のvfreport.iniの[Fclib]セクションにあるUseMPL=FalseをUseMPL=Trueに変更する。設定ファイルに記入すると、全てのプログラムで有効となります。

[API関数による指定]
関数名: VrSetCalcMode(handle,mode)
mode=0 DOUBLE型演算(従来通り)
mode=1 多倍精度十進浮動小数点型演算

この関数はVrInit()関数を呼び出した直後に指定して下さい。
途中で使用されても正しく演算はされません。
順番としましては、

VrInit()

VrSetCalcMode()

VrSetPrinter()

VrSetForm()

という形です。

また、modeに0と1以外の数値を設定された場合には無視します。関数による指定がない場合には上記のvfreport.iniの設定を見て動作します。
実際のデータの出力方法に関しましては、数値型フィールドに対して、VrsOut()やVrsOutn()を使用し、データを文字型扱いとして出力して下さい。

例:VrsOut(handle,Field,"12345678901234567890")

2.給紙デバイスの論理値指定
フォーム設計時に指定できる「トレイ選択」の選択項目と実際のプリンタの給紙装置を関連付けすることが可能です。
この設定はWindowsフォルダ配下にあるvfrsrcdv.iniという設定ファイルに定義します。
各選択項目は次のような名前となります。

トレイ指定無し
トレイ1
トレイ2
トレイ3 =PaperDev0
=PaperDev1
=PaperDev2
=PaperDev3

また、この機能は機種(or制御言語)単位に記述します。Syntaxは次のようになります。

[機種(or制御言語)]

PaperDev0=n0

PaperDev1=n1

PaperDev2=n2

PaperDev3=n3

上記のn0n3はその機種(or制御言語)の論理値を指定します。機種毎にデバイス情報は違うのでこの理論値は一様とはなりません。また、様式設計の関係でここではPaperDev3までしか記述しておりませんが、PaperDev4以降を記述しても結構です。

例:RPDL2の場合

[RPDL]

PaperDev0=0


PaperDev1=6

PaperDev2=1

PaperDev3=-1

上記の指定は
トレイ指定無し
トレイ1
トレイ2
トレイ3 =指定なし
=マルチメディアフィーダ
=トレイ1
=手差し
となります。
指定値と実際のデバイスの家系は、vfrsrcdv.iniの中に機種毎に記載されています。
また、vfrsrcdv.iniが存在しない場合は以前と同様の関連付けとなります。

3.不正な文字列データパラメタが指定された場合にチェック処理機能
以下のような不正な文字列データパラメタが指定された場合にチェックをするようにしました。
○ NULLポインタ
○ 不正なデータポインタ
○ ターミネートされていない文字列

以上に対してのチェックです。「不正なデータポインタ」と「ターミネートされてない文字列」を不正な文字列として扱います。
Windows配下のvfreport.iniの[ReportWriter]セクションにNullCheckを追加し動作を選択できるようにしました。以下をコピーしていただいても結構です。

[ReportWriter]

;Null Check Mode

;0…… チェックしない(不正な文字列データが指定されるとエラーが発生し、アプリは止まります)
;1…… 文字が不正なら空文字(Null)に変換する。
;2…… 文字列が不正ならエラー文字列に変換する。
;3…… 文字列が不正ならエラー文字列に変換しMSGBOXを表示する。

NullCheck=0

デフォルトはNullCheck=0となっております。

NullCheck
NullCheck=2or3の時、エラー文字列は次のようになります。

処理可能な最大長を超えた文字列が指定された場合

"***** [error] string too long *****"

文字列の内容が不正である(メモリアクセスエラー)

"***** [eroor] invalid string"

文字列の最終記号がない場合には、上記のどちらかがエラーとなります。

4.デバックウィンドウ(32ビットのみ)
デバックウィンドウ上で文字列の検索をできるようにしました。
文字のフォントや表示レベルによる表示色が設定可能です。
尚、以前のデバックウィンドウと同様の表示にはできませんので、ご了承下さい。

5.32ビット版環境設定
環境設定を32ビットに変更しました。また、印字位置調整で複数のフォームを一括で印字位置調整できるようにしました。

6.プレビュー順次処理モード(32ビットのみ)
複数ページをプレビューする際にVrPreviewStartPage()関数とVrPreviewEndPage()関数で囲まない状態で実行すると、今までは1ページ分プレビュー表示を行い、終了ボタンを押下するか、印刷すると次のページが新たにプレビューとして表示されていましたが、1度のプレビュー画面にて次ページが押されたら、次のページの実行を行うという形の順次処理に変更しました。

7.PRESCRIBE2用ランタイムモジュールリリース
PRESCRIBE2用ランタイムモジュールが正式に入りました。PRESCRIBE2は京セラ製ページプリンタに搭載されているドライバです。尚、プリンタ側で持っている文字や罫線で出力する為、プリンタにフォントが搭載されていないと出力できませんので御確認下さい。
また、PRESCRIBE2モジュールでは印刷速度を最優先としておりますので、他の機種のドライバと比べますと、いくつかの制限がございます。

・ クーリエフォントの印刷はできません(全角フォントの設定されているフォントに従います)
・ 文字倍率の縦横比率は1:3(3:1)までとさせていただきました。以下の組み合わせはできません。
縦1倍に対して横4,6,8倍
横1倍に対して縦4,6,8倍 縦2倍に対して横8倍
横2倍に対して縦8倍
・ 文字回転は、90度と270度はできません。
以上が制限事項となります。ご了承下さい。

8.Oracle8対応
クエリーファイル実行にて今までOracleドライバはバージョン7までの対応でしたが、Oracle8に対応しました。

注意: Oracle8では、従来のSQL*Netの上位互換であるNet8をご使用下さい。

9.設計部(クエリー設計部を含む)関連の機能追加事項
幾つか対応事項がありますので、以下に箇条書きさせていただきます。
・ テスト印刷に簡易モードを追加しました。標準は今までの方式と同じですが、簡易モードにすると、VrTest()関数を使用した簡易方式(環境設定からのテスト印刷と同じです)となります。
・ ビットマップフィールドが実行時にファイルを指定するような設定になっている場合に、テスト印刷時にビットマップフィールドを表示するようにしました。
・ 用紙の基本設定画面で給紙トレイの設定ができますが、「トレイ4」を増やしました。
・ 行数、桁数とピッチを指定し、一度にフィールドを作成する「フィールドの一括設定」機能を追加しました。
・ 固定文字の設計で属性ダイアログを表示しないで選択した文字列の切りぬき、複写、貼りつけ、削除をできるようにしました。
・ クエリー設計にて設計内容の印刷機能を追加しました。

10.条件付の集計演算機能の追加
演算ライブラリの全ての集計関数に省略可能な条件式パラメタ指定をできるようにしました。集計関数に書きのように条件式を追加指定することにより機能します。

例: 「区分」という数値型フィールドに"1"というデータが入ってきた場合に売上金額フィールドを集計する。
計算式:SUM(売上金額,区分=1)
区分=1という部分が条件式(比較式)となります。

注意: この設計関数は、指定の条件を判断しながら集計処理を行う為、条件式部分に はどんな集計関数も使用できません。計算式に集計関数を含むフィールドの指定もできません。 もし、指定された場合には、実行できない演算式として扱う為、 フィールドの計算は全て行われず、入力値(データが入ってこなければ0)のままとなります。

以下の2つの例は使用できない場合の例となります。
例1: SUM(売上金額,SUM(売上金額)>=10000)
条件式に集計関数が使用されているので不可能です。
例2: 売上金額合計というフィールドの計算式がSUM(売上金額)
売上総合計というフィールドの計算式にSUM(売上金額,売上金額合計>=10000)

修正事項

1.設計部まわりの機能での修正点
・ 繰り返し領域をコピーした際に、貼り付け先にアイテムが設計されているとそのアイテムも繰り返しになってしまう点を修正しました。
・ フィールドの一括設定画面にて、数値編集ボタンを押下し編集式の設定/変更を行っても、変更が反映されない点を修正しました。
・ サブフォームやレコードの属性ダイアログにて、線幅をキー入力しても反映されない点を修正しました。
・ マスクを設定すると矩形や固定文字も隠れてしまう点を修正しました。また、繰り返しフィールドの場合元のフィールドだけ隠れて繰り返し領域は残ったままになってしまう点も修正しました。
・ 繰り返し設定になっているアイテムが30を超えている場合に、繰り返し範囲を選択し削除してからUndoを行うとエラーが発生する点を、エラーではなく「Undoできません」というメッセージを表示するように修正しました。

2.印刷(プレビュー含む)関連機能での修正点
・ プレビュー実行時に、入力を行うと、使用されいているFEPがIME97だった場合に文字化けが発生する点を修正しました。(プレビューをDelphi版にすることで回避)
・ プレビュー画面上で印刷予約のチェックボタンを消し、違うページにジャンプすると、ジャンプした先のページも印刷予約のチェックがはずれてしまう点を修正しました。
・ プレビュー入力でフィールドの内容を削除して印刷しても、データが削除されずに印刷されてしまう点を修正しました。
・ 数値フィールドの値が「▲123」等となっている場合に、プレビューで入力やページを送ると再計算を行う際に、正の値として計算してしまう点を修正しました。
・ 複数ページで改ページすると合計などのデータが表示されないことがある点を修正しました。
・ サブフォームとレコードが設計されているフォームファイルで数値フィールドの編集式の中で「ZZ9V99」等の仮想小数点を使用している場合に、プレビューを行い、入力ボタンを押下するとフィールドで小数点が表示されてしまう点を修正しました。
・ VrPreviewEndPageを発行せずにVrQuitを呼び出し、プレビュー画面を印刷せずに終了すると、テンポラリファイルが削除されずに残ってしまう点を修正しました。
・ サブフォームとレコードが設計されているフォームファイルでプレビューを使用せずに「イメージ印刷」を行うと、印刷中断画面で中断ボタンを押下しても、何度も中断画面が表示される場合がある点を修正しました。
・ 「ESC/P(イメージ)」や「PR201(イメージ)」を使用して、数十枚の印刷を行おうとするとプリンタ側で何度も改ページを行ってしまったり、PCが落ちてしまったりする点を修正しました。
・ 「PCL5」で印刷した際に、サブフォームとレコードが作成されているフォームでグループサプレスの設定を「罫線を印刷しない」にしていても罫線が印刷されてしまう点を修正しました。
・ 「RPDL2」で印刷した際にプリンタにフォーム登録を何度も実行すると、プリンタ側でメモリエラーとなってしまう点を修正しました。
・ 「RPDL2」で印刷し、プリンタ側で両面印刷の指定をして出力した場合に、最終ページが片面で終わってしまうと、最終ページが排出されない点を修正しました。

3.クエリー関連機能での修正点
・ 新規作成し、保存して再度開くと「印刷フィールド名」の部分がドロップダウンできない場合がある点を修正しました。
・ SQLの実行を行いデータ表示を行った際に、設定件数(デフォルト100件)を超えていないにも関わらず、「プレビューの設定件数を超えました」というメッセージが表示される点を修正しました。
・ 記号を含む列名をリンク指定した場合に、様式解析エラーが発生して実行できない点を修正しました。
・ 使用するテーブルが10以上になってしまうと様式ファイルを読み込んだ時に間違えたテーブル名を表示してしまう点を修正しました。

4.実行時の処理関連の修正点
・ インストールを行う際にプログレスインジケータがインストールの進行状況とあっていない点を修正しました。
・ サブフォームとレコードが設計されているフォームで、レコードが横展開するような設計になっており、かつレコードに網掛けの設定がしてあると、出力時に網掛けがずれてしまう点を修正しました。
・ 自動改ページしないという設定で、繰り返しフィールドが作成されているフォームを実行した場合に、繰り返しフィールド数を超えたデータを送ってしまうと、超えたデータの一番最後のデータが先頭行に出力されてしまう点を修正しました。
・ 連写機能を使用したフォームを実行した際に、連写の属性で「データがない連写領域のアイテムを印刷する」となっている場合に、VrPaperEjectを複数回実行すると、連写エリア内の罫線等が印刷されなくなってしまう点を修正しました。
・ 連写機能を使用したフォームを実行した場合に、連写で最後のページが端数で終わってしまった場合に、余っている連写エリアに最後のデータが複写されてしまう点を修正しました。
・ 連写機能を使用したフォームを実行した場合に、連写内にバーコードが設計されていて、かつ「データがない連写領域のアイテムを印刷しない」になっていて、かつ、最後の連写の片方だけで終わってしまうと印刷されないはずの連写エリアに不要なバーコードが印刷されてしまう点を修正しました。
・ サブフォームの属性で「レコード数に関わらず、枠の大きさは固定する」という設定になっていて、自動リンクフィールドの設定になっているフィールドがあると、リンクした次のレコードの高さが細くなってしまう点を修正しました。
・ サブフォームとレコードが設計されているフォームに対し、全てのフィールドに空データが出力されると、プログラムが終了されない点を修正しました。
・ CODE39のバーコードを作成する際に、データの中でスタート・ストップ文字である「**」を出力するとアプリケーションエラーが発生する点を修正しました。
・ VrSetQuery()関数とVrPrint()関数を数回繰り返して実行すると、内部的に使用している関数でエラーが返されてしまい、印刷されなくなってしまう点を修正しました。
・ VrGetAttribute()関数を使用し、小文字のフィールド名を指定するとフィールド名が見つからない場合がある点を修正しました。
・ 連写機能を使用しているフォームで、連写の中に繰り返しフィールドを設定していると、1つ目の連写の中のデータが2つめ以降にも印刷されてしまう点を修正しました。