水晶报表 Issue

pull模式 代码如下

private void ShowCrystalReport()
{
string strDBServer = Application["DBServer"].ToString();
string strDBName = Application["DBName"].ToString();
string strUserId = Application["DBUserID"].ToString();
string strPassword = Application["DBPassword"].ToString();
//连接代码
CrystalReportSource1.ReportDocument.Load(Server.MapPath("Report/JPInvoice.rpt"));
CrystalReportSource1.ReportDocument.SetDatabaseLogon(strUserId, strPassword, strDBServer, strDBName);
//设置参数
CrystalReportSource1.ReportDocument.SetParameterValue("Invoice_No_From", strInvoiceForm);
CrystalReportSource1.ReportDocument.SetParameterValue("Invoice_No_To", strInvoiceTo);
CrystalReportSource1.ReportDocument.SetParameterValue("TRX_Date_From", strDateFrom);
CrystalReportSource1.ReportDocument.SetParameterValue("TRX_Date_To",strDateTo );
CrystalReportSource1.ReportDocument.SetParameterValue("Org_ID", "86");
CrystalReportSource1.ReportDocument.SetParameterValue("SOB_ID", "2029");
CrystalReportSource1.DataBind();
CrystalReportViewer1.ReportSource = CrystalReportSource1;
CrystalReportViewer1.DataBind();
}

 开始遇到的问题是 “无法加载数据库 crdb_oracle.dll

解决方法: 
1) 找到 crdb_oracle.dll.

«C:Program FilesCommon FilesBusiness Objects3.0in»或者在

 «C:Program FilesCommon FilesCrystal Decisions2.0in»中(Crystal 9)
2)Copy to «C:Program FilesCommon FilesBusiness Objects2.7Bin 
3)Reload solution.

后来又遇到问题 您请求的报表需要更多信息 如图:

首先检查DBServer和用户名密码是否配置正确,重新编译一次。

另外 修改了代码

 private void ShowCrystalReport()
        {
          
            TableLogOnInfo log = new TableLogOnInfo(); 
            ReportDocument rd = new ReportDocument();

            log.ConnectionInfo.ServerName = Application["DBServer"].ToString();
            log.ConnectionInfo.Password = Application["DBPassword"].ToString();
            log.ConnectionInfo.UserID = Application["DBUserID"].ToString();
            log.ConnectionInfo.DatabaseName = Application["DBName"].ToString();

            rd.Load(Server.MapPath("Report/JPInvoice.rpt"));

            rd.SetParameterValue("Invoice_No_From", strInvoiceForm);
            rd.SetParameterValue("Invoice_No_To", strInvoiceTo);
            rd.SetParameterValue("TRX_Date_From", strDateFrom);
            rd.SetParameterValue("TRX_Date_To", strDateTo);
            rd.SetParameterValue("Org_ID", "86");
            rd.SetParameterValue("SOB_ID", "2029");

         
            rd.Database.Tables[0].ApplyLogOnInfo(log);//获得第一个table

            CrystalReportViewer1.ReportSource = rd;
            CrystalReportViewer1.DataBind(); 
        }

  

原文地址:https://www.cnblogs.com/clairelss/p/3539402.html