4D v16.3

フォーミュラ内でのトークンの使用

ホーム

 
4D v16.3
フォーミュラ内でのトークンの使用

フォーミュラ内でのトークンの使用  


 

概要  

4Dランゲージでは、コード内で衣装される全てのオブジェクト名(定数、コマンド、テーブル、フィールドそしてキーワード)全てに対してユニークな トークナイゼーションシステムというものを持っています。これらの名前をトークナイズするということは、それらをコードエディターにタイプする際に内部で絶対参照(数値)と して保存され、実行時、あるいは表示時にコンテキストに応じてテキストとして復元されるということを意味します。これにより、コードは常に正しく解釈され るということが保証され、テーブルやフィールドの名前を変更した場合でも、4Dランゲージコマンドが異なるアプリケーションのバージョンに置いて改名され た場合等でも正しく解釈されます。

注: これは環境設定のメソッドページの"リージョンシステム設定を使用"オプションを有効化し、お使いの4Dを異なる言語設定でデータベースを開いた際にも、コードの自動翻訳が正確であることを保証します。

トークナイゼーションは4Dデベロッパーからはコードエディター上では完全に透過で何も気づきません。しかしながら、この機構はタイプ時ではなくランタイム時に解釈されるテキストから構成されているため、4D式で自動的に実装されるものではありません。例えば、4Dコードが標準テキストとして表示される場合、例えばコードがMETHOD GET CODEMETHOD SET CODEコマンドを使用して書き出し・読み込みされたときや、コピー・ペースト、または4D HTMLタグから解釈されたときなどはトークナイゼーションは実装されません。
これらのコンテキストにおいてトークナイゼーション機構を引き続き使用するためには、以下にある、ランゲージ内でオブジェクト名の後にトークンを付けると言う明示的なシンタックスを使用する必要があります。

デフォルトでは、トークンのメカニズムは、4Dフォーミュラ(または上記の例のように4Dコードが標準テキストとして表現されるコンテキスト)において自動的に実装される訳ではありません。結果として、式に含まれる命名要素に対して、4Dではトークンを直接参照するのに使える特殊なシンタックスを用意しています。名前の後ろにそのタイプ(コマンド、フィールド等)を表す特殊な接尾辞と、その後にその参照をつけるだけです。以下の表にこのトークンシンタックスについての詳細がまとめてあります:

要素使用例(標準のシンタックス)接尾辞使用例(トークンシンタックス)補足
4D コマンドString(a):CxxString:C10(a)xx はコマンド番号です
テーブル[Employees]:xx[Employees:1]xx はテーブル番号です
フィールド[Employees]Name:xx[Employees:1]Name:2xx はフィールド番号です
4D プラグインPV PRINT(area):Pxx:yyPV PRINT:P13000:229(area)xx はプラグインIDで、yy はコマンドのインデックスです

注: 接頭辞には大文字(C, P)を使用しなければなりません。そうでない場合には正常に解釈されません。

このシンタックスを使用することにより、フォーミュラの名前が変更された場合でも、データベースが異なる言語において実行された場合でも、フォーミュラが正しく解釈される事を保証します。

注: 定数もまたランゲージ内においてはトークナイズドされていますが、フォーミュラ内ではその値を渡すことによりコンテキストから独立させる事ができます。

このシンタックスは呼び出しコンテキストに関わらず、以下の例を含め全ての4Dフォーミュラ(または4D式)において使用可能です:

トークンシンタックスでは様々な要素の、それぞれの参照番号を必要とします。これらの参照番号は、要素の型に応じて異なる場所に表示されています。

コマンド番号は、ランゲージリファレンスマニュアル(の"プロパティ"エリア)内にある他、エクスプローラーのコマンド内でも見つける事ができます:

テーブルとフィールド番号は、それぞれTableFieldコマンドを使用する事によって取得可能です。

これらの番号はまた、ストラクチャーエディターのインスペクターパレット内にも表示されています:

4Dプラグインコマンドのトークンを調べるためには、まずメソッドエディター内に調べたいコードを入力し、その後プラグインを無効化(例えばフォルダを移動など)した上で4Dを再起動する必要があります。その結果メソッドエディター内にはトークンのみが表示されるので、必要なものをコピーすることができるようになります。

プラグインがインストールされている状態でのコード:

プラグインが無効化された後の同じコード:



参照 

METHOD GET CODE

 
プロパティ 

プロダクト: 4D
テーマ: フォーミュラ

 
履歴 

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)