MultiRow 合计行问题
版主你好,我在使用MultiRow 合计的时候碰到了个问题我的 数量吨数的数据是 3位小数,在设置单元格样式的时候2位小数(客户要求),最后一行有个合计行,也是2位小数,但是问题是,最后的合计他计算出来的数据是按我的源数据计算后,保留的2位小数,不是直接按显示在单元格上的2位小数的合计数,造成了 合计数字与上面的数字不相等。 为了实现你的用例,需要实现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位,然后再一个个加去起来。实现的思路就是这样,可能你要根据你的业务需求作适当的修改。
页:
[1]