4D Write Proと計算式

Deeplからの自動翻訳

4D v18 R2では、4D Write Proは、ドキュメント内の数式オブジェクトを管理できるようになりました。そのために、4つの新しいコマンドが作成されました。WP Get formulas WP Insert formulaWP Compute formulas,WP Freeze formulas 。これらはすべて、ドキュメント、ボディ、ヘッダーなど、直感的なターゲットで使用することができます。また、コマンド名から推測されるように、数式はもはやテキスト表現ではなく、強力な数式オブジェクトなのです

HDI: GetSetFormulas

一挙両得

最初のコマンド、WP Get formulas は、特定のターゲット内のすべての数式を取得することができます。もちろん、最初に思いつくのはドキュメント全体ですが、ボディ、2番目のセクション、左のヘッダーなど、より具体的な部分を指定することもできます。このコマンドは、formularange (式がインラインの場合)、または式がアンカー付きの画像に添付されている場合はanchoredID を含むオブジェクトのコレクションを返します。

注意:formula オブジェクトはsource という読み取り可能な属性を持つようになりました。この属性は、アクションを見つけたり、置き換えたりするのに非常に便利です。(下記参照)

WP Compute formulasWP 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データベースをご覧ください。

Roland Lannuzel
- プロダクトオーナー&4Dエキスパート -電子工学を学んだ後、産業用ITの分野で開発者兼コンサルタントとして、さまざまなデータベースやテクノロジーを使って顧客のためのソリューションを構築。80年代後半に4Dに惚れ込み、会計、請求書作成、メールシステムなどのビジネスアプリケーションの作成に4Dを使用してきました。現在も、新機能やデータベース開発ツールの定義など、4Dの未来を積極的に切り開いています。