注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

水滴石穿

破浪是阵风!

 
 
 

日志

 
 

Visual Studio 2005 水晶报表的用法总结  

2007-11-11 09:21:52|  分类: 软件开发技术资料 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

第一部分   完全用控制绑定数据源

1. 建立水晶报表,注意报表要用OLE DB ADO方式连接数据源,这样可以省去报表登录窗口的弹出。

2. 在设计视图中拖拉报表控件CrystalReportViewer,点击右上角智能标签设置报表数据源,选择报表文件,自动生成CrystalReportSource,这时在设计视图中将显示出报表界面,水晶报表将自动用初始数据填充报表字段。注意这里有个小Bug,如果报表在子目录中,选择报表文件将自动用相对路径表示,这时报表显示会出错,应改成绝对路径才可以。

    <Report FileName="report\rptOrder.rpt">这里应改成:<Report FileName="..\report\rptOrder.rpt">

       

3.拖拉一个数据源控件SqlDataSource(也可以用ObjectDataSource),按向导生成数据源,这里可以筛选数据,根据情况选择各类数据源。           

       

4.如何将CrystalReportSource与SqlDataSource两个控件连接在一起呢?可以这样:选择CrystalReportSource控件点击右侧属性中数据栏,再点击Report选择DataSource,在这个数据源集合编辑器选择数据源指定报表名称即可。(下面的Parameters是用来选择报表参数用的)

另外可以参照http://xy229935.spaces.live.com/  下面的第二部分即是它的精华

---第二部分   用代码绑定数据源

采用推模式,可利用上面已经设计好的报表格式,用DateTable来作为CrystalReportViewer的数据源,这样更灵活.此时可以删除上面的CrystalReportSource和SqlDataSource.具体代码如下(注意要采用OLEDB的连接方式):

        DataTable DS = new DataTable();

        string myConn = System.Configuration.ConfigurationSettings.AppSettings["Test_OLE"];

         OleDbConnection myConnection = new OleDbConnection(myConn);

        string strSql = "select * from talbe1";

        OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(strSql, myConnection);

        myDataAdapter.Fill(DS);

        CrystalDecisions.CrystalReports.Engine.ReportDocument CrystalReportSource;

        CrystalReportSource = new CrystalDecisions.CrystalReports.Engine.ReportDocument();

        CrystalReportSource.Load(Server.MapPath("..\\query\\CrystalReport_kqhz.rpt"));

        CrystalReportSource.SetDataSource(DS);

        this.CrystalReportViewer1.ReportSource = CrystalReportSource;

        this.CrystalReportViewer1.DataBind();

---第三部分   参数的传递

很多人问:如何在水晶报表rpt文件上拖入一个文本框,通过编码的方式来动态地改变其内容.

其实不需用文本框,直接用参数的方法就很容易实现这个目的.

1.在报表编辑页面,调出"字段资源管理器",右击"参数字段",新建一个参数字段,输入名称Dept,选择值类型.

并将之拖入rpt文件所需要的位置.

2.在CrystalReportViewer1所在页面的CrystalReportViewer1_Init事件中,添加如下代码:

      using CrystalDecisions.CrystalReports.Engine;

      using CrystalDecisions.Shared; 

        ParameterField Dept = new ParameterField();//部门

        ParameterFields ParaFields = new ParameterFields();//参数集合

        ParameterDiscreteValue DeptVal = new ParameterDiscreteValue();//部门参数值

        

        Dept.Name = "dept";

        DeptVal.Value ="部门:"+ Session["Dept"].ToString();

        Dept.CurrentValues.Add(DeptVal);

        ParaFields.Add(Dept);

        //设置参数字段对像集合到查看器控件

        CrystalReportViewer1.ParameterFieldInfo = ParaFields;

  评论这张
 
阅读(808)| 评论(1)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017