.
希望实现Cell和GrandTotal中的B/A的值等于B/A*100%
用绑定列,目前没有实现该功能,请高手指教
------解决方案--------------------------------------------------------
B/A*100% 不还是一样的值吗? 你是不是想把值转换成20%的形式? 还是转换成0.2的形式?
------解决方案--------------------------------------------------------
我建议你最好还是在数据源上做处理,计算好了在绑定到B/A列上。
------解决方案--------------------------------------------------------
结果是百分数,我是在数据源做的出来
ROUND(CAST(FOT AS FLOAT)/CAST(FP AS FLOAT),2) as Rate
这问题出来了,数据汇总时(Cell和GrandTotal)将所有列相加了,将SummaryType改为Average
将解决做平均处理也不满足要求
需要的结果是B/A列都是=B/A的结果(B1+B2+B3)/(A1+A2+A3),不是要自动将每列的结果做平均(B1/A1+B2/A2+B3/A3)/3
------解决方案--------------------------------------------------------
如果是自带几种汇总不能满足你要求的话,你可以在GridView事件中自定义某列的计算方法
private void GridView_CustomSummaryCalculate(object sender, CustomSummaryEventArgs e)
{
if((e.Item as GridColumnSummaryItem).FieldName == "B/A")
e.TotalValue = "具体的求值方法:(B1+B2+B3)/(A1+A2+A3)";
}
------解决方案--------------------------------------------------------
@zhlin118
我这是用的
pivotGridControl控件,没有CustomSummaryCalculate事件
------解决方案--------------------------------------------------------
哦,我的控件版本可能太老了,所以没有找到你这个控件,你用的几点几的版本?
------解决方案--------------------------------------------------------
10.2.3
------解决方案--------------------------------------------------------
private void pivotGridControl1_CustomCellValue(object sender, DevExpress.XtraPivotGrid.PivotCellValueEventArgs e)
{
if (e.DataField.FieldName.Equals("MLL"))
{
try
{
decimal CB = (decimal)((DevExpress.XtraPivotGrid.PivotGridControl)sender).Cells.GetCellInfo(e.ColumnIndex - 2, e.RowIndex).Value;
decimal MLE = (decimal)((DevExpress.XtraPivotGrid.PivotGridControl)sender).Cells.GetCellInfo(e.ColumnIndex - 1, e.RowIndex).Value;
if ((CB + MLE) != 0)
{
e.Value = MLE / (CB + MLE);
}