为了实现你的用例,需要实现ICalculation接口,然后把你的实现赋给SummaryCell的Calculation属性。
- public sealed partial class Template1 : Template
- {
- public Template1()
- {
- InitializeComponent();
- this.YourCellName.ValueType = typeof(double); //YourCellName 是你要计算的那个Cell
- this.summaryCell1.Calculation = new MyCalculate();
-
- }
- }
- public class MyCalculate : ICalculation
- {
- public object Calculate(CalculationContext context)
- {
- double result = 0.0;
- if (context.Scope == CellScope.ColumnFooter)
- {
- object temp = null;
- for (int i = 0; i < context.GcMultiRow.RowCount; i++)
- {
- temp = context.GcMultiRow.GetValue(i, "YourCellName");
- if (temp != null && temp is double)
- {
- result += Math.Round((double)temp,2);
- }
- }
- }
- return result;
- }
- public object Clone()
- {
- return new MyCalculate();
- }
- }
复制代码
MultiRow缺省提供的SummaryCell都是以Cell的Value来计算的,为了实现你的用例,通过Math.Round函数先四舍五入到2位,然后再一个个加去起来。实现的思路就是这样,可能你要根据你的业务需求作适当的修改。 |