CtrlGoto

 

カーソルを移動する

カーソルを指定したコントロールに移動します。

構文:

CtrlGoto(コントロール名、行番号、世代番号)

パラメータ:

  • コントロール名 …… フォームにレイアウトしたコントロールのコントロール名

  • 行番号 …… コントロールがテーブル内にある場合の行番号。0 の場合は、現在の行。テーブルに1つしかコントロールがない場合は無視されます。

  • 世代番号 …… タスクの階層位置を表す番号。カレントのタスクが0、親タスクが1、その親タスクが2 などとなります。

戻り値:

論理値 …… 処理に成功した場合「True」が返ります。

以下のような場合、処理は失敗します。

  • コントロールが見つからない場合

  • コントロールが不可視の場合

  • 指定した行が存在しない場合

  • 指定したタスクにウィンドウがない場合

  • 指定したタスクが存在しない場合

例:

CtrlGoto('Customer_Name',3,0)

 

現在のタスクのウィンドウに表示されるテーブルの3行目のコントロール「Customer_Name」にパークします。

補足事項:

フローモードは以下のようになります。

C1,C2,C3 の順でテーブルにカラムがあると仮定します。

  1. 同一行でC1からC3へは、順方向に高速モードで移動します。

  2. 同一行でC3からC1へは、逆方向に高速モードで移動します。

  3. 1行目のC1から、2行目のC3へ移動する場合は、

  • データが修正されていれば、1行目の最後まで高速移動 → [レコード後] → 2行目のC3まで高速移動になります。

  • データが修正されていなければ、2行目の最初からC3まで高速移動します。

  1. 1行目のC3から、2行目のC1へは、#3 と同じになります。

パーキング条件=No のコントロールを指定すると、指定したコントロールの次にパーク可能なコントロールに移動し、戻り値はTrueになります。ただし、移動方法によっては、前のコントロールに移動する場合もあります。

注意事項:

  • 関数の実行後、アプリケーションがアイドル状態になった時に、フォーカスが切り替わります。

  • 行番号は、可視行のみを対象とします。これは、テーブルに10行表示されている場合は、11行目の値が無視されることを意味します。表示されないレコードへ移動したい場合は、LocateAdd関数を使用してください。

  • オンラインタスクの場合、移動したいコントロールがサブフォームまたはフレームの場合、サブフォームのタスクはまだロードされていないため、CtrlGoto関数は[タスク前]または[レコード前]のロジックユニットで使用できません。[ウェイト]特性が「No」に設定されたユーザイベントを[タスク前]または[レコード前]から発行する代わりに、CtrlGotoを使用することができます。