FlexView

Q1
FlexView内の移動で、最終セルに到達したら先頭セルに移動したい
[内容]
CursorMoveプロパティを利用してセル移動を行った場合、
最終セルまで移動する事はできるが
その後の動作が制御できない、先頭セルに移動するにはどうしたらよいか


A1
FlexTextBoxクラスの列を右端に一列、非表示の状態で用意し
この列のセルにフォーカスが当たった際にフォーカスの移動先を制御する事で
最終セルから先頭セルへ移動する事が可能です。

 ※サンプルの抜粋となります。
Form Flx50_005 {
 ・・・
 CSVDocument csvdata;
 
 FlexView FlexView1 {
  ・・・
  CursorMove = $ENTER + $INPUTITEM + $LINEFEED;
  
  FlexRecord FlexRecord1 {
   FlexColumnSet fcs_erea1{
    ・・・
    FlexColumnSet fcs_erea2{
     ・・・
     FlexTreeHeader fth_block {
      ・・・
     }
     FlexGroupHeader fth_tiku{
      ・・・
     }
    }
   }
   FlexHeader fh_number{
    ・・・
   }
   FlexCheckButton FlexCheckButton1{
    ・・・
   }
   FlexLabel FlexLabel1 {
    ・・・
   }
   FlexTextBox FlexTextBox1 {
    ・・・
   }
   FlexTextBox FlexTextBox2 {
    ・・・
   }
   
   FlexTextBox dummy {
    ・・・
    /* フォーカス制御用のFlexTextBoxクラスを非表示 */
    Width = 0;
   }
  }
  /* フォーカス制御用のFlexTextBoxクラスに
         フォーカスが当たった場合の処理 */
  Function OnCursorMoved( e ) {
   /* dummyにフォーカスが当たった場合 */
   if(e.col == 4){
    if(e.Row.Position ==  (RowCount -1)){
     /* 最終セルの場合は先頭セルに戻る */
     RowPosition = 0;
     ColumnPosition = 0;
    } else {
     /* 途中行の最終列の場合は次の行の1列目に移動する */
     RowPosition = e.Row.Position +1;
     ColumnPosition = 0;
    }
   }
  }
 }
 if( !$DESIGNTIME ){
  /* CSVファイル読み込み */
  var csvsave = new CSVDocument;
  csvsave.Get("File.csv");
  Flx50_005.FlexView1 << csvsave;
 }
}

実際の挙動については、CRSファイル形式のサンプル
   「FlexView内の移動で、最終セルに到達したら先頭セルに移動したい(Flx50_005.zip)」
をご確認ください。

管理番号:Flx50_005
  Biz-Collections Bizの宝箱 トップへ
  Biz/Browser V・Biz/Designer V TIPS集 トップへ