情報交換
組み込みのTax Calculator(再利用可能パーツ(DF_DET12))は、仮想クリップボードを使用してコンポーネント間で情報を交換します。
Tax Calculatorのソースをご覧になると、このコマンドが税金計算ルーチンの終わりに計算結果を仮想クリップボードに保存する様子がわかります。
Invoke #AvFrameworkManager.avSaveValue WithID1(Calculation) WithID2(Tax)
FromNValue(#DF_ELNET) Persistent(FALSE)
SignalChange(TRUE)
普通の計算機DF_DET13もクリップボードを使用します。
各計算終了後DF_DET13は、以下のコードを実行し計算結果を送ります。
Invoke #AvFrameworkManager.avSaveValue WithID1(Calculation) WithID2(Normal)
FromNValue(#VTOTAL) Persistent(FALSE)
SignalChange(TRUE)
Tax Calculatorを使用して給与の総計を計算する方法の例を次に示します。
EVTROUTINE HANDLING(#MITM_TAXCALC.Click)
INVOKE method(#AvFrameworkManager.avRestoreValue) WITHID1(Calculation) WITHID2(Tax) TONVALUE(#Salary) USENVALUEDEFAULT(#Salary)
SIGNAL event(SomethingChanged)
ENDROUTINE
標準の計算機を使用して給与を計算する方法の例を次に示します。
EVTROUTINE HANDLING(#MITM_NORMCALC.Click)
INVOKE method(#AvFrameworkManager.avRestoreValue) WITHID1(Calculation) WITHID2(Normal) TONVALUE(#Salary) USENVALUEDEFAULT(#Salary)
SIGNAL event(SomethingChanged)
ENDROUTINE
UseNDefault(#Salary)パラメータを使用すると、クリップボード上に計算結果がない場合に、現在値を確実に固定できます。これらのサンプルでは、計算機とフォームの間での情報交換が実行できます。
· Tax Calculatorと普通の計算機はどちらも常に最新の計算結果を送ります。
この非常に単純な概念が基礎になり、その上により複雑な情報交換が成り立つのです。