crystal 报告中的通话会话

Call session in crystal report

我在 jquery 中调用这个静态 Web 方法,并在 jquery 的帮助下填充 table 数据成功显示在 table 中。在 Web 表单页面中,根据对这些值的选择,有一个下拉列表和两个日期选择器(从日期到日期)数据显示在 table 现在我想创建 crystal 报告,当我单击导出按钮然后 table 数据,下拉值和日期选择器值将显示在报告中

我将 dt 存储在会话中并调用想要在 crystal 报告中调用的内容,并且我在 crystal 报告

中添加了 crystalreportviewer

我有 web static webmethod 即

[WebMethod]
public static string search_data(DateTime fromdate, DateTime todate, string region)
{
        try
        {
            string result = "";
            Ts1 td = new T1();
            DateTime frDate = new DateTime(fromdate.Year, fromdate.Month, fromdate.Day, 0, 0, 0);
            DateTime to_Date = new DateTime(todate.Year, todate.Month, todate.Day, 23, 59, 59);
            List<griddataresult_Result> dq = td.griddataresult(frDate, to_Date, region).ToList();

                DataTable dt = new DataTable();
                dt.Columns.Add("ID", typeof(int));
                dt.Columns.Add("OwnerName", typeof(string));
                dt.Columns.Add("RegNo", typeof(string));
                foreach (var c in dq)
                {

                    dt.Rows.Add(c.ID, c.OwnerName, c.RegNo);
                } 

             DataTable dtt= (DataTable)HttpContext.Current.Session["datagrid"];               
                result = DataSetToJSON(dt);              
            return result;
        }
        catch (Exception)
        {
            throw new Exception();
        }
 }

更新

现在我在网络表单中添加这个

private void BindReport(ReportDocument crystalReport, DateTime fromdate, DateTime todate, string region)
    {


        TrackDataEntities1 t = new TrackDataEntities1();
        crystalReport.Load(Server.MapPath("data.rpt"));
        List<griddataresult_Result> dsc = t.griddataresult(fromdate, todate, region).ToList();
        crystalReport.SetDataSource(dsc);
        CrystalReportViewer1.ReportSource = crystalReport;
    }
    protected void Report_Click(object sender, EventArgs e)
    {

        DataTable dt = Session["datagrid"] as DataTable;
        ReportDocument crystalReport = new ReportDocument();
        //crystalReport.SetParameterValue("@fromdate", fromdate.Value);
        //crystalReport.SetParameterValue("@todate", todate.Value);
        //crystalReport.SetParameterValue("@region", regiondrop.SelectedValue);
        BindReport(crystalReport,Convert.ToDateTime(fromdate.Value), Convert.ToDateTime(todate.Value), regiondrop.SelectedValue);

    }

当我点击搜索时 table 显示数据,当我点击报告按钮时 table 消失并显示空白报告

只需在 ButtonClick 事件中添加以下代码

 protected void Button5_Click(object sender, EventArgs e)
     { 
    dynamic rpt = new ReportDocument();
    ApplyCRLogin(rpt);
    DataSet dtu = new DataSet();
        // Your Stored Procedure Here 
       // Bind dtu to the ObjReport
       rpt .Database.Tables["Command"].SetDataSource(dtu.Tables[0]);
     // Here Command is name which you can see inside Field Explorer in Crystal Report Design Mode 
       // Then Pass your SP parametrs 
        rpt.SetParameterValue("@dtFromDate", txtFromDate.Text);
        rpt.SetParameterValue("@dtToDate", txtToDate.Text);

        //After this Export your Crstal Report  to  PDF
      ExportToPDF(rpt);
     }

     public void ApplyCRLogin(CrystalDecisions.CrystalReports.Engine.ReportDocument oRpt)
            {
                CrystalDecisions.CrystalReports.Engine.Database oCRDb = oRpt.Database;
                CrystalDecisions.CrystalReports.Engine.Tables oCRTables = oCRDb.Tables;
                CrystalDecisions.Shared.TableLogOnInfo oCRTableLogonInfo;
                CrystalDecisions.Shared.ConnectionInfo oCRConnectionInfo = new CrystalDecisions.Shared.ConnectionInfo();
                oCRConnectionInfo.DatabaseName = "DatabaseName";
                oCRConnectionInfo.ServerName = "DBSRV_NAME";
                oCRConnectionInfo.UserID = "UserID";
                oCRConnectionInfo.Password = "Password";
                foreach (CrystalDecisions.CrystalReports.Engine.Table oCRTable in oCRTables)
                {
                    oCRTableLogonInfo = oCRTable.LogOnInfo;
                    oCRTableLogonInfo.ConnectionInfo = oCRConnectionInfo;
                    oCRTable.ApplyLogOnInfo(oCRTableLogonInfo);
                }
            }

How to Export Crystal Report to PDF