Dev Express Report 学习总结(一) 基础知识总结

  Dev Express,一个非常优秀的报表控件。像其他报表一样,该报表也包括几个主要部分:Report Header,Page Header,Group Header,Detail,Group Footer,Page Footer和Report Footer共7个部分。,除此之外,我们还可以添加Detail Report,并同时添加与此相对应的Report Header/Footer。借助此功能可以实现多个Heaer与多个Detail相互交叉的效果!

  一. 常见总结

  CalculatedFile: 既可以用来计算两个Field/Parameter的值,也可以增加条件判断。在创建后Calculated Field之后,右键CalculatedField->Edit Expression,在打开的窗口中,可以看到其提供了许多丰富的功能,如:加,减,乘,除及合计等等常见功能!

  Detail Report: 相当于一个新的report page,它可以有自己的ReportHeader,Detail及ReportFooter。有了Detail Report就意味着我们可以更加灵活地交叉多个Header与Detail而不用去使用Sub Report。

  Sytle/Odd Style/Even Style:新建并批量使用样式。以XRLabel为例,可以在其Style属性中新建多个样式,如果当前Report页面中其他的XRLabel如果再使用相同的样式时,只需要从样式列表中选择相应的样式即可,减少了重复设置相同属性的繁琐过程!

  Page Number:可以使用XRPageInfo控件。如要显示为:1 OF 1,则需要设置XRPageInfo控件的属性PageInfo为NumberOfTotal,且须将Format设置为:{0} OF {1}!

  FormattingRules:主要通过对条件的设定来控制当前Band的显示隐藏及颜色等的变化!

  Landscape: 在设计report时,主要用来修改report的布局,即横向或纵向。设置方法:在report page的空白处点击Properties,在属性窗口处找到Landscape,把其设为True即可!

  二. 使用自定义的Summary

      有时在进行GroupBy时需要对Summary的结果进行相加减或计算百分比,这时就需要用到自定义的Summary了。关于具体的使用如下所示,也可以参照该官方链接的解释:

      1. 我有一个界面,如下所示,需要在C处计算出B占A+B的百分比:

      

      2. 选择C处的XRLabel标签(假设我们此处用XRLabel来放置C的value),右键->属性->事件,找到以下内容,双击即可生成后台事件:

          

      3. 修改上一步生成的事件处理过程为以下内容即可。

  
private void NoConsultVisitPercentage_SummaryGetResult(object sender, SummaryGetResultEventArgs e)
{
    Decimal OVNum = Convert.ToDecimal(A.Summary.GetResult());
    Decimal NCNum = Convert.ToDecimal(B.Summary.GetResult());
    Decimal TotNum = OVNum + NCNum;
    if (OVNum > 0)
    {
        if (NCNum > 0)
        {
            Decimal d = NCNum * 100 / TotNum;
            e.Result = Decimal.Round(d, 2);
            e.Handled = true;
        }
        else
        {
            e.Result = 100;
            e.Handled = true;
        }
    }
    else
    {
        e.Result = 0;
        e.Handled = true;
    }
}
View Code

      PS. 在使用自定义Summry之前,一定要设置XRLabel的属性为Custom,否则不会有任何效果,具体如下所示:

    

 

posted on 2017-02-20 19:19  Joye_Zhou  阅读(4621)  评论(0编辑  收藏  举报

导航