新バージョンがリリースされるたびに、4D Write Proの一般的な使い方やコマンドについてお客様からいただいたフィードバックを考慮しています。100%の互換性を保ちつつも、いくつかのコマンドや言語機能は進化しています!
4D 20 R8で構文が改善されたいくつかのコマンドでは、オブジェクトや コレクションなどの最新のパラメータを使用できるようになりました。他のコマンドは関数になり、より使いやすくなりました。最後に、多くの新しい関数が作成されました。これらにより、あなたのコードはよりシンプルに、より汎用的に、より保守しやすくなります!
属性の取得/設定:すべての属性を1つのオブジェクトで取得できます!
最も人気のあるコマンドの1つはWP SET ATTRIBUTES で、1文字からドキュメント全体まで、あらゆる種類のターゲットに使用できるからです。このコマンドは、属性と値のペアではなく、オブジェクトをパラメータとして受け取ることができるようになりました。
コードサンプル
$attributes:={color: "red"; fontBold: 0; fontItalic: 1; fontSize: "16pt"}
WP SET ATTRIBUTES($range1; $attributes)
WP SET ATTRIBUTES($range2; $attributes)
WP SET ATTRIBUTES($range3; $attributes)
同じように、任意の範囲や要素の属性の全部または一部をオブジェクトで受け取ることができます。これは、同じ属性を別の対象に適用したい場合に非常に便利です。パラメータを1つだけ渡すと、返されるオブジェクトにはすべての属性が含まれますが、コレクションを使用することでこれを制限することができます!
$attributes:=WP Get attributes($range; ["color"; "fontItalic"])
最後に、WP RESET ATTRIBUTES コマンドは、複数のパラメータの代わりにコレクションを受け付けるようになりました(もちろん、以前の構文も有効です)。
$attributes:=["color"; "fontBold"; "fontItalic"; "fontSize"]
WP RESET ATTRIBUTES($range1; $attributes)
WP RESET ATTRIBUTES($range2; $attributes)
WP RESET ATTRIBUTES($range3; $attributes)
WP TABLE APPEND ROW: 数式、コレクション、関数リターン!
このコマンドのパラメータには、数式タイプか名前付き数式を指定できるようになりました(注意:名前付き数式とは、数式と数式名の両方を含むオブジェクトです。)
そして、パラメータはコレクションとしてコマンドに渡すことができ、何よりも、コマンドは行要素を返すようになりました!
$row:=WP Table append row($table; "Reference"; "Date"; "Time"; "rnd 1"; "rdn 2")
WP SET ATTRIBUTES($row; wk background color; "lightgrey")
$colItems:=[]
$colItems.push("KX-825")
$colItems.push(Formula(Current date))
$colItems.push(Formula(String(Current time; HH MM SS)))
$colItems.push(Formula(Random))
$colItems.push({name: "RND NUMBER"; formula: Formula(Random)})
$row:=WP Table append row($table; $colItems)
画像の挿入
ドキュメントに要素を挿入する場合、この要素にすぐにアクセスできると便利です。そのため、WP INSERT PICTURE コマンドはWP Insert picture 関数となり、picture 要素を返します。例えば、画像を挿入した直後にフレームに収めたい場合などです。さらに、このコマンドは引数として4D.Fileを受け取ることができるようになりました!
$pictureFile:=File(Folder(fk resources folder).path+"bullet.png"; fk posix path)
$picture:=WP Insert picture(WParea; $pictureFile; wk append)
$attributes:={}
$attributes[wk margin]:="8pt"
$attributes[wk padding]:="5pt"
$attributes[wk border width]:="2pt"
$attributes[wk border style]:=wk solid
$attributes[wk border color]:="navy"
WP SET ATTRIBUTES($picture; $attributes)
ドキュメントとピクチャ
WP IMPORT DOCUMENT 、WP EXPORT DOCUMENT 、WP INSERT PICTURE 、WP Add picture コマンドも近代化され、通常の引数タイプに加え、4D 、File 引数を受け付けるようになりました。
$documentFile:=File("/RESOURCES/reference.4wp")
WParea:=WP Import document($documentFile)
$documentFile:=File("/DATA/CopyOfReference.4wp")
WP EXPORT DOCUMENT(WParea; $documentFile)
$pictureFile:=File("/RESOURCES/bullet.png")
$picture3:=WP Insert picture(WParea; $pictureFile; wk append)
$pictureFile:=File("/RESOURCES/bullet.png")
$picture:=WP Add picture(WParea; $pictureFile)
“insert document “の代わりに “insert document body”。
より明確にするため、WP INSERT DOCUMENT コマンドは、WP Insert document body という名前に変更されました。
これが呼ばれると、文書の本文が挿入されます。ヘッダー、フッター、アンカー付き画像、テキストボックスは無視されます。唯一の例外は、スタイルシートもインポートされることです!
下の例でわかるように、このコマンドはインポートされた本文に対応する範囲を返します!
$file:=File("/RESOURCES/Main.4wp")
$main:=WP Import document($file)
$pictureFile:=File("/RESOURCES/bullet.png")
$sub:=WP Import document($pictureFile)
$range:=WP Insert document body($main; $sub; wk append)
その他の範囲情報
いくつかのコマンドは無言で、何も返しませんでした。以下のコマンドはまさにそのようなもので、すべてテキストの範囲を返します!
- WP INSERT FORMULA
- WP INSERT BREAK
- WP INSERT DOCUMENT BODY (以前は )WP INSERT DOCUMENT
$range:=WP Insert formula(WParea; Formula(Current date); wk append)
WP SET ATTRIBUTES($range; {color: "red"; fontItalic: 1; fontBold: 0})
ようこそ新機能
セクション
セクションには名前とインデックス(これらは属性です)がありますが、この情報にアクセスするのは簡単ではありませんでした。
新しいThis.sectionIndex とThis.sectionName 関数を使えば、簡単にアクセスできるようになります!
ページインデックス
必要に応じて、This.pageIndex 関数でページインデックスにアクセスできるようになりました。
This.pageNumber 関数のように値が変化する(セクションごとに設定またはリセットされる)とは異なり、ページインデックスは常に1から始まり、ページネーションにのみ依存します。
例えば、文書には3つのセクションがあり、そのページ番号は体系的に1から始まります。前文部分は1から30まで、主要部分は1から200まで、付録部分は1から8までです。この場合、ページインデックスは1から238までとなります。
結論
簡略化されたコマンドは、4D Write Pro開発者の生活を容易にし、コードレビューとメンテナンスを簡略化することは間違いありません。フォーラムでのフィードバックをお待ちしています!