メインコンテンツまでスキップ
バージョン: 20 R7 BETA

Count parameters

Count parameters -> 戻り値

引数説明
戻り値Integer実際に渡された引数の数

説明

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 } } )
 
 var $1 : Text
 var $2 : Time
 var $3 : Integer
 
 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
 
 var $0;${1} : Real // 全ての引数および戻り値の型は実数
 $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)

参照

Copy parameters
コンパイラコマンド