4D v18 R2では、4D Write Proは、ドキュメント内の数式オブジェクトを管理できるようになりました。そのために、4つの新しいコマンドが作成されました。WP Get formulas WP Insert formula 、WP Compute formulas, 、WP Freeze formulas 。これらはすべて、ドキュメント、ボディ、ヘッダーなど、直感的なターゲットで使用することができます。また、コマンド名から推測されるように、数式はもはやテキスト表現ではなく、強力な数式オブジェクトなのです
一挙両得
最初のコマンド、WP Get formulas は、特定のターゲット内のすべての数式を取得することができます。もちろん、最初に思いつくのはドキュメント全体ですが、ボディ、2番目のセクション、左のヘッダーなど、より具体的な部分を指定することもできます。このコマンドは、formula 、range (式がインラインの場合)、または式がアンカー付きの画像に添付されている場合はanchoredID を含むオブジェクトのコレクションを返します。
注意:formula オブジェクトはsource という読み取り可能な属性を持つようになりました。この属性は、アクションを見つけたり、置き換えたりするのに非常に便利です。(下記参照)
WP Compute formulas とWP Freeze formulas コマンドは非常によく似た方法で使用することができます(つまり、ターゲットを使用する)。ドキュメントのすべての式を再評価することもできますし、フッターに属する式だけを凍結することにすることもできます。シンプルで論理的です。
// find all expressions of the document
C_COLLECTION($_expressions)
$_expressions :=WP Get formulas(WParea)
ひとつひとつ
4番目のコマンドであるWP Insert formula は、任意の範囲に式を(数式オブジェクトとして)挿入することができます。また、(一旦WP Get formulas コマンドで見つかった)既存の式を置き換えるために使用することもできます。
以下は簡単な置換の例です。文書にcurrent date 式が含まれており、それらをすべて「2019年11月14日(木)」のような書式付き文字列に置き換えたい場合です。
// define what to find
$find $_:=Formula(Current date)
// define the replacement
$formula :=Formula(String(Current date;System date long)
// find all expressions of the document
expressions :=WP Get formulas(WParea)
// query the collection (could have been done on previous line, but easier to read this way!)
$_
expressions:=$_
expressions .
query("formula.source = :1";$find.source)
// then replace each expression with the new one
For each ($expression;$_ expressions )
WP INSERT FORMULA ($expression.range;$formula;wk replace)
End for each
その他の改善点
既存の表現も一部改良され、簡略化されています。$wp_pageCount や$wp_author のような予約済みのローカル変数は、まだサポートされている場合でも、廃止されるようになりました。これらの変数は、より読みやすく現代的なThis.property を使用することで置き換えられました。以下は、利用可能なプロパティの完全なリストです。
$wp_subject -> | This.subject |
$wp_author -> | This.author |
$wp_company -> | This.company |
$wp_notes -> | This.notes |
$wp_dateCreation -> | This.dateCreation |
$wp_dateModified -> | This.dateModified |
$wp_pageNumber -> | This.pageNumber |
$wp_pageCount -> | This.pageCount |
$wp_title -> | This.title |
より強力に、よりシンプルに
最後に、これらのネイティブコマンドを使用することで、4D Write Proドキュメント内の数式を管理する方法が本当にシンプルになることを確信しています。詳細は、HDIデータベースをご覧ください。