| 4D v18FORM LOAD | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v18
 FORM LOAD 
         | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| FORM LOAD ( {aTable ;} form {; *} ) | ||||||||
| 引数 | 型 | 説明 | ||||||
| aTable | テーブル |   | ロードするテーブルフォーム(省略時はプロジェクトフォームをロード) | |||||
| form | 文字, Object |   | (プロジェクトまたはテーブル)フォーム名(文字列)、 あるいはフォームを定義した.jsonファイルへのPOSIXパス(文字列)、 あるいは開くフォームを定義したオブジェクト | |||||
| * | 演算子 |   | 指定時、コマンドはコンポーネントから実行した場合にホストのデータベースコマンドが適応されます(それ以外の場合は無視されます)。 | |||||
FORM LOADコマンドを使用してデータ印刷・コンテンツ解析のために form 引数で指定したフォームをカレントプロセスにおいてメモリーにロードします。1つのプロセスにつきカレントフォームは1つしか指定できません。
form 引数には、以下のいづれかを渡すことができます:
このコマンドを使用するには、 OPEN PRINTING JOB コマンドを使って印刷ジョブを事前に開いておく必要があります。 OPEN PRINTING JOB は FORM UNLOAD を暗示的に呼び出すため、このコンテキストでは改めて FORM LOAD コマンドを使用する必要があります。ロードされた form はカレントの印刷フォームとなります。 Print object コマンドを含む、すべてのオブジェクト管理コマンドはこのフォームに対して動作します。
FORM LOAD コマンドを呼び出す前に、別の印刷フォームがロードされていた場合には、そのフォームは閉じられ、form に置き換えられます。ひとつの印刷セッション内で複数のプロジェクトフォームを開いたり閉じたりすることができます。FORM LOAD で印刷フォームを変更してもページブレークは生成されません。ページブレークは別途指定する必要があります。
プロジェクトフォーム (またはフォームのオブジェクトメソッド) を開く際には、On Load フォームイベントのみが実行されます。他のフォームイベントは無視されます。印刷の終わりには On Unload フォームイベントが実行されます。
フォームのグラフィックな一貫性を保持するために、プラットフォームにかかわらず"印刷"アピアランスプロパティを適用することをお勧めします。
CLOSE PRINTING JOBコマンドが呼び出されると、カレント印刷フォームは自動で閉じられます。
互換性に関する注記: v14以前のバージョンの4Dでは、 FORM LOADコマンド(v14以前はOPEN PRINTING FORMという名称)は form引数に空の文字列を渡すことによってカレントのプロジェクトフォームを閉じていました。このシンタックスはv14以降サポートされておらず、渡してもエラーが返されます。フォームを閉じる際には FORM UNLOAD コマンドまたは CLOSE PRINTING JOBを使用してください。
データ解析のためにスクリーン外にフォームをロードするには、印刷ジョブ外のコンテキストで FORM LOAD を呼び出します。この場合、フォームイベントは実行されません。
FORM LOAD を FORM GET OBJECTS や OBJECT Get type コマンドと併せて使用して、フォームコンテンツを任意に処理することができます。その後、フォームをメモリから解放するために FORM UNLOAD コマンドを呼び出す必要があります。
いずれの場合においても、スクリーン上のフォームはロードされたままであるため (FORM LOAD コマンドに影響されない)、 FORM UNLOAD コマンドを呼び出した後にこれらをリロードする必要はありません。
コマンドがコンポーネントから実行された場合、デフォルトでコンポーネントフォームが呼び出されます。* 演算子を渡した場合には、メソッドはホストデータベースフォームをロードします。
注: メモリオーバーフローのリスクを回避するため、スクリーン外でフォームを使用した場合には FORM UNLOAD を必ずコールしてください。
印刷ジョブにプロジェクトフォームを呼び出す場合:
 OPEN PRINTING JOB
 FORM LOAD("print_form")
  // イベントとオブジェクトメソッドの実行印刷ジョブにテーブルフォームを呼び出す場合:
 OPEN PRINTING JOB
 FORM LOAD([People];"print_form")
  // イベントとオブジェクトメソッドの実行フォームの内容を解析してテキスト入力エリアに何らかの処理をする場合:
 FORM LOAD([People];"my_form")
  // イベントやメソッドを実行することなくフォームを選択
 FORM GET OBJECTS(arrObjNames;arrObjPtrs;arrPages;*)
 For($i;1;Size of array(arrObjNames))
    If(OBJECT Get type(*;arrObjNames{$i})=Object type text input)
  //… 処理
    End if
 End for
 FORM UNLOAD //フォームをunloadするのを忘れないこと以下の例では、JSON ファイルで定義されたフォーム上にあるオブジェクトの数を返します:
 ARRAY TEXT(objectsArray;0) //フォームのオブジェクトを並べ替えて入れる配列
 ARRAY POINTER(variablesArray;0)
 ARRAY INTEGER(pagesArray;0)
 
 FORM LOAD("/RESOURCES/OutputForm.json") //フォームを読み込む
 FORM GET OBJECTS(objectsArray;variablesArray;pagesArray;Form all pages+Form inherited)
 
 ALERT("The form contains "+String(size of array(objectsArray))+" objects") //オブジェクトの数を返す結果は以下のように表示されます:

									Current form name
									
									FORM UNLOAD
									
									LISTBOX GET OBJECTS
									
									OBJECT Get type
									
									Print object
									
	プロダクト: 4D
	テーマ: フォーム
	番号: 
        1103
        
        
        
	
	初出: 4D v12
	変更: 4D v14
	名称変更: 4D v14
	変更: 4D v16 R6
	
	
	
	
	
	
	
	
	
	ランゲージリファレンス ( 4D v18)
	
	
	
	
	
 コメントを追加
コメントを追加