ダイナミックフォームの威力を知る

Deeplからの自動翻訳

エンドユーザーのニーズに合わせてフォームを動的に構築 する機能が欲しいというご意見をいただきました。4D v16 R6 now は、ダイナミックフォームの新しい可能性を開きます。4D v16 R6プレビューとして提供されたダイナミックフォームでは、オブジェクトの中に プログラム的にフォームを構築 したり、 テキストファイルからフォームを読み込んだりすることが可能です。しかし、これは私たちがあなたのために作ったものの表面に過ぎません…

ダイナミックフォーム – データベースの例

ダイナミックフォーム メリット

ダイナミック・フォームでは、フォームの内容全体(ページ、フォーム・オブジェクト、各オブジェクトのプロパティ)がテキスト形式(JSON形式)で記述されます。したがって、ダイナミックフォームは、オブジェクトに格納することも、ファイルに格納することも可能です。スムーズな移行のために、データベース内に両方のタイプのフォームを持つことが可能です。つまり、通常のフォーム(.4DBファイルにバイナリ形式で格納)と動的フォームディスク上の任意の場所にテキストとして格納)の両方を持つことが可能です。

ダイナミックフォームは、コンパイルされたアプリケーションでもスタンドアロンアプリケーションでも使用できます。通常のバイナリフォームと比較した場合の新しいフォームの利点は、JSON ファイルを更新するだけで… アプリケーションを再コンパイルすることなく、フォームを変更できることです。これにより、デプロイメントに大きな柔軟性を持たせることができます。

ダイナミックフォームには、他にも大きな利点があります。すべてのフォームオブジェクトのフォントを変更したいという要望があったことはありませんか?ダイナミックフォームを使えば、テキストファイルの「検索と置換」を行うのと同じくらい簡単です。

例えば、あるフォームを同僚にメールで送りたい場合、データベース全体を送信するのではなく、テキストファイルを1つ送信するだけでよいのです。ダイナミックフォームでは、フォームを別のデータベースに移動することなく、別のアプリケーションで簡単に再利用することができます。

ダイナミックフォームをサポートするコマンド

今後、フォーム名を使用する全ての4Dコマンドは、オブジェクトまたはファイルパスとしてフォームの説明を受け入れるように拡張されました。

“HELLO WORLD” の例

テキストファイルからのフォーム記述

テキストとボタンだけの簡単な例を見てみましょう。

Hello World dialogこのフォームのテキストによる説明は次のとおりです。

{
    ... list of form parameters ...
    "pages": [  ... list of form pages ...
        null, ... page 0 ...
        {     ... page 1 ...
            "objects": {    ... list of form objects in page 1 ...

                "text": {
                    "type": "text",
                    "text": "Hello World !",
                    "left": 20, "top": 20, "width": 200, "height": 20
                },

                "button": {
                    "type": "button",
                    "text": "OK",
                    "left": 120, "top": 40, "width": 100, "height": 20
                }
            }}]
}

そして、このフォームをダイアログに読み込むコードは次のとおりです。

DIALOG ("/RESOURCES/helloWorld.json")

文法はJSONスキーマで定義されています。また、ドキュメントには、ダイナミック・フォームで使用できる属性の完全なリストと、各フォーム・オブジェクトがどの属性をサポートしているかの詳細が記載されています。を使用できることを忘れないでください。 JSON Validateコマンドを使って、フォームの記述に含まれる JSON が JSON スキーマに準拠しているかどうかを確認することができます。

オブジェクトの中にフォームを作る

さて、このフォームをコードだけで構築して、完全に動的なものにしてみましょう!

// Build form description
$label:= ("type"; "text"; "text"; "Hello World!";"top";20;"left";20;"width";200;"height";20) := ("type";"button";"text";"OK";"top";40;"left";120;"width";100;"height";20) New object
$buttonNew object
$page := ("objects"; ("label"; ; "button"; )) := ("pages"; ( ; ); "windowTitle"; "My first dynamic form"; "rightMargin";20; "bottomMargin";20)New objectNew object$label$button
$formNew objectNew collectionNull$page

// Load the form in a dialog
$w:= ( ) Open form window$form
DIALOG
($form)

このように、ニーズに応じて柔軟にフォームを構築することができます。一度、ファイルやオブジェクトにフォームを書き込めば、あとは通常のフォームと同じように使うことができます。

フォームの編集は?

今のところ、テキストエディタを使う以外にダイナミックフォームを編集する仕組みはありません。しかし、これは長くは続きません。ダイナミックフォーム専用のフォームエディターが登場する予定です。いつになるのでしょうか?ご期待ください。

Vanessa Talbot
- プロダクトオーナー - Vanessa Talbotは、2014年6月に4Dプログラムチームに参加しました。プロダクトオーナーとして、彼女はユーザーストーリー(ユーザーが期待する新機能とその使用法)を書き、それを具体的な機能仕様に変換する役割を担っています。また彼女の役割は、実装された機能が顧客のニーズを満たしているかどうかを確認することでもあります。入社以来、4Dにおける主要機能の定義に関わってきました。プリエンプティブ/マルチスレッドの新機能の大部分と、非常に複雑なテーマである組み込みアプリケーションの新アーキテクチャに取り組んできました。VanessaはTelecom Saint-Etienneで学位を取得後、Criminal Research Institute でオーディオビジュアル部門の開発者としてキャリアをスタートさせました。また、メディアや医療の分野でも、技術サポートやプロダクションの分野で働いてきました。