PowerTools MultiRow for Windows Forms 8.0J
CalculationContext クラス
メンバ  使用例 

GcMultiRowで計算を実行するときのコンテキスト状態を表します。
構文
Public Class CalculationContext 
public class CalculationContext 
使用例
次のサンプルコードは、集計セルの計算ロジックをカスタマイズする方法を示します。このサンプルコードは、SummaryCellクラスに示されている詳細なコード例の一部を抜粋したものです。
private SummaryCell CreateCustomSummaryCell()
{
    SummaryCell summaryCell = new SummaryCell();
    // Custom calculation logic.
    summaryCell.Calculation = new PercentageCalculation();
    summaryCell.Style.Format = "#0.00%";
    summaryCell.Style.BackColor = Color.Wheat;
    return summaryCell;
}

class PercentageCalculation : ICalculation
{
    public object Calculate(CalculationContext context)
    {
        // calculate the percentage base on current section's sub-total in total.
        object subTotalValue = context.GcMultiRow[context.SectionIndex, "SubTotal"].Value;
        object totalValue = context.GcMultiRow.ColumnFooters[0]["Total"].Value;

        if (object.Equals(totalValue, 0m))
        {
            // context.ErrorInfo = "Total is 0.";
            return "Total is 0";
        }

        return (decimal)subTotalValue / (decimal)totalValue;
    }

    public object Clone()
    {
        // If you and new property in the calculation, make sure the property is cloned in this method.
        return new PercentageCalculation();
    }
}
Private Function CreateCustomSummaryCell() As SummaryCell
    Dim summaryCell As New SummaryCell()
    ' Custom calculation logic.
    summaryCell.Calculation = New PercentageCalculation()
    summaryCell.Style.Format = "#0.00%"
    summaryCell.Style.BackColor = Color.Wheat
    Return summaryCell
End Function

Private Class PercentageCalculation
    Implements ICalculation
    Public Function Calculate(ByVal context As CalculationContext) As Object Implements ICalculation.Calculate
        ' calculate the percentage base on current section's sub-total in total.
        Dim subTotalValue As Object = context.GcMultiRow(context.SectionIndex, "SubTotal").Value
        Dim totalValue As Object = context.GcMultiRow.ColumnFooters(0)("Total").Value

        If Object.Equals(totalValue, 0D) Then
            ' context.ErrorInfo = "Total is 0.";
            Return "Total is 0"
        End If

        Return DirectCast(subTotalValue, Decimal) / DirectCast(totalValue, Decimal)
    End Function

    Public Function Clone() As Object Implements ICloneable.Clone
        ' If you and new property in the calculation, make sure the property is cloned in this method.
        Return New PercentageCalculation()
    End Function
End Class
継承階層

System.Object
   GrapeCity.Win.MultiRow.CalculationContext

参照

CalculationContext メンバ
GrapeCity.Win.MultiRow 名前空間
SummaryCell クラス

 

 


© 2008-2015 GrapeCity inc. All rights reserved.