FlexView

Q12 29

FlexRow.GetColumnメソッド実行時のエラーについて 
[内容]
値は正しく取得できるはずなのに、FlexRow.GetColumnメソッド実行時「無効なアクセッサです」とのエラーが表示される

A12 29
[解決方法]
下記サンプル★部分のようにセルの値を参照するためのスクリプトを
実行した場合、「無効なアクセッサです」とのエラーが発生します。

[サンプルコード1] ※記述ポイント抜粋
FlexView FlexView1 {
 X = 11;
 Y = 6;
 Width = 212;
 Height = 116;
 FlexRecord FlexRecord1 {
  FlexLabel FlexLabel1 {
   Width = 70;
   Title = "区分";
  }
  FlexLabel FlexLabel2 {
   Width = 70;
   Title = "商品";
  }
  FlexLabel FlexLabel3 {
   Width = 70;
   Title = "価格";
  }
 }
}

Button Button1 {
 X = 12;
 Y = 132;
 Width = 117;
 Height = 45;
 
 Function OnTouch( e ) {
  /* 選択した行の1列目のデータを取得 */
  var col_data = 
  Form1.FlexView1.GetRow(Form1.FlexView1.RowPosition)
                 .GetColumn(0).Value; ・・・★(実際は1行で記載)
  /* 選択した行の1列目のデータを取得 */
  MessageBox(col_data);
 }
}


この現象は、★部分の「.Value」を実行するまでに、FlexView.GetRowメソッドにて生成した
アクセッサが消滅してしまうために発生しています。
アクセッサを維持し、セルの値を取得するためには、以下のようにFlexView.GetRowメソッドの
返り値を1度変数へ格納してから、「GetColumn(0).Value」といったセルの値の取得等を行うようにして下さい。

[サンプルコード2] ※記述ポイント抜粋
/* 選択した行の1列目のデータを取得 */
var row_data =  Form1.FlexView1.GetRow(Form1.FlexView1.RowPosition);
var col_data =  row_data.GetColumn(0).Value;

※この制限は、Biz/Browser V ver5.0.1.1より撤廃され、サンプルコード1のような記述が
  可能になりました。


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