Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
水晶报告直接下载到pdf C#_C#_Asp.net_Pdf_Crystal Reports_Crystal Reports 2010 - Fatal编程技术网

水晶报告直接下载到pdf C#

水晶报告直接下载到pdf C#,c#,asp.net,pdf,crystal-reports,crystal-reports-2010,C#,Asp.net,Pdf,Crystal Reports,Crystal Reports 2010,我想直接将crystal reports下载到pdf中,同时查看CommonReportViewer.aspx页面,我正在本地服务器上运行我的项目,并在D:\MYPROJECT\Reporting\Deposit\reports上运行源MYPROJECT和(.rpt)报告。我在Stackoverflow上尝试了不同的解决方案,即ExportToDisk、ExportOptions等,但无法获得解决方案。在我的案例中,为了查看银行报告,我通过一个表单提供了报告参数,最后到达报告参数并显示报告。我的

我想直接将crystal reports下载到pdf中,同时查看CommonReportViewer.aspx页面,我正在本地服务器上运行我的项目,并在D:\MYPROJECT\Reporting\Deposit\reports上运行源MYPROJECT和(.rpt)报告。我在Stackoverflow上尝试了不同的解决方案,即ExportToDisk、ExportOptions等,但无法获得解决方案。在我的案例中,为了查看银行报告,我通过一个表单提供了报告参数,最后到达报告参数并显示报告。我的问题是如何直接下载pdf格式的报告,因为我需要打印多页报告

CommonReportViewer.aspx.cs

  public partial class CommonReportViewer : System.Web.UI.Page
    {
        ReportDocument mainDoc = new ReportDocument();
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {

                CrystalReport report = new CrystalReport();
                report = (CrystalReport)Session["NLK_REPORT"];
                DateTime t1 = DateTime.Now;
                mainDoc.Load(report.ReportFilePath, OpenReportMethod.OpenReportByDefault);
                mainDoc.RecordSelectionFormula = report.SelectionCriteria;

                mainDoc.Refresh();
                string server = "NLKNEWDB";
                string userID = report.UserID;
                string password = report.Password;

                this.ApplyLogonInfo(mainDoc, server, userID, password);


                foreach (ReportParameter param in report.ParamList)
                {
                    mainDoc.SetParameterValue(param.ParamName, param.ParamValue);
                }

                foreach (SubReport sr in report.SubReportList)
                {
                    this.ApplyLogonInfo(mainDoc, server, userID, password);
                    foreach (ReportParameter param in sr.ParamList)
                    {

                        mainDoc.SetParameterValue(param.ParamName, param.ParamValue, sr.SubReportName);
                    }
                }

                mainDoc.SetDatabaseLogon(userID, password, server, "");

                this.crptViewer.ReportSource = mainDoc;

                mainDoc.DataSourceConnections.Clear();


            }
            finally
            {

            }
        }

        void ApplyLogonInfo(ReportDocument report, string server, string userID, string password)
        {
            TableLogOnInfo info = new TableLogOnInfo();
            ConnectionInfo cinfo = new ConnectionInfo();

            cinfo.ServerName = server;
            cinfo.UserID = userID;
            cinfo.Password = password;
            info.ConnectionInfo = cinfo;

            foreach (CrystalDecisions.CrystalReports.Engine.Table tbl in report.Database.Tables)
            {
                tbl.ApplyLogOnInfo(info);
            }
        }

        private void Page_Unload(object sender, System.EventArgs e)
        {
            if (mainDoc != null)
            {
                mainDoc.Close();
                mainDoc.Dispose();
            }

        }
    }

应进行一些更改以将其导出为PDF格式。加载页面时,页面加载方法的更改如下

 protected void Page_Load(object sender, EventArgs e)
        {
            try
            {

                CrystalReport report = new CrystalReport();
                report = (CrystalReport)Session["NLK_REPORT"];
                DateTime t1 = DateTime.Now;
                mainDoc.Load(report.ReportFilePath, OpenReportMethod.OpenReportByDefault);
                mainDoc.RecordSelectionFormula = report.SelectionCriteria;
                mainDoc.Refresh();

                string server = "NLKNEWDB";
                string userID = report.UserID;
                string password = report.Password;
                string empId = null;

                this.ApplyLogonInfo(mainDoc, server, userID, password);

                foreach (ReportParameter param in report.ParamList)
                {
                    mainDoc.SetParameterValue(param.ParamName, param.ParamValue);
                    if (param.ParamName == "P_EMPLOYER_ID")
                    {
                        empId = param.ParamValue.ToString();
                    }
                }

                foreach (SubReport sr in report.SubReportList)
                {
                    this.ApplyLogonInfo(mainDoc, server, userID, password);
                    foreach (ReportParameter param in sr.ParamList)
                    {

                        mainDoc.SetParameterValue(param.ParamName, param.ParamValue, sr.SubReportName);
                    }
                }

                mainDoc.SetDatabaseLogon(userID, password, server, "");
                mainDoc.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, true, empId);
                this.crptViewer.ReportSource = mainDoc;

                mainDoc.DataSourceConnections.Clear();




            }
            finally
            {

            }
        }