用水晶报表动态绑定数据

来源:互联网 发布:淘宝变号磁贴叫什么 编辑:程序博客网 时间:2024/05/08 09:36

语言陈述可能比较随便,也不会说详细,如果大家有疑问可以在下面留言,能解答的尽量解答(VS2010在兼容水晶报表有点问题,需要配置。)

在一个项目中,要用到水晶报表。但是,用法有点特殊,就是数据源不是通过数据库的查询得到,而是通过一个网络传输jason包来获取数据。也就是没有一个表的结构,需要自己去构造一个表的结构。

在创建水晶报表的模版中,要求有固定的数据结构,而数据结构从哪里来呢,因为是通过动态绑定的。最后,只能在项目中新建一个数据集项目。在新建的数据集中添加一个表结构。这个表的结构要跟你想显示的字段一样(因为报表模版要从这个结构中取结构字段)。然后,在你的代码中通过数据集实例化。绑定到报表控件中。因为你模版绑定的数据集,而你绑定的数据集是  之前创建数据集的的示例,所以在绑定之后,类型完全一致。一下是我代码


DataSet1 dsdataSet = new DataSet1();  //DataSet1  是我在项目当中添加新项  添加的数据集,里面有我要显示的结构,模版也是从这个数据集中的表的字段(实例化)
            DataTable dt = new DataTable("test");//注意,这是给数据集对象填充表的 列名一定要与绑定表中的字段一样。
            dt.Columns.Add("id");
            dt.Columns.Add("vsuser");
            DataRow dr = dt.NewRow();
            dr[0] = "44441";
            dr[1] = "ddd";
            dt.Rows.Add(dr);
            dsdataSet.Tables.Add(dt);
            dsdataSet.DataSetName = "t";
            CrystalReport1 orpt = new CrystalReport1(); //这是新建的模版,用新建的模版实例化。将表中数据填充上去
           // da.Fill(dsdataSet,"TableName");
            //使用“报表引擎”对象模型将填充的数据集,传递给报表
            orpt.SetDataSource(dsdataSet.Tables[1]);
            //将带有数据的报表对象绑定到 Windows 窗体查看器,rptVew(CrystalReportViewer控件)
            crystalReportViewer1.ReportSource = orpt;
            crystalReportViewer1.RefreshReport() ;



原创粉丝点击