仮想プロパティ式・仮想プロパティ逆変換式

操作方法


仮想プロパティ式

新しく追加したプロパティの「仮想プロパティ式」プロパティに式を設定すると、新しく追加したプロパティは仮想プロパティになり、式の結果を表示します。

仮想プロパティ式の設定は、新規プロパティ定義ダイアログか、プロパティ定義にある“仮想プロパティ式”プロパティ(基本タブ)から設定します。


新規プロパティの追加と仮想プロパティの設定例

作業に新規プロパティを追加します。追加したプロパティをオーダの仕様1を参照する仮想プロパティにします。

作業テーブルを開いて、列見出しのポップアップメニューで「表示列の設定...」を選択して、表示列設定ダイアログを表示します。


表示列設定ダイアログの新規プロパティボタンを押して、新規プロパティ定義ダイアログを表示します。


新規プロパティ定義ダイアログで、名前を適当に設定します。
そして、仮想プロパティ編集ボタンを押します。


仮想プロパティのテキストボックス横の・・・ボタンを押して、式編集ダイアログを表示します。
オーダの仕様1を参照するように、「ME.Order.Spec1.Code」と式を設定します。


式編集ダイアログでOKボタンを押すと、設定した式が仮想プロパティのテキストボックスに反映されます。
これで新しく追加したプロパティがオーダの仕様1を参照する仮想プロパティになりました。すべてのダイアログをOKボタンを押して閉じます。


作業テーブルを確認すると、追加したプロパティがオーダの仕様1を参照して、表示しているのが分かります。


プロパティウィンドウでは追加したプロパティはユーザタブに表示されます。こちらもオーダの仕様1を参照して表示しています。


仮想プロパティ逆変換式

ユーザが追加したプロパティの仮想プロパティ式プロパティに式を設定した場合、そのプロパティは書き込みはできませんが、仮想プロパティ逆変換式を設定することで書き込み可能になり、仮想プロパティ逆変換式に設定した式に従って、入力した値を設定します。

例えば、オーダにプロパティを追加して、仮想プロパティ式に

ME.Qty + '個'

と設定したとします。
オーダの数量が100なら、このプロパティは「100個」と表示します。
仮想プロパティ逆変換式を設定することで、そのプロパティに「200個」と入力すると、オーダの数量に200が入るようになります。


設定方法

新規プロパティ設定ダイアログ上の仮想プロパティ逆変換式のテキストボックスから設定できます。
または、プロパティ定義の基本タブにある、“仮想プロパティ逆変換式”プロパティで設定できます。

仮想プロパティ逆変換式は、INPUTキーワードを利用して、HOLDERオブジェクトに代入する式を設定します。


INPUT

INPUTは、仮想プロパティ式に入力された文字列を表します。


式の設定例

例1

作業に追加したプロパティで、オーダの数量を“100個”と表示する仮想プロパティ式と仮想プロパティ逆変換式。

 仮想プロパティ式 ME.Order.Qty+'個'
 仮想プロパティ逆変換式 HOLDER.Order.Qty=FindNumberL( INPUT, 1 )

例2

オーダに追加したプロパティで、オーダの納期を“1月1日”と表示する仮想プロパティ式と仮想プロパティ逆変換式。

 仮想プロパティ式 GetMonthPart(ME.LET)+'月'+GetDayPart(ME.LET)+'日'
 仮想プロパティ逆変換式 HOLDER.LET=DateF(GetYearPart(HOLDER.LET),FindNumberL(INPUT,1),FindNumberL(INPUT,2),GetHourPart(HOLDER.LET),GetMinutePart(HOLDER.LET),GetSecondPart(HOLDER.LET))

例3

オーダに追加したプロパティで、最も右に紐付いたオーダの顧客を表示する仮想プロパティ式と仮想プロパティ逆変換式。

 仮想プロパティ式 ME.RightmostOrder[1].Customer
 仮想プロパティ逆変換式 HOLDER.RightmostOrder[1].Customer=INPUT

※存在しない顧客を入力した場合、自動生成可能であれば自動生成します。自動生成不可であれば、そのコードは入力できません。


仮想プロパティ逆変換式で使用する「INPUT」は文字列になるため、他の型への変換するための関数がいくつか用意されています。
内部関数については、こちらも参照してください。

FindNumberL( 文字列 , N )

第一引数の文字列の左からN番目の数値を意味する文字を数値で返します。FindNumberL( '10個', 1 ) -> 10

FindNumberR( 文字列 , N )

第一引数の文字列の右からN番目の数値を意味する文字を数値で返します。FindNumberL( '10個', 1 ) -> 10

DateS( 年 , 月 , 日 )

年、月、日を数値で与えると、日時型で返します。

DateF( 年 , 月 , 日 , 時 , 分 , 秒 )

年、月、日、時、分、秒を数値で与えると、日時型で返します。



HelpNo.:741100
© Since 2019 Asprova Corporation, All rights reserved.