水晶报表的rpt文件已经创建,现在只需要将asp.net和水晶报表连接即可,找了网上很多教程都是雷同的,并且没有一个完整的方法。本人初学asp.net,对很多问题不太了解,所以想找入门级的示例,最好是用vb写的,如果所提供的方法可行,马上放分,本人在线等

解决方案 »

  1.   

    我有《Professional Crystal Reports for Visual Studio®.NET〉,需要的话留下邮箱
      

  2.   

    下面的示例是一个通用报表操作private ReportDocument oRpt;
    string ReportName;
    string PageName;
    string SqlString;
    protected CrystalDecisions.Web.CrystalReportViewer CrystalReportViewer1;
    Gis.App.AppData myapp =  Gis.App.AppData.GetInstance();//数据库操作对象
    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    ReportName = Request.QueryString["ReportName"].ToString();//报表名
    PageName = Request.QueryString["PageName"].ToString();//页面名
    SqlString = Request.QueryString["SqlString"].ToString();//接收传来查询SQL语句
    BindData(ReportName);
    }
    private void BindData(string ReportName)
    {
    oRpt=new ReportDocument();
    DataSet ds = myapp.DBE.ExecQuery(SqlString);//返回查询得到数据集
    oRpt.Load(Server.MapPath(@"..\Report\")+ReportName+".rpt");
    oRpt.SetDataSource(ds.Tables[0]);
    oRpt.Refresh();
    CrystalReportViewer1.ReportSource = oRpt;
    CrystalReportViewer1.DisplayGroupTree = false;
    CrystalReportViewer1.RefreshReport();
    }
      

  3.   

    1、在form中拖入CrystalReportViewer控件
    2、将水晶报表增加到项目中,加入的报表会以报表名产生一个类(比如stockpile_In_Total.rpt,类为stockpile_In_Total,见第四步)
    3、声明变量:
    DataSet printDataSet;
    ReportClass myReport;
    4、设置
    myReport=new stockpile_In_Total();//stockpile_In_Total为报表产生的类
    myReport.SetDataSource(this.printDataSet);
    this.CrystalReportViewer1.ReportSource=myReport;
    以上为C#的代码,可以看一下以下的blog人,全是关于水晶报表的
    http://blog.csdn.net/BennyMavis/category/66503.aspx
    http://blog.csdn.net/haibodotnet/category/13322.aspx