4D v14.3

Command name

ホーム

 
4D v14.3
Command name

Command name 


 

Command name ( command ) -> 戻り値 
引数   説明
command  倍長整数 in コマンド番号
戻り値  文字 in ローカライズされたコマンド名

説明   

Command name コマンドは、引数commandに渡したコマンド番号のコマンド名を返します。

4Dは、メソッドで使用するキーワード、定数、およびコマンド名の動的な翻訳を統合しています。4Dの日本語版を使用している場合、次のように記述します:

 DEFAULT TABLE([MyTable])
 ALL RECORDS([MyTable])

同じコードがフランス語版の4Dでは以下のようになります:

 TABLE PAR DEFAUT([MyTable])
 TOUT SELECTIONNER([MyTable])

ただし、4Dにはユニークな機能である EXECUTE FORMULA コマンドがあり、これを使用すると、データベースがコンパイルされていてもただちにコードを作成して、このコードを実行することができます。

日本語版で EXECUTE FORMULA 文を使用して作成されたコードの例は、以下のようになります:

 EXECUTE FORMULA("DEFAULT TABLE([MyTable])")
 EXECUTE FORMULA("ALL RECORDS([MyTable])")

同じコードがフランス語版の4Dで開かれると以下のようになります:

 EXECUTER FORMULE("DEFAULT TABLE([MyTable])")
 EXECUTER FORMULE("ALL RECORDS([MyTable])")

4Dは、EXECUTE FORMULA(日本語版)をEXECUTER FORMULE(フランス語版)に自動で翻訳しますが、コマンドに渡したテキスト文を翻訳することはできません。

アプリケーションで EXECUTE FORMULA コマンドを使用する場合には、Command nameを使用して異なる言語間のローカライズにおける実行文の問題を解決し、文を言語に依存しないようにすることができます。コードの例は、以下のようになります:

 EXECUTE FORMULA(Command name(46)+"([MyTable])")
 EXECUTE FORMULA(Command name(47)+"([MyTable])")

4Dのフランス語版を使用すると、このコードは以下のようになります:

 EXECUTER FORMULE(Nom commande(46)+"([MyTable])")
 EXECUTER FORMULE(Nom commande(47)+"([MyTable])")

注: コマンド毎のコマンド番号は、コマンドドキュメントのプロパティエリアに書かれています。

Command name コマンドはcommand 変数の番号がが既存のコマンド番号に対応する場合にはOK 変数が1に設定され、それ以外の場合には0が設定されます。しかしながら、既存のコマンドの一部には無効化されてしまったコマンドもあり、そういったコマンドの場合にはCommand name は空の文字列を返すという点に注意が必要です(最後の例題を参照して下さい)。

データベースのすべてのテーブルについて、各テーブルの標準データ入力に使用するための“INPUT FORM”というフォームがあります。そこで、ポインタまたはテーブル名を渡すテーブルのカレント入力フォームとしてこのフォームを設定する、汎用的なプロジェクトメソッドを追加する場合には、次のように記述します:

  ` STANDARD INPUT FORM project method
  ` STANDARD INPUT FORM ( ポインター {; 文字 })
  ` STANDARD INPUT FORM ( ->Table {; TableName })
 C_POINTER($1)
 C_STRING(31;$2)
 
 If(Count parameters>=2)
    EXECUTE FORMULA(Command name(55)+"(["+$2+"];"+Char(Double quote)+"INPUT FORM"+Char(Double quote)+")")
 Else
    If(Count parameters>=1)
       FORM SET INPUT($1->;"INPUT FORM")
    End if
 End if

このプロジェクトメソッドがデータベースに追加された後、以下のように記述します:

 STANDARD INPUT FORM(->[Employees])
 STANDARD INPUT FORM("Employees")

Note: 通常、汎用ルーチンを記述する場合には、ポインタを使用することをお勧めします。その理由としては、まず、データベースがコンパイルされているとき、そのコードもコンパイルモードで実行されるからです。次に前述の例でもあるようにテーブルの名前を変更すると、コードは正しく動作しなくなるためです。ただし、EXECUTE FORMULAコマンドを使用すれば問題が解決する場合もあります。

フォームで、一般的なサマリーレポートコマンドのドロップダウンリストを作成します。ドロップダウンリストのオブジェクトメソッドに、次のように記述します:

 Case of
    :(Form event=On Before)
       ARRAY TEXT(asCommand;4)
       asCommand{1}:=Command name(1) ` Sum
       asCommand{2}:=Command name(2) ` Average
       asCommand{3}:=Command name(4) ` Min
       asCommand{4}:=Command name(3) ` Max
  ` ...
 End case

4Dの日本語版ではドロップダウンリストに、Sum、Average、Min、Maxが表示されます。フランス語版では、ドロップダウンリストには、Somme、Moyenne、Min、Maxが表示されます。

以下のコードを使用すると、全ての有効な4Dコマンドを配列内に読み込むことができます:

 C_LONGINT($Lon_id)
 C_TEXT($Txt_command)
 ARRAY LONGINT($tLon_Command_IDs;0)
 ARRAY TEXT($tTxt_commands;0)
 
 Repeat
    $Lon_id:=$Lon_id+1
    $Txt_command:=Command name($Lon_id)
    If(OK=1) // コマンド番号が存在する
       If(Length($Txt_command)>0) // コマンドが無効化されていない
          APPEND TO ARRAY($tTxt_commands;$Txt_command)
          APPEND TO ARRAY($tLon_Command_IDs;$Lon_id)
       End if
    End if
 Until(OK=0) //既存のコマンドの終わり

 
プロパティ 

プロダクト: 4D
テーマ: ランゲージ
番号: 538

このコマンドはOKシステム変数を更新します

 
履歴 

初出: 4D v6

 
参照 

EXECUTE FORMULA

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v12.4)
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v13.5)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)

Inherited from : Command name ( 4D v11 SQL Release 6)