• RDLC报表小结


    针对vs2008,Windows Forms应用程序。

    数据源

    1.尚未为数据源 XXX 提供数据源实例。 

     原因:this.reportViewer1.LocalReport.DataSources中找不到Name==XXX的参数 或者 Name==XXX参数的参数值为null。

    解决方法: this.reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("XXX", (DataTable 或 实现IList的集合)));

    设计

    1.显示下级节点。例如,显示Doctor.Depart.Name。

    解决方法: Fields!Doctor.Value.Depart.Name。

    注意:如果以这种表达式显示数据是不会有问题的,但是,如果在报表中启动排序时,无论排序表达式是什么,都会失败(显示错误号)。原因不明。

    2.每页最多只显示N条数据。

    解决方法:添加组,分组表达式为 =Int((RowNumber(Nothing) - 1) / N),取消包括组头和包括组尾,勾选在结尾处分页。

    3.内置的Switch语句似乎没有Default分支

    例如:=Switch(Fields!Prestype.Value = 1, "西药", Fields!Prestype.Value = 2, "中药", (没有default,这里填什么呢?), "其他") 

    解决方法:变通一下:=Switch(Fields!Prestype.Value = 1, "西药", Fields!Prestype.Value = 2, "中药", Fields!Prestype.Value <> 2, True, "其他")

    4.更改文档结构图根节点文本

    解决方法:设置this.reportViewer1.LocalReport.DisplayName属性

    5.显示n×m矩阵(Matrix)

    解决方法:将矩阵的列组分组表达式设为 =RowNumber(Nothing) mod m,行组分组表达式设为 =Int((RowNumber(Nothing) - 1) / m)。

    注意:在VB中,CInt函数和Int函数是不同的。前者是取某数的四舍五入值,后者直接取整数部分。 

    6.展开文档结构图树形结构

    解决方法:在报表呈现完成之后,获取文档结构图树形结构的顶级节点(其实是TreeNode),调用Expand方法展开它。

    void reportViewer1_RenderingComplete(object sender, Microsoft.Reporting.WinForms.RenderingCompleteEventArgs e) {
        var rsDocMap 
    = typeof(Microsoft.Reporting.WinForms.ReportViewer).GetField("rsDocMap", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(this.reportViewer1);
        var node 
    = rsDocMap.GetType().GetProperty("TopNode").GetValue(rsDocMap, null);
        
    if (node != null) {
            ((TreeNode)node).Expand();
        }
    }

     7.引用其它报表项(例如其它文本框)的内容

    解决方法:ReportItems!textbox1.Value

    8.在Matrix中设置了某组的可见性为“由其他报表项确定”时,务必将当前组的初始可见性设为隐藏,否则回永久停在生成报表界面上。 

    9.IIF函数错误原因之一

    IIf(Fields!a.Value = "true", 1.2, 0) 将生成错误,因为1.2(这里是decimal)和0(int32)的数据类型不一致

    解决方法:添加类型转换: IIf(Fields!a.Value = "true", 1.2, System.Convert.ToDecimal(0)) 

    版本历史

    2010-11-02 发布 

    2010-11-03 添加设计4 、5

    2010-11-15 添加设计1的注意部分 

    2010-12-15 添加设计6 

    2011-01-07 添加设计7 

    2011-01-19 添加设计8 

    2012-05-14 添加设计9  
  • 相关阅读:
    [java]转:String Date Calendar之间的转换
    ExtJs在页面上window再调用Window的事件处理
    java oracle clob string 大字符串存储【转】
    解决linux系统启动之:unexpected inconsistency:RUN fsck
    线程封闭之栈封闭和ThreadLocal
    Java线程状态和关闭线程的正确姿势
    指令重排序和内存屏障
    浅谈Java内存模型以及交互
    Redis分布式锁的一点小理解
    使用原生Ajax进行用户名重复的检验
  • 原文地址:https://www.cnblogs.com/ChenZB/p/1866972.html
Copyright © 2020-2023  润新知