天天看点

.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();

    }

    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,如需转载请自行联系原作者