PowerTools SPREAD for Windows Forms 8.0J 移行ガイド
データ連結時に自動設定される数値型セルのMaximumValue/MinimumValueが自動調整される


ステータス

バージョン ID 機能分類 対応策
5.0.2016.2008 50164 データ連結

詳細

SPREAD では、データセットに連結するとセル型がデータセット内のデータにもとづいて自動的に設定されます。旧バージョンでは、数値型のデータと連結した場合、数値型セルの MaximumValue/MinimumValue の値が 9999999.99/-9999999.99 になっていましたが、本バージョンでは連結するデータ型にもとづいてMaximumValue/MinimumValueの値が決定されます。

データ型 セル型 MaximumValue MinimumValue
Decimal NumberCellType NumberCellType.MaxAllowedValue NumberCellType.MinAllowedValue
Double NumberCellType NumberCellType.MaxAllowedValue NumberCellType.MinAllowedValue
Single NumberCellType NumberCellType.MaxAllowedValue NumberCellType.MinAllowedValue
Int16 NumberCellType Int16.MaxValue Int16.MinValue
Int32 NumberCellType Int32.MaxValue Int32.MaxValue
Int64 NumberCellType NumberCellType.MaxAllowedValue NumberCellType.MinAllowedValue
UInt16 NumberCellType UInt16.MaxValue UInt16.MinValue
UInt32 NumberCellType UInt32.MaxValue UInt32.MinValue
UInt64 NumberCellType NumberCellType.MaxAllowedValue UInt64.MinValue

旧バージョンと同じ動作を実現するには、DataAutoCellTypes を False に設定し、MaximumValue/MinimumValue を設定したセル型を指定する必要があります。

private void Form1_Load(object sender, EventArgs e)
{
    // セル型の自動設定を無効    
    fpSpread1.ActiveSheet.DataAutoCellTypes = false;

    // 数値型セルの設定    
    FarPoint.Win.Spread.CellType.NumberCellType nc = new FarPoint.Win.Spread.CellType.NumberCellType();
    nc.MaximumValue = 9999999.99;
    nc.MinimumValue = -9999999.99;
    fpSpread1.ActiveSheet.Columns[0].CellType = nc;

    // テストデータの設定   
    DataTable dt = new DataTable("TEST");
    dt.Columns.Add("ColumnA", typeof(double)); dt.Rows.Add(123.4);
    dt.Rows.Add(1234.5);
    dt.AcceptChanges();
    fpSpread1.ActiveSheet.DataSource = dt;

    // MaximumValue/MinimumValueの確認
    FarPoint.Win.Spread.CellType.NumberCellType checknc = (FarPoint.Win.Spread.CellType.NumberCellType)fpSpread1.ActiveSheet.GetCellType(0, 0);
    Console.WriteLine(checknc.MaximumValue);
    Console.WriteLine(checknc.MinimumValue);
}
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    ' セル型の自動設定を無効    
    FpSpread1.ActiveSheet.DataAutoCellTypes = False

    ' 数値型セルの設定    
    Dim nc As New FarPoint.Win.Spread.CellType.NumberCellType()
    nc.MaximumValue = 9999999.99
    nc.MinimumValue = -9999999.99
    FpSpread1.ActiveSheet.Columns(0).CellType = nc

    ' テストデータの設定    
    Dim dt As New DataTable("TEST")
    dt.Columns.Add("ColumnA", GetType(Double))
    dt.Rows.Add(123.4)
    dt.Rows.Add(1234.5)
    dt.AcceptChanges()
    FpSpread1.ActiveSheet.DataSource = dt

    ' MaximumValue/MinimumValueの確認    
    Dim checknc As FarPoint.Win.Spread.CellType.NumberCellType = FpSpread1.ActiveSheet.GetCellType(0, 0)
    Console.WriteLine(checknc.MaximumValue)
    Console.WriteLine(checknc.MinimumValue)
End Sub
関連トピック

 

 


© 2004-2015, GrapeCity inc. All rights reserved.