メインコンテンツまでスキップ
バージョン: 20 R9 BETA

フォーム

Form : Object

引数説明
戻り値Objectカレントのフォームのフォームデータ
履歴
リリース内容
20 R8フォームクラスのサポート

説明

Form コマンドはカレントフォームに割り当てられている( formData 引数、またはフォームエディターで割り当てられたユーザークラスによってインスタンス化された) オブジェクトを返します。 4D は以下の場合にはカレントフォームに自動的にオブジェクトを割り当てます:

  • カレントフォームが、DIALOGPrint form あるいは FORM LOAD コマンドのいずれか一つによってロードされた場合。
  • カレントフォームがサブフォームである場合。
  • テーブルフォームが現在画面上に表示されている場合。

コマンド(DIALOGなど)

カレントのフォームがDIALOGPrint form あるいは FORM LOAD コマンドによって表示あるいはロードされていた場合、は以下のいずれかのものを返します:

サブフォーム

カレントフォームがサブフォームの場合、返されるオブジェクトは親コンテナ変数に依存します:

  • 親コンテナに割り当てられている変数がオブジェクト型であった場合、 Form はその変数の値を返します。
    この場合、Form から返されるオブジェクトは、以下の式から返されるものと同じになります :
 (OBJECT Get pointer(Object subform container))->  
  • 親コンテナに割り当てられている変数がオブジェクト型として型指定されていない場合、Form は、サブフォームのコンテキストで4D によって維持される、空のオブジェクトを返します。

より詳細な情報については、サブフォームページ の章を参照してください。

テーブルフォーム

Form は画面に表示されているテーブルフォームに割り当てられているオブジェクトを返します。 出力フォームから表示された入力フォームのコンテキスト (つまりレコードをダブルクリックした後)の場合、返されるオブジェクトには以下のプロパティが格納されています:

プロパティDescription
parentFormobject親出力フォームのForm オブジェクト

例題

人物のレコードを表示しているフォームにおいて、"Check children" ボタンを押すとその人物の子供の名前と年齢を検証あるいは変更するダイアログが開く場合を考えます:

注: "Children" オブジェクトフィールドはこの例題においての構造を示すために表示されているだけです。

検証フォームでは、入力に対していくつかのフォームオブジェクトプロパティを割り当てているものとします:

"Check children" ボタンの中身のコードは以下のようになります:

 var $win;$n;$i : Integer
var $save : Boolean
ARRAY OBJECT($children;0)
OB GET ARRAY([Person]Children;"children";$children) //children コレクションを取得
$save:=False //save 変数を初期化

$n:=Size of array($children)
If($n>0)
$win:=Open form window("Edit_Children";Movable form dialog box)
SET WINDOW TITLE("Check children for "+[Person]Name)
For($i;1;$n) // それぞれの子供に対して
DIALOG("Edit_Children";$children{$i}) //値が入ったダイアログを表示
If(OK=1) // ユーザーがOK をクリックした
$save:=True
End if
End for
If($save=True)
[Person]Children:=[Person]Children // 強制的にオブジェクトフィールドを更新
End if
CLOSE WINDOW($win)
Else
ALERT("No child to check.")
End if

フォームはそれぞれの子供についての情報を表示します:

値が変更されてOKボタンがクリックされた場合、フィールドは更新されます(その後、親のレコードも保存される必要があります)。

参照

DIALOG

プロパティ

コマンド番号1466
スレッドセーフ