ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v19.8
FORM LOAD

FORM LOAD 


 

FORM LOAD ( {aTable ;} form {; *} ) 
引数   説明
aTable  テーブル in ロードするテーブルフォーム(省略時はプロジェクトフォームをロード)
form  文字, オブジェクト in (プロジェクトまたはテーブル)フォーム名(文字列)、
あるいはフォームを定義した.jsonファイルへのPOSIXパス(文字列)、
あるいは開くフォームを定義したオブジェクト
演算子 in 指定時、コマンドはコンポーネントから実行した場合にホストのデータベースコマンドが適応されます(それ以外の場合は無視されます)。

説明   

FORM LOADコマンドを使用してデータ印刷・コンテンツ解析のために form 引数で指定したフォームをカレントプロセスにおいてメモリーにロードします。1つのプロセスにつきカレントフォームは1つしか指定できません。

form 引数には、以下のいづれかを渡すことができます:

  • フォーム名
  • 使用するフォームの詳細を格納している有効な.josn ファイルへのパス(POSIX シンタックス、フォームファイルパス参照)
  • フォームの詳細を格納しているオブジェクト

このコマンドを使用するには、 OPEN PRINTING JOB コマンドを使って印刷ジョブを事前に開いておく必要があります。 OPEN PRINTING JOBFORM 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 LOADFORM GET OBJECTSOBJECT 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 (OPEN PRINTING FORM)
変更: 4D v16 R6

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v19)
ランゲージリファレンス ( 4D v19.1)
ランゲージリファレンス ( 4D v19.4)
ランゲージリファレンス ( 4D v19.5)
ランゲージリファレンス ( 4D v19.6)
ランゲージリファレンス ( 4D v19.7)
ランゲージリファレンス ( 4D v19.8)