FORM GET NAMES
FORM GET NAMES ( {aTable ;} arrNames {; filter {; marker}}{; *} )
引数 | 型 | 説明 | |
---|---|---|---|
aTable | Table | → | テーブル参照 |
arrNames | Text array | ← | フォーム名の配列 |
filter | Text | → | 名前のフィルター |
marker | Real | → | 返す最古のカウンター |
← | 最新のカウンター | ||
* | 演算子 | → | 指定時 = コンポーネントで実行されたとき、コマンドはホストデータベースに適用される (コンポーネントのコンテキスト以外ではこの引数は無視されます) |
この コマンドはスレッドセーフではないため、プリエンプティブなコードには使えません。
説明
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;*)