MESCIUS SPREAD for Windows Forms 17.0J 移行ガイド
DataModel

DataModelに関する変更点は、次のとおりです。

ColumnHeader、RowHeader、ColumnFooterのデータモデル

17.0Jでは、これらのモデルは新しい内部モデルに置き換えられています。

従来のロジックを再利用するには、DefaultSheetDataModelをヘッダモデルに割り当てます。次に、例を示します。

sheetView.Models.ColumnHeaderData = new DefaultSheetDataModel(1,sheetView.ColumnCount);
sheetView.Models.ColumnFooterData = new AggregationDataModel(sheetView.Models.Data);
sheetView.Models.RowHeaderData = new DefaultSheetDataModel(sheetView.RowCount,1);

新しいモデルは、あまり一般的とはみなされない一部のAPIは無効になります。次に、例を示します。

// 無効
fpSpread1.ActiveSheet.Models.ColumnHeaderData.NonEmptyRowCount
fpSpread1.ActiveSheet.Models.ColumnHeaderData.NonEmptyColumnCount

// 有効
fpSpread1.ActiveSheet.Models.ColumnHeaderData.ColumnCount = 600;
fpSpread1.ActiveSheet.ColumnHeader.RowCount = 3;
fpSpread1.ActiveSheet.ColumnHeader.Cells[0,0].Value = 10;
fpSpread1.ActiveSheet.CoulmnHeader.Cells[1,1].Text = 11;
fpSpread1.ActiveSheet.ColumnHeader.Cells[2,2].BackColor = Color.Red;
fpSpread1.ActiveSheet.ColumnHeader.Cells[2,2].Row.Height = 40;

17.0Jでは、ColumnFooterDataModelにカスタムモデルが設定されていない場合には(デフォルトモード)、public API ColumnFooter.SetAggregationTypeのみがサポートされます。つまり、必要な効果を反映させるため、数式はColumnFooterのデータモデルに設定されます。ただし、SetAggregationFormat、GetAggregationFormat、およびGetAggregationTypeは無効になります。

フッタにこれまでの設定を利用して書式表示する場合には、AggregationDataModelをColumnFooterモデルに割り当てます。実際には以下の「対応追加」とコメントのあるコードを追加することで設定した書式で表示することができます。

C#
コードのコピー
using FarPoint.Win.Spread.Model;
using System;
using System.Windows.Forms
private void Form1_Load(object sender, EventArgs e)
{
    fpSpread1.Sheets[0].RowCount = 10;
    fpSpread1.Sheets[0].ColumnCount = 4;
    fpSpread1.Sheets[0].ColumnFooter.Visible = true;

    //値の設定
    for (int i = 0; i < fpSpread1.Sheets[0].RowCount; i++) {
        fpSpread1.Sheets[0].SetValue(i, 0, i * 1000);
    }

    fpSpread1.Sheets[0].Models.ColumnFooterData = new AggregationDataModel(fpSpread1.Sheets[0].Models.Data); //対応追加

    //フッタに合計値を3桁区切りで表示します
    fpSpread1.Sheets[0].ColumnFooter.SetAggregationType(0, 0, FarPoint.Win.Spread.Model.AggregationType.Sum);
    fpSpread1.Sheets[0].ColumnFooter.SetAggregationFormat(0, 0, "{0:#,##0}");
}

ColumnHeader、RowHeader、ColumnFooter」に戻る

 

 


© MESCIUS inc. All rights reserved.