ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com |
|||||||||||||||||||||||||||||||||||
|
4D v20 R7
フォーミュラの管理
|
フォーミュラのシンタックス | 型 | 詳細 |
This.title | テキスト | タイトルはwk title 属性で定義されています。 |
This.author | テキスト | 作者はwk author 属性で定義されています。 |
This.subject | テキスト | 主題はwk subject 属性で定義されています。 |
This.company | テキスト | 会社はwk company 属性で定義されています。 |
This.notes | テキスト | 注記はwk notes 属性で定義されています。 |
This.dateCreation | 日付 | 作成日はwk date creation 属性で定義されています。 |
This.dateModified | 日付 | 変更日はwk date modified 属性で定義されています。 |
This.pageNumber(*) | 倍長整数 | ページ番号は、以下のように定義されます:
このフォーミュラは常に動的に計算され、WP FREEZE FORMULASコマンドの影響は受けません。 |
This.pageCount(*) | 倍長整数 | ページ数: ページの総数 この式は常に動的に計算され、WP FREEZE FORMULAS コマンドの影響は受けません。 |
This.document | オブジェクト | 4D Write Pro ドキュメント |
(*) 重要: This.pageNumber および This.pageCount は4D Write Pro フォーミュラ内でのみ直接使用できます(formula.source の文字列内に入っていなければなりません)。フォーミュラが呼び出したメソッド内の4D ランゲージ内で使用されていた場合には、返される値は不正確なものになります。しかしながらこれらを、フォーミュラから直接呼び出されるメソッドに引数として渡すことはできます:
例えば、ページ番号をフッターエリアに挿入したい場合:
$footer:=WP Get footer(4DWP;1)
WP INSERT FORMULA($footer;Formula(This.pageNumber);wk append)
互換性に関する注意: 4D v18 R2 以前のバージョンからのドキュメント内にある既存の$wp_ 変数は、引き続きサポートされ、評価されます。
日付
Current date コマンド、日付変数、日付を返すメソッドがフォーミュラに挿入された場合、それはsystem date short フォーマットを使用して自動的にテキストへと変換されます。
時間
Current time コマンド、時間変数、時間を返すメソッドがフォーミュラに挿入された場合、それはString コマンドに入れてあげる必要があります。なぜなら、時間型はJSON ではサポートされていないからです。以下のフォーミュラの例を参考にして下さい:
// このコードが最適な例です
$formula1:=Formula(String(Current time)) //OK
// このコードは動作しますが、"Edit formula" の直後を除いて通常は推奨されません。
$formula2:=Formula from string("String(Current time)") //OK
// 以下のコードは間違いです。時間値は秒数(またはミリ秒数)の倍長整数として表示され、時間としては表示されないからです。
$formula3:=Formula from string("Current time") // 有効ではない
$formula4:=Formula(Current time) // 有効ではない
4D Writ Pro ドキュメントの挿入されたテーブルおよびフィールド式は、データベースのバーチャルストラクチャー定義をサポートします。フォーミュラに公開されるバーチャルストラクチャーは、SET FIELD TITLES(...;*) および SET TABLE TITLES(...;*) コマンドを通して定義されます。
バーチャルストラクチャーが定義されている場合:
注: ドキュメントが"式を表示"モードで表示されているとき、バーチャルストラクチャーに属していないテーブルまたはフィールドへの参照は"?"文字付きで表示されます。例えばあるフィールドがバーチャルストラクチャー内で定義されていなければ、 [VirtualTableName]? と表示されます。
ドキュメント内でフォーミュラがどのように表示されるかは以下のようにコントロールすることができます:
デフォルトでは、4D フォーミュラは値 として表示されます。4D フォーミュラを挿入すると、4D Write Pro は計算をしてカレントの値を表示します。どのフォーミュラが表示されているのか知りたい場合には、これを参照 として表示する必要があります。
フォーミュラを参照として表示するためには、以下の方法があります:
フォーミュラ参照は、以下の表示方法があります:
フォーミュラが参照 として表示されている場合、ドキュメント内にはフォーミュラのソーステキストが表示され、デフォルトでは灰色の背景色がつけられます(これはwk formula highlight セレクターを使用することでカスタマイズ可能です)
例えば、カレントの日付をフォーマット付きで挿入した場合、その日付が表示されます:
フォーミュラを参照として表示した場合、そのフォーミュラのソースが表示されます:
When formula source texts are displayed in a document, the design could be confusing if you work on sophisticated templates using tables for example, and when formulas are complex:
フォーミュラのソーステキストがドキュメント内に表示されている場合、例えば表を使用したような込み入ったテンプレートで作業していてかつフォーミュラが複雑だった場合、デザインが分かりづらくなってしまううことがあります:
この場合、フォーミュラ参照を 記号として表示することで、ドキュメントを読みやすくすることができます:
フォーミュラ参照を記号として表示するためには、以下の方法があります:
フォーミュラには名前を割り当てることができ、これによって4D Write Pro テンプレートドキュメントをエンドユーザーがより読みやすく理解しやすいようにすることができます。フォーミュラが参照として表示されている場合(そして記号として表示されていない場合)で、フォーミュラに対して名前を定義している場合、フォーミュラ名が表示されます。
例えば、以下のフォーミュラ参照はデフォルトではソーステキストとして表示されます:
フォーミュラ名を割り当てた場合、テキストではなく名前が表示されます:
フォーミュラに名前を割り当てるためには、 WP INSERT FORMULA コマンドにオブジェクト型 の引数を渡す必要があります。例:
//ドキュメント内に昨日の日付を挿入する
$o:=New object("formula";Formula(Current date-1);"name";"Yesterday")
$range:=WP Text range(WPArea;wk start text;wk end text)
WP INSERT FORMULA($range;$o;wk append)
注意: 名前をつけられるのはインラインフォーミュラのみです(アンカーされた画像、ブレーク行などに対するフォーミュラ、表データソースフォーミュラには名前をつけることはできません)。
フォーミュラの表示モードに関わらず、フォーミュラ上をマウスでホバーした時に表示されるtips でフォーミュラに関する追加の情報を得ることができます。
プロダクト: 4D
テーマ: フォーミュラの管理
初出: 4D v16
変更: 4D v17 R4
変更: 4D v18 R2
名称変更: 4D v18 R2
変更: 4D v20 R2
変更: 4D v20 R3
4D Write Proリファレンス ( 4D v20 R7)