private void rptPDFReferencia(String Reporte, String Nombre, String Referencia) { System.Web.UI.Page p = new System.Web.UI.Page(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); try { // ConnectionInfo connectionInfo = new ConnectionInfo(); //string J = System.AppDomain.CurrentDomain.BaseDirectory + Reporte; report.Load(p.Server.MapPath("~") + Reporte); //report.Load(System.AppDomain.CurrentDomain.BaseDirectory + Reporte); report.SetParameterValue(0, Referencia); report.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, "FichaReferenciada-" + Nombre.Substring(0, 15)); } catch (Exception ex) { } finally { CR_Reportes.ReportSource = report; report.Close(); report.Dispose(); CR_Reportes.Dispose(); GC.Collect(); } }
private void rptPDF_Ingresos(String Reporte, object[] Parametros, string NombreReporte) { System.Web.UI.Page p = new System.Web.UI.Page(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); try { ConnectionInfo connectionInfo = new ConnectionInfo(); p = new System.Web.UI.Page(); report.Load(p.Server.MapPath("~") + "\\" + Reporte); for (int i = 0; i <= Parametros.Length - 1; i++) { report.SetParameterValue(i, Parametros[i]); } connectionInfo.ServerName = "dsia"; connectionInfo.UserID = "ingresos"; connectionInfo.Password = "******"; SetDBLogonForReport(connectionInfo, report); report.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, NombreReporte); } catch (Exception ex) { throw new Exception(ex.Message); } finally { CR_Reportes.ReportSource = report; report.Close(); report.Dispose(); CR_Reportes.Dispose(); GC.Collect(); } }
private void rptPDFAdjunto(String Reporte, String Nombre, String Referencia, String Importe, String Vigencia, String Concepto, String Observaciones) { System.Web.UI.Page p = new System.Web.UI.Page(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); try { report.Load(p.Server.MapPath("~") + Reporte); report.SetParameterValue(0, Nombre); report.SetParameterValue(1, Referencia); report.SetParameterValue(2, Importe); report.SetParameterValue(3, Vigencia); report.SetParameterValue(4, Concepto); report.SetParameterValue(5, Observaciones); report.PrintOptions.PaperSize = PaperSize.PaperLetter; string archivo = p.Server.MapPath("~") + "/ArchivoReferencia/Referencia - " + Referencia + ".PDF"; report.ExportToDisk(ExportFormatType.PortableDocFormat, archivo); // "FichaReferenciada-" + Nombre.Substring(0, 15)); } catch (Exception ex) { lblMensajeCorreo.Text = ex.Message; } finally { //CR_Reportes.ReportSource = report; report.Close(); report.Dispose(); //CR_Reportes.Dispose(); } }
protected void CrystalReportViewer1_Unload(object sender, EventArgs e) { if (cr != null) { cr.Close(); cr.Dispose(); GC.Collect(); } }
private string generatefiles(DataSet ds, string fromdate, string todate, string FirstPath, DataTable mailsetting) { try { DataTable dt1 = ds.Tables[0]; DataView dv = new DataView(ds.Tables[1]); string strAttachFirst = string.Empty; string strAttachSecond = string.Empty; bool isSendData = false; System.Collections.ArrayList objList = new ArrayList(); objList.Add(MailSetting(mailsetting)); CrystalDecisions.CrystalReports.Engine.ReportDocument crystalReport; foreach (DataRow Row in dt1.Rows) { MailDetails objMails = new MailDetails(); dv.RowFilter = "CustID = " + Row["custid"].ToString(); crystalReport = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); crystalReport.Load(Server.MapPath("../Report/AutoOSMailCustomer.rpt")); crystalReport.SetDataSource(dv.ToTable()); isSendData = dv.ToTable().Rows.Count > 0 ? true : false; strAttachFirst = Server.MapPath(FirstPath + "CustomerOS_" + Convert.ToDateTime(fromdate).ToString("dd-MMM-yyyy") + "_" + Convert.ToDateTime(todate).ToString("dd-MMM-yyyy") + "_" + Row["custid"].ToString() + ".pdf"); crystalReport.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, strAttachFirst); crystalReport.Close(); crystalReport.Dispose(); crystalReport = null; objMails.Attachment = strAttachSecond != "" ? strAttachFirst + "," + strAttachSecond : strAttachFirst; objMails.Name = Row["custName"].ToString(); objMails.EmailId = Row["EmailID"].ToString(); string makesubject = "Chetana Publications :: Outstanding Statement :: from " + Convert.ToDateTime(fromdate).ToString("dd-MMM-yyyy") + " to " + Convert.ToDateTime(todate).ToString("dd-MMM-yyyy"); objMails.Subject = makesubject; objMails.Desc = makesubject; if (isSendData) { objList.Add(objMails); } objMails = null; } return(JsonConvert.SerializeObject(objList)); } catch (Exception ex) { throw; } }
private void rptPDFAdjunto(String Reporte, String Nombre, String Referencia, Double Importe, String Vigencia, String Concepto, String Observaciones) { System.Web.UI.Page p = new System.Web.UI.Page(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); try { // ConnectionInfo connectionInfo = new ConnectionInfo(); //string J = System.AppDomain.CurrentDomain.BaseDirectory + Reporte; report.Load(p.Server.MapPath("~") + Reporte); //report.Load(System.AppDomain.CurrentDomain.BaseDirectory + Reporte); report.SetParameterValue(0, Nombre); report.SetParameterValue(1, Referencia); report.SetParameterValue(2, Importe); report.SetParameterValue(3, Vigencia); report.SetParameterValue(4, Concepto); report.SetParameterValue(5, Observaciones); report.PrintOptions.PaperSize = PaperSize.PaperLetter; //connectionInfo.ServerName = "ucad"; //connectionInfo.UserID = "ingresos"; //connectionInfo.Password = "******"; //SetDBLogonForReport(connectionInfo, report); string archivo = p.Server.MapPath("~") + "/ArchivoReferencia/Referencia - " + Referencia + ".PDF"; //report.SaveAs(archivo); report.ExportToDisk(ExportFormatType.PortableDocFormat, archivo); // "FichaReferenciada-" + Nombre.Substring(0, 15)); //report.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, "Referencia - " + Referencia); } catch (Exception ex) { } finally { CR_Reportes.ReportSource = report; report.Close(); report.Dispose(); CR_Reportes.Dispose(); GC.Collect(); } }
private void rptReporte_FE(String Reporte, object[] Valores) { System.Web.UI.Page p = new System.Web.UI.Page(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); try { ConnectionInfo connectionInfo = new ConnectionInfo(); p = new System.Web.UI.Page(); report.Load(p.Server.MapPath("~") + "\\" + Reporte); for (int i = 0; i <= Valores.Length - 1; i++) { report.SetParameterValue(i, Valores[i]); } report.PrintOptions.PaperSize = PaperSize.PaperLetter; connectionInfo.ServerName = "dsia"; connectionInfo.UserID = "felectronica"; connectionInfo.Password = "******"; SetDBLogonForReport(connectionInfo, report); report.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, "RepComprobanteFiscal"); //CR_Reportes.ReportSource = report; //report.Close(); //report.Dispose(); } catch (Exception ex) { } finally { //CR_Reportes.Dispose(); CR_Reportes.ReportSource = report; report.Close(); report.Dispose(); CR_Reportes.Dispose(); GC.Collect(); } }
private void rptPDF2(String Reporte, string Evento, string Matricula) { ConnectionInfo connectionInfo = new ConnectionInfo(); System.Web.UI.Page p = new System.Web.UI.Page(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); try { report.Load(p.Server.MapPath("~") + Reporte); report.SetParameterValue(0, Matricula); report.SetParameterValue(1, Evento); report.PrintOptions.PaperSize = PaperSize.PaperLetter; connectionInfo.ServerName = "dsia"; connectionInfo.UserID = "ingresos"; connectionInfo.Password = "******"; SetDBLogonForReport(connectionInfo, report); report.ExportToHttpResponse(ExportFormatType.PortableDocFormat, Response, false, "FichaReferenciada"); //CR_Reportes.ReportSource = report; //report.Close(); //report.Dispose(); } catch (Exception ex) { } finally { //CR_Reportes.ReportSource = report; //CR_Reportes.Dispose(); CR_Reportes.ReportSource = report; report.Close(); report.Dispose(); CR_Reportes.Dispose(); GC.Collect(); } }
//Crystal Report 直接輸出 PDF 檔 private void ExportReport(DataTable dt) { CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(Server.MapPath("./REPORT/CGR021R01.rpt")); report.SetDataSource(dt); //CrystalReport Parameter 參數設定 string Program_ID = string.Empty; string LoginUser = string.Empty; Program_ID = this.PageCode.Substring(0, 5) + "R01"; LoginUser = Session["UID"].ToString(); report.SetParameterValue("par_Program_ID", this.PageCode); report.SetParameterValue("par_LoginUser", LoginUser); //檔案匯出 System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("退貨結轉檢核異常報表.PDF", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); report.Close(); }
// <JG> 03/08/2017 externalisation méthode export PDF static internal void ExportPDF(string report_path, Model.Sage.Piece Piece, uint TypeDoc, String CT_Num, string temp_file) { #region PDF CrystalDecisions.CrystalReports.Engine.ReportDocument Etat = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); Etat.Load(report_path); if (Etat.ParameterFields.Count == 0) { Etat.RecordSelectionFormula = "{Commande.DO_Piece} = '" + Piece.DO_Piece + "'"; } // fonctions avec application sur les sous-états Core.PrintCrystal.Logon(Etat, Core.Global.GetConnectionInfos().SageServer, Core.Global.GetConnectionInfos().SageIntegratedSecurity, Core.Global.GetConnectionInfos().SageDatabase, Core.Global.GetConnectionInfos().SageSQLUser, Core.Global.GetConnectionInfos().SageSQLPass); Etat.Refresh(); if (Etat.ParameterFields.Count > 0) { Etat.SetParameterValue("piece", Piece.DO_Piece); } Etat.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, temp_file); Etat.Close(); if (Core.Global.GetConfig().ModuleAECInvoiceHistoryArchivePDFActive && System.IO.Directory.Exists(Core.Global.GetConfig().ModuleAECInvoiceHistoryArchivePDFFolder)) { string path = null; if (!string.IsNullOrWhiteSpace(CT_Num)) { path = System.IO.Path.Combine(Core.Global.GetConfig().ModuleAECInvoiceHistoryArchivePDFFolder, CT_Num); if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } switch (TypeDoc) { case 1: path = System.IO.Path.Combine(path, "Order"); break; case 7: path = System.IO.Path.Combine(path, "Invoice"); break; default: break; } if (!System.IO.Directory.Exists(path)) { System.IO.Directory.CreateDirectory(path); } path = System.IO.Path.Combine(path, Piece.DO_Piece + ".pdf"); } if (path != null) { System.IO.File.Copy(temp_file, path, true); } } #endregion }
/// <summary> /// 匯出PDF /// </summary> /// <param name="dt">列印資料</param> /// <param name="s_Status">狀態,"Detail"明細表,"Gather"彙總表</param> private void Show_Report2(DataTable dt, string s_Status) { #region //string s_FileName = txt_Out_FileName.Text; string s_FileName = "客服線上紀錄表(明細).pdf"; string s_RptName = "./REPORT/CRM131/CRM131_Report_Detl.rpt"; if (s_Status == "Detail") { s_FileName = "客服線上紀錄表(明細).pdf"; s_RptName = "./REPORT/CRM131/CRM131_Report_Detl.rpt"; } else if (s_Status == "Gather") { s_FileName = "客服線上紀錄表(彙總).pdf"; s_RptName = "./REPORT/CRM131/CRM131_Report_Main.rpt"; } s_FileName = HttpUtility.UrlEncode(s_FileName, System.Text.Encoding.UTF8); report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); #region Load 報表 report.Load(Server.MapPath(s_RptName)); report.SetDataSource(dt); // Set Parameter report.SetParameterValue("par_Program_ID", this.PageCode); report.SetParameterValue("par_LoginUser", Session["UID"].ToString()); report.SetParameterValue("par_DateRange", this.slp_DateRange.StartDate + "~" + this.slp_DateRange.EndDate); report.SetParameterValue("par_StoreChain", this.slp_StoreChain_B.Text + "~" + this.slp_StoreChain_E.Text); report.SetParameterValue("par_Z_O", this.slp_Z_O_B.Text + "~" + this.slp_Z_O_E.Text); #endregion #region 轉出PDF System.IO.Stream stream = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); stream.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/vnd.ms-excel;charset='utf-8'"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("BIG5"); Response.OutputStream.Write(bytes, 0, bytes.Length); Response.Flush(); Response.Close(); report.Close(); #endregion #endregion }
finally { } } /// <summary> /// 利用 CrystalReport 列印 Excel 報表 /// </summary> /// <param name="s_FileName">Excel報表的檔名</param> /// <param name="s_rptFilePath">rpt檔的路徑</param> /// <param name="dt_Source">要列印的資料</param> /// /// <param name="reportFormatType">檔案型態</param> private void LoadCrystalReport(string s_FileName, string s_rptFilePath, DataTable dt_Source, string reportFormatType) { CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(s_rptFilePath); report.SetDataSource(dt_Source); //判斷輸出檔案型態 switch (reportFormatType) { case "EXCEL": System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/vnd.ms-excel;charset='utf-8'"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); break; case "PDF": string s_par_Program_ID = string.Empty; string s_par_LoginUser = string.Empty; string s_par_DATE = string.Empty; s_par_Program_ID = this.PageCode; s_par_LoginUser = Session["UID"].ToString(); s_par_DATE = this.SLP_STAcceptDate.StartDate + " ~ " + this.SLP_STAcceptDate.EndDate; report.SetParameterValue("par_Program_ID", s_par_Program_ID); report.SetParameterValue("par_LoginUser", s_par_LoginUser); report.SetParameterValue("par_DATE", s_par_DATE); System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); break; default: break;
private void ShowReportDB(DataTable dt, int iMaxTarget, int iMaxSubsidy) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); if (this.rdoType4.Checked) report.Load(Server.MapPath("./REPORT/VAM131/VAM131R04B.rpt")); else report.Load(Server.MapPath("./REPORT/VAM131/VAM131R05B.rpt")); DataTable dtR = new DataTable(); dtR = this.MakeDTForRptD(); string[] arrField, arrField1; arrField = new string[10] { "獎勵金一", "獎勵金二", "獎勵金三", "獎勵金四", "獎勵金五", "獎勵金六", "獎勵金七", "獎勵金八", "獎勵金九", "獎勵金十" }; arrField1 = new string[10] { "物流費一", "物流費二", "物流費三", "物流費四", "物流費五", "物流費六", "物流費七", "物流費八", "物流費九", "物流費十" }; for (int i = 0; i < dt.Rows.Count; i++) { DataRow drA = dtR.NewRow(); drA[0] = dt.Rows[i][0].ToString(); drA[1] = dt.Rows[i][1].ToString(); if (dt.Rows[i][2].ToString() != "") { if (this.rdoType4.Checked) drA[2] = Convert.ToDateTime(dt.Rows[i][2].ToString()).ToShortDateString(); else drA[2] = dt.Rows[i][2].ToString(); } drA[3] = Convert.ToDecimal(dt.Rows[i][3].ToString()); drA[4] = Convert.ToDecimal(dt.Rows[i][4].ToString()); drA[5] = Convert.ToDecimal(dt.Rows[i][5].ToString()); drA[6] = Convert.ToDecimal(dt.Rows[i][6].ToString()); drA[7] = Convert.ToDecimal(dt.Rows[i][7].ToString()); for (int j = 0; j < iMaxTarget; j++) { drA[8 + j] = Convert.ToDecimal(dt.Rows[i][8 + j].ToString()); } for (int k = 0; k < iMaxSubsidy; k++) { drA[8 + iMaxTarget + k] = Convert.ToDecimal(dt.Rows[i][18 + k].ToString()); } drA[8 + iMaxTarget + iMaxSubsidy] = Convert.ToDecimal(dt.Rows[i][28].ToString()); for (int l = 29; l < 29 + iMaxTarget; l++) { if (dt.Rows[i][l].ToString() != "") drA[l] = arrField[l - 29] + ":" + dt.Rows[i][l].ToString(); else drA[l] = dt.Rows[i][l].ToString(); } dtR.Rows.Add(drA); } report.SetDataSource(dtR); for (int j = 0; j < iMaxTarget; j++) { report.SetParameterValue("par_Field" + Convert.ToString(9 + j), arrField[j]); } for (int j = 0; j < iMaxSubsidy; j++) { report.SetParameterValue("par_Field" + Convert.ToString(9 + iMaxTarget + j), arrField1[j]); } report.SetParameterValue("par_Field" + Convert.ToString(9 + iMaxTarget + iMaxSubsidy), "未稅金額"); for (int j = 0; j < 20 - (iMaxTarget + iMaxSubsidy); j++) { report.SetParameterValue("par_Field" + Convert.ToString(10 + iMaxTarget + iMaxSubsidy + j), ""); } //this.CryView.ReportSource = report; //檔案匯出 System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("停止往來及合約追溯彙總表_" + System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString() + ".XLS", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/xls"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
private void ShowReportC(DataTable dt, int iMaxTarget, int iMaxSubsidy) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); if (this.rdoPrint1.Checked) { //20120522 rika 異動為固定抓取10欄 故不再使用12欄位以上之報表 //if (iMaxTarget + iMaxSubsidy > 12) // report.Load(Server.MapPath("./REPORT/VAM131/VAM131R03.rpt")); //else report.Load(Server.MapPath("./REPORT/VAM131/VAM131R03_2.rpt")); } else { //20120522 rika 異動為固定抓取10欄 故不再使用12欄位以上之報表 //if (iMaxTarget + iMaxSubsidy > 12) // report.Load(Server.MapPath("./REPORT/VAM131/VAM131R03A.rpt")); //else report.Load(Server.MapPath("./REPORT/VAM131/VAM131R03A_2.rpt")); } DataTable dtR = new DataTable(); dtR = this.MakeDTForRptC(); string[] arrField, arrField1; arrField = new string[9] { "獎勵金", "物流費", "折扣補貼", "獎勵金五", "獎勵金六", "獎勵金七", "獎勵金八", "獎勵金九", "獎勵金十" }; arrField1 = new string[9] { "獎勵金", "物流費", "折扣補貼", "物流費五", "物流費六", "物流費七", "物流費八", "物流費九", "物流費十" }; for (int i = 0; i < dt.Rows.Count; i++) { DataRow drA = dtR.NewRow(); drA[0] = dt.Rows[i][0].ToString(); drA[1] = dt.Rows[i][1].ToString(); drA[2] = Convert.ToDecimal(dt.Rows[i][2].ToString()); drA[3] = Convert.ToDecimal(dt.Rows[i][3].ToString()); drA[4] = Convert.ToDecimal(dt.Rows[i][4].ToString()); drA[5] = Convert.ToDecimal(dt.Rows[i][5].ToString()); drA[6] = Convert.ToDecimal(dt.Rows[i][6].ToString()); drA[7] = Convert.ToDecimal(dt.Rows[i][7].ToString()); drA[42] = Convert.ToDecimal(dt.Rows[i]["target_amt"].ToString()); for (int j = 0; j < iMaxTarget; j++) { drA[8 + j] = Convert.ToDecimal(dt.Rows[i][8 + j].ToString()); } for (int k = 0; k < iMaxSubsidy; k++) { drA[8 + iMaxTarget + k] = Convert.ToDecimal(dt.Rows[i][18 + k].ToString()); } drA[8 + iMaxTarget + iMaxSubsidy] = Convert.ToDecimal(dt.Rows[i][28].ToString()); drA[9 + iMaxTarget + iMaxSubsidy] = Convert.ToDecimal(dt.Rows[i][29].ToString()); drA[10 + iMaxTarget + iMaxSubsidy] = Convert.ToDecimal(dt.Rows[i][30].ToString()); drA[11 + iMaxTarget + iMaxSubsidy] = Convert.ToDecimal(dt.Rows[i][31].ToString()); for (int l = 32; l < 32 + iMaxTarget; l++) { if (dt.Rows[i][l].ToString() != "") drA[l] = arrField[l - 32] + ":" + dt.Rows[i][l].ToString(); else drA[l] = dt.Rows[i][l].ToString(); } dtR.Rows.Add(drA); } report.SetDataSource(dtR); report.SetParameterValue("par_Program_ID", "VAM133R"); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); report.SetParameterValue("par_YEAR_MONTH", this.SLP_YearMonth1.Text.Trim()); if (this.rdoPrint1.Checked) report.SetParameterValue("par_TYPE", "全部"); else report.SetParameterValue("par_TYPE", "分頁"); for (int j = 0; j < iMaxTarget; j++) { report.SetParameterValue("par_Field" + Convert.ToString(9 + j), arrField[j]); } for (int j = 0; j < iMaxSubsidy; j++) { report.SetParameterValue("par_Field" + Convert.ToString(9 + iMaxTarget + j), arrField1[j]); } report.SetParameterValue("par_Field" + Convert.ToString(9 + iMaxTarget + iMaxSubsidy), "小計未稅"); report.SetParameterValue("par_Field" + Convert.ToString(10 + iMaxTarget + iMaxSubsidy), "追溯金額"); report.SetParameterValue("par_Field" + Convert.ToString(11 + iMaxTarget + iMaxSubsidy), "預收金額"); report.SetParameterValue("par_Field" + Convert.ToString(12 + iMaxTarget + iMaxSubsidy), "合計(未稅)"); for (int j = 0; j < 20 - (iMaxTarget + iMaxSubsidy); j++) { report.SetParameterValue("par_Field" + Convert.ToString(13 + iMaxTarget + iMaxSubsidy + j), ""); } //this.CryView.ReportSource = report; //檔案匯出 System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("各項扣款彙總表.PDF", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
private string generatefiles(DataSet ds, DataSet ds1, DataTable dt1, string fromdate, string todate, string s_fromdate, string s_todate, string FirstPath, string SecondPath, DataTable mailsetting) { try { bool isSecondDataPresent = false; DataView dv = new DataView(ds.Tables[0]); DataView dv1 = new DataView(); bool isSendFirstData = false; bool isSendSecondata = false; if (ds1 != null) { isSecondDataPresent = true; dv1.Table = ds1.Tables[0]; } string strAttachFirst = string.Empty; string strAttachSecond = string.Empty; System.Collections.ArrayList objList = new ArrayList(); objList.Add(MailSetting(mailsetting)); CrystalDecisions.CrystalReports.Engine.ReportDocument crystalReport; foreach (DataRow Row in dt1.Rows) { MailDetails objMails = new MailDetails(); #region First Data dv.RowFilter = "Superzone = " + Row["SuperZoneID"].ToString(); crystalReport = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); crystalReport.Load(Server.MapPath("../Report/CollectionReport.rpt")); crystalReport.SetDataSource(dv.ToTable()); isSendFirstData = dv.ToTable().Rows.Count > 0 ? true : false; strAttachFirst = Server.MapPath(FirstPath + "Wkly_Col_" + Convert.ToDateTime(fromdate).ToString("dd-MMM-yy") + "_" + Convert.ToDateTime(todate).ToString("dd-MMM-yyyy") + "_" + Row["SuperZoneID"].ToString() + ".pdf"); crystalReport.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, strAttachFirst); crystalReport.Close(); crystalReport.Dispose(); crystalReport = null; #endregion #region "Second Data" if (isSecondDataPresent) { dv1.RowFilter = "Superzone = " + Row["SuperZoneID"].ToString(); crystalReport = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); crystalReport.Load(Server.MapPath("../Report/CollectionReport.rpt")); crystalReport.SetDataSource(dv1.ToTable()); isSendSecondata = dv1.ToTable().Rows.Count > 0 ? true : false; strAttachSecond = Server.MapPath(SecondPath + "_Wkly_Col_" + Convert.ToDateTime(s_fromdate).ToString("dd-MMM-yy") + "_" + Convert.ToDateTime(s_todate).ToString("dd-MMM-yy") + "_" + Row["SuperZoneID"].ToString() + ".pdf"); crystalReport.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, strAttachSecond); crystalReport.Close(); crystalReport.Dispose(); crystalReport = null; } #endregion objMails.Attachment = strAttachSecond != "" ? strAttachFirst + "," + strAttachSecond : strAttachFirst; objMails.Name = Row["SuperZoneName"].ToString(); objMails.EmailId = Row["Email"].ToString(); string makesubject = "Collection from " + (isSecondDataPresent == true ? Convert.ToDateTime(fromdate).ToString("dd-MMM-yyyy") + " TO " + Convert.ToDateTime(todate).ToString("dd-MMM-yyyy") + " & " + Convert.ToDateTime(s_fromdate).ToString("dd-MMM-yyyy") + " TO " + Convert.ToDateTime(s_todate).ToString("dd-MMM-yyyy") : Convert.ToDateTime(fromdate).ToString("dd-MMM-yyyy") + " TO " + Convert.ToDateTime(todate).ToString("dd-MMM-yyyy")); objMails.Subject = makesubject; objMails.Desc = makesubject; if (isSendFirstData) { objList.Add(objMails); } objMails = null; } return(JsonConvert.SerializeObject(objList)); } catch (Exception ex) { throw; } }
/// <summary> /// 顯示報表 /// </summary> private void ShowReport(DataTable dt, string strPRINT_TYPE) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); string strFileName = ""; CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); if (this.rdoRPT_TYPE.SelectedIndex == 1) { report.Load(Server.MapPath("./REPORT/CAM30/CAM30R01.rpt")); strFileName = HttpUtility.UrlEncode("CAM30R01_帳差統計匯總表_結算匯總." + strPRINT_TYPE, System.Text.Encoding.UTF8); } else { report.Load(Server.MapPath("./REPORT/CAM30/CAM30R02.rpt")); strFileName = HttpUtility.UrlEncode("CAM30R02_帳差統計明細表_結算明細." + strPRINT_TYPE, System.Text.Encoding.UTF8); } report.SetDataSource(dt); report.SetParameterValue("par_Program_ID", rdoRPT_TYPE.SelectedIndex == 1 ? "CAM30R01" : "CAM30R02"); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); report.SetParameterValue("par_Group", slp_GROUP_NO_S.Text + ((TextBox)slp_GROUP_NO_S.FindControl("TextBoxName")).Text.Replace("查無資料", "") + (string.IsNullOrEmpty(slp_GROUP_NO_S.Text) ? "" : "~") + slp_GROUP_NO_E.Text + ((TextBox)slp_GROUP_NO_E.FindControl("TextBoxName")).Text.Replace("查無資料", "")); report.SetParameterValue("par_Store", slp_STORE.Text + ((TextBox)slp_STORE.FindControl("TextBoxName")).Text.Replace("查無資料", "")); report.SetParameterValue("par_RootNo", slp_ROOT_NO.Text + ((TextBox)slp_ROOT_NO.FindControl("TextBoxName")).Text.Replace("查無資料", "")); report.SetParameterValue("par_acDate", slp_ACCT_MONTH_S.Text + (string.IsNullOrEmpty(slp_ACCT_MONTH_S.Text) ? "" : "~") + slp_ACCT_MONTH_E.Text); report.SetParameterValue("pay_payRfno", txtPAY_RFNO.Text); report.SetParameterValue("pay_rfno", txtRFNO.Text); report.SetParameterValue("par_profit", slp_PROFIT_CENTER_S.Text + ((TextBox)slp_PROFIT_CENTER_S.FindControl("TextBoxName")).Text.Replace("查無資料", "") + (string.IsNullOrEmpty(slp_PROFIT_CENTER_S.Text) ? "" : "~") + slp_PROFIT_CENTER_E.Text + ((TextBox)slp_PROFIT_CENTER_E.FindControl("TextBoxName")).Text.Replace("查無資料", "")); if (slp_TAX_TYPE.Text == "0") { report.SetParameterValue("par_TaxType", "應稅"); } else if (slp_TAX_TYPE.Text == "1") { report.SetParameterValue("par_TaxType", "免稅"); } else if (slp_TAX_TYPE.Text == "2") { report.SetParameterValue("par_TaxType", "零稅"); } else { report.SetParameterValue("par_TaxType", ""); } System.IO.Stream stream = null; byte[] b = null; stream = (strPRINT_TYPE == "PDF" ? report.ExportToStream(ExportFormatType.PortableDocFormat) : report.ExportToStream(ExportFormatType.Excel)); b = new byte[stream.Length]; stream.Read(b, 0, b.Length); stream.Seek(0, System.IO.SeekOrigin.Begin); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + strFileName); Response.ContentType = (strPRINT_TYPE == "PDF" ? "application/pdf" : "application/vnd.ms-excel"); Response.OutputStream.Write(b, 0, b.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
private void ShowReport2(DataTable dt, string strPRINT_TYPE) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); string strFileName = ""; CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); if (this.rbtTAB3_RPT_TYPE.SelectedValue == "0") { report.Load(Server.MapPath("./REPORT/CAM30/CAM30R08.rpt")); strFileName = HttpUtility.UrlEncode("CAM30R08_單品帳差彚總表(品項)." + strPRINT_TYPE, System.Text.Encoding.UTF8); } report.SetDataSource(dt); if (this.rbtTAB3_RPT_TYPE.SelectedIndex == 0) { report.SetParameterValue("par_Program_ID", "CAM30R08"); } report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); string strCloseYM = string.Empty; if (slpTAB3_CloseYM_B.Text != "") strCloseYM = slpTAB3_CloseYM_B.Text + " ~ " + slpTAB3_CloseYM_E.Text; string strPayDate = string.Empty; if (slpTAB3_PayDate.StartDate != "") strPayDate = slpTAB3_PayDate.StartDate + " ~ " + slpTAB3_PayDate.EndDate; string strSignDate = string.Empty; if (slpTAB3_SignDate.StartDate != "") strSignDate = slpTAB3_SignDate.StartDate + " ~ " + slpTAB3_SignDate.EndDate; string strStoreGroup = string.Empty; if (slpTAB3_StoreGroup_B.Text != "") strStoreGroup = slpTAB3_StoreGroup_B.Text + " ~ " + slpTAB3_StoreGroup_E.Text; string strChanNo = string.Empty; if (slpTAB3_CHAN_NO_B.Text != "") strChanNo = slpTAB3_CHAN_NO_B.Text + " ~ " + slpTAB3_CHAN_NO_E.Text; string strStore = string.Empty; if (slpTAB3_STORE_B.Text != "") strStore = slpTAB3_STORE_B.Text + " ~ " + slpTAB3_STORE_E.Text; string strRFNO = string.Empty; if (txtTAB3_RFNO_B.Text != "") strRFNO = txtTAB3_RFNO_B.Text + " ~ " + txtTAB3_RFNO_E.Text; string strRoot = "ALL"; if (rbtTAB3_Root.SelectedValue == "1") strRoot = "雜誌"; else if (rbtTAB3_Root.SelectedValue == "2") strRoot = "圖書"; string strSTAKIND = string.Empty; if (chkTAB3_STAKIND.Items[0].Selected == true) strSTAKIND = "進貨"; if (chkTAB3_STAKIND.Items[1].Selected == true) { if (strSTAKIND != "") strSTAKIND += "/"; strSTAKIND += "退貨"; } if (chkTAB3_STAKIND.Items[2].Selected == true) { if (strSTAKIND != "") strSTAKIND += "/"; strSTAKIND += "補帳"; } if (chkTAB3_STAKIND.Items[3].Selected == true) { if (strSTAKIND != "") strSTAKIND += "/"; strSTAKIND += "調撥"; } string strTAXTYPE = string.Empty; if (rbtTAB3_TAX_TYPE.SelectedValue == "") strTAXTYPE = "ALL"; else if (rbtTAB3_TAX_TYPE.SelectedValue == "0") strTAXTYPE = "應稅"; else if (rbtTAB3_TAX_TYPE.SelectedValue == "1") strTAXTYPE = "免稅"; else strTAXTYPE = "X"; string strITEM = string.Empty; if (slpTAB3_ITEM_B.Text != "") strITEM = slpTAB3_ITEM_B.Text + " ~ " + slpTAB3_ITEM_E.Text; string strPERIOD = string.Empty; if (txtTAB3_PERIOD_B.Text != "") strPERIOD = txtTAB3_PERIOD_B.Text + " ~ " + txtTAB3_PERIOD_E.Text; string strRPTDATA = string.Empty; if (rbtTAB3_RPT_DATA.SelectedValue == "0") strRPTDATA = "全部"; else if (rbtTAB3_RPT_DATA.SelectedValue == "1") strRPTDATA = "差異"; else strRPTDATA = "X"; report.SetParameterValue("par_CloseYM", strCloseYM); report.SetParameterValue("par_PayDate", strPayDate); report.SetParameterValue("par_SignDate", strSignDate); report.SetParameterValue("par_StoreGroup", strStoreGroup); report.SetParameterValue("par_ChanNo", strChanNo); report.SetParameterValue("par_Store", strStore); report.SetParameterValue("par_RFNO", strRFNO); report.SetParameterValue("par_Root", strRoot); report.SetParameterValue("par_STAKIND", strSTAKIND); report.SetParameterValue("par_TAXTYPE", strTAXTYPE); report.SetParameterValue("par_ITEM", strITEM); report.SetParameterValue("par_PERIOD", strPERIOD); report.SetParameterValue("par_RPTDATA", strRPTDATA); System.IO.Stream stream = null; byte[] b = null; stream = (strPRINT_TYPE == "PDF" ? report.ExportToStream(ExportFormatType.PortableDocFormat) : report.ExportToStream(ExportFormatType.Excel)); b = new byte[stream.Length]; stream.Read(b, 0, b.Length); stream.Seek(0, System.IO.SeekOrigin.Begin); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + strFileName); Response.ContentType = (strPRINT_TYPE == "PDF" ? "application/pdf" : "application/vnd.ms-excel"); Response.OutputStream.Write(b, 0, b.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
/// <summary> /// 顯示報表 /// </summary> private void ShowReport1(DataTable dt, string strPRINT_TYPE) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); string strFileName = ""; CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); if (this.rdoRPT_TYPE1.SelectedIndex == 0) { report.Load(Server.MapPath("./REPORT/CAM30/CAM30R06.rpt")); strFileName = HttpUtility.UrlEncode("CAM30R06_PAY累計報表." + strPRINT_TYPE, System.Text.Encoding.UTF8); } else if (this.rdoRPT_TYPE1.SelectedIndex == 1) { report.Load(Server.MapPath("./REPORT/CAM30/CAM30R07.rpt")); strFileName = HttpUtility.UrlEncode("CAM30R07_PAY帳差明細表." + strPRINT_TYPE, System.Text.Encoding.UTF8); } else if (this.rdoRPT_TYPE1.SelectedIndex == 2) { report.Load(Server.MapPath("./REPORT/CAM30/CAM30R05.rpt")); strFileName = HttpUtility.UrlEncode("CAM30R05_平日驗收帳差明細表." + strPRINT_TYPE, System.Text.Encoding.UTF8); } else if (this.rdoRPT_TYPE1.SelectedIndex == 3) { report.Load(Server.MapPath("./REPORT/CAM30/CAM30R09.rpt")); strFileName = HttpUtility.UrlEncode("CAM30R09_通路單號彙總表." + strPRINT_TYPE, System.Text.Encoding.UTF8); } report.SetDataSource(dt); if (this.rdoRPT_TYPE1.SelectedIndex == 0) { report.SetParameterValue("par_Program_ID", "CAM30R06"); } else if (this.rdoRPT_TYPE1.SelectedIndex == 1) { report.SetParameterValue("par_Program_ID", "CAM30R07"); } else if (this.rdoRPT_TYPE1.SelectedIndex == 2) { report.SetParameterValue("par_Program_ID", "CAM30R05"); } else if (this.rdoRPT_TYPE1.SelectedIndex == 3) { report.SetParameterValue("par_Program_ID", "CAM30R09"); } report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); report.SetParameterValue("par_Group", slp_GROUP_NO_S1.Text + Request[((TextBox)slp_GROUP_NO_S1.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "") + (string.IsNullOrEmpty(slp_GROUP_NO_S1.Text) ? "" : "~") + slp_GROUP_NO_E1.Text + Request[((TextBox)slp_GROUP_NO_E1.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_Store", slp_STORE1.Text + Request[((TextBox)slp_STORE1.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_sellDate", slp_BUS_DATE.StartDate + (string.IsNullOrEmpty(slp_BUS_DATE.StartDate) ? "" : "~") + slp_BUS_DATE.EndDate); report.SetParameterValue("par_acDate", slp_BUS_YM.Text); report.SetParameterValue("par_chanSourceNo", txtCHAN_SOURCE_NO.Text); report.SetParameterValue("par_source", chkSTAKind.Items[0].Selected && chkSTAKind.Items[1].Selected ? "進貨/退貨" : (chkSTAKind.Items[0].Selected ? "進貨" : "退貨")); report.SetParameterValue("par_reportType", rdoRPT_DATA.SelectedItem.Text); report.SetParameterValue("par_Pay_Month", SLP_PAY_MONTH_S.Text + (string.IsNullOrEmpty(SLP_PAY_MONTH_S.Text) ? "" : "~") + SLP_PAY_MONTH_E.Text); System.IO.Stream stream = null; byte[] b = null; stream = (strPRINT_TYPE == "PDF" ? report.ExportToStream(ExportFormatType.PortableDocFormat) : report.ExportToStream(ExportFormatType.Excel)); b = new byte[stream.Length]; stream.Read(b, 0, b.Length); stream.Seek(0, System.IO.SeekOrigin.Begin); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + strFileName); Response.ContentType = (strPRINT_TYPE == "PDF" ? "application/pdf" : "application/vnd.ms-excel"); Response.OutputStream.Write(b, 0, b.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
/// <summary> /// 顯示報表 /// </summary> private void ShowReport(DataTable dt, string strPRINT_TYPE) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); string strFileName = ""; CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); if (rdoREPORT_KIND1.SelectedIndex == 0)//供應商 { if (rdoREPORT_KIND2.SelectedIndex == 0)//彙總 { report.Load(Server.MapPath("./REPORT/CAM29/CAM29R01.rpt")); report.SetDataSource(dt); report.SetParameterValue("par_Program_ID", "CAM29R01"); strFileName = HttpUtility.UrlEncode("CAM29R01_檔期供應商彙總表." + strPRINT_TYPE, System.Text.Encoding.UTF8); } else//明細 { report.Load(Server.MapPath("./REPORT/CAM29/CAM29R03.rpt")); report.SetDataSource(dt); report.SetParameterValue("par_Program_ID", "CAM29R03"); strFileName = HttpUtility.UrlEncode("CAM29R03_檔期供應商明細表." + strPRINT_TYPE, System.Text.Encoding.UTF8); } } else if (rdoREPORT_KIND1.SelectedIndex == 1)//門市 { report.Load(Server.MapPath("./REPORT/CAM29/CAM29R02.rpt")); report.SetDataSource(dt); report.SetParameterValue("par_Program_ID", "CAM29R02"); strFileName = HttpUtility.UrlEncode("CAM29R02_檔期門市明細表." + strPRINT_TYPE, System.Text.Encoding.UTF8); } else if (rdoREPORT_KIND1.SelectedIndex == 2)//成本 { report.Load(Server.MapPath("./REPORT/CAM29/CAM29R04.rpt")); report.SetDataSource(dt); report.SetParameterValue("par_Program_ID", "CAM29R04"); strFileName = HttpUtility.UrlEncode("CAM29R04_檔期門市彙總表-成本." + strPRINT_TYPE, System.Text.Encoding.UTF8); } else if (rdoREPORT_KIND1.SelectedIndex == 3)//特殊書展 { report.Load(Server.MapPath("./REPORT/CAM29/CAM29R05.rpt")); report.SetDataSource(dt); report.SetParameterValue("par_Program_ID", "CAM29R05"); strFileName = HttpUtility.UrlEncode("CAM29R05_檔期特殊書展表." + strPRINT_TYPE, System.Text.Encoding.UTF8); } report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); report.SetParameterValue("par_GROUP_NO", slp_GROUP_NO_S.Text + " " + Request[((TextBox)slp_GROUP_NO_S.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "") + (string.IsNullOrEmpty(slp_GROUP_NO_S.Text) ? "" : "~") + slp_GROUP_NO_E.Text + " " + Request[((TextBox)slp_GROUP_NO_E.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_VENDER", slp_MANUFACTURE.Text + " " + Request[((TextBox)slp_MANUFACTURE.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_STORE", slp_STORE.Text + " " + Request[((TextBox)slp_STORE.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_SETTLE_YM", slp_AC_BALANCE_DATE_S.Text + " " + (string.IsNullOrEmpty(slp_AC_BALANCE_DATE_S.Text) ? "" : "~") + slp_AC_BALANCE_DATE_E.Text); report.SetParameterValue("par_SIGN_DATE", slp_SIGN_DATE.StartDate + (string.IsNullOrEmpty(slp_SIGN_DATE.StartDate) ? "" : " ~ ") + slp_SIGN_DATE.EndDate); report.SetParameterValue("par_BUS_DATE", slp_BUS_DATE.StartDate + (string.IsNullOrEmpty(slp_BUS_DATE.StartDate) ? "" : " ~ ") + slp_BUS_DATE.EndDate); report.SetParameterValue("par_PROMOTE_ID", txtPROMOTE_ID_S.Text + (string.IsNullOrEmpty(txtPROMOTE_ID_S.Text) ? "" : " ~ ") + txtPROMOTE_ID_E.Text); report.SetParameterValue("par_AC_UID", slp_AC_UID.Text + " " + Request[((TextBox)slp_AC_UID.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); string strDISCOUNT_TYPE = string.Empty; if (rdoDISCOUNT_TYPE.SelectedValue == "") strDISCOUNT_TYPE = "全部"; else if (rdoDISCOUNT_TYPE.SelectedValue == "B") strDISCOUNT_TYPE = "原折扣"; else if (rdoDISCOUNT_TYPE.SelectedValue == "A") strDISCOUNT_TYPE = "促銷折扣"; report.SetParameterValue("par_DISCOUNT_TYPE", strDISCOUNT_TYPE); report.SetParameterValue("par_Z_O", slp_Z_O_S.Text + " " + Request[slp_Z_O_S.TextBox_Name.UniqueID].ToString().Replace("查無資料", "") + (string.IsNullOrEmpty(slp_Z_O_S.Text) ? "" : " ~ ") + slp_Z_O_E.Text + " " + Request[slp_Z_O_E.TextBox_Name.UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_SAL_ID", slp_SAL_ID.Text + " " + Request[slp_SAL_ID.TextBox_Name.UniqueID].ToString().Replace("查無資料", "")); string strVer = string.Empty; if (rdoVer.SelectedValue == "0") strVer = "新版"; else if (rdoVer.SelectedValue == "1") strVer = "舊版"; report.SetParameterValue("par_VER", strVer); System.IO.Stream stream = null; byte[] b = null; stream = (strPRINT_TYPE == "PDF" ? report.ExportToStream(ExportFormatType.PortableDocFormat) : report.ExportToStream(ExportFormatType.Excel)); b = new byte[stream.Length]; stream.Read(b, 0, b.Length); stream.Seek(0, System.IO.SeekOrigin.Begin); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + strFileName); Response.ContentType = (strPRINT_TYPE == "PDF" ? "application/pdf" : "application/vnd.ms-excel"); Response.OutputStream.Write(b, 0, b.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
/// <summary> /// 利用 CrystalReport 列印 Excel 報表 /// </summary> /// <param name="s_FileName">Excel報表的檔名</param> /// <param name="s_rptFilePath">rpt檔的路徑</param> /// <param name="dt_Source">要列印的資料</param> /// /// <param name="reportFormatType">檔案型態</param> private void LoadCrystalReport(string s_FileName, string s_rptFilePath, DataTable dt_Source, string reportFormatType) { CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(s_rptFilePath); report.SetDataSource(dt_Source); string par_ChanNo = string.Empty; string par_Store = string.Empty; #region 前置檢查與參數過濾 par_ChanNo = Server.UrlDecode(Request.QueryString["Chan"].ToString()); par_Store = Server.UrlDecode(Request.QueryString["Store"].ToString()); #endregion #region 組合查詢條件至ArrayList ArrayList returnList = new ArrayList(); returnList.Clear(); report.SetParameterValue("ChanNo", par_ChanNo); report.SetParameterValue("Store", par_Store); #endregion //判斷輸出檔案型態 switch (reportFormatType) { case "EXCEL": System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/vnd.ms-excel"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); report.Close(); break; case "PDF": System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); report.Close(); break; default: break; } }
private void ShowReport(DataTable dt, string strRptName, string strPRINT_TYPE) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); string strFileName = ""; CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(Server.MapPath("./REPORT/CAM08/CAM08R" + strRptName + ".rpt")); report.SetDataSource(dt); switch (strRptName) { case "01": strFileName = HttpUtility.UrlEncode("CAM08R01_銷貨月報表_彙總金額." + strPRINT_TYPE, System.Text.Encoding.UTF8); break; case "02": strFileName = HttpUtility.UrlEncode("CAM08R02_銷貨月報表_明細金額." + strPRINT_TYPE, System.Text.Encoding.UTF8); break; case "05": strFileName = HttpUtility.UrlEncode("CAM08R05_結算月報表_明細金額." + strPRINT_TYPE, System.Text.Encoding.UTF8); break; case "06": strFileName = HttpUtility.UrlEncode("CAM08R06_結算月報表_彙總金額." + strPRINT_TYPE, System.Text.Encoding.UTF8); break; case "07": strFileName = HttpUtility.UrlEncode("CAM08R07_銷貨月報表_彙總數量." + strPRINT_TYPE, System.Text.Encoding.UTF8); break; case "08": strFileName = HttpUtility.UrlEncode("CAM08R08_銷貨月報表_明細數量." + strPRINT_TYPE, System.Text.Encoding.UTF8); break; case "11": strFileName = HttpUtility.UrlEncode("CAM08R11_結算月報表_明細數量." + strPRINT_TYPE, System.Text.Encoding.UTF8); break; case "12": strFileName = HttpUtility.UrlEncode("CAM08R12_結算月報表_彙總數量." + strPRINT_TYPE, System.Text.Encoding.UTF8); break; } report.SetParameterValue("par_Program_ID", "CAM08R" + strRptName); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); switch (strRptName) { case "01": case "02": case "07": case "08": report.SetParameterValue("par_Z_O", slp_Z_O.Text + Request[((TextBox)slp_Z_O.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_SAL_ID", slp_SAL_ID.Text + Request[((TextBox)slp_SAL_ID.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_GROUP_NO", slp_GROUP_NO_S.Text + Request[((TextBox)slp_GROUP_NO_S.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "") + (string.IsNullOrEmpty(slp_GROUP_NO_S.Text) ? "" : "~") + slp_GROUP_NO_E.Text + Request[((TextBox)slp_GROUP_NO_E.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_PAY_RFNO", txtPAY_RFNO.Text); report.SetParameterValue("par_RFNO", txtRFNO.Text); report.SetParameterValue("par_STORE", slp_STORE.Text + Request[((TextBox)slp_STORE.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_ROOTNO", slp_ROOTNO.Text); report.SetParameterValue("par_BUS_DATE", slp_BUS_DATE.StartDate + (string.IsNullOrEmpty(slp_BUS_DATE.StartDate) ? "" : "~") + slp_BUS_DATE.EndDate); report.SetParameterValue("par_REPORT_TYPE", rdoREPORT_KIND1_1.SelectedItem.Text + "/" + rdoREPORT_KIND2_1.SelectedItem.Text); break; case "05": case "06": case "11": case "12": report.SetParameterValue("par_Z_O", slp_Z_O1.Text + Request[((TextBox)slp_Z_O1.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_SAL_ID", slp_SAL_ID1.Text + Request[((TextBox)slp_SAL_ID1.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_GROUP_NO", slp_GROUP_NO_S1.Text + Request[((TextBox)slp_GROUP_NO_S1.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "") + (string.IsNullOrEmpty(slp_GROUP_NO_S1.Text) ? "" : "~") + slp_GROUP_NO_E1.Text + Request[((TextBox)slp_GROUP_NO_E1.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_PAY_RFNO", txtPAY_RFNO1.Text); report.SetParameterValue("par_RFNO", txtRFNO1.Text); report.SetParameterValue("par_STORE", slp_STORE1.Text + Request[((TextBox)slp_STORE1.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_ROOTNO", slp_ROOTNO1.Text); report.SetParameterValue("par_BUS_DATE", slp_BUS_YM_S.Text + (string.IsNullOrEmpty(slp_BUS_YM_S.Text) ? "" : "~") + slp_BUS_YM_E.Text); report.SetParameterValue("par_REPORT_TYPE", rdoREPORT_KIND1_2.SelectedItem.Text + "/" + rdoREPORT_KIND2_2.SelectedItem.Text); report.SetParameterValue("par_AC_CLOSE", rdoAC_CLOSE.SelectedItem.Text); report.SetParameterValue("par_ROLE", slp_ROLE.Text); break; } System.IO.Stream stream = null; byte[] b = null; stream = (strPRINT_TYPE == "PDF" ? report.ExportToStream(ExportFormatType.PortableDocFormat) : report.ExportToStream(ExportFormatType.Excel)); b = new byte[stream.Length]; stream.Read(b, 0, b.Length); stream.Seek(0, System.IO.SeekOrigin.Begin); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + strFileName); Response.ContentType = (strPRINT_TYPE == "PDF" ? "application/pdf" : "application/vnd.ms-excel"); Response.OutputStream.Write(b, 0, b.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
/// <summary> /// 報表列印 /// </summary> /// <param name="dt"></param> /// <param name="strPRINT_TYPE"></param> private void ShowReport(DataTable dt, string strPRINT_TYPE) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); string strFileName = ""; CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(Server.MapPath("./REPORT/CAM14/CAM14R01.rpt")); strFileName = HttpUtility.UrlEncode("折讓單無法開立明細表." + strPRINT_TYPE, System.Text.Encoding.UTF8); report.SetDataSource(dt); report.SetParameterValue("par_Program_ID", "CAM14R01"); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); report.SetParameterValue("par_GROUP_NO", slp_GROUP_NO_S.Text + Request[((TextBox)slp_GROUP_NO_S.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "") + (string.IsNullOrEmpty(slp_GROUP_NO_S.Text) ? "" : "~") + slp_GROUP_NO_E.Text + Request[((TextBox)slp_GROUP_NO_E.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_PAY_RFNO", txtPAY_RFNO.Text); report.SetParameterValue("par_RFNO", txtRFNO.Text); report.SetParameterValue("par_STORE", slp_STORE.Text + Request[((TextBox)slp_STORE.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_ROOTNO", SLP_RootNo.Text + Request[((TextBox)SLP_RootNo.FindControl("TextBoxName")).UniqueID].ToString().Replace("查無資料", "")); report.SetParameterValue("par_SETTLE_TYPE", rdoPAY_TYPE1.Checked ? "一般" : (rdoPAY_TYPE2.Checked ? "關店" : "虛擬店")); System.IO.Stream stream = null; byte[] b = null; stream = (strPRINT_TYPE == "PDF" ? report.ExportToStream(ExportFormatType.PortableDocFormat) : report.ExportToStream(ExportFormatType.Excel)); b = new byte[stream.Length]; stream.Read(b, 0, b.Length); stream.Seek(0, System.IO.SeekOrigin.Begin); Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + strFileName); Response.ContentType = (strPRINT_TYPE == "PDF" ? "application/pdf" : "application/vnd.ms-excel"); Response.OutputStream.Write(b, 0, b.Length); Response.Flush(); Response.Close(); report.Close(); stream.Close(); #endregion }
private void ShowReportD(DataTable dt, int iMaxTarget, int iMaxSubsidy) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); if (this.rdoType4.Checked) { if (this.rdoPrint1.Checked) report.Load(Server.MapPath("./REPORT/VAM131/VAM131R04.rpt")); else report.Load(Server.MapPath("./REPORT/VAM131/VAM131R04A.rpt")); } else { if (this.rdoPrint1.Checked) report.Load(Server.MapPath("./REPORT/VAM131/VAM131R05.rpt")); else report.Load(Server.MapPath("./REPORT/VAM131/VAM131R05A.rpt")); } DataTable dtR = new DataTable(); dtR = this.MakeDTForRptD(); string[] arrField, arrField1; arrField = new string[10] { "獎勵金一", "獎勵金二", "獎勵金三", "獎勵金四", "獎勵金五", "獎勵金六", "獎勵金七", "獎勵金八", "獎勵金九", "獎勵金十" }; arrField1 = new string[10] { "物流費一", "物流費二", "物流費三", "物流費四", "物流費五", "物流費六", "物流費七", "物流費八", "物流費九", "物流費十" }; for (int i = 0; i < dt.Rows.Count; i++) { DataRow drA = dtR.NewRow(); drA[0] = dt.Rows[i][0].ToString(); drA[1] = dt.Rows[i][1].ToString(); if (dt.Rows[i][2].ToString() != "") { if (this.rdoType4.Checked) drA[2] = Convert.ToDateTime(dt.Rows[i][2].ToString()).ToShortDateString(); else drA[2] = dt.Rows[i][2].ToString(); } drA[3] = Convert.ToDecimal(dt.Rows[i][3].ToString()); drA[4] = Convert.ToDecimal(dt.Rows[i][4].ToString()); drA[5] = Convert.ToDecimal(dt.Rows[i][5].ToString()); drA[6] = Convert.ToDecimal(dt.Rows[i][6].ToString()); drA[7] = Convert.ToDecimal(dt.Rows[i][7].ToString()); for (int j = 0; j < iMaxTarget; j++) { drA[8 + j] = Convert.ToDecimal(dt.Rows[i][8 + j].ToString()); } for (int k = 0; k < iMaxSubsidy; k++) { drA[8 + iMaxTarget + k] = Convert.ToDecimal(dt.Rows[i][18 + k].ToString()); } drA[8 + iMaxTarget + iMaxSubsidy] = Convert.ToDecimal(dt.Rows[i][28].ToString()); for (int l = 29; l < 29 + iMaxTarget; l++) { if (dt.Rows[i][l].ToString() != "") drA[l] = arrField[l - 29] + ":" + dt.Rows[i][l].ToString(); else drA[l] = dt.Rows[i][l].ToString(); } dtR.Rows.Add(drA); } report.SetDataSource(dtR); //this.CryView.ReportSource = null; //ParameterFields par1 = new ParameterFields(); //AddParameter("par_Program_ID", "VAM134R", par1); if (this.rdoType4.Checked) report.SetParameterValue("par_Program_ID", "VAM134R"); else report.SetParameterValue("par_Program_ID", "VAM135R"); //ParameterFields par2 = new ParameterFields(); //AddParameter("par_LoginUser", Session["UID"].ToString() + Login_Name, par2); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); report.SetParameterValue("par_YEAR_MONTH", this.SLP_YearMonth1.Text.Trim()); //ParameterFields par4 = new ParameterFields(); if (this.rdoPrint1.Checked) //AddParameter("par_TYPE", "全部", par4); report.SetParameterValue("par_TYPE", "全部"); else //AddParameter("par_TYPE", "分頁", par4); report.SetParameterValue("par_TYPE", "分頁"); //this.CryView.ParameterFieldInfo.Add(par1[0]); //this.CryView.ParameterFieldInfo.Add(par2[0]); //this.CryView.ParameterFieldInfo.Add(par3[0]); //this.CryView.ParameterFieldInfo.Add(par4[0]); for (int j = 0; j < iMaxTarget; j++) { //ParameterFields pars = new ParameterFields(); //AddParameter("par_Field" + Convert.ToString(9 + j), arrField[j], pars); //this.CryView.ParameterFieldInfo.Add(pars[0]); report.SetParameterValue("par_Field" + Convert.ToString(9 + j), arrField[j]); } for (int j = 0; j < iMaxSubsidy; j++) { //ParameterFields pars = new ParameterFields(); //AddParameter("par_Field" + Convert.ToString(9 + iMaxTarget + j), arrField1[j], pars); //this.CryView.ParameterFieldInfo.Add(pars[0]); report.SetParameterValue("par_Field" + Convert.ToString(9 + iMaxTarget + j), arrField1[j]); } //ParameterFields par5 = new ParameterFields(); //AddParameter("par_Field" + Convert.ToString(9 + iMaxTarget + iMaxSubsidy), "未稅金額", par5); //this.CryView.ParameterFieldInfo.Add(par5[0]); report.SetParameterValue("par_Field" + Convert.ToString(9 + iMaxTarget + iMaxSubsidy), "未稅金額"); for (int j = 0; j < 20 - (iMaxTarget + iMaxSubsidy); j++) { //ParameterFields pars = new ParameterFields(); //AddParameter("par_Field" + Convert.ToString(10 + iMaxTarget + iMaxSubsidy + j), "", pars); //this.CryView.ParameterFieldInfo.Add(pars[0]); report.SetParameterValue("par_Field" + Convert.ToString(10 + iMaxTarget + iMaxSubsidy + j), ""); } //this.CryView.ReportSource = report; //檔案匯出 System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("停止往來及合約追溯彙總表.PDF", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
public string ReportExportToFile(string reportTemplateFileName, string ExportFormat, bool IsLocalize) { if (reportTemplateFileName != string.Empty) { CrystalDecisions.CrystalReports.Engine.ReportDocument rptDocument = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); rptDocument.Load(reportTemplateFileName); LoadReportDocument(rptDocument); } CrystalDecisions.CrystalReports.Engine.ReportDocument result = GenerateReport(); if (result.ParameterFields["ChineseFontName"] != null) { //System.Drawing.FontFamily chineseFontFamily = AppUtils.GetChineseFontFamily(dbConn); //if (chineseFontFamily != null) // result.SetParameterValue("ChineseFontName", chineseFontFamily.Name); //else result.SetParameterValue("ChineseFontName", string.Empty); } // result.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.CrystalReport, System.IO.Path.GetTempPath() + @"\" + OutputFilenamePrefix + "_" + AppUtils.ServerDateTime().ToString("yyyyMMddHHmmss")); //result.Load(System.IO.Path.GetTempPath() + @"\" + OutputFilenamePrefix + "_" + AppUtils.ServerDateTime().ToString("yyyyMMddHHmmss")); if (reportTemplateFileName == string.Empty && IsLocalize) { ReportSectionsLocalization(!ExportFormat.Equals("EXCEL", StringComparison.CurrentCultureIgnoreCase)); } // Do NOT set the papersize by default for customized paper size //result.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperA4; CrystalDecisions.Shared.ExportFormatType exportFormatType; string exportFileName = System.IO.Path.GetTempFileName(); System.IO.File.Delete(exportFileName); string exportFileNameExtension = string.Empty; if (ExportFormat.Equals("EXCEL", StringComparison.CurrentCultureIgnoreCase)) { result.PrintOptions.PaperSize = CrystalDecisions.Shared.PaperSize.PaperEsheet; //ExcelLibrary.SpreadSheet.Workbook workbook = ExcelLibrary.SpreadSheet.Workbook.Load(result.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel)); //foreach (ExcelLibrary.SpreadSheet.Worksheet workSheet in workbook.Worksheets) //{ // ExcelLibrary.SpreadSheet.CellCollection cellCollection = new ExcelLibrary.SpreadSheet.CellCollection(); // int count = 1; // foreach (int key in workSheet.Cells.Rows.Keys) // { // ExcelLibrary.SpreadSheet.Row row = workSheet.Cells.Rows[key]; // cellCollection.Rows.Add(count, row); // count++; // } // workSheet.Cells.Rows.Clear(); // foreach (int key in cellCollection.Rows.Keys) // { // workSheet.Cells.Rows.Add(key, cellCollection.Rows[key]); // } //} //string exportFileName = System.IO.Path.GetTempFileName(); //System.IO.File.Delete(exportFileName); //exportFileName += ".xls"; //workbook.Save(exportFileName); //WebUtils.TransmitFile(Response, exportFileName, OutputFilenamePrefix + "_" + AppUtils.ServerDateTime().ToString("yyyyMMddHHmmss") + ".xls", true); //result.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.Excel, Response, true, OutputFilenamePrefix + "_" + AppUtils.ServerDateTime().ToString("yyyyMMddHHmmss")); exportFileNameExtension = ".xls"; exportFormatType = CrystalDecisions.Shared.ExportFormatType.Excel; } else if (ExportFormat.Equals("WORD", StringComparison.CurrentCultureIgnoreCase)) { exportFileNameExtension = ".doc"; exportFormatType = CrystalDecisions.Shared.ExportFormatType.RichText; } else //if (ExportFormat.Equals("PDF", StringComparison.CurrentCultureIgnoreCase)) { exportFileNameExtension = ".pdf"; if (UsePDFCreator) { exportFormatType = CrystalDecisions.Shared.ExportFormatType.NoFormat; try { PDFCreaterPrinter printer = new PDFCreaterPrinter(); string outputFile = printer.printCrystalReportsToPDF(result); System.IO.File.Move(outputFile, exportFileName + exportFileNameExtension); } catch (Exception ex) { throw ex; // if any error occurs or driver not installed, use crystal report export function // exportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat; } } else { exportFormatType = CrystalDecisions.Shared.ExportFormatType.PortableDocFormat; } //ReportSectionsIncreaseFontSize(result); } exportFileName += exportFileNameExtension; if (exportFormatType != CrystalDecisions.Shared.ExportFormatType.NoFormat) { if (exportFormatType == CrystalDecisions.Shared.ExportFormatType.PortableDocFormat) { if (reportTemplateFileName == string.Empty) { SetChineseFont(result, IsLocalize); } else { SetChineseFont(result, false); } } //result.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.CrystalReport, exportFileName); result.ExportToDisk(exportFormatType, exportFileName); } if (exportFileNameExtension == ".rtf" || exportFileNameExtension == ".doc") { string exportFileName_modified = exportFileName + "_modified" + exportFileNameExtension; System.IO.StreamReader oStrRdr = new System.IO.StreamReader(exportFileName); System.IO.StreamWriter oStrWrt = new System.IO.StreamWriter(exportFileName_modified); while (!oStrRdr.EndOfStream) { string content = oStrRdr.ReadLine(); content = content.Replace(@"{\rtf1\ansi\ansicpgA.R..", @"{\rtf1\ansi\ansicpg"); oStrWrt.WriteLine( content ); } oStrRdr.Close(); oStrWrt.Close(); System.IO.File.Delete(exportFileName); exportFileName = exportFileName_modified; } //if (exportFileNameExtension == ".rtf") //{ // string newExportFilename = exportFileName + ".pdf"; // // iTextSharp.text.Document document = new iTextSharp.text.Document(); // // iTextSharp.text.pdf.PdfWriter writer = iTextSharp.text.pdf.PdfWriter.GetInstance(document, System.IO.File.Create(newExportFilename)); // // document.Open(); // // iTextSharp.text.rtf.parser.RtfParser parser = new iTextSharp.text.rtf.parser.RtfParser(null); // // System.IO.FileStream rtfStream = System.IO.File.OpenRead(exportFileName); // // parser.ConvertRtfDocument(rtfStream, document); // // rtfStream.Close(); // // document.Close(); // System.IO.File.Delete(exportFileName); // exportFileName = newExportFilename; //} result.Close(); result.Dispose(); LoadReportDocument(null); return(exportFileName); }
/// <summary> /// 利用 CrystalReport 列印 Excel 報表 /// </summary> /// <param name="s_FileName">Excel報表的檔名</param> /// <param name="s_rptFilePath">rpt檔的路徑</param> /// <param name="dt_Source">要列印的資料</param> /// /// <param name="reportFormatType">檔案型態</param> private void LoadCrystalReport(string s_FileName, string s_rptFilePath, DataTable dt_Source, string reportFormatType) { CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(s_rptFilePath); report.SetDataSource(dt_Source); string par_ProgramID = string.Empty; string par_LoginUser = string.Empty; #region 前置檢查與參數過濾 DropDownList ddlCodeFile1 = (DropDownList)(this.SLP_CodeFile1.FindControl("D1")); string V_LOCATE_NO = this.SLP_CodeFile1.Text + " " + ddlCodeFile1.SelectedItem.Text; string V_LOCATE_SECTOR_S = this.ddlS.Text; string V_LOCATE_SECTOR_E = this.ddlE.Text; par_ProgramID = this.PageCode; par_LoginUser = Session["UID"].ToString() + " " + Get_LoginName(); #endregion #region 組合查詢條件至ArrayList ArrayList returnList = new ArrayList(); returnList.Clear(); report.SetParameterValue("V_LOCATE_NO", V_LOCATE_NO); report.SetParameterValue("V_LOCATE_SECTOR_S", V_LOCATE_SECTOR_S); report.SetParameterValue("V_LOCATE_SECTOR_E", V_LOCATE_SECTOR_E); report.SetParameterValue("par_Program_ID", par_ProgramID); report.SetParameterValue("par_LoginUser", par_LoginUser); #endregion //判斷輸出檔案型態 switch (reportFormatType) { case "EXCEL": System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/vnd.ms-excel"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); report.Close(); break; case "PDF": System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); report.Close(); break; default: break; } }
/// <summary> /// 利用 CrystalReport 列印 Excel 報表 /// </summary> /// <param name="s_FileName">Excel報表的檔名</param> /// <param name="s_rptFilePath">rpt檔的路徑</param> /// <param name="dt_Source">要列印的資料</param> /// /// <param name="reportFormatType">檔案型態</param> private void LoadCrystalReport(string s_FileName, string s_rptFilePath, string reportFormatType) { try { VGRModel.MaintainReturnData BCOVGR = new VGRModel.MaintainReturnData(ConntionDB); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(s_rptFilePath); //report.Load(Server.MapPath("./REPORT/VGR01/VGR01R01.rptt")); ArrayList DBParameterList = new ArrayList(); DBParameterList.Add(hiddenID.Value); DataTable dtResult = BCOVGR.GetPrintRpt01Detl(DBParameterList); int j = dtResult.Rows.Count % 10; if (j != 0) { for (int i = 0; i < 10 - j ; i++) { DataRow drNew = dtResult.NewRow(); drNew["Item"] = "XXXXXXXXXX"; drNew["Item_Name"] = ""; drNew["Period"] = ""; drNew["Return_Qty"]=0; drNew["Price"]=0; drNew["Cost"] = 0; dtResult.Rows.Add(drNew); } } report.SetDataSource(dtResult); DataTable dtMainData = BCOVGR.GetPrintRpt01Main(Request.QueryString["ID"].ToString()); if (dtMainData.Rows.Count > 0) { report.SetParameterValue("paraBusiness_Contact1", dtMainData.Rows[0]["Business_Contact"].ToString()); report.SetParameterValue("paraBusiness_Fax", dtMainData.Rows[0]["Business_Fax"].ToString()); report.SetParameterValue("paraReturn_Date", dtMainData.Rows[0]["Return_Date"].ToString()); report.SetParameterValue("paraVendor_Name", dtMainData.Rows[0]["Vendor_Name"].ToString()); report.SetParameterValue("paraVendor", dtMainData.Rows[0]["Vendor"].ToString()); report.SetParameterValue("paraReturn_No", dtMainData.Rows[0]["Return_No"].ToString()); report.SetParameterValue("paraTax_Total_Amt", dtMainData.Rows[0]["Tax_Total_Amt"].ToString()); report.SetParameterValue("paraUnTax_Total_Amt", dtMainData.Rows[0]["UnTax_Total_Amt"].ToString()); report.SetParameterValue("paraTax_Amt", dtMainData.Rows[0]["Tax_Amt"].ToString()); //ParameterFields par1 = new ParameterFields(); //AddParameter("paraBusiness_Contact1", dtMainData.Rows[0]["Business_Contact1"].ToString(), par1); //ParameterFields par2 = new ParameterFields(); //AddParameter("paraBusiness_Fax", dtMainData.Rows[0]["Business_Fax"].ToString(), par2); //ParameterFields par3 = new ParameterFields(); //AddParameter("paraReturn_Date", dtMainData.Rows[0]["Return_Date"].ToString(), par3); //ParameterFields par4 = new ParameterFields(); //AddParameter("paraVendor_Name", dtMainData.Rows[0]["Vendor_Name"].ToString(), par4); //ParameterFields par5 = new ParameterFields(); //AddParameter("paraVendor", dtMainData.Rows[0]["Vendor"].ToString(), par5); //ParameterFields par6 = new ParameterFields(); //AddParameter("paraReturn_No", dtMainData.Rows[0]["Return_No"].ToString(), par6); //ParameterFields par7 = new ParameterFields(); //AddParameter("paraTax_Total_Amt", dtMainData.Rows[0]["Tax_Total_Amt"].ToString(), par7); //ParameterFields par8 = new ParameterFields(); //AddParameter("paraUnTax_Total_Amt", dtMainData.Rows[0]["UnTax_Total_Amt"].ToString(), par8); //ParameterFields par9 = new ParameterFields(); //AddParameter("paraTax_Amt", dtMainData.Rows[0]["Tax_Amt"].ToString(), par9); } else { string strErr = "查無資料"; this.ErrorMsgLabel.Text = strErr; return; } switch (reportFormatType) { case "EXCEL": System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/vnd.ms-excel"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); break; case "PDF": System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); break; default: break; } report.Close(); } catch (Exception ex) { ErrorMsgLabel.Text = ex.Message; } }
/// <summary> /// 利用 CrystalReport 列印報表 /// </summary> /// <param name="s_FileName">Excel報表的檔名</param> /// <param name="s_rptFilePath">rpt檔的路徑</param> /// <param name="dt_Source">要列印的資料</param> /// <param name="reportFormatType">檔案型態</param> private void LoadCrystalReport(string s_FileName, string s_rptFilePath, DataTable dt_Source, string reportFormatType) { CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(s_rptFilePath); report.SetDataSource(dt_Source); #region 取得各輸入值 string s_par_Program_ID = string.Empty; string s_par_LoginUser = string.Empty; string s_par_ST_Accept_Date = string.Empty; string s_par_Trans_No_S = string.Empty; string s_par_Trans_No_E = string.Empty; string s_par_Trans_Vendor_S = string.Empty; string s_par_Trans_Vendor_E = string.Empty; string s_par_Route_S = string.Empty; string s_par_Route_E = string.Empty; string s_par_StoreChain_S = string.Empty; string s_par_StoreChain_E = string.Empty; string s_par_Report = string.Empty; s_par_Program_ID = this.PageCode; s_par_LoginUser = Session["UID"].ToString(); s_par_ST_Accept_Date = SLP_SLPDate.Text; s_par_Trans_No_S = SLP_Trans_No_S.Text + " " + ((DropDownList)SLP_Trans_No_S.FindControl("D1")).SelectedItem.Text; s_par_Trans_No_E = SLP_Trans_No_E.Text + " " + ((DropDownList)SLP_Trans_No_E.FindControl("D1")).SelectedItem.Text; s_par_Trans_Vendor_S = SLP_Trans_Vendor_S.Text + " " + ((DropDownList)SLP_Trans_Vendor_S.FindControl("D1")).SelectedItem.Text; s_par_Trans_Vendor_E = SLP_Trans_Vendor_E.Text + " " + ((DropDownList)SLP_Trans_Vendor_E.FindControl("D1")).SelectedItem.Text; if (((TextBox)SLP_Route_S.FindControl("TextBoxCode")).Text != "") { s_par_Route_S = ((TextBox)SLP_Route_S.FindControl("TextBoxCode")).Text + " " + Request[SLP_Route_S.TextBox_Name.UniqueID].ToString(); } else { s_par_Route_S = ""; } if (((TextBox)SLP_Route_E.FindControl("TextBoxCode")).Text != "") { s_par_Route_E = ((TextBox)SLP_Route_E.FindControl("TextBoxCode")).Text + " " + Request[SLP_Route_E.TextBox_Name.UniqueID].ToString(); } else { s_par_Route_E = ""; } if (((TextBox)SLP_StoreChain_S.FindControl("TextBoxCode")).Text != "") { s_par_StoreChain_S = ((TextBox)SLP_StoreChain_S.FindControl("TextBoxCode")).Text + " " + Request[SLP_StoreChain_S.TextBox_Name.UniqueID].ToString(); } else { s_par_StoreChain_S = ""; } if (((TextBox)SLP_StoreChain_E.FindControl("TextBoxCode")).Text != "") { s_par_StoreChain_E = ((TextBox)SLP_StoreChain_E.FindControl("TextBoxCode")).Text + " " + Request[SLP_StoreChain_E.TextBox_Name.UniqueID].ToString(); } else { s_par_StoreChain_E = ""; } s_par_Report = rblPrintType.SelectedItem.Text; #endregion report.SetParameterValue("par_Program_ID", s_par_Program_ID); report.SetParameterValue("par_LoginUser", s_par_LoginUser); report.SetParameterValue("par_ST_Accept_Date", s_par_ST_Accept_Date); report.SetParameterValue("par_Trans_No", s_par_Trans_No_S + " ~ " + s_par_Trans_No_E); report.SetParameterValue("par_Trans_Vendor", s_par_Trans_Vendor_S + " ~ " + s_par_Trans_Vendor_E); report.SetParameterValue("par_Routee", s_par_Route_S + " ~ " + s_par_Route_E); report.SetParameterValue("par_StoreChain", s_par_StoreChain_S + " ~ " + s_par_StoreChain_E); report.SetParameterValue("par_Report", s_par_Report); #region 判斷輸出檔案型態並輸出 switch (reportFormatType) { case "EXCEL": System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/vnd.ms-excel"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); break; case "PDF": System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); break; default: break; #endregion } report.Close(); }
private void ShowReportA(DataTable dt, string V_FORM_TYPE) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(Server.MapPath("./REPORT/VAM051/VAM051R01.rpt")); report.SetDataSource(dt); string[] arrField, arrField1; report.SetParameterValue("par_Program_ID", "VAM051R"); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); report.SetParameterValue("par_Source_date", this.SLP_SLPDateRange1.StartDate.ToString() + "-" + this.SLP_SLPDateRange1.EndDate.ToString()); if (this.SLP_VendorBase1.Text.Trim() == "" && this.SLP_VendorBase2.Text.Trim() == "") report.SetParameterValue("par_Vandor", "全部"); else report.SetParameterValue("par_Vandor", this.SLP_VendorBase1.Text.Trim() + "-" + this.SLP_VendorBase2.Text.Trim()); //檔案匯出 if (V_FORM_TYPE == "XLS") { System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("對帳單彙總單據.XLS", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/xls"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); } else { System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("對帳單彙總單據.PDF", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); } report.Close(); #endregion }
/// <summary> /// 利用 CrystalReport 列印 Excel 報表 /// </summary> /// <param name="s_FileName">Excel報表的檔名</param> /// <param name="s_rptFilePath">rpt檔的路徑</param> /// <param name="dt_Source">要列印的資料</param> private void LoadCrystalReport(string s_FileName, string s_rptFilePath, DataTable dt_Source) { if (s_FileName.ToLower().IndexOf(".xls") < 0) { s_FileName = s_FileName + ".xls"; } CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(s_rptFilePath); report.SetDataSource(dt_Source); System.IO.Stream stream = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); stream.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/vnd.ms-excel;charset='utf-8'"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("BIG5"); Response.OutputStream.Write(bytes, 0, bytes.Length); Response.Flush(); Response.Close(); report.Close(); }
private void ShowReportA(DataTable dt, int iMaxTarget) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); //20120718 rika 改為不列印分頁報表 //if (this.rdoPrint1.Checked) //{ //if (iMaxTarget > 7) // report.Load(Server.MapPath("./REPORT/VAM131/VAM131R01.rpt")); //else report.Load(Server.MapPath("./REPORT/VAM131/VAM131R01_2.rpt")); //} //else //{ // if (iMaxTarget > 7) // report.Load(Server.MapPath("./REPORT/VAM131/VAM131R01A.rpt")); // else // report.Load(Server.MapPath("./REPORT/VAM131/VAM131R01A_2.rpt")); //} DataTable dtR = new DataTable(); dtR = this.MakeDTForRptA(); string[] arrField, arrField1; arrField = new string[10] { "獎勵金", "物流費", "折扣補貼", "獎勵金四", "獎勵金五", "獎勵金六", "獎勵金七", "獎勵金八", "獎勵金九", "獎勵金十" }; arrField1 = new string[3] { "追溯金額", "預收金額", "合計(未稅)" }; for (int i = 0; i < dt.Rows.Count; i++) { DataRow drA = dtR.NewRow(); drA[0] = dt.Rows[i][0].ToString(); drA[1] = dt.Rows[i][1].ToString(); drA[2] = Convert.ToDecimal(dt.Rows[i][2].ToString()); drA[3] = Convert.ToDecimal(dt.Rows[i][3].ToString()); drA[4] = Convert.ToDecimal(dt.Rows[i][4].ToString()); drA[5] = Convert.ToDecimal(dt.Rows[i][5].ToString()); drA[6] = Convert.ToDecimal(dt.Rows[i][6].ToString()); drA[30] = Convert.ToDecimal(dt.Rows[i]["T_AMT"].ToString()); for (int j = 0; j < iMaxTarget; j++) { drA[7 + j] = Convert.ToDecimal(dt.Rows[i][7 + j].ToString()); } drA[7 + iMaxTarget] = Convert.ToDecimal(dt.Rows[i][17].ToString()); drA[8 + iMaxTarget] = Convert.ToDecimal(dt.Rows[i][18].ToString()); drA[9 + iMaxTarget] = Convert.ToDecimal(dt.Rows[i][19].ToString()); for (int l = 20; l < 20 + iMaxTarget; l++) { if (dt.Rows[i][l].ToString() != "") drA[l] = arrField[l - 20] + ":" + dt.Rows[i][l].ToString(); else drA[l] = dt.Rows[i][l].ToString(); } dtR.Rows.Add(drA); } report.SetDataSource(dtR); //ParameterFields par1 = new ParameterFields(); //AddParameter("par_Program_ID", "VAM131R", par1); report.SetParameterValue("par_Program_ID", "VAM131R"); //ParameterFields par2 = new ParameterFields(); //AddParameter("par_LoginUser", Session["UID"].ToString() + Login_Name, par2); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); report.SetParameterValue("par_YEAR_MONTH", this.SLP_YearMonth1.Text.Trim()); //ParameterFields par4 = new ParameterFields(); //if (this.rdoPrint1.Checked) //AddParameter("par_TYPE", "全部", par4); report.SetParameterValue("par_TYPE", "全部"); //else //AddParameter("par_TYPE", "分頁", par4); // report.SetParameterValue("par_TYPE", "分頁"); //this.CryView.ReportSource = null; //this.CryView.ParameterFieldInfo.Add(par1[0]); //this.CryView.ParameterFieldInfo.Add(par2[0]); //this.CryView.ParameterFieldInfo.Add(par3[0]); //this.CryView.ParameterFieldInfo.Add(par4[0]); for (int j = 0; j < iMaxTarget; j++) { //ParameterFields pars = new ParameterFields(); //AddParameter("par_Field" + Convert.ToString(8 + j), arrField[j], pars); //this.CryView.ParameterFieldInfo.Add(pars[0]); report.SetParameterValue("par_Field" + Convert.ToString(8 + j), arrField[j]); } for (int j = 0; j < 3; j++) { //ParameterFields pars = new ParameterFields(); //AddParameter("par_Field" + Convert.ToString(8 + iMaxTarget + j), arrField1[j], pars); //this.CryView.ParameterFieldInfo.Add(pars[0]); report.SetParameterValue("par_Field" + Convert.ToString(8 + iMaxTarget + j), arrField1[j]); } for (int j = 0; j < 10 - iMaxTarget; j++) { //ParameterFields pars = new ParameterFields(); //AddParameter("par_Field" + Convert.ToString(11 + iMaxTarget +j), "", pars); //this.CryView.ParameterFieldInfo.Add(pars[0]); report.SetParameterValue("par_Field" + Convert.ToString(11 + iMaxTarget + j), ""); } //this.CryView.ReportSource = report; //檔案匯出 System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("合約交易扣款表(附件).PDF", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
private void ShowReportA(DataTable dtA, DataTable dtB, string V_FORM_TYPE) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(Server.MapPath("./REPORT/VAM051/VAM052R01.rpt")); DataSet ds = new DataSet(); dtA.TableName = "VAM052_R1"; ds.Tables.Add(dtA.Copy()); dtB.TableName = "VAM052_R2"; ds.Tables.Add(dtB.Copy()); report.SetDataSource(ds); report.SetParameterValue("par_Count", Convert.ToString(dtA.Rows.Count + dtB.Rows.Count)); if (this.hidTYPE.Value == "1") { report.SetParameterValue("par_Program_ID", "註記解除"); report.SetParameterValue("par_YM", this.Label7.Text); report.SetParameterValue("par_Source_date", "註記解除日期/時間:" + System.DateTime.Now.ToLongDateString()); report.SetParameterValue("par_LoginName", "註記解除人員:" + Session["UID"].ToString() + Login_Name); } else { report.SetParameterValue("par_Program_ID", "註記確認"); report.SetParameterValue("par_YM", this.SLP_YearMonth1.Text); report.SetParameterValue("par_Source_date", "註記日期/時間:" + System.DateTime.Now.ToLongDateString()); report.SetParameterValue("par_LoginName", "註記人員:" + Session["UID"].ToString() + Login_Name); } //檔案匯出 if (V_FORM_TYPE == "XLS") { System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("供應商單品結帳.XLS", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/xls"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); } else { System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("供應商單品結帳.PDF", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); } report.Close(); #endregion }
/// <summary> /// 顯示報表 /// </summary> private void ShowReport(DataSet ds) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); string strFileName = ""; CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); ReportDocument SubReport = new ReportDocument(); report.Load(Server.MapPath("./REPORT/CAA271/CAA27R01.rpt")); strFileName = HttpUtility.UrlEncode("結帳與開立憑證檢核表.PDF", System.Text.Encoding.UTF8); SubReport = report.OpenSubreport("CAA27R01_1"); SubReport.SetDataSource(ds); report.SetDataSource(ds); report.SetParameterValue("par_Program_ID", "CAA27R01"); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + strFileName);//pdf檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
private void ShowReport(DataTable dt,string V_FORM_TYPE,DateTime D_START_DATE,DateTime D_END_DATE,String V_ADJ_IN_DESC,String V_ADJ_OUT_DESC) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(Server.MapPath("./REPORT/PSS031/PSS031R01.rpt")); report.SetDataSource(dt); report.SetParameterValue("par_Program_ID", "PSS031R"); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); report.SetParameterValue("par_YEAR_MONTH", this.SLP_YearMonth1.Text.Trim()); if (rblRptType.Items[0].Selected) report.SetParameterValue("par_TYPE", "差異"); else report.SetParameterValue("par_TYPE", "全部"); if (this.SLP_SKU_B.Text.Trim() == "" && this.SLP_SKU_E.Text.Trim() == "") { report.SetParameterValue("par_ITEM", "全部"); } else { report.SetParameterValue("par_ITEM", this.SLP_SKU_B.Text.Trim() + "~" + this.SLP_SKU_E.Text.Trim()); } if (this.SLP_ItemPeriod_B.Text.Trim() == "" && this.SLP_ItemPeriod_E.Text.Trim() == "") { report.SetParameterValue("par_PERIOD", "全部"); } else { report.SetParameterValue("par_PERIOD", this.SLP_ItemPeriod_B.Text.Trim() + "~" + this.SLP_ItemPeriod_E.Text.Trim()); } if (this.slp_TAX_TYPE.Text.Trim() == "" ) { report.SetParameterValue("par_TAX_TYPE", "全部"); } else if (this.slp_TAX_TYPE.Text.Trim() == "0") { report.SetParameterValue("par_TAX_TYPE", "應稅"); } else if (this.slp_TAX_TYPE.Text.Trim() == "1") { report.SetParameterValue("par_TAX_TYPE", "免稅"); } else if (this.slp_TAX_TYPE.Text.Trim() == "2") { report.SetParameterValue("par_TAX_TYPE", "零稅"); } report.SetParameterValue("par_START_DATE", D_START_DATE); report.SetParameterValue("par_END_DATE", D_END_DATE); report.SetParameterValue("par_ADJ_IN_DESC", V_ADJ_IN_DESC); report.SetParameterValue("par_ADJ_OUT_DESC", V_ADJ_OUT_DESC); //檔案匯出 if (V_FORM_TYPE == "XLS") { System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("進銷存差異明細表.XLS", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/xls"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); } else { System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("進銷存差異明細表.PDF", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); } report.Close(); #endregion }
/// <summary> /// 利用 CrystalReport 列印 Excel 報表 /// </summary> /// <param name="s_FileName">Excel報表的檔名</param> /// <param name="s_rptFilePath">rpt檔的路徑</param> /// <param name="dt_Source">要列印的資料</param> /// /// <param name="reportFormatType">檔案型態</param> private void LoadCrystalReport(string s_FileName, string s_rptFilePath, DataTable dt_Source, string reportFormatType) { CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(s_rptFilePath); report.SetDataSource(dt_Source); //判斷輸出檔案型態 switch (reportFormatType) { case "EXCEL": System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/vnd.ms-excel"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); break; case "PDF": string s_par_Program_ID = string.Empty; string s_par_LoginUser = string.Empty; string s_par_Trans = string.Empty; string s_par_TruckNo = string.Empty; s_par_Program_ID = this.PageCode; s_par_LoginUser = Session["UID"].ToString(); s_par_Trans = this.SLP_TRANS_NO_S.Text + " " + ((DropDownList)SLP_TRANS_NO_S.FindControl("D1")).SelectedItem.Text + " ~ " + this.SLP_TRANS_NO_E.Text + " " + ((DropDownList)SLP_TRANS_NO_E.FindControl("D1")).SelectedItem.Text; s_par_TruckNo = this.TRUCK_NO_S.Text + " ~ " + this.TRUCK_NO_E.Text; report.SetParameterValue("par_Program_ID", s_par_Program_ID); report.SetParameterValue("par_LoginUser", s_par_LoginUser); report.SetParameterValue("par_Trans", s_par_Trans); report.SetParameterValue("par_TruckNo", s_par_TruckNo); System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); break; default: break; } report.Close(); }
/// <summary> /// 利用 CrystalReport 列印 Excel 報表 /// </summary> /// <param name="s_FileName">Excel報表的檔名</param> /// <param name="s_rptFilePath">rpt檔的路徑</param> /// <param name="dt_Source">要列印的資料</param> /// /// <param name="reportFormatType">檔案型態</param> private void LoadCrystalReport(string s_FileName, string s_rptFilePath, DataTable dt_Source, string reportFormatType) { CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(s_rptFilePath); report.SetDataSource(dt_Source); string par_ProgramID = string.Empty; string par_LoginUser = string.Empty; #region 前置檢查與參數過濾 string par_StockTakeDate = this.SLP_SLPDate.Text; string par_StockTakeNoS = this.txtS_InNO.Text; string par_StockTakeNoE = this.txtE_InNO.Text; string par_S_LocateNo = this.SLP_SimpleLocateSec1.Text1; string par_E_LocateNo = this.SLP_SimpleLocateSec2.Text1; string par_S_LocateSec = SLP_SimpleLocateSec1.Text2.Trim() != "" ? this.SLP_SimpleLocateSec1.Text1 + SLP_SimpleLocateSec1.Text2 : ""; string par_E_LocateSec = SLP_SimpleLocateSec2.Text2.Trim() != "" ? this.SLP_SimpleLocateSec2.Text1 + SLP_SimpleLocateSec2.Text2 : ""; string par_RptType = this.rdoRptType.SelectedItem.Text; par_ProgramID = this.PageCode; par_LoginUser = Session["UID"].ToString() + " " + Get_LoginName(); #endregion #region 組合查詢條件至ArrayList ArrayList returnList = new ArrayList(); returnList.Clear(); report.SetParameterValue("par_StockTakeDate", par_StockTakeDate); report.SetParameterValue("par_StockTakeNoS", par_StockTakeNoS); report.SetParameterValue("par_StockTakeNoE", par_StockTakeNoE); report.SetParameterValue("par_S_LocateNo", par_S_LocateNo); report.SetParameterValue("par_E_LocateNo", par_E_LocateNo); report.SetParameterValue("par_S_LocateSec", par_S_LocateSec); report.SetParameterValue("par_E_LocateSec", par_E_LocateSec); report.SetParameterValue("par_RptType", par_RptType); report.SetParameterValue("par_ProgramID", par_ProgramID); report.SetParameterValue("par_LoginUser", par_LoginUser); #endregion //判斷輸出檔案型態 switch (reportFormatType) { case "EXCEL": System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/vnd.ms-excel"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); break; case "PDF": System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); break; default: break; } report.Close(); }
private void btn_Run_Click(object sender, EventArgs e) { if (txtUsername.Text.Length > 1 && txtPassword.Text.Length > 1) { String username = txtUsername.Text; String password = txtPassword.Text; rTextBoxOutput.AppendText("Starting...\n\n"); rTextBoxOutput.ScrollToCaret(); String path = this.cboDirectoryList.Text;//"C:\\SVN\\CrystalReports\\OBS"; CreateDirectoryStructure(); foreach (string file in Directory.GetFiles(path, "*.rpt")) { Console.WriteLine(String.Format("Processing {0}...", file)); rTextBoxOutput.AppendText(String.Format("Processing {0}...\n", file)); rTextBoxOutput.ScrollToCaret(); // Declarations CrystalDecisions.CrystalReports.Engine.ReportDocument boReportDocument = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); CrystalDecisions.ReportAppServer.ClientDoc.ISCDReportClientDocument boReportClientDocument; CrystalDecisions.ReportAppServer.Controllers.RowsetController boRowsetController; CrystalDecisions.ReportAppServer.DataDefModel.ISCRGroupPath boGroupPath; string temp = ""; try { // Load the report from the application directory boReportDocument.Load(file); // Access the ReportClientDocument in the ReportDocument (EROM bridge) // Note this is available without a dedicated RAS with SP2 for XI R2 boReportClientDocument = boReportDocument.ReportClientDocument; boReportDocument.DataSourceConnections[0].SetLogon(username, password); if (boReportDocument.Subreports.Count == 0) { CrystalDecisions.CrystalReports.Engine.ParameterFieldDefinitions parameterList = boReportDocument.DataDefinition.ParameterFields; for (int i = 0; i < parameterList.Count; i++) { Console.WriteLine("i = " + i + "... " + parameterList[i].ParameterFieldName.ToString()); if (parameterList[i].ParameterFieldName.ToString() == "ReportType") { boReportDocument.SetParameterValue(i, "D"); } else if (parameterList[i].ParameterFieldName.ToString() == "@ControlID") { boReportDocument.SetParameterValue(i, 76461450); } else if (parameterList[i].ParameterFieldName.ToString() == "@RevisionCode") { boReportDocument.SetParameterValue(i, 0); } } // use the RowsetController to get the SQL query // Note: If a report has parameters they must be supplied before getting the // SQL query. boRowsetController = boReportClientDocument.RowsetController; boGroupPath = new CrystalDecisions.ReportAppServer.DataDefModel.GroupPath(); String s = boRowsetController.GetSQLStatement(boGroupPath, out temp); s = u.RemoveQuotes(s); bool ret = false; if (u.HasSQL(s)) { if (u.HasProduct(s)) { if (du.DoesDirectoryExist(path + "\\HasEmbeddedSQL\\HasProductReference")) { ret = du.MoveFileToDirectory(file, path + "\\HasEmbeddedSQL\\HasProductReference\\" + Path.GetFileName(file)); temp = "Processed " + Path.GetFileName(file) + ", moved file: " + ret + ", moved to " + path + "\\HasEmbeddedSQL\\HasProductReference\\"; } } else if (u.HasView(s)) { if (du.DoesDirectoryExist(path + "\\HasEmbeddedSQL\\HasView")) { ret = du.MoveFileToDirectory(file, path + "\\HasEmbeddedSQL\\HasView\\" + Path.GetFileName(file)); temp = "Processed " + Path.GetFileName(file) + ", moved file: " + ret + ", moved to " + path + "\\HasEmbeddedSQL\\HasView\\"; views.Add(boReportDocument.Database.Tables[0].Name); } } else { if (du.DoesDirectoryExist(path + "\\HasEmbeddedSQL\\ProbablyOK")) { ret = du.MoveFileToDirectory(file, path + "\\HasEmbeddedSQL\\ProbablyOK\\" + Path.GetFileName(file)); temp = "Processed " + Path.GetFileName(file) + ", moved file: " + ret + ", moved to " + path + "\\HasEmbeddedSQL\\ProbablyOK\\"; } } } else if (u.UsesExec(s)) { if (du.DoesDirectoryExist(path + "\\NoEmbeddedSQL")) { ret = du.MoveFileToDirectory(file, path + "\\NoEmbeddedSQL\\" + Path.GetFileName(file)); temp = "Processed " + Path.GetFileName(file) + ", moved file: " + ret + ", moved to " + path + "\\NoEmbeddedSQL\\"; } } else { if (du.DoesDirectoryExist(path + "\\ShouldReview")) { ret = du.MoveFileToDirectory(file, path + "\\ShouldReview\\" + Path.GetFileName(file)); temp = "Processed " + Path.GetFileName(file) + ", moved file: " + ret + ", moved to " + path + "\\ShouldReview\\"; } } rTextBoxOutput.AppendText(temp + "\n"); rTextBoxOutput.ScrollToCaret(); } else { ConnectionInfo ci = new ConnectionInfo(); ci.UserID = username; ci.Password = password; ApplyLogOnInfoForSubreports(boReportDocument, ci); if (du.DoesDirectoryExist(path + "\\HasSubReports")) { bool ret = du.MoveFileToDirectory(file, path + "\\HasSubReports\\" + Path.GetFileName(file)); temp = "HAS SUBREPORT(S)" + Path.GetFileName(file) + ", moved file: " + ret + ", moved to " + path + "\\HasSubReports\\"; } rTextBoxOutput.AppendText(temp + "\n"); rTextBoxOutput.ScrollToCaret(); } } catch (System.ArgumentOutOfRangeException aor) { if (du.DoesDirectoryExist(path + "\\ShouldReview")) { bool ret = du.MoveFileToDirectory(file, path + "\\ShouldReview\\" + Path.GetFileName(file)); temp = "Should REVIEW " + Path.GetFileName(file) + ", moved file: " + ret + ", moved to " + path + "\\ShouldReview\\"; } rTextBoxOutput.AppendText(temp + "\n"); rTextBoxOutput.AppendText(aor.Message + "\n"); rTextBoxOutput.ScrollToCaret(); } catch (System.Runtime.InteropServices.COMException comex) { if (du.DoesDirectoryExist(path + "\\ShouldReview")) { bool ret = du.MoveFileToDirectory(file, path + "\\ShouldReview\\" + Path.GetFileName(file)); temp = "Should REVIEW " + Path.GetFileName(file) + ", moved file: " + ret + ", moved to " + path + "\\ShouldReview\\"; } rTextBoxOutput.AppendText(temp + "\n"); rTextBoxOutput.AppendText(comex.Message + "\n"); rTextBoxOutput.ScrollToCaret(); } finally { // Clean up by closing and disposing of the ReportDocument object boReportDocument.Close(); boReportDocument.Dispose(); } } List <String> noDupes_procs = procedures.Distinct().ToList(); List <String> noDupes_sr_views = sr_views.Distinct().ToList(); List <String> noDupes_views = views.Distinct().ToList(); u.WriteToFile(path + "\\HasSubReports", "_subreportSPs.txt", noDupes_procs); u.WriteToFile(path + "\\HasSubReports", "_subreportViews.txt", noDupes_sr_views); u.WriteToFile(path + "\\HasEmbeddedSQL\\HasView", "_reportViews.txt", noDupes_views); } else { MessageBox.Show("Please enter a username and password!"); } }
private void ShowReportAB(DataTable dt, int iMaxTarget) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(Server.MapPath("./REPORT/VAM131/VAM131R01B.rpt")); DataTable dtR = new DataTable(); dtR = this.MakeDTForRptA(); for (int i = 0; i < dt.Rows.Count; i++) { DataRow drA = dtR.NewRow(); drA[0] = dt.Rows[i][0].ToString(); drA[1] = dt.Rows[i][1].ToString(); drA[2] = Convert.ToDecimal(dt.Rows[i][2].ToString()); drA[3] = Convert.ToDecimal(dt.Rows[i][3].ToString()); drA[4] = Convert.ToDecimal(dt.Rows[i][4].ToString()); drA[5] = Convert.ToDecimal(dt.Rows[i][5].ToString()); drA[6] = Convert.ToDecimal(dt.Rows[i][6].ToString()); drA[30] = Convert.ToDecimal(dt.Rows[i]["T_AMT"].ToString()); for (int j = 0; j < iMaxTarget; j++) { drA[7 + j] = Convert.ToDecimal(dt.Rows[i][7 + j].ToString()); } drA[7 + iMaxTarget] = Convert.ToDecimal(dt.Rows[i][17].ToString()); drA[8 + iMaxTarget] = Convert.ToDecimal(dt.Rows[i][18].ToString()); drA[9 + iMaxTarget] = Convert.ToDecimal(dt.Rows[i][19].ToString()); dtR.Rows.Add(drA); } report.SetDataSource(dtR); string[] arrField, arrField1; arrField = new string[10] { "獎勵金", "物流費", "折扣補貼", "獎勵金四", "獎勵金五", "獎勵金六", "獎勵金七", "獎勵金八", "獎勵金九", "獎勵金十" }; arrField1 = new string[3] { "追溯金額", "預收金額", "合計(未稅)" }; for (int j = 0; j < iMaxTarget; j++) { report.SetParameterValue("par_Field" + Convert.ToString(8 + j), arrField[j]); } for (int j = 0; j < 3; j++) { report.SetParameterValue("par_Field" + Convert.ToString(8 + iMaxTarget + j), arrField1[j]); } for (int j = 0; j < 10 - iMaxTarget; j++) { report.SetParameterValue("par_Field" + Convert.ToString(11 + iMaxTarget + j), ""); } //this.CryView.ReportSource = report; //檔案匯出 System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("合約交易扣款表(附件)_" + System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString() + ".XLS", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/xls"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
/// <summary> /// 列印轉PDF檔 /// </summary> /// <param name="dt">列印資料</param> private void Show_Report2(DataTable dt) { TextBox txt_BUSDATE_B = (TextBox)((ASP.wui_slp_slp_slpdate_ascx)this.slp_BUSDATE.FindControl("SLP_SLPDate1")).FindControl("TextBoxCode"); TextBox txt_BUSDATE_E = (TextBox)((ASP.wui_slp_slp_slpdate_ascx)this.slp_BUSDATE.FindControl("SLP_SLPDate2")).FindControl("TextBoxCode"); string s_FileName = txt_Out_FileName.Text; if (s_FileName.ToLower().IndexOf(".xls") < 0) { s_FileName = s_FileName + ".pdf"; } else { s_FileName = s_FileName.Substring(0, s_FileName.Length - 4) + ".pdf"; } s_FileName = HttpUtility.UrlEncode(s_FileName, System.Text.Encoding.UTF8); //Load Report report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); if (this.rdb_Report_Status.SelectedValue == "0")//明細表 { report.Load(Server.MapPath("./REPORT/CRM151/CRM151_Report_Detl.rpt")); } else if (this.rdb_Report_Status.SelectedValue == "1")//彙總表 { report.Load(Server.MapPath("./REPORT/CRM151/CRM151_Report_Main.rpt")); } report.SetDataSource(dt); // Set Parameter report.SetParameterValue("par_Program_ID", this.PageCode); report.SetParameterValue("par_LoginUser", Session["UID"].ToString()); report.SetParameterValue("par_BUSDATE", txt_BUSDATE_B.Text.Trim() + "~" + txt_BUSDATE_E.Text.Trim()); report.SetParameterValue("par_CHAN_NO", this.slp_CHAN_NO.Text.Trim()); report.SetParameterValue("par_ITEM", this.slp_ITEM.Text.Trim()); report.SetParameterValue("par_Z_O", this.slp_Z_O_B.Text.Trim() + "~" + this.slp_Z_O_E.Text.Trim()); report.SetParameterValue("par_MANUFACTURE", this.slp_MANUFACTURE_B.Text.Trim() + "~" + this.slp_MANUFACTURE_E.Text.Trim()); report.SetParameterValue("par_OUT_OF_STOCK_DAY", this.rdb_OUT_OF_STOCK_DAY.SelectedItem.Text.Trim()); if (this.rdb_Report_Status.SelectedValue == "1") { ArrayList ParameterList = new ArrayList();//20091117 ParameterList.Clear(); ParameterList.Add(GetValueSetParameter(this.rdb_OUT_OF_STOCK_DAY.SelectedValue, "string", false)); ParameterList.Add(Session["UID"].ToString()); int i_CRM_REQUEST_NO_COUNT = 0; BCO.QueryCRMOrderOutOfStockReport bco = new BCO.QueryCRMOrderOutOfStockReport(ConntionDB); i_CRM_REQUEST_NO_COUNT = bco.QUERY_CRM151_PRINTSUM_COUNT(ParameterList); report.SetParameterValue("par_CRM_REQUEST_NO_COUNT", i_CRM_REQUEST_NO_COUNT.ToString()); } System.IO.Stream stream = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); stream.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/vnd.ms-excel;charset='utf-8'"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("BIG5"); Response.OutputStream.Write(bytes, 0, bytes.Length); Response.Flush(); Response.Close(); report.Close(); }
private void ShowReportA(DataTable dtA, DataTable dtB, string V_FORM_TYPE, string V_RPT) { #region 利用CrystalReport列印報表 //匯出檔案名稱 string FileName = ""; //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(Server.MapPath("./REPORT/VAM121/" + V_RPT + "01.rpt")); DataSet ds = new DataSet(); dtA.TableName = "VAM122_R1"; ds.Tables.Add(dtA.Copy()); dtB.TableName = "VAM122_R2"; ds.Tables.Add(dtB.Copy()); report.SetDataSource(ds); if (V_RPT == "VAM121R") { FileName = "進項憑證明細表(發票)"; report.SetParameterValue("par_Program_ID", V_RPT); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); if (this.SLP_SLPDateRange.StartDate.ToString() == "" && this.SLP_SLPDateRange.EndDate.ToString() == "") report.SetParameterValue("par_Source_date", "全部"); else report.SetParameterValue("par_Source_date", this.SLP_SLPDateRange.StartDate.ToString() + "-" + this.SLP_SLPDateRange.EndDate.ToString()); if (this.SLP_SLPDateRange1.StartDate.ToString() == "" && this.SLP_SLPDateRange1.EndDate.ToString() == "") report.SetParameterValue("par_Keyin_date", "全部"); else report.SetParameterValue("par_Keyin_date", this.SLP_SLPDateRange1.StartDate.ToString() + "-" + this.SLP_SLPDateRange1.EndDate.ToString()); if (this.SLP_VendorBase1.Text.Trim() == "" && this.SLP_VendorBase2.Text.Trim() == "") { report.SetParameterValue("par_Vandor", "全部"); } else { report.SetParameterValue("par_Vandor", this.SLP_VendorBase1.Text.Trim() + "-" + this.SLP_VendorBase2.Text.Trim()); } if (((DropDownList)this.SLP_EnumBase.FindControl("D1")).SelectedItem.Text == "ALL") report.SetParameterValue("par_Tax_Type", "全部"); else report.SetParameterValue("par_Tax_Type", ((DropDownList)this.SLP_EnumBase.FindControl("D1")).SelectedItem.Text); } else if (V_RPT == "VAM122R") { FileName = "進項憑證明細表(折讓)"; report.SetParameterValue("par_Program_ID_B", V_RPT); report.SetParameterValue("par_LoginUser_B", Session["UID"].ToString() + Login_Name); if (this.SLP_SLPDateRange.StartDate.ToString() == "" && this.SLP_SLPDateRange.EndDate.ToString() == "") report.SetParameterValue("par_Source_date_B", "全部"); else report.SetParameterValue("par_Source_date_B", this.SLP_SLPDateRange.StartDate.ToString() + "-" + this.SLP_SLPDateRange.EndDate.ToString()); if (this.SLP_SLPDateRange1.StartDate.ToString() == "" && this.SLP_SLPDateRange1.EndDate.ToString() == "") report.SetParameterValue("par_Keyin_date_B", "全部"); else report.SetParameterValue("par_Keyin_date_B", this.SLP_SLPDateRange1.StartDate.ToString() + "-" + this.SLP_SLPDateRange1.EndDate.ToString()); if (this.SLP_VendorBase1.Text.Trim() == "" && this.SLP_VendorBase2.Text.Trim() == "") { report.SetParameterValue("par_Vandor_B", "全部"); } else { report.SetParameterValue("par_Vandor_B", this.SLP_VendorBase1.Text.Trim() + "-" + this.SLP_VendorBase2.Text.Trim()); } if (((DropDownList)this.SLP_EnumBase.FindControl("D1")).SelectedItem.Text == "ALL") report.SetParameterValue("par_Tax_Type_B", "全部"); else report.SetParameterValue("par_Tax_Type_B", ((DropDownList)this.SLP_EnumBase.FindControl("D1")).SelectedItem.Text); //report.SetParameterValue("par_Tax_Type_B", ((DropDownList)this.SLP_EnumBase.FindControl("D1")).SelectedItem.Text); } else if (V_RPT == "VAM123R") { FileName = "進項憑證明細表(發票與折讓)"; report.SetParameterValue("par_Program_ID", V_RPT); report.SetParameterValue("par_Program_ID_B", V_RPT); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); report.SetParameterValue("par_LoginUser_B", Session["UID"].ToString() + Login_Name); if (this.SLP_SLPDateRange.StartDate.ToString() == "" && this.SLP_SLPDateRange.EndDate.ToString() == "") { report.SetParameterValue("par_Source_date", "全部"); report.SetParameterValue("par_Source_date_B", "全部"); } else { report.SetParameterValue("par_Source_date", this.SLP_SLPDateRange.StartDate.ToString() + "-" + this.SLP_SLPDateRange.EndDate.ToString()); report.SetParameterValue("par_Source_date_B", this.SLP_SLPDateRange.StartDate.ToString() + "-" + this.SLP_SLPDateRange.EndDate.ToString()); } if (this.SLP_SLPDateRange1.StartDate.ToString() == "" && this.SLP_SLPDateRange1.EndDate.ToString() == "") { report.SetParameterValue("par_Keyin_date", "全部"); report.SetParameterValue("par_Keyin_date_B", "全部"); } else { report.SetParameterValue("par_Keyin_date", this.SLP_SLPDateRange1.StartDate.ToString() + "-" + this.SLP_SLPDateRange1.EndDate.ToString()); report.SetParameterValue("par_Keyin_date_B", this.SLP_SLPDateRange1.StartDate.ToString() + "-" + this.SLP_SLPDateRange1.EndDate.ToString()); } if (this.SLP_VendorBase1.Text.Trim() == "" && this.SLP_VendorBase2.Text.Trim() == "") { report.SetParameterValue("par_Vandor", "全部"); report.SetParameterValue("par_Vandor_B", "全部"); } else { report.SetParameterValue("par_Vandor", this.SLP_VendorBase1.Text.Trim() + "-" + this.SLP_VendorBase2.Text.Trim()); report.SetParameterValue("par_Vandor_B", this.SLP_VendorBase1.Text.Trim() + "-" + this.SLP_VendorBase2.Text.Trim()); } if (((DropDownList)this.SLP_EnumBase.FindControl("D1")).SelectedItem.Text == "ALL") { report.SetParameterValue("par_Tax_Type", "全部"); report.SetParameterValue("par_Tax_Type_B", "全部"); } else { report.SetParameterValue("par_Tax_Type", ((DropDownList)this.SLP_EnumBase.FindControl("D1")).SelectedItem.Text); report.SetParameterValue("par_Tax_Type_B", ((DropDownList)this.SLP_EnumBase.FindControl("D1")).SelectedItem.Text); } } //檔案匯出 if (V_FORM_TYPE == "XLS") { System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName + ".XLS", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/xls"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); } else { System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName + ".PDF", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); } report.Close(); #endregion }
private void ShowReport6(DataTable dt) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); if (this.rdoPrint1.Checked) report.Load(Server.MapPath("./REPORT/VAM131/VAM131R06.rpt")); else report.Load(Server.MapPath("./REPORT/VAM131/VAM131R06A.rpt")); report.SetDataSource(dt); report.SetParameterValue("par_Program_ID", "VAM136R"); report.SetParameterValue("par_LoginUser", Session["UID"].ToString() + Login_Name); report.SetParameterValue("par_YEAR_MONTH", this.SLP_YearMonth1.Text.Trim()); if (this.rdoPrint1.Checked) report.SetParameterValue("par_TYPE", "全部"); else report.SetParameterValue("par_TYPE", "分頁"); //檔案匯出 System.IO.Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF = new byte[streamPDF.Length]; streamPDF.Read(bytesPDF, 0, bytesPDF.Length); streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("折扣補貼報表.PDF", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/pdf"; Response.OutputStream.Write(bytesPDF, 0, bytesPDF.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
private void ShowReportBB(DataTable dt) { #region 利用CrystalReport列印報表 //使用者名稱 DataTable dt1 = new DataTable(); dt1 = (DataTable)Session["UserInfo"]; string Login_Name = dt1.Rows[0]["Name"].ToString(); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); report.Load(Server.MapPath("./REPORT/VAM131/VAM131R02B.rpt")); report.SetDataSource(dt); if (this.rdoType10.Checked) report.SetParameterValue("par_CLOSE_TYPE", "3"); else report.SetParameterValue("par_CLOSE_TYPE", "1"); //檔案匯出 System.IO.Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS = new byte[streamXLS.Length]; streamXLS.Read(bytesXLS, 0, bytesXLS.Length); streamXLS.Seek(0, System.IO.SeekOrigin.Begin); //Export File Response.ClearContent(); Response.ClearHeaders(); if (this.rdoType10.Checked) Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("商品交易扣款表(補收)_" + System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString() + ".XLS", System.Text.Encoding.UTF8));//匯出檔名 else Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("商品交易扣款表(附件)_" + System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString() + ".XLS", System.Text.Encoding.UTF8));//匯出檔名 Response.ContentType = "application/xls"; Response.OutputStream.Write(bytesXLS, 0, bytesXLS.Length); Response.Flush(); Response.Close(); report.Close(); #endregion }
/// <summary> /// </summary> /// <param name="dt">列印資料</param> private void Show_Report2(DataTable dt) { TextBox txt_BUSDATE_B = (TextBox)((ASP.wui_slp_slp_slpdate_ascx)this.slp_BUSDATE.FindControl("SLP_SLPDate1")).FindControl("TextBoxCode"); TextBox txt_BUSDATE_E = (TextBox)((ASP.wui_slp_slp_slpdate_ascx)this.slp_BUSDATE.FindControl("SLP_SLPDate2")).FindControl("TextBoxCode"); string s_FileName = txt_Out_FileName.Text; if (s_FileName.ToLower().IndexOf(".xls") > 0) { s_FileName = s_FileName.Substring(0, s_FileName.Length - 4) + ".pdf"; } else { s_FileName = s_FileName + ".pdf"; } s_FileName = HttpUtility.UrlEncode(s_FileName, System.Text.Encoding.UTF8); string s_LocalUser = ""; string s_LocalRole = ""; #region 取得使用者名稱 BCO.QueryCRMCommon comm = new BCO.QueryCRMCommon(ConntionDB); comm.GetUserAndRoleName(Session["UID"].ToString(), ref s_LocalUser, ref s_LocalRole); #endregion report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); // Load report report.Load(Server.MapPath("./REPORT/CRM161/CRM161_Report_Detl.rpt")); report.SetDataSource(dt); // Set Parameter report.SetParameterValue("par_Program_ID", this.PageCode); //report.SetParameterValue("par_LoginUser", Session["UID"].ToString()); report.SetParameterValue("par_LoginUser", s_LocalUser.ToString()); report.SetParameterValue("par_Role", s_LocalUser.ToString()); report.SetParameterValue("par_BUSDATE", txt_BUSDATE_B.Text.Trim() + "~" + txt_BUSDATE_E.Text.Trim()); report.SetParameterValue("par_CHAN_NO", this.slp_CHAN_NO.Text.Trim()); report.SetParameterValue("par_ITEM", this.slp_ITEM.Text.Trim()); report.SetParameterValue("par_Z_O", this.slp_Z_O_B.Text.Trim() + "~" + this.slp_Z_O_E.Text.Trim()); report.SetParameterValue("par_MANUFACTURE", this.slp_MANUFACTURE_B.Text.Trim() + "~" + this.slp_MANUFACTURE_E.Text.Trim()); report.SetParameterValue("par_STATUS", this.rdb_STATUS.SelectedItem.Text.Trim()); System.IO.Stream stream = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytes = new byte[stream.Length]; stream.Read(bytes, 0, bytes.Length); stream.Seek(0, System.IO.SeekOrigin.Begin); //export file Response.ClearContent(); Response.ClearHeaders(); Response.AddHeader("content-disposition", "attachment;filename=" + s_FileName);//excel檔名 Response.ContentType = "application/vnd.ms-excel;charset='utf-8'"; Response.ContentEncoding = System.Text.Encoding.GetEncoding("BIG5"); Response.OutputStream.Write(bytes, 0, bytes.Length); Response.Flush(); Response.Close(); report.Close(); }