.Net水晶报表的使用总结

简介:

1、按照正常的方法,新建一个报表文件,和数据库中的一张表关联好,设计好报表式样
   和数据库关联时可以先建立一个access文件,做一个假的数据库

2、动态绑定数据源和动态绑架数据以及参数的方式
    protected void Page_Load(object sender, EventArgs e)
    {
        //声明报表的数据对象
        CrystalDecisions.CrystalReports.Engine.Database crDatabase; 
        CrystalDecisions.CrystalReports.Engine.Table crTable;
        TableLogOnInfo dbConn = new TableLogOnInfo();
        // 创建报表对象opt
        ReportDocument oRpt = new ReportDocument();

        // 加载已经做好的报表
        oRpt.Load("E:\\Jsmstc\\Jsmstc_MIS Project Managemet\\03_Source\\Web\\ReportTest.rpt");

        //连接数据库,获得相关的登陆信息
        crDatabase = oRpt.Database;

        //定义一个arrtables对象数组
        object[] arrTables = new object[1];
        crDatabase.Tables.CopyTo(arrTables, 0);
        crTable = (CrystalDecisions.CrystalReports.Engine.Table)arrTables[0]; 
        dbConn = crTable.LogOnInfo;
        
        //设置相关的登陆数据库的信息
        dbConn.ConnectionInfo.DatabaseName = "jsmstc_mis"; 
        dbConn.ConnectionInfo.ServerName = "192.168.0.50";
        dbConn.ConnectionInfo.UserID = "jsmstc";
        dbConn.ConnectionInfo.Password = "jsmstc";

        //将登陆的信息应用于crtable表对象
        crTable.ApplyLogOnInfo(dbConn);
        
        //填充数据
        M_AdvisoryBusiness AdvisoryBusiness = new M_AdvisoryBusiness(Request.GetHashCode());
        DataTable AdvisoryData = AdvisoryBusiness.GetDataTableForReport();

        oRpt.SetDataSource(AdvisoryData);

        //将报表和报表浏览控件绑定
        CrystalReportViewer1.ReportSource = oRpt;
        
        
        //传递参数
        //setReportParameters();
      
        oRpt.Load("E:\\Jsmstc\\Jsmstc_MIS Project Managemet\\03_Source\\Web\\ReportTest.rpt");
    }

    private void setReportParameters()
    {
        // all the parameter fields will be added to this collection
        ParameterFields paramFields = new ParameterFields();
        // the parameter fields to be sent to the report
        ParameterField pfItemAddr = new ParameterField();
        // 设置在报表中,将要接受的参数字段的名称
        pfItemAddr.ParameterFieldName = "Query1";
        ParameterDiscreteValue dcItemAddr = new ParameterDiscreteValue();

        dcItemAddr.Value = "dd";

        pfItemAddr.CurrentValues.Add(dcItemAddr);
        paramFields.Add(pfItemAddr);


        // 将参数集合绑定到报表浏览控件
        CrystalReportViewer1.ParameterFieldInfo = paramFields;
    }
注意使用动态方式后,在报表设计中不能再使用SQL表达式字段了

3、小技巧
   每一种格式的设置都可以通过Crystal 语法控制是否应用此格式  当为true时应用,为false时不使用

4、边框的设置
   在水晶报表里设好边框后,在winform中是可以看到边框的,但是使用webform显示在页面上是没有边框的(只有当导出时才能看到边框)
   在web页面上显示边框还不知道怎么实现??

5、设置分页
   可以设定每页显示多少条记录,比如每页6条   
    
  在详细资料上点格式化节,在后面页新建页打勾     
  公式中输入:     
  if   onlastrecord   then     
        formula   =   false     
  else     
        if   RecordNumber   mod   6   =0   then     
              formula   =true     
        else     
              formula   =false     
        end   if     
  end   if     
    
     '(BASIC   语法) 


    本文转自永春博客园博客,原文链接:http://www.cnblogs.com/firstyi/archive/2006/10/20/534500.html,如需转载请自行联系原作者


相关文章
|
存储 .NET BI
asp.net 水晶报表使用总结
手头上的一个项目,终显雏形,其中遇到一些问题,经过多番努力,终于得以解决,主要是水晶报表方面的。
1004 0