PowerTools MultiRow for Windows Forms 8.0J
Scope プロパティ (CalculationContext)
使用例 

計算セルのスコープを取得します。
構文
Public ReadOnly Property Scope As CellScope
public CellScope Scope {get;}

プロパティ値

CellScope値の1つ。
使用例
次のサンプルコードは、集計セルの計算ロジックをカスタマイズする方法を示します。このサンプルコードは、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
参照

CalculationContext クラス
CalculationContext メンバ

 

 


© 2008-2015 GrapeCity inc. All rights reserved.