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

FORM GET NAMES

FORM GET NAMES ( {aTable ;} arrNames {; filter {; marker}}{; *} )

引数説明
aTableTableテーブル参照
arrNamesText arrayフォーム名の配列
filterText名前のフィルター
markerReal返す最古のカウンター
最新のカウンター
*演算子指定時 = コンポーネントで実行されたとき、コマンドはホストデータベースに適用される (コンポーネントのコンテキスト以外ではこの引数は無視されます)

このコマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。

説明

FORM GET NAMESコマンドはアプリケーション中のフォーム名をarrNames配列に返します。

aTable引数を渡すと、コマンドはそのテーブルに属するテーブルフォームの名前を返します。この引数を省略するとデータベースプロジェクトフォーム名が返されます。

filter引数に比較文字列を渡すことでフォームのリストを制限できます。この場合、フィルターにマッチする名前を持つフォームだけが返されます。"@"をワイルドカードとして使用することができます。空の文字列を渡した場合、filter引数は無視されます。

任意の marker 引数を使うことによってもフォームのリストを制限することができます。使用した場合、arrNames に返されるフォームを、ある時点以降に変更されたものだけに制限することが出来ます。バージョンコントロールシステムの一部として、この引数は最後のバックアップ以降に変更されたフォームのみをアップデートすることを可能にします。

原理は以下の通りです。4Dは内部にデータベースリソース変更のカウンターを維持しています。フォームはリソースですから、フォームが作成、または保存されるたびにこのカウンターは増加していきます。marker parameter,引数を渡すと、コマンドはmarker の値以上の値を持つフォームのみをarrNames の中に返します。さらに、marker の中に変数を渡すと、コマンドはカウンターの新しい値を返します。つまり、最大の値をこの変数の中に返すという事です。この値を保存することによって、次の FORM GET NAMES の呼び出しの際に新しく作成または変更されたフォームのみを取得することができます。

コマンドがコンポーネント内で実行された場合、デフォルトではコンポーネントのプロジェクトフォーム名が返されます。* 引数を渡すとホストデータベースのフォーム名を受け取ることができます。

注: ゴミ箱内のフォームは返されません。

例題

典型的な使用例:

  // データベース中すべてのプロジェクトフォームを取得
 FORM GET NAMES(arr_Names)
 
  // [Employees]テーブルのフォームを取得
 FORM GET NAMES([Employees] ;arr_Names)
 
  // [Employees]テーブル中"input_"で始まるフォームを取得
 FORM GET NAMES([Employees] ;arr_Names;"input_@")
 
  // データベース内で、最後の同期の後に変更された全てのプロジェクトフォームを取得
  // vMarker には数字の値が入ります
 FORM GET NAMES(arr_Names;"";vMarker)
 
  // コンポーネントからホストのテーブルフォームを取得
  // テーブル名が不明なためポインターを使用
 FORM GET NAMES(tablePtr->;arr_Names;*)

参照

METHOD GET PATHS FORM
フォーム