1. 常见表达式:
A. For percent: [ValA]* 100 / ([ValA]+[ ValB]);
PS. Please remreber to set the file type for the CalculatedField to Float
B. Using the Aggregate Expression with grouped data:
[][[^.ColumnName] == [ColumnName] AND [VisitStatus] != ‘CANCELLED‘].Count()
PS. ColumnName means the fields used in GroupUnion.
2. 常见的格式化字符串:
A. Format String A: {0:0.00}
Usage: 5->5.00, 5.9 -> 5.90
B. Format String B: {0:0.00;(0.00);(0.00)}
Usage: -18 -> (18.00) 0.00 -> (0.00) -1.25 -> (1.25)
3. 实现如下图所示的合并单元格,仅需设置属性:ProcessDuplicateMode: Merge
4. DataSource/BindingSouce:(Think about the difference between Report DataSource and BindingSouce?)
主要是要多思考一下在动态赋值的过程中,赋值给DataSource和BindingSouce的区别,如何才能让程序的操作更加方便,而又易于实现我们的要求;
5. 关于CalculatedField数据类型的设置:
在完成了许多DevExpress报表开发后,慢慢地发现了CalculatedField数据类型的重要性。特别是如果在使用到两个值相乘的情况时,如:Price*Qty,在一般情况下,Price为decimal类型而Qty为int,如果在使用CalculatedField对这两个字段相乘而不选择FileType为double的话,最终的结果往往会显示为空!
6. 如何动态改变主/子报表间传递的参数(此处主要是在SubReport控件的BeforePrint事件中进行设置):
private void XXX_SubRpt_BeforePrint(object sender, System.Drawing.Printing.PrintEventArgs e)
{
((XRSubreport)sender).ReportSource.Parameters["SumAmount"].Value = MyValue;
}