ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20 R7
Parse formula
|
Parse formula ( formula {; options}{; errorMessage} ) -> 戻り値 | ||||||||
引数 | 型 | 説明 | ||||||
formula | テキスト |
![]() |
標準テキストのフォーミュラ | |||||
options | 倍長整数 |
![]() |
入力/出力の形式の指示 | |||||
errorMessage | テキスト |
![]() |
エラーメッセージ(エラーなしの場合には空の文字列) | |||||
戻り値 | テキスト |
![]() |
変換されたフォーミュラ(標準テキスト) | |||||
Parse formula ファンクションは、formula 引数で指定された4D フォーミュラを解析し、シンタックスをチェックし、正規化された形式で返します。これにより、4D ランゲージあるいはストラクチャー要素(コマンド、定数、テーブル、フィールド、4D プラグインなど)の名前が変更された場合でも、フォーミュラが引き続き有効な状態を維持できます。
Parse formula を使用することで、フォーミュラを評価し、フォーミュラを以下のように変換することができます:
* バーチャルストラクチャーはSET TABLE TITLES and SET FIELD TITLES コマンドを使用して定義されます(* 引数必須)。
** トークナイズドされた形式とは、以下のようなトークンシンタックス形式の標準テキストで表現された4D ランゲージおよびストラクチャー要素です(フォーミュラ内でのトークンの使用 参照):
[Table:1]Field:1+String:C10(1)
formula 引数には、標準テキストでのフォーミュラを渡します。ここでは実際のストラクチャー名/バーチャルなストラクチャー名、あるいはトークナイズドされた形式を使用することができます。
formula 引数で使用された名前の型に関係なく、デフォルトではParse formula はテキストトークンを用いない、実際の4D ランゲージ要素/ストラクチャー要素の名前を返します。
任意のoptions 引数を使用すると、formula 引数のフォーミュラがどのように表現されているか、あるいはそれをどのように返すかを、以下のFormulas テーマの定数で指定することができます。定数を組み合わせることで、返されたフォーミュラの入力/出力フォーマットの両方を指定することができます。
定数 | 値 | コメント |
Formula in with virtual structure | 1 | フォーミュラはバーチャルストラクチャー(カスタムの名前)を使用して表現されています。 |
Formula out with tokens | 4 | フォーミュラはテキストトークン形式を使用して返されます(例:Cxx)。 |
Formula out with virtual structure | 2 | フォーミュラは"バーチャル"なストラクチャー(カスタムの名前)を使用して返されます。 |
任意のerrorMessage 引数は、formula 引数のフォーミュラにシンタックスエラーがあった場合にエラーメッセージを受け取ります。エラーがなかった場合には、空の文字列が返されます。
ARRAY TEXT($t1;1)
ARRAY LONGINT($t2;1)
$t1{1}:="Virtual table"
$t2{1}:=1
SET TABLE TITLES($t1;$t2;*)
ARRAY TEXT($tf1;1)
ARRAY LONGINT($tf2;1)
$tf1{1}:="Virtual field"
$tf2{1}:=2
SET FIELD TITLES([Table_1];$tf1;$tf2;*)
//テーブル/フィールド名をバーチャルストラクチャーへと変換
$parsedFormula:=Parse formula("[Table_1]Champ_2";Formula out with virtual structure;$errorMessage)
//結果は [Virtual table]Virtual field
//テーブル/フィールド名をトークナイズドされた形式へと変換
$parsedFormula:=Parse formula("String([Table_1]Champ_2)";Formula out with tokens;$errorMessage)
//結果は String:C10([Table_1:1]Champ_2:2)
//バーチャルストラクチャーをテーブル/フィールド名へと変換
$parsedFormula:=Parse formula("[Virtual table]Virtual field";Formula in with virtual structure;$errorMessage)
//結果は [Table_1]Champ_2
引き続き例題 1のテーブルを使用します:
//ユーザーにお気に入りのフォーミュラを入力するようたずねる
$formula:=""
EDIT FORMULA([Table_1];$formula)
//ユーザーのフォーミュラを後で使用できるように保存
CREATE RECORD([users_preferences])
$persistentFormula:=Parse formula($formula;Formula out with tokens)
[users_preferences]formula:=$persistentFormula
//後で、事前に保存しておいたフォーミュラを実行
CREATE RECORD([Table_1])
EXECUTE FORMULA([users_preferences]formula)
Formula from string
SET FIELD TITLES
SET TABLE TITLES
フォーミュラ内でのトークンの使用
プロダクト: 4D
テーマ: フォーミュラ
番号:
1576
ランゲージリファレンス ( 4D v20 R7)