【问题标题】:Pass parameter to a stored procedure to crystal report?将参数传递给存储过程到水晶报表?
【发布时间】:2013-05-30 02:42:42
【问题描述】:

我开始阅读本教程以使用水晶报表

http://www.codeproject.com/Articles/142064/Step-by-Step-Creation-of-Crystal-Report-using-its

我正面临这种情况,在存储过程中我必须设置一些参数来获取查询。所以我想我需要在运行时设置数据源,但我不知道如何将存储过程结果发送到水晶报表并在运行时显示(因为在我知道之前,如果你想在其中显示一些东西,你有导入它并选择要放置它的字段。

【问题讨论】:

    标签: sql-server sql-server-2008 crystal-reports crystal-reports-2008 crystal-reports-2010


    【解决方案1】:

    首先为水晶查看器制作新表格。在其中添加水晶查看器..

    在该表单中添加此代码

    public void ShowForm(DataSet pDataSet)
        {
    CrystalDecisions.Shared.ConnectionInfo ConnInfo = new CrystalDecisions.Shared.ConnectionInfo();
    ReportDocument RepDoc = new ReportDocument();
    RepDoc.Load(ReportPath With Rpt name);
    
    TableLogOnInfo TableLogOnInfo;
            ConnInfo.ServerName = ServerName;
            ConnInfo.DatabaseName = ServerDBName;
            ConnInfo.UserID = ServerDBUserName;
            ConnInfo.Password = ServerDBPassWord;
            foreach (Table TableInRep in RepDoc.Database.Tables)
            {
                TableLogOnInfo = TableInRep.LogOnInfo;
                TableLogOnInfo.ConnectionInfo = ConnInfo;
                TableInRep.ApplyLogOnInfo(TableLogOnInfo);
            }
    CryViewer.ReportSource = RepDoc;
    RepDoc.Database.Tables[0].SetDataSource(pDataSet);
    
    this.Show();
    

    }

    【讨论】:

      【解决方案2】:
      using System;
      using System.Collections.Generic;
      using System.Data;
      using System.Net;
      using System.Text;
      using CrystalDecisions.Web;
      using CrystalDecisions.CrystalReports.Engine;
      using CrystalDecisions.Shared;
      
      namespace TexERP.ReportCrystal
      {
          public partial class AccountRegister : System.Web.UI.Page
          {
              clsSession objSession;
              ReportDocument rptDoc;      
              protected void Page_Load(object sender, EventArgs e)
              {
                  objSession = new clsSession();         
                  rptDoc = new ReportDocument();
                  if (Session["objSession"] != null)
                  {
                      objSession = Session["objSession"] as clsSession;
                  }
      
                  if (!IsPostBack)
                  {
                      Session["ReportDataSet"] = null;
                  }
                  if (Session["ReportDataSet"] != null)
                  {
                      crvAccountReportParameter.ReportSource = (ReportDocument)Session["ReportDataSet"];
                  }
              }
      
      
              protected void btnSubmit_Click(object sender, EventArgs e)
              {
                  LoadData();         
              }
              protected void LoadData()
              {
                  string pstrType;
                  pstrType = Request.QueryString["Type"];
                  DataSet dsData = null;
      
                  dsData = objAccountReportBAL.getAccountRegister(Convert.ToInt16(objSession.FyId), int.MinValue, long.MinValue, Convert.ToDateTime(RadDtpFromDate.SelectedDate), Convert.ToDateTime(RadDtpToDate.SelectedDate), pstrType);          
                  rptDoc.Load(Server.MapPath("~/ReportCrystal/Account/Detail/GeneralVoucharRegister.rpt"));          
                  rptDoc.SetDataSource(dsData.Tables[0]);
      
                  Session["ReportDataSet"] = rptDoc;
                  crvAccountReportParameter.ReportSource = rptDoc;
                  crvAccountReportParameter.DataBind();          
              }
          }
      }
      

      你可以这样做............

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-15
        相关资源
        最近更新 更多