Пример #1
0
        protected void GenerateBatchReport()
        {
            try
            {
                int productid = Convert.ToInt32(ddlproduct.SelectedValue);


                DataSet rptDS = new DataSet();
                rptDoc = new ReportDocument();
                CrystalReportViewer1.HasToggleGroupTreeButton = false;
                CrystalReportViewer1.BestFitPage = false;
                CrystalReportViewer1.Width       = 920;
                DataTable dt = us_dll.GetProductReportData(productid);
                if (dt.Rows.Count > 0)
                {
                    rptDoc.Load(Server.MapPath("~/Reports/ProductLabelReport.rpt"));
                    rptDoc.SetParameterValue("@PRODUCTID", productid);
                    rptDoc.SetDataSource(dt);
                    rptDoc.SetDatabaseLogon("sa", "Pass2012", "GBLNJ4", "Sterilization");
                    rptDoc.DataSourceConnections[0].SetConnection("GBLNJ4", "Sterilization", "sa", "Pass2012");
                    CrystalReportViewer1.Page.Title   = "Product Label Data";
                    rptDoc.SummaryInfo.ReportTitle    = "Product Label Data";
                    CrystalReportViewer1.ReportSource = rptDoc;
                    Response.ClearContent();
                    Response.ClearHeaders();
                    Response.ContentType = "application/pdf";
                    rptDoc.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat,
                                                Response, true, "Product Label Data");
                    CrystalReportViewer1.ToolPanelView = ToolPanelViewType.None;
                    CrystalReportViewer1.SeparatePages = true;
                    CrystalReportViewer1.DataBind();
                    CrystalReportViewer1.HasExportButton = false;
                    Response.Flush();
                    Response.Close();
                }
                else
                {
                    ErrorMessage("Current selection does not have data");
                }
            }
            catch (System.Threading.ThreadAbortException)
            {
                // ignore it
            }
            catch (Exception ex)
            {
                ErrorMessage(ex.Message);
            }
        }