コメントアウトされた式言語コードのブロックにエラーがあるかどうかを調べます。
@CheckFormulaSyntax(formulaText)
formulaText
文字列。エラーがあるかどうかを調べる、コメントアウトされた式コードです。コードをコメントアウトするには、式コードを中カッコ ({}) で囲みます。
errorInformation
文字列または文字列リスト。
errorMessage: コンパイラによって返されるメッセージです。
errorLine: エラーが発生した行。ゼロではなく 1 から始まります。文字列の折り返しによって新たに作成された行はカウントされません。
errorColumn: エラーが発生した行の最初の文字からの文字数。1 から始まります。
errorOffset: エラーが発生した formulaText ブロックの最初の文字からの文字数。1 から始まります。
errorLength: エラーを構成する文字列の長さです。
errorText: コンパイラがエラーの原因として処理する文字列またはトークンです。
チェックする式は「コメントアウト」されません。{) は引用文字です。 この関数に対する引数は、コメントではなく、チェックされる式が含まれた文字列です。文字列引数を取る他の関数との違いはありません。より一般的な二重引用符ではなく { } が例に使用されている理由は、引用する文字列に二重引用符が含まれる可能性があるためです。{ } を使用すると、文字列内の引用符が「エスケープ」されるのを回避できます。値がハードコーディングされるのではなくフィールドから読み取られる場合、これは問題になりません (大半のアプリケーションでは値がフィールドから読み取られます)。
この @関数から報告されるのは、ランタイムエラーではなくコンパイルエラーです。ランタイムエラーが生成されるのは、例えば関数に渡された引数が足りないときです。この関数は実行時に、@Eval 関数を使用して文字列式を実行する場合に特に便利です。この関数を使用すると、@Eval に指定した任意のテキストの構文を最初にチェックできます。
formula := {subject:="test";
remark:="ok";
SendTo:="Darrin Dogs/Star";
@MailSnd(SendTo;"";"";subject;remark;"ID";[Sign]:[Encrypt])};
@CheckFormulaSyntax(formula);
formula := {subject:="test";
remark:="ok";
SendTo:="Darrin Dogs/Star";
@MailSend(SendTo;"";"";subject;remark;"ID";[Sign]:[Encrypt])};
@CheckFormulaSyntax(formula);
@If(@ThisValue= "";
@Return(@Failure("You must enter a formula here."));
0);
-tmp[1] := @CheckFormulaSyntax(@ThisValue);
@If(_tmp[1] = "1";
= "1";
@Success;
@Failure("Invalid formula: " + -tmp[1] + " on line " + -tmp[2]))