フォーム間のデータの受け渡し

Deeplからの自動翻訳

フォームを開いてパラメータを渡すだけで、フォームオブジェクトを初期化することができたら、素晴らしいと思いませんか?4D v16 R5 は、フォームとの通信を大幅に簡略化することで、あなたのコーディングをとても簡単にしてくれます。

今までは、複数のユーザーにデータ(データベース自体から来るものではなく、計算されたものや外部からのもの)を表示したい場合、複数のプロセスでデータ表示を処理する複雑なコードを書くか、たくさんのグローバル変数を使って必要なだけフォームを作成するかの2つの選択肢がありました。しかし、グローバル変数がメモリの観点から最適化されたコーディング方法でないことはご存知の通りです。

そこで、複雑なコードとグローバル変数から解放されましょう!4D v16 R5 では、オブジェクトをフォームにバインドし、新しい Form コマンドでそれを内部的に使用することができます。簡単で…そして強力です!

データベースの例

フォームにパラメータを渡す

オブジェクト内のパラメータをフォームに渡すために DIALOGコマンドを使用して、オブジェクトのパラメータをフォームに渡すことができるようになりました。このオブジェクトの任意のプロパティは、フォームのコンテキストから Formコマンドで利用できます。

C_LONGINT($window)
C_OBJECT($address)

$address:=Newobject
$address.CompanyName:="4D"
$address.LastName:="Dupont"
...

$window:=Openform window("AddressForm";Movable form dialog box)

// パラメータに $address オブジェクトを指定してフォームを開く
// Form コマンドでフォーム内の $address オブジェクトを変更できる
DIALOG("AddressForm";$address)
CLOSE WINDOW($window)
ALERT("New company name is: "+
$address.CompanyName" )

AddressForm”フォームでは、フォームオブジェクトのデータソースで Formコマンドを使うだけで、フォームオブジェクトのデータソースを作成できます。

ユーザーがダイアログを閉じたとき、入力された値は$address オブジェクトを介して呼び出し側のメソッドで利用できます。

サブフォームにパラメータを渡す

コマンドでオブジェクトをフォームに渡すのと同じように、 オブジェクトをフォームに渡すこともできます。 DIALOGコマンドでフォームにオブジェクトを渡すのと同じように、プロパティリストを使ってサブフォームエリアにオブジェクトを渡すこともできます。そして、サブフォームの中で、そのオブジェクトを Formコマンドで使用できます。以下の例では、InvoiceAddress オブジェクトがサブフォームにバインドされています。

blank

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。