Tips

標準アクションの代わりにコマンドを使用する場合

日付2011/08/10
ID76367 (英語原文参照)
バージョンv12
プラットフォームMac/Win

次レコード, 前レコードなどの標準アクションが設定されたボタンは, ステータスが自動的に変化するので便利です。しかし, ナビゲーションの標準アクションは, そのテーブルのフォームでしか効力がありません。

PREVIOUS RECORDやNEXT RECORDなどのコマンドを標準アクションの代わりに使用する場合, ボタンのステータスは自分で管理しなければなりません。下記はそのようなメソッドの例です。

// Method: NavButtonControl
// Parameters
// $1 - Pointer to table
// $2 - Pointer to the Variable of a Previous Record Button
// $3 - Pointer to the Variable of a Next Record Button
// ----------------------------------------------------

C_POINTER($1;$table_p)
C_POINTER($2;$prevButton_p)
C_POINTER($3;$nextButton_p)

If (Count parameters>=3)
  $table_p:=$1
  $prevButton_p:=$2
  $nextButton_p:=$3

  If (Selected record number($table_p->)<=1) | (Is new record($table_p->))
    DISABLE BUTTON($prevButton_p->)
  Else 
    ENABLE BUTTON($prevButton_p->)
  End if 

  If (Selected record number($table_p->)=Records in selection($table_p->))\
    | (Is new record($table_p->))
    DISABLE BUTTON($nextButton_p->)
  Else 
    ENABLE BUTTON($nextButton_p->)
  End if 
End if

  NEXT RECORD([Table_1])
  NavButtonControl(->[Table_1];->PrevButton;->NextButton)

 PREVIOUS RECORD([Table_1])
 NavButtonControl(->[Table_1];->PrevButton;->NextButton)