version 3
Count parameters 数値
| 引数 | 型 | 説明 | ||||
| このコマンドには、引数はありません。 | ||||||
| 戻り値 | 数値 | 実際に渡された引数の数 | ||||
説明
Count parameters コマンドは、プロジェクトメソッドに渡された引数の数を返します。
警告: Count parametersは、他のメソッド(プロジェクトメソッド、その他)から呼び出されるプロジェクトメソッド内でのみ意味を持ちます。Count parametersを呼び出すプロジェクトメソッドがメニューに割り当てられている場合、Count parametersは0を返します。
例題
1. 4Dプロジェクトメソッドは右側から始まるオプションの引数を受け付けます。
例えば、メソッドMyMethod(a;b;c;d)は以下のように呼び出すことができます:
MyMethod ( a ; b ; c ; d ) ` すべの引数を渡す MyMethod ( a ; b ; c ) ` 最後の引数を省略 MyMethod ( a ; b ) ` 後ろ2つの引数を省略 MyMethod ( a ) ` 1番目の引数の実を渡す MyMethod ` 引数を渡さない
MyMethod内でCount parametersを使用し、実際の引数の数を取得してその数に応じて異なる処理を実行することができます。以下の例では、テストメッセージを表示し、4D Writeエリアにテキストを挿入、またはディスク上のドキュメントにテキストを送信しています:
` APPEND TEXT Project Method
` APPEND TEXT ( Text { ; Long { ; Time } } )
` APPEND TEXT ( Text { ; 4D Write Area { ; DocRef } } )
C_TEXT ($1)
C_TIME ($2)
C_LONGINT ($3)
MESSAGE ($1)
If (Count parameters>=3)
SEND PACKET ($3;$1)
Else
If (Count parameters>=2)
WR INSERT TEXT ($2;$1)
End if
End if
このプロジェクトメソッドをアプリケーションに追加すると以下のように記述できます:
APPEND TEXT (vtSomeText) ` キストメッセージの表示のみ APPEND TEXT (vtSomeText;$wrArea) ` キストメッセージを表示し、$wrAreaエリアに追加 APPEND TEXT (vtSomeText;0;$vhDocRef) ` キストメッセージを表示し$vhDocRefに書き込む
2. 4Dのプロジェクトメソッドは、右側から始めて、可変数の同タイプの引数を受け付けます。これらの引数を宣言するには、コンパイル命令を使用し、変数として${N}を渡します。Nは最初の引数を示します。Count parametersを使い、Forループと引数の間接参照構文を用いてこれらの引数にアクセスすることができます。この例は関数で、引数として受け取った最も大きな数値を返します:
` Max of Project Method
` Max of ( Real { ; Real2... ; RealN } ) -> Real
` Max of ( Value { ; Value2... ; ValueN } ) -> Greatest value
C_REAL ($0;${1}) ` 全の引数および戻り値の型は実数
$0:=${1}
For ($vlParam;2;Count parameters)
If (${$vlParam}>$0)
$0:=${$vlParam}
End if
End for
このプロジェクトメソッドをアプリケーションに追加すると以下のように記述できます:
vrResult:=Max of (Records in set("Operation A");Records in set("Operation B"))
または:
vrResult:=Max of (r1;r2;r3;r4;r5;r6)
参照