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

GOTO SELECTED RECORD

GOTO SELECTED RECORD ( {aTable ;} record )

引数説明
aTableTable指定したレコードをカレントレコードとするテーブル, または 省略時、デフォルトテーブル
recordIntegerセレクション中のレコード位置番号

説明

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

参照

Selected record number