PivotGridField 中对Unbound的列赋值(除法)

.aspx中<Fields>内的代码:

<dx:PivotGridField ID="field_corr" Area="DataArea" AreaIndex="0"  FieldName="诊断符合数" ValueFormat-FormatType="Numeric" Caption="诊断符合数"> </dx:PivotGridField>
<dx:PivotGridField ID="field_Sum" Area="DataArea" AreaIndex="1"  FieldName="诊断总数"  Caption="诊断总数"></dx:PivotGridField>
<dx:PivotGridField ID="field_compare" Area="DataArea" AreaIndex="2"   FieldName=""   UnboundType="Decimal"  Caption="诊断符合率" SummaryType="Custom">  </dx:PivotGridField>

其中诊断符合率=诊断符合数/诊断总数

但是在用Unbound的前台表达式中绑定字段除法后得到的结果为0(加减乘均可以直接在前台表达式UnboundExpression中赋值)

除法需要在后台绑定OnCustomCellDisplayText事件:OnCustomCellDisplayText="pivotGrid_CustomCellDisplayText"

.cs

protected void pivotGrid_CustomCellDisplayText(object sender, PivotCellDisplayTextEventArgs e)          {

    if (object.ReferenceEquals(e.DataField, ASPxPGDiagnosticAccordanceRate.Fields["诊断符合率"]))  { //判断传的参数所在的列(每列均传递一次)

      PivotGridField corrcount = ASPxPGDiagnosticAccordanceRate.Fields["诊断符合数"];

      object Corrcount = e.GetCellValue(corrcount);

PivotGridField sumcount = ASPxPGDiagnosticAccordanceRate.Fields["诊断总数"];

object Sumcount = e.GetCellValue(sumcount);

      if (Sumcount == null) return;

decimal perc = (decimal)Corrcount / (decimal)Sumcount;//计算结果

e.DisplayText = string.Format("{0:p}", perc);//显示为百分数的形式

}

}

时间: 2024-10-12 10:56:38

PivotGridField 中对Unbound的列赋值(除法)的相关文章

C#中DataTable行转列示例

将下面表(1)格式的数据转换为表(2)格式的数据.很明显,这是一个行转列的要求,本想在数据库中行转列,因为在数据库中行转列是比较简单的,方法可以参考本站SQLServer中(行列转换)行转列及列转行且加平均值及汇总值,但因其它需求,最终需将该转化搬到C#中进行了. (表1) 表(2) 不多说了,下面开始在DataTable行转列示例: //DataTable行转列 private DataTable RCC(DataTable _outDataSource) { //从DataTable中读取不

MYSQL 表中汉字写入或字段赋值时乱码情况排误

-- 当修改字段值,或是直接写入时,汉字变成乱码情况 ,[可注意一下数据库名,记得修改] -- 当字符顺序对汉字不兼容时,可能直接导致乱码情况发生. 最好做到库.表.字段(字符类型)排序规则是否一致 -- eg.在某库下建了临时表没有指定字符排序规则,下游会使用时,将临时表中的str字段值赋值给另外一个库表,可能会出现乱码 -- 未指定排序建表时,则表的排序规则是其库的排序规则 -- 1. 库级别 SELECT * -- DEFAULT_CHARACTER_SET_NAME DEFAULT_CO

SQL Server中Id自增列的最大Id是多少

什么是自增列 在SQL Server中可以将Id列设为自增.即无需为Id指定值,由SQL Server自动给该列赋值,每新增一列Id的值加一,初始值为1. 需要注意的是即使将原先添加的所有数据都删除,然后新增数据.此时记录的Id依然不会从1开始,而是原先的最大值加1. 自增列的取值范围 一般在定义自增列时,都会指定其数据类型为int类型.而且也只有int类型及其相关数据类型的列可以指定为自增列. 下面是自增列可以使用的数据类型: bigint -2^63 (-9,223,372,036,854,

条款十六: 在operator=中对所有数据成员赋值

当涉及到继承时,派生类的赋值运算符也必须处理它的基类成员的赋值!看看下面: class base { public: base(int initialvalue = 0): x(initialvalue) {} private: int x; }; class derived: public base { public: derived(int initialvalue) : base(initialvalue), y(initialvalue) {} derived& operator=(co

关于makefile中变量的多次赋值以及override指令

1 基本原则如下 1.1 原则1 变量的普通赋值是有先后顺序的,后面的赋值会覆盖掉前面的赋值. 1.2 原则2 使用的时候,用的是其前面最后的赋值,就算其后面有使用了override指令的赋值也不会影响这条原则. 1.3 原则3 当使用了override指令定义赋值了变量后,其后对该变量的所有的赋值都是无效的.但是override之前的所有的赋值都是有效的.使用的时候是往前最近原则. 2 override变量.命令行参数和普通变量之间的屏蔽关系 override变量会屏蔽命令行参数,除非用+=:

如何使用 awk 输出文本中的字段和列

首先我们要知道,awk 能够自动将输入的行,分隔为若干字段.每一个字段就是一组字符,它们和其他的字段由一个内部字段分隔符分隔开来. 如果你熟悉 Unix/Linux 或者懂得 bash shell 编程,那么你应该知道什么是内部字段分隔符(IFS)变量.awk 中默认的 IFS 是制表符和空格. awk 中的字段分隔符的工作原理如下:当读到一行输入时,将它按照指定的 IFS 分割为不同字段,第一组字符就是字段一,可以通过 $1 来访问,第二组字符就是字段二,可以通过 $2 来访问,第三组字符就是

返回数组中指定的一列

提取二维数组相同的键和键对应的值组成一个新的一维数组, tp不支持此函数,所以自己在php中找到,写在了tp的function下//array_column — 返回数组中指定的一列 function arrayColumn(array $array, $column_key, $index_key=null){ //本函数用来检查指定的函数是否已经定义.参数 function_name 为待检查的函数名称.若已定义指定的函数则返回 true 值,其它情形均返回 false 值. if(func

在mysql中,如何改变列声明.

C 在mysql中,如何改变列声明. 修改表 - 修改列名 使用 CHANGE COLUMN 来修改列的名字,还必须 设置 列的数据类型 mysql> desc test_tab -> // +-------+-------------+------+-----+---------+-------+ | Field | Type        | Null | Key | Default | Extra | +-------+-------------+------+-----+-------

读取文本文件中指定的几列

今天在论坛上看到一个问题,这个问题大概是这样的,读取文本文件中指定的几列,并存储入数据库中. Insus.NET花上些少时间,实现读取文本的功能部分.创建一个文本文件,文本添加好几行.每一行有好几列,列与列之间使用逗号分隔. adf,adfadf,adsfgads,qwer,wrt,wrey,asdfs,qwer,tryerqert6uy7,468u4,578,qewrqew,qwertwet,67u46,45676,45qer87,47857,et356y,etyedgh adsadf,adf