FlexView

Q12 27
計算を自動化したい

A12 27
[解決方法]
残念ながらFlexViewに列ごとや行ごとの集計を行うメソッドはありません。
合計値を出す場合は、合計したいセルの各値を取得し、合計した値を指定のセルに表示する
という実装となります。


[サンプルコード]
FlexViewの1列目と2列目の合計値を、3列目に表示しています。

Form form1 {
  Width = 365;
  Height = 235;
  FlexView FlexView1 {
      X = 23;
      Y = 52;
      Width = 301;
      Height = 134;
      FlexRecord FlexRecord1 {
          FlexLabel:Number FlexLabel1 {
              Title = "商品A";
          }
          FlexLabel:Number FlexLabel2 {
              Title = "商品B";
          }
          FlexLabel:Number FlexLabel3 {
              Title = "合計";
          }
      }
  }
  if ( !$DESIGNTIME ) {
      /* CSVデータ */
      var csvdata = new CsvDocument;
      csvdata << CSV{
          100,200
          300,400
          500,600};
      FlexView1 << csvdata;
      
      /* 合計値の算出 */
      /* 全行の取得 */
      var row = Form1.FlexView1.GetRow();
      /* 最終行までループ */
      while( !row.end ) {
          row.FlexLabel3.value =  row.FlexLabel1.value 
                                       + row.FlexLabel2.value;
          /* 次の行へ移動 */
          row.moveNext();
      }
  }
}
          

ただし、大量のデータを扱う場合、Biz/Browser上で処理をすると処理速度に影響が出る場合
があります。
データ量によってはサーバ側で処理をし、計算結果をデータとしてBiz/Browserへ渡すといった
方法も考えられます。

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