Keisuke Miyako 4D Japanのテクニカル・サービス・マネージャーである 斉藤が、次のように発表しています。 4D Summit Paris 20164D v16で4D変換タグ機能がどのように強化されたかを紹介しています。もし、あなたがまだ4Dタグを使っていないなら、このビデオを見た後、すぐにでも使いた いと思うことでしょう。
4D v16で強化された4Dタグの強力な機能を紹介するほか、4Dタグの具体的な使用例として、Excelスプレッドシートへのデータ出力と、JSON形式のデータからJavaScriptライブラリを使って美しいチャートを作成する例を紹介します。
テンプレート化原理
4Dタグを使えば、XMLやHTML、あるいはあらゆる種類のテンプレートベースのデータ処理タスクを含む新しい開発において、大幅なショートカットを実現することができます。ただ PROCESS 4D TAGS を使うだけで、あなたのニーズにぴったり合ったテキストベースのファイルを生成できます。
4Dデータに基づいた構造的なドキュメントを構築するために、複雑なコードを一から書く代わりに、既製のフォーマットされたサンプルドキュメントに、様々な4Dタグを自由に使って4Dコードのブロックを追加し、それをテンプレートとして使用することができます。
4D v16 の新機能は?
あなたは、すでに既存の 4D タグをご存知かもしれません。4dtext、4dloop、4dif、4dhtml…。4D v16 は、新しい機能とタグを提供し、可能性を広げます。
- 新しい 4DCODEタグ
- 新しい$シンタックスは 、HTMLのコメントシンタックス<!–>に基づいた通常のシンタックスよりもはるかに柔軟性があります。
- そして、テンプレート内でコードをデバッグすることができます。
新しい4DCODEタグ
4DCODEタグは、4DEVALタグとよく似ています。しかし、4DEVALが1つの4D式を評価するのに対して、4DCODEは複数の行に渡って4Dコードを挿入することが可能です。したがって、既存のメソッドやコードのブロックをコピーして、テンプレート・ドキュメント内の4DCODEタグの中にペーストすればよいのです。
<!--#4DCODE
。
ALL RECORDS:C47([Product:1])
ORDER BY:C49([Product:1];[Product:1]name:2)
ARRAY TEXT:C222($paramNames;0)
WEB GET VARIABLE.C22($paramNames;0) WEB GET VARIABLE:683($paramNames)
C_LONG INT:C283($f)
$f:=Find in array:C230($paramNames; "year")
If($f#-1)
ALL RECORDS:C47([Inventory:2])
End if
-->
実際、テンプレートには好きなだけ 4DCODE タグを使用することができます。データベースへの問い合わせ、配列、ポインタ、オブジェクトなど、基本的には4Dメソッドでできることは何でもできます。
4DCODEは、4Dコードをフリーハンドで記述できるだけでなく、そのコードをトレースしてデバッグすることも可能です。4DタグのテンプレートでTRACE コマンドを使用するだけで、タグが処理されるときにデバッガが開かれます!
コマンド番号の使用
上記の例では、各コマンドの末尾に:Cxxというサフィックスが付けられていることにお気づきでしょう。このサフィックスの数字がコマンド番号になります。例えば、47は、ALL RECORDS のコマンド番号です。
これはオプションですが、4D コードをプレーンテキストで記述するための、将来を見越した方法 です。4Dコマンドの名前が変更された後の問題を避けるだけでなく、4DCODEタグでフランス語の4Dコマンド名を使用し、英語のシステム環境で実行することができます。さらに、コマンド名全体を省略して、:Cxxを使用することもできます。
コマンドのCode with tokens オプションを使用すると、:Cxxサフィックスが自動的に生成されることに注意してください。 METHOD GET CODEもちろん、手動で行う必要はありません。
新しい$構文でより柔軟に
HTMLコメントを使用する代わりに、4DEVAL、4DTEXT、4DHTMLタグの前に「$」シンボルを使用し、評価する必要がある4D式を括弧の間に渡すことができるようになりました。例えば
4DTEXT($fontName)
この新しい構文により、例えば、”<“や”>”記号を使用できないXML属性の中に4Dタグを置くことができるようになりました。これにより、開発者は、4Dタグをどのように、あるいはどこで使うかについて、より柔軟性を持つことができます。
もっと詳しく知りたい方は、こちらをご覧ください。この新しいシンタックスの詳細については、こちらの投稿をご覧ください。