GOTO SELECTED RECORD
GOTO SELECTED RECORD ( {aTable ;} record )
引数 | 型 | 説明 | |
---|---|---|---|
aTable | Table | → | 指定したレコードをカレントレコードとするテーブル, または 省略時、デフォルトテーブル |
record | Integer | → | セレクション中のレコード位置番号 |
説明
GOTO SELECTED RECORDは、aTableのカレントセレクション内の指定されたレコードに移動し、そのレコードをカレントレコードにします。カレントセレクションは変更されません。recordにはカレントセレクション内のレコードの位置を指定します。Record numberで求められるレコード番号ではありません。このレコード位置はセレクションの作成方法およびセレクションがソートされているかどうかによって変わります。
GOTO SELECTED RECORD は以下の場合なにも行いません:
- カレントセレクション中にレコードが存在しない場合
- record がカレントセレクションに含まれていない場合
- record がすでにカレントレコードである場合
recordに0を渡すと、aTableのカレントレコードが存在しなくなります。単一選択モードが選択されている場合、特に組み込みサブフォームで、これによりリスト中のレコードの選択を解除できます。
例題
以下の例は、[People]Last Nameフィールドの内容をatNames配列に取り込みます。alRecNum倍長整数配列にレコード位置番号を設定します。両方の配列をソートし、その配列を使用してセレクション内のレコードを参照します:
// ここで[People] テーブルのセレクションを作成
// ...
// 名前を取得
SELECTION TO ARRAY([People]Last Name;atNames)
// レコード位置番号の配列を作成
$vlNbRecords:=Size of array(atNames)
ARRAY LONGINT(alRecNum;$vlNbRecords)
For($vlRecord;1;$vlNbRecords)
alRecNum{$vlRecord}:=$vlRecord
End for
// 配列を名前順でソート
SORT ARRAY(atNames;alRecNum;>)
atNames 配列がスクロールエリアに表示され、ユーザは項目の一つをクリックします。2つの配列は同期されているので、alRecNumは対応するatNamesの要素のレコード位置番号を保持しています。
以下のatNamesオブジェクトメソッドは[People]セレクション中の、スクロールエリアで選択されたレコードをカレントレコードにします:
Case of
:(Form event code=On Clicked)
If(atNames#0)
GOTO SELECTED RECORD(alRecNum{atNames})
End if
End case