/// <summary> /// 產生報表的Thread函式 /// </summary> public void ProcessReportThread(string ProcessFile) { //eventLog1.WriteEntry(string.Format("開始處理ThreadID:{0},處理設定檔案:{1}", // Thread.CurrentThread.ManagedThreadId.ToString(), // ProcessFile // ) // ); XmlDocument XDoc; XmlNode Xnode; XmlNodeList Xnl; ArrayList ParameterList = new ArrayList(); ReportParameter[] RP = null; string User = ""; string ReportCode = ""; string ReportFileName = ""; string CompleteFilePathAndName = ""; try { #region 將待處理檔案處理 XDoc = new XmlDocument(); try { StreamReader Sr = new StreamReader(ProcessFile); string ProcessXML = Sr.ReadToEnd(); Sr.Close(); XDoc.LoadXml(ProcessXML); #region 更新狀態為Process Xnode = XDoc.SelectSingleNode("//Report/ProcessState"); Xnode.InnerText = "Process"; #endregion #region 使用者帳號 Xnode = XDoc.SelectSingleNode("//Report/User"); User = Xnode.InnerText; #endregion #region 報表代號 Xnode = XDoc.SelectSingleNode("//Report/ReportCode"); ReportCode = Xnode.InnerText; #endregion #region 報表檔路徑 Xnode = XDoc.SelectSingleNode("//Report/ReportCodeFilePath"); string ReportCodeFilePath = Xnode.InnerText; #endregion #region DB輸入變數 Xnl = Xnode.SelectNodes("//Report/InputParameters/Parameter"); for (int x = 0; x < Xnl.Count; x++) { ParameterList.Add(Xnl[x].InnerText); } #endregion #region 報表檔變數 Xnl = Xnode.SelectNodes("//Report/RoportParameters/Parameter"); if (Xnl.Count > 0) { RP = new ReportParameter[Xnl.Count]; for (int y = 0; y < Xnl.Count; y++) { RP[y].ParameterName = Xnl[y].Attributes["key"].Value; RP[y].ParameterValue = Xnl[y].InnerText; } } #endregion #region 報表輸出格式 Xnode = XDoc.SelectSingleNode("//Report/ReportOutputFormat"); string ReportOutputFormat = Xnode.InnerText; #endregion #region 自定義的報表名稱 Xnode = XDoc.SelectSingleNode("//Report/CustomerFileName"); string CustomerDownLoadFileName = Xnode.InnerText; #endregion #region 產生的報表路徑及檔名,並更新XML檔案 ReportFileName = string.Format("{0}{1}{2}{3}{4}{5}{6}_T{7}_{8}_{9}.{10}", DateTime.Now.Year.ToString(), DateTime.Now.Month.ToString().PadLeft(2, '0'), DateTime.Now.Day.ToString().PadLeft(2, '0'), DateTime.Now.Hour.ToString().PadLeft(2, '0'), DateTime.Now.Minute.ToString().PadLeft(2, '0'), DateTime.Now.Second.ToString().PadLeft(2, '0'), DateTime.Now.Millisecond.ToString(), Thread.CurrentThread.ManagedThreadId.ToString(), User, CustomerDownLoadFileName, (ReportOutputFormat == "EXCEL") ? "XLS" : ReportOutputFormat ); #region 寫入檔名 Xnode = XDoc.SelectSingleNode("//Report/DownLoadFile"); Xnode.InnerText = ReportFileName; #endregion string ReportFilePathName = string.Format("{0}\\{1}", CompleteReportFolder, ReportFileName ); #endregion eventLog1.WriteEntry(string.Format("高見大型報表服務開始產生檔案:{0},處理LOG檔案:{1}", ReportFileName, ProcessFile ), EventLogEntryType.Information ); ReportList RL = new ReportList(); RL.GenerReportSource(ReportCode, ReportFilePathName, ReportCodeFilePath, ParameterList, RP, ReportOutputFormat ); RL = null; #region 更新狀態為END Xnode = XDoc.SelectSingleNode("//Report/ProcessState"); Xnode.InnerText = "END"; #endregion #region 產生Web需要的完成LOG Xnode = XDoc.SelectSingleNode("//Report/WebMonitorFile"); CompleteFilePathAndName = string.Format("{0}\\{1}", CompleteLogFolder, Xnode.InnerText ); StreamWriter Sw = new StreamWriter(CompleteFilePathAndName, false); Sw.WriteLine(string.Format("OK$${0}", ReportFileName)); Sw.Flush(); Sw.Close(); #endregion } catch (Exception ex) { #region 更新狀態為ProcessError Xnode = XDoc.SelectSingleNode("//Report/ProcessState"); Xnode.InnerText = "ProcessError"; #endregion #region 產生Web需要的完成LOG Xnode = XDoc.SelectSingleNode("//Report/WebMonitorFile"); CompleteFilePathAndName = string.Format("{0}\\{1}", CompleteLogFolder, Xnode.InnerText ); StreamWriter Sw = new StreamWriter(CompleteFilePathAndName, false); Sw.WriteLine(string.Format("ERROR$${0}", ex.Message)); Sw.Flush(); Sw.Close(); #endregion eventLog1.WriteEntry(string.Format("高見大型報表服務處理下載檔案{0}發生錯誤!錯誤訊息:{1}。處理LOG檔案:{2}", ReportFileName, ex.Message, ProcessFile ), EventLogEntryType.Error ); } finally { #region 寫入完成時間 Xnode = XDoc.SelectSingleNode("//Report/EndTime"); Xnode.InnerText = DateTime.Now.ToString(); #endregion //更新XML檔案 XDoc.Save(ProcessFile); //每列印一次就回收記憶體 //ReleaseMemorySpace(); eventLog1.WriteEntry(string.Format("高見大型報表服務產生檔案完成:{0},處理LOG檔案:{1}", ReportFileName, ProcessFile ), EventLogEntryType.SuccessAudit ); } #endregion string[] SourceFilePathAndName = ProcessFile.Split('\\'); try { #region 處理完成後將處理LOG搬移到處理記錄的資料夾 eventLog1.WriteEntry(string.Format("ProcessFile:{0}", ProcessFile ), EventLogEntryType.Information ); eventLog1.WriteEntry(string.Format("SourceFilePathAndName.Length:{0}", SourceFilePathAndName.Length.ToString() ), EventLogEntryType.Information ); string DesFilePathAndName = string.Format("{0}\\{1}", ReportHistoryLogFolder, SourceFilePathAndName[SourceFilePathAndName.Length - 1] ); eventLog1.WriteEntry(string.Format("DesFilePathAndName:{0}", DesFilePathAndName ), EventLogEntryType.Information ); File.Copy(ProcessFile, DesFilePathAndName, true); File.Delete(ProcessFile); #endregion eventLog1.WriteEntry(string.Format("高見大型報表服務搬移LOG檔案完成!LOG檔名:{0}", ProcessFile ), EventLogEntryType.SuccessAudit ); } catch (Exception ex) { throw new Exception(string.Format("搬移LOG處理記錄發生錯誤!錯誤訊息:{0}", ex.Message ) ); } try { #region 檢查目前的來源資料夾是否還有檔案,無檔案的即可移除 string ProcessFolder = ProcessFile.Replace(SourceFilePathAndName[SourceFilePathAndName.Length - 1], ""); if (Directory.Exists(ProcessFolder)) { if (Directory.GetFiles(ProcessFolder).Length == 0) { Directory.Delete(ProcessFolder); } } #endregion eventLog1.WriteEntry("高見大型報表服務刪除暫存LOG資料夾完成!", EventLogEntryType.SuccessAudit ); } catch (Exception ex) { throw new Exception(string.Format("刪除暫存LOG資料夾發生錯誤!錯誤訊息:{0}", ex.Message ) ); } } catch (Exception ex) { eventLog1.WriteEntry(string.Format("產生報表作業函式錯誤!錯誤訊息:{0}", ex.Message ), EventLogEntryType.Error ); //throw new Exception(string.Format("產生報表作業函式錯誤!錯誤訊息:{0}", // ex.Message // ) // ); } finally { XDoc = null; Xnode = null; Xnl = null; ParameterList = null; RP = null; //回收記憶體資源 ReleaseMemorySpace(); eventLog1.WriteEntry(string.Format("結束處理ThreadID:{0},處理設定檔案:{1}", Thread.CurrentThread.ManagedThreadId.ToString(), ProcessFile ) ); } }
/// <summary> /// 產生報表實體檔 /// </summary> /// <param name="ReportCodeStr">報表代號</param> /// <param name="DesDownLoadReportFileName">報表存放路徑</param> /// <param name="RPTFilePath">報表檔存放路徑</param> /// <param name="ParameterList">選取DB需要的變數</param> /// <param name="RP">報表檔需要的變數</param> /// <param name="ReportOutputFormat">輸出格式(PDF,EXCEL,CSV)</param> public void GenerReportSource(string ReportCodeStr, string DesDownLoadReportFileName, string RPTFilePath, ArrayList ParameterList, ReportParameter[] RP, string ReportOutputFormat ) { #region 參數設定,請勿異動 DataSet Ds = null; DataTable Dt = null; //Excel 匯出格式變數 ExcelOtherType EOT = ExcelOtherType.None; //Excel CSV字串輸出 string ExcelStr = ""; //是否使用DataSet bool UseDataSet = false; #endregion try { WriteModuleLog(NowDateStr, ReportCodeStr, "開始BCO、DBO作業"); switch (ReportCodeStr) //請所有PG都必須來這加入報表代號項目 { #region 請所有PG都必須來這加入報表代號項目 : 加入報表代號及對應程式 #region ALO模組 case "ALO03_1": #region ALO03_1 報表 ALO.ALO03 ALO031Rpt = new ALO.ALO03(); Dt = ALO031Rpt.ALO03_1(ParameterList, ref EOT); ALO031Rpt = null; #endregion break; case "ALO16_1": #region ALO16_1 報表 ALO.ALO16 ALO161Rpt = new ALO.ALO16(); Dt = ALO161Rpt.ALO16_1(ParameterList, ref EOT); ALO161Rpt = null; #endregion break; case "ALO21_1": #region ALO21_1 報表 ALO.ALO21 ALO211Rpt = new ALO.ALO21(); Dt = ALO211Rpt.ALO21_1(ParameterList, ref EOT); ALO211Rpt = null; #endregion break; case "ALO21_2": #region ALO21_2 報表 ALO.ALO21 ALO212Rpt = new ALO.ALO21(); Dt = ALO212Rpt.ALO21_2(ParameterList, ReportOutputFormat, ref EOT); ALO212Rpt = null; #endregion break; case "ALO21_3": #region ALO21_3 報表 ALO.ALO21 ALO213Rpt = new ALO.ALO21(); Dt = ALO213Rpt.ALO21_3(ParameterList, ReportOutputFormat, ref EOT); ALO213Rpt = null; #endregion break; case "ALO25_1": #region ALO25_1 報表 ALO.ALO25 ALO251Rpt = new ALO.ALO25(); Dt = ALO251Rpt.ALO25_1(ParameterList, ref EOT); ALO251Rpt = null; #endregion break; #endregion #region CAA模組 case "CAA02_1": #region CAA02_1 報表 CAA.CAA02 CAA02Rpt = new CAA.CAA02(); Dt = CAA02Rpt.CAA02_1(ParameterList); CAA02Rpt = null; #endregion break; case "CAA04_1": #region CAA04_1 報表 CAA.CAA04 CAA04Rpt = new CAA.CAA04(); Dt = CAA04Rpt.CAA04_1(ParameterList); CAA04Rpt = null; #endregion break; case "CAA06_1": #region CAA06_1 報表 CAA.CAA06 CAA06Rpt = new CAA.CAA06(); Dt = CAA06Rpt.CAA06_1(ParameterList); CAA06Rpt = null; #endregion break; case "CAA09_1": #region CAA09_1 報表 CAA.CAA09 CAA09Rpt = new CAA.CAA09(); Dt = CAA09Rpt.CAA09_1(ParameterList); CAA09Rpt = null; #endregion break; case "CAA10_1": case "CAA10_2": #region CAA10_1 報表 CAA.CAA10 CAA10Rpt = new CAA.CAA10(); Dt = CAA10Rpt.CAA10_1(ParameterList, ReportCodeStr); CAA10Rpt = null; #endregion break; case "CAA13_1": #region CAA13_1 報表 CAA.CAA13 CAA13Rpt1 = new CAA.CAA13(); Dt = CAA13Rpt1.CAA13_1(ParameterList); CAA13Rpt1 = null; #endregion break; case "CAA18_1": #region CAA18_1 報表 CAA.CAA18 CAA18Rpt1 = new CAA.CAA18(); Dt = CAA18Rpt1.CAA18_1(ParameterList); CAA18Rpt1 = null; #endregion break; case "CAA18_2": #region CAA18_2 報表 CAA.CAA18 CAA18Rpt2 = new CAA.CAA18(); Dt = CAA18Rpt2.CAA18_2(ParameterList); CAA18Rpt2 = null; #endregion break; case "CAA18_3": #region CAA18_3 報表 CAA.CAA18 CAA18Rpt3 = new CAA.CAA18(); Dt = CAA18Rpt3.CAA18_3(ParameterList); CAA18Rpt3 = null; #endregion break; case "CAA20_1": #region CAA20_1 報表 CAA.CAA20 CAA20Rpt = new CAA.CAA20(); Dt = CAA20Rpt.CAA20_1(ParameterList); CAA20Rpt = null; #endregion break; case "CAA21_1": #region CAA21_1 報表 CAA.CAA21 CAA21Rpt = new CAA.CAA21(); Dt = CAA21Rpt.CAA21_1(ParameterList); CAA21Rpt = null; #endregion break; case "CAA23_1": #region CAA23_1 報表 CAA.CAA23 CAA23Rpt1 = new CAA.CAA23(); Dt = CAA23Rpt1.CAA23_1(ParameterList); CAA23Rpt1 = null; #endregion break; case "CAA23_2": #region CAA23_2 報表 CAA.CAA23 CAA23Rpt2 = new CAA.CAA23(); Dt = CAA23Rpt2.CAA23_2(ParameterList); CAA23Rpt2 = null; #endregion break; case "CAA24_1": #region CAA24_1 報表 CAA.CAA24 CAA24Rpt1 = new CAA.CAA24(); Dt = CAA24Rpt1.CAA24_1(ParameterList); CAA24Rpt1 = null; #endregion break; case "CAA24_2": #region CAA24_2 報表 CAA.CAA24 CAA24Rpt2 = new CAA.CAA24(); Dt = CAA24Rpt2.CAA24_2(ParameterList); CAA24Rpt2 = null; #endregion break; case "CAA24_3": #region CAA24_3 報表 CAA.CAA24 CAA24Rpt3 = new CAA.CAA24(); Dt = CAA24Rpt3.CAA24_3(ParameterList); CAA24Rpt3 = null; #endregion break; case "CAA24_4": #region CAA24_4 報表 CAA.CAA24 CAA24Rpt4 = new CAA.CAA24(); Dt = CAA24Rpt4.CAA24_4(ParameterList); CAA24Rpt4 = null; #endregion break; case "CAA24_5": #region CAA24_5 報表 CAA.CAA24 CAA24Rpt5 = new CAA.CAA24(); Dt = CAA24Rpt5.CAA24_5(ParameterList); CAA24Rpt5 = null; #endregion break; case "CAA24_6": #region CAA24_6 報表 CAA.CAA24 CAA24Rpt6 = new CAA.CAA24(); Dt = CAA24Rpt6.CAA24_6(ParameterList); CAA24Rpt6 = null; #endregion break; case "CAA24_7": #region CAA24_7 報表 CAA.CAA24 CAA24Rpt7 = new CAA.CAA24(); Dt = CAA24Rpt7.CAA24_7(ParameterList); CAA24Rpt7 = null; #endregion break; case "CAA26_1": #region CAA26_1 報表 CAA.CAA26 CAA26Rpt = new CAA.CAA26(); Dt = CAA26Rpt.CAA26_1(ParameterList); CAA26Rpt = null; #endregion break; case "CAA31_1": #region CAA31_1 報表 CAA.CAA31 CAA31Rpt = new CAA.CAA31(); Dt = CAA31Rpt.CAA31_1(ParameterList); CAA31Rpt = null; #endregion break; case "CAA32_1": #region CAA32_1 報表 CAA.CAA32 CAA32Rpt = new CAA.CAA32(); Dt = CAA32Rpt.CAA32_1(ParameterList); CAA32Rpt = null; #endregion break; case "CAA33_1": #region CAA33_1 報表 CAA.CAA33 CAA33Rpt = new CAA.CAA33(); Dt = CAA33Rpt.CAA33_1(ParameterList); CAA33Rpt = null; #endregion break; case "CAA34_1": #region CAA34_1 報表 CAA.CAA34 CAA34Rpt = new CAA.CAA34(); Dt = CAA34Rpt.CAA34_1(ParameterList); CAA34Rpt = null; #endregion break; case "CAA35_1": #region CAA35_1 報表 CAA.CAA35 CAA35Rpt = new CAA.CAA35(); Dt = CAA35Rpt.CAA35_1(ParameterList); CAA35Rpt = null; #endregion break; #endregion #region CAM模組 case "CAM08_1": #region CAM08_1 報表 CAM.CAM08 CAM081Rpt = new CAM.CAM08(); Dt = CAM081Rpt.CAM08_1(ParameterList); CAM081Rpt = null; #endregion break; case "CAM08_2": #region CAM08_2 報表 CAM.CAM08 CAM082Rpt = new CAM.CAM08(); Dt = CAM082Rpt.CAM08_2(ParameterList); CAM082Rpt = null; #endregion break; case "CAM31_1": #region CAM31_1 報表 CAM.CAM31 CAM31Rpt = new CAM.CAM31(); Dt = CAM31Rpt.CAM31_1(ParameterList); CAM31Rpt = null; #endregion break; case "CAM35_1": #region CAM35_1 報表 CAM.CAM35 CAM35Rpt = new CAM.CAM35(); Dt = CAM35Rpt.CAM35_1(ParameterList); CAM35Rpt = null; #endregion break; #endregion #region CGD模組 case "CGD16_1": #region CGD16_1 報表 CGD.CGD16 CGD161_1Rpt = new CGD.CGD16(); Dt = CGD161_1Rpt.GGD16_1(ParameterList); CGD161_1Rpt = null; #endregion break; case "CGD16_2": #region CGD16_2 報表 CGD.CGD16 CGD161_2Rpt = new CGD.CGD16(); Dt = CGD161_2Rpt.GGD16_2(ParameterList, ReportOutputFormat, ref EOT); CGD161_2Rpt = null; #endregion break; case "CGD16_3": #region CGD16_3 報表 CGD.CGD16 CGD161_3Rpt = new CGD.CGD16(); Dt = CGD161_3Rpt.GGD16_3(ParameterList); CGD161_3Rpt = null; #endregion break; case "CGD16_4": #region CGD16_4 報表 CGD.CGD16 CGD161_4Rpt = new CGD.CGD16(); Dt = CGD161_4Rpt.GGD16_4(ParameterList); CGD161_4Rpt = null; #endregion break; case "CGD16_5": #region CGD16_5 報表 CGD.CGD16 CGD161_5Rpt = new CGD.CGD16(); Dt = CGD161_5Rpt.GGD16_5(ParameterList); CGD161_5Rpt = null; #endregion break; case "CGD16_6": #region CGD16_6 報表 CGD.CGD16 CGD161_6Rpt = new CGD.CGD16(); Dt = CGD161_6Rpt.GGD16_6(ParameterList); CGD161_6Rpt = null; #endregion break; case "CGD16_7": #region CGD16_7 報表 CGD.CGD16 CGD161_7Rpt = new CGD.CGD16(); Dt = CGD161_7Rpt.GGD16_7(ParameterList); CGD161_7Rpt = null; #endregion break; case "CGD18_1": #region CGD18_1 報表 CGD.CGD18 CGD181Rpt = new CGD.CGD18(); Dt = CGD181Rpt.GGD18_1(ParameterList); CGD181Rpt = null; #endregion break; case "CGD19_1": #region CGD19_1 報表 CGD.CGD19 CGD19_1Rpt = new CGD.CGD19(); Dt = CGD19_1Rpt.GGD19_1(ParameterList); CGD19_1Rpt = null; #endregion break; case "CGD19_2": #region CGD19_2 報表 CGD.CGD19 CGD191_2Rpt = new CGD.CGD19(); Dt = CGD191_2Rpt.GGD19_2(ParameterList); CGD191_2Rpt = null; #endregion break; case "CGD19_3": #region CGD19_3 報表 CGD.CGD19 CGD191_3Rpt = new CGD.CGD19(); Dt = CGD191_3Rpt.GGD19_3(ParameterList); CGD191_3Rpt = null; #endregion break; case "CGD25_1": #region CGD25_1 報表 CGD.CGD25 CGD251Rpt = new CGD.CGD25(); Dt = CGD251Rpt.CGD25_1(ParameterList); CGD251Rpt = null; #endregion break; #endregion #region CGI模組 #endregion #region CGR模組 case "CGR05_0": #region CGR05_0 報表 CGR.CGR05 CRM05Rpt = new CGR.CGR05(); Dt = CRM05Rpt.CGR05_0(ParameterList, ReportOutputFormat, ref EOT); CRM05Rpt = null; #endregion break; case "CGR07_1": #region CGR07_1 報表 CGR.CGR07 CGR071Rpt = new CGR.CGR07(); int Cnt = 0; Dt = CGR071Rpt.CGR07_1(ParameterList, ReportOutputFormat, ref EOT, out Cnt); RP[13].ParameterValue = Cnt.ToString(); CGR071Rpt = null; #endregion break; case "CGR07_2": #region CGR07_2 報表 CGR.CGR07 CGR072Rpt = new CGR.CGR07(); int StoreCnt = 0; Dt = CGR072Rpt.CGR07_2(ParameterList, out StoreCnt); RP[13].ParameterValue = StoreCnt.ToString(); CGR072Rpt = null; #endregion break; case "CGR08_0": #region CGR08_0 報表 CGR.CGR08 CRM08Rpt = new CGR.CGR08(); Dt = CRM08Rpt.CGR08_0(ParameterList, ReportOutputFormat, ref EOT); CRM08Rpt = null; #endregion break; #endregion #region COM模組 case "COM01_1": #region COM01_1 報表 COM.COM01 COM01Rpt = new COM.COM01(); Dt = COM01Rpt.COM01_1(ParameterList, ReportOutputFormat, ref EOT ); COM01Rpt = null; #endregion break; case "COM02_1": #region COM02_1 報表 COM.COM02 COM021Rpt = new COM.COM02(); Dt = COM021Rpt.COM02_1(ParameterList, ReportOutputFormat, ref EOT ); COM021Rpt = null; #endregion break; case "COM02_2": #region COM02_2 報表 COM.COM02 COM022Rpt = new COM.COM02(); Dt = COM022Rpt.COM02_2(ParameterList, ReportOutputFormat, ref EOT ); COM022Rpt = null; #endregion break; case "COM02_3": #region COM02_3 報表 COM.COM02 COM023Rpt = new COM.COM02(); Dt = COM023Rpt.COM02_3(ParameterList, ReportOutputFormat, ref EOT ); COM023Rpt = null; #endregion break; case "COM02_4": #region COM02_4 報表 COM.COM02 COM024Rpt = new COM.COM02(); Dt = COM024Rpt.COM02_4(ParameterList, ReportOutputFormat, ref EOT ); COM024Rpt = null; #endregion break; case "COM03_1": #region COM03_1 報表 COM.COM03 COM031Rpt = new COM.COM03(); Dt = COM031Rpt.COM03_1(ParameterList, ReportOutputFormat, ref EOT ); COM031Rpt = null; #endregion break; case "COM03_2": #region COM03_2 報表 COM.COM03 COM032Rpt = new COM.COM03(); Dt = COM032Rpt.COM03_2(ParameterList, ReportOutputFormat, ref EOT ); COM032Rpt = null; #endregion break; case "COM03_3": #region COM03_3 報表 COM.COM03 COM033Rpt = new COM.COM03(); Dt = COM033Rpt.COM03_3(ParameterList, ReportOutputFormat, ref EOT ); COM033Rpt = null; #endregion break; case "COM04_1": #region COM04_1 報表 COM.COM04 COM04Rpt = new COM.COM04(); Dt = COM04Rpt.COM04_1(ParameterList, ReportOutputFormat, ref EOT ); COM04Rpt = null; #endregion break; case "COM05_1": #region COM05_1 報表 EOT = ExcelOtherType.StringToExcel; COM.COM05 COM05Rpt = new COM.COM05(); ExcelStr = COM05Rpt.COM05_1(ParameterList, ReportOutputFormat, ref EOT ); COM05Rpt = null; #endregion break; case "COM06_1": #region COM06_1 報表 COM.COM06 COM06Rpt = new COM.COM06(); Dt = COM06Rpt.COM06_1(ParameterList, ReportOutputFormat, ref EOT ); COM06Rpt = null; #endregion break; case "COM07_1": #region COM07_1 報表 COM.COM07 COM07Rpt = new COM.COM07(); Dt = COM07Rpt.COM07_1(ParameterList, ReportOutputFormat, ref EOT ); COM07Rpt = null; #endregion break; case "COM08_1": #region COM08_1 報表 COM.COM081_POP COM081_POP = new COM.COM081_POP(); Dt = COM081_POP.COM08_1(ParameterList, ReportOutputFormat, ref EOT ); COM081_POP = null; #endregion break; case "COM15_1": #region COM15_1 報表 COM.COM15 COM15Rpt = new COM.COM15(); Dt = COM15Rpt.COM15_1(ParameterList, ReportOutputFormat, ref EOT ); COM15Rpt = null; #endregion break; case "COM16_1": #region COM16_1 報表 COM.COM16 COM16Rpt = new COM.COM16(); Dt = COM16Rpt.COM16_1(ParameterList, ReportOutputFormat, ref EOT ); COM16Rpt = null; #endregion break; case "COM17_1": #region COM17_1 報表 COM.COM17 COM17Rpt = new COM.COM17(); Dt = COM17Rpt.COM17_1(ParameterList, ReportOutputFormat, ref EOT ); COM17Rpt = null; #endregion break; case "COM181": #region COM18_1 匯出 COM.COM18 COM18Excel = new COM.COM18(); Dt = COM18Excel.COM18_1(ParameterList); COM18Excel = null; UseDataSet = false; #endregion break; case "COM191": #region COM19_1 匯出 COM.COM19 COM19 = new COM.COM19(); Dt = COM19.COM19_1(ParameterList); COM19 = null; UseDataSet = false; #endregion break; #endregion #region CRM模組 case "CRM02_1": #region CRM02_1 報表 CRM.CRM02 CRM021Rpt = new CRM.CRM02(); Dt = CRM021Rpt.CRM02_1(ParameterList, ReportOutputFormat, ref EOT); CRM021Rpt = null; #endregion break; case "CRM13_1": #region CRM13_1 報表 CRM.CRM13 CRM131Rpt = new CRM.CRM13(); Dt = CRM131Rpt.CRM13_1(ParameterList, ReportOutputFormat, ref EOT); CRM131Rpt = null; #endregion break; case "CRM13_2": #region CRM13_2 報表 CRM.CRM13 CRM132Rpt = new CRM.CRM13(); Dt = CRM132Rpt.CRM13_2(ParameterList, ReportOutputFormat, ref EOT); CRM132Rpt = null; #endregion break; case "CRM13_3": #region CRM13_3 報表 CRM.CRM13 CRM133Rpt = new CRM.CRM13(); Dt = CRM133Rpt.CRM13_3(ParameterList, ReportOutputFormat, ref EOT); CRM133Rpt = null; #endregion break; case "CRM14_1": #region CRM14_1 報表 CRM.CRM14 CRM141Rpt = new CRM.CRM14(); Dt = CRM141Rpt.CRM14_1(ParameterList, ReportOutputFormat, ref EOT); CRM141Rpt = null; #endregion break; case "CRM14_2": #region CRM14_2 報表 CRM.CRM14 CRM142Rpt = new CRM.CRM14(); Dt = CRM142Rpt.CRM14_2(ParameterList, ReportOutputFormat, ref EOT); CRM142Rpt = null; #endregion break; case "CRM14_3": #region CRM14_3 報表 CRM.CRM14 CRM143Rpt = new CRM.CRM14(); Dt = CRM143Rpt.CRM14_3(ParameterList, ReportOutputFormat, ref EOT); CRM143Rpt = null; #endregion break; case "CRM15_1": #region CRM15_1 報表 CRM.CRM15 CRM151Rpt = new CRM.CRM15(); Dt = CRM151Rpt.CRM15_1(ParameterList, ReportOutputFormat, ref EOT); CRM151Rpt = null; #endregion break; case "CRM15_2": #region CRM15_2 報表 CRM.CRM15 CRM152Rpt = new CRM.CRM15(); Dt = CRM152Rpt.CRM15_2(ParameterList); CRM152Rpt = null; #endregion break; case "CRM15_3": #region CRM15_3 報表 CRM.CRM15 CRM153Rpt = new CRM.CRM15(); Dt = CRM153Rpt.CRM15_3(ParameterList); CRM153Rpt = null; #endregion break; case "CRM16_1": #region CRM16_1 報表 CRM.CRM16 CRM161Rpt = new CRM.CRM16(); Dt = CRM161Rpt.CRM16_1(ParameterList, ReportOutputFormat, ref EOT); CRM161Rpt = null; #endregion break; case "CRM16_2": #region CRM16_2 報表 CRM.CRM16 CRM162Rpt = new CRM.CRM16(); Dt = CRM162Rpt.CRM16_2(ParameterList); CRM162Rpt = null; #endregion break; #endregion #region IFM模組 #endregion #region INV模組 #endregion #region IVM模組 case "IVM144_1": #region VIM144 報表 IVM.VIM14 IVM144_1Rpt = new IVM.VIM14(); Dt = IVM144_1Rpt.IVM144_1(ParameterList); IVM144_1Rpt = null; #endregion break; case "VIM157_10": #region VIM157 報表 IVM.VIM157 IVM157_10Rpt = new IVM.VIM157(); Dt = IVM157_10Rpt.VIM157_10(ParameterList, ReportOutputFormat, ref EOT ); IVM157_10Rpt = null; #endregion break; case "VIM157_11": #region VIM157 報表 IVM.VIM157 IVM157_11Rpt = new IVM.VIM157(); Dt = IVM157_11Rpt.VIM157_11(ParameterList, ReportOutputFormat, ref EOT ); IVM157_11Rpt = null; #endregion break; case "VIM157_20": #region VIM157 報表 IVM.VIM157 IVM157_20Rpt = new IVM.VIM157(); Dt = IVM157_20Rpt.VIM157_20(ParameterList, ReportOutputFormat, ref EOT ); IVM157_20Rpt = null; #endregion break; case "VIM157_21": #region VIM157 報表 IVM.VIM157 IVM157_21Rpt = new IVM.VIM157(); Dt = IVM157_21Rpt.VIM157_21(ParameterList, ReportOutputFormat, ref EOT ); IVM157_21Rpt = null; #endregion break; case "VIM157_3": #region VIM157_3 報表 IVM.VIM157 IVM157_3Rpt = new IVM.VIM157(); Dt = IVM157_3Rpt.VIM157_3(ParameterList, ReportOutputFormat, ref EOT ); IVM157_3Rpt = null; #endregion break; case "IVM17_1": #region IVM17_1 報表 IVM.VIM17 IVM171Rpt = new IVM.VIM17(); Dt = IVM171Rpt.IVM17_1(ParameterList); IVM171Rpt = null; #endregion break; case "IVM17_2": #region IVM17_2 報表 IVM.VIM17 IVM172Rpt = new IVM.VIM17(); Dt = IVM172Rpt.IVM17_2(ParameterList, ReportOutputFormat, ref EOT); IVM172Rpt = null; #endregion break; case "IVM18_1": #region IVM18_1 報表 IVM.VIM18 IVM181Rpt = new IVM.VIM18(); Dt = IVM181Rpt.IVM18_1(ParameterList, ReportOutputFormat, ref EOT); IVM181Rpt = null; #endregion break; case "IVM18_2": #region IVM18_2 報表 IVM.VIM18 IVM182Rpt = new IVM.VIM18(); Dt = IVM182Rpt.IVM18_2(ParameterList); IVM182Rpt = null; #endregion break; case "IVM19_1": #region IVM19_1 報表 IVM.VIM19 IVM191Rpt = new IVM.VIM19(); Dt = IVM191Rpt.IVM19_1(ParameterList); IVM191Rpt = null; #endregion break; case "IVM19_2": #region IVM19_2 報表 IVM.VIM19 IVM192Rpt = new IVM.VIM19(); Dt = IVM192Rpt.IVM19_2(ParameterList, ReportOutputFormat, ref EOT); IVM192Rpt = null; #endregion break; case "IVM20_1": #region IVM20_1 報表 IVM.VIM20 IVM201Rpt = new IVM.VIM20(); Dt = IVM201Rpt.IVM20_1(ParameterList); IVM201Rpt = null; #endregion break; case "IVM20_2": #region IVM20_2 報表 IVM.VIM20 IVM202Rpt = new IVM.VIM20(); Dt = IVM202Rpt.IVM20_2(ParameterList, ReportOutputFormat, ref EOT); IVM202Rpt = null; #endregion break; case "IVM21_1": #region IVM21_1 報表 IVM.VIM21 IVM211Rpt = new IVM.VIM21(); Dt = IVM211Rpt.IVM21_1(ParameterList); IVM211Rpt = null; #endregion break; case "IVM21_2": #region IVM21_2 報表 IVM.VIM21 IVM212Rpt = new IVM.VIM21(); Dt = IVM212Rpt.IVM21_2(ParameterList); IVM212Rpt = null; #endregion break; case "IVM21_3": #region IVM21_3 報表 IVM.VIM21 IVM213Rpt = new IVM.VIM21(); Dt = IVM213Rpt.IVM21_3(ParameterList); IVM213Rpt = null; #endregion break; case "IVM21_4": #region IVM21_4 報表 IVM.VIM21 IVM214Rpt = new IVM.VIM21(); Dt = IVM214Rpt.IVM21_4(ParameterList, ReportOutputFormat, ref EOT); IVM214Rpt = null; #endregion break; case "IVM21_5": #region IVM21_5 報表 IVM.VIM21 IVM215Rpt = new IVM.VIM21(); Dt = IVM215Rpt.IVM21_5(ParameterList, ReportOutputFormat, ref EOT); IVM215Rpt = null; #endregion break; case "IVM21_6": #region IVM21_6 報表 IVM.VIM21 IVM216Rpt = new IVM.VIM21(); Dt = IVM216Rpt.IVM21_6(ParameterList, ReportOutputFormat, ref EOT); IVM216Rpt = null; #endregion break; case "IVM22_1": #region IVM22_1 報表 IVM.VIM22 IVM221Rpt = new IVM.VIM22(); Dt = IVM221Rpt.IVM22_1(ParameterList); IVM221Rpt = null; #endregion break; case "IVM22_2": #region IVM22_2 報表 IVM.VIM22 IVM222Rpt = new IVM.VIM22(); Dt = IVM222Rpt.IVM22_2(ParameterList); IVM222Rpt = null; #endregion break; case "IVM22_3": #region IVM22_3 報表 IVM.VIM22 IVM223Rpt = new IVM.VIM22(); Dt = IVM223Rpt.IVM22_3(ParameterList, ReportOutputFormat, ref EOT); IVM223Rpt = null; #endregion break; case "IVM22_4": #region IVM22_4 報表 IVM.VIM22 IVM224Rpt = new IVM.VIM22(); Dt = IVM224Rpt.IVM22_4(ParameterList, ReportOutputFormat, ref EOT); IVM224Rpt = null; #endregion break; case "IVM23_1": #region IVM23_1 報表 IVM.IVM23 IVM231Rpt = new IVM.IVM23(); Dt = IVM231Rpt.IVM23_1(ParameterList, ReportOutputFormat, ref EOT); IVM231Rpt = null; #endregion break; case "IVM24_1": #region IVM24_1 報表 IVM.IVM24 IVM241Rpt = new IVM.IVM24(); Dt = IVM241Rpt.IVM24_1(ParameterList, ReportOutputFormat, ref EOT); IVM241Rpt = null; #endregion break; case "IVM27_1": #region IVM27_1 報表 IVM.IVM27 IVM27_1Rpt = new IVM.IVM27(); Dt = IVM27_1Rpt.IVM27_1(ParameterList, ReportOutputFormat, ref EOT ); IVM27_1Rpt = null; #endregion break; case "IVM27_2": #region IVM27_2 報表 IVM.IVM27 IVM27_2Rpt = new IVM.IVM27(); Dt = IVM27_2Rpt.IVM27_2(ParameterList, ReportOutputFormat, ref EOT ); IVM27_2Rpt = null; #endregion break; case "IVM29_1": #region IVM29_1 報表 IVM.IVM29 IVM29_1Rpt = new IVM.IVM29(); Dt = IVM29_1Rpt.IVM29_1(ParameterList, ReportOutputFormat, ref EOT ); IVM29_1Rpt = null; #endregion break; case "IVM31_1": #region IVM31_1 報表 IVM.IVM31 IVM311Rpt = new IVM.IVM31(); Dt = IVM311Rpt.IVM31_1(ParameterList, ReportOutputFormat, ref EOT); IVM311Rpt = null; #endregion break; case "IVM32_1": #region IVM32_1 報表 IVM.IVM32 IVM321Rpt = new IVM.IVM32(); Ds = IVM321Rpt.IVM32_1(ParameterList); IVM321Rpt = null; UseDataSet = true; #endregion break; case "IVM33_1": #region IVM33_1 報表 IVM.IVM33 IVM331Rpt = new IVM.IVM33(); Dt = IVM331Rpt.IVM33_1(ParameterList); IVM331Rpt = null; #endregion break; #endregion #region MKT模組 case "MKT05_1": #region MKT05_1 報表 MKT.MKT05 MKT051Rpt = new MKT.MKT05(); Ds = MKT051Rpt.MKT05_1(ParameterList); UseDataSet = true; MKT051Rpt = null; #endregion break; case "MKT06_1": #region MKT06_1 報表 MKT.MKT06 MKT061Rpt = new MKT.MKT06(); Ds = MKT061Rpt.MKT06_1(ParameterList); UseDataSet = true; MKT061Rpt = null; #endregion break; case "MKT07_1": #region MKT07_1 報表 MKT.MKT07 MKT071Rpt = new MKT.MKT07(); Dt = MKT071Rpt.MKT07_1(ParameterList, ReportOutputFormat, ref EOT ); MKT071Rpt = null; #endregion break; case "MKT07_2": #region MKT07_2 報表 MKT.MKT07 MKT072Rpt = new MKT.MKT07(); Dt = MKT072Rpt.MKT07_2(ParameterList, ReportOutputFormat, ref EOT ); MKT072Rpt = null; #endregion break; case "MKT07_3": #region MKT07_3 報表 MKT.MKT07 MKT073Rpt = new MKT.MKT07(); Dt = MKT073Rpt.MKT07_3(ParameterList, ReportOutputFormat, ref EOT ); MKT073Rpt = null; #endregion break; case "MKT07_41": #region MKT07_41 報表 MKT.MKT07 MKT041Rpt = new MKT.MKT07(); Dt = MKT041Rpt.MKT07_41(ParameterList, ReportOutputFormat, ref EOT ); MKT041Rpt = null; #endregion break; case "MKT08_1": #region MKT08_1 報表 MKT.MKT08 MKT081Rpt = new MKT.MKT08(); Dt = MKT081Rpt.MKT08_1(ParameterList, ReportOutputFormat, ref EOT ); MKT081Rpt = null; #endregion break; case "MKT09_1": #region MKT09_1 報表 MKT.MKT09 MKT091Rpt = new MKT.MKT09(); Dt = MKT091Rpt.MKT09_1(ParameterList); MKT091Rpt = null; #endregion break; case "MKT09_2": #region MKT09_2 報表 MKT.MKT09 MKT092Rpt = new MKT.MKT09(); Dt = MKT092Rpt.MKT09_2(ParameterList, ReportOutputFormat, ref EOT ); MKT092Rpt = null; #endregion break; case "MKT10_1": #region MKT10_1 報表 MKT.MKT10 MKT101Rpt = new MKT.MKT10(); Dt = MKT101Rpt.MKT10_1(ParameterList); MKT101Rpt = null; #endregion break; case "MKT11_1": #region MKT11_1 報表 MKT.MKT11 MKT111Rpt = new MKT.MKT11(); Dt = MKT111Rpt.MKT11_1(ParameterList); MKT111Rpt = null; #endregion break; case "MKT13_1": #region MKT13_1 報表 MKT.MKT13 MKT131Rpt = new MKT.MKT13(); Dt = MKT131Rpt.MKT13_1(ParameterList); MKT131Rpt = null; #endregion break; #endregion #region PSS模組 case "PSS03_1": #region PSS03_1 報表 PSS.PSS03 PSS03Rpt = new PSS.PSS03(); DateTime D_START_DATE, D_END_DATE; string V_ADJ_IN_DESC, V_ADJ_OUT_DESC; Dt = PSS03Rpt.PSS03_1(ParameterList, out D_START_DATE, out D_END_DATE, out V_ADJ_IN_DESC, out V_ADJ_OUT_DESC); RP[7].ParameterValue = D_START_DATE.ToString(); RP[8].ParameterValue = D_END_DATE.ToString(); RP[9].ParameterValue = V_ADJ_IN_DESC; RP[10].ParameterValue = V_ADJ_OUT_DESC; PSS03Rpt = null; #endregion break; case "PSS04_1": #region PSS04_1 報表 PSS.PSS04 PSS04Rpt = new PSS.PSS04(); Dt = PSS04Rpt.PSS04_1(ParameterList); PSS04Rpt = null; #endregion break; case "PSS05_1": #region PSS05_1 報表 PSS.PSS05 PSS05Rpt = new PSS.PSS05(); string V_MSG = ""; Dt = PSS05Rpt.PSS05_1(ParameterList, out V_MSG); RP[4].ParameterValue = V_MSG; PSS05Rpt = null; #endregion break; case "PSS06_1": #region PSS06_1 報表 PSS.PSS06 PSS06Rpt = new PSS.PSS06(); string v_MSG = ""; Dt = PSS06Rpt.PSS06_1(ParameterList, ReportOutputFormat, ref EOT, out v_MSG ); if (ReportOutputFormat == "PDF") RP[8].ParameterValue = v_MSG; PSS06Rpt = null; #endregion break; #endregion #region PUR模組 case "PUR08_1": #region PUR08_1 報表 PUR.PUR08 PUR081Rpt = new PUR.PUR08(); Dt = PUR081Rpt.PUR08_1(ParameterList); PUR081Rpt = null; #endregion break; case "PUR08_2": #region PUR08_2 報表 PUR.PUR08 PUR082Rpt = new PUR.PUR08(); Dt = PUR082Rpt.PUR08_2(ParameterList, ReportOutputFormat, ref EOT ); PUR082Rpt = null; #endregion break; case "PUR09_1": #region PUR09_1 報表 PUR.PUR09 PUR091Rpt = new PUR.PUR09(); Dt = PUR091Rpt.PUR09_1(ParameterList); PUR091Rpt = null; #endregion break; #endregion #region STM模組 case "STM28_1": #region STM28_1 報表 STM.STM28 STM281Rpt = new STM.STM28(); Dt = STM281Rpt.STM28_1(ParameterList); STM281Rpt = null; #endregion break; case "STM28_2": #region STM28_2 報表 STM.STM28 STM282Rpt = new STM.STM28(); Dt = STM282Rpt.STM28_2(ParameterList); STM282Rpt = null; #endregion break; case "STM28_3": #region STM28_3 報表 STM.STM28 STM283Rpt = new STM.STM28(); Dt = STM283Rpt.STM28_3(ParameterList); STM283Rpt = null; #endregion break; case "STM30_1": #region STM30_1 報表 STM.STM30 STM30_1Rpt = new STM.STM30(); Dt = STM30_1Rpt.STM30_1(ParameterList, ReportOutputFormat, ref EOT ); STM30_1Rpt = null; #endregion break; case "STM30_2": #region STM30_2 報表 STM.STM30 STM30_2Rpt = new STM.STM30(); Dt = STM30_2Rpt.STM30_2(ParameterList, ReportOutputFormat, ref EOT ); STM30_2Rpt = null; #endregion break; case "STM30_3": #region STM30_3 報表 STM.STM30 STM30_3Rpt = new STM.STM30(); Dt = STM30_3Rpt.STM30_3(ParameterList, ReportOutputFormat, ref EOT ); STM30_3Rpt = null; #endregion break; case "STM30_4": #region STM30_4 報表 STM.STM30 STM30_4Rpt = new STM.STM30(); Dt = STM30_4Rpt.STM30_4(ParameterList, ReportOutputFormat, ref EOT ); STM30_4Rpt = null; #endregion break; case "STM31_1": #region STM31_1 報表 STM.STM31 STM31_1Rpt = new STM.STM31(); Dt = STM31_1Rpt.STM31_1(ParameterList, ReportOutputFormat, ref EOT ); STM31_1Rpt = null; #endregion break; #endregion #region TRN模組 case "TRN05_1": #region TRN05_1 報表 TRN.TRN05 TRN05_1Rpt = new TRN.TRN05(); Dt = TRN05_1Rpt.TRN05_1(ParameterList, ReportOutputFormat, ref EOT); TRN05_1Rpt = null; #endregion break; case "TRN05_2": #region TRN05_1 報表 TRN.TRN05 TRN05_2Rpt = new TRN.TRN05(); Dt = TRN05_2Rpt.TRN05_2(ParameterList, ReportOutputFormat, ref EOT); TRN05_2Rpt = null; #endregion break; case "TRN05_3": #region TRN05_1 報表 TRN.TRN05 TRN05_3Rpt = new TRN.TRN05(); Dt = TRN05_3Rpt.TRN05_3(ParameterList, ReportOutputFormat, ref EOT); TRN05_3Rpt = null; #endregion break; case "TRN05_4": #region TRN05_1 報表 TRN.TRN05 TRN05_4Rpt = new TRN.TRN05(); Dt = TRN05_4Rpt.TRN05_4(ParameterList, ReportOutputFormat, ref EOT); TRN05_4Rpt = null; #endregion break; case "TRN07_1": #region TRN07_1 報表 TRN.TRN07 TRN171Rpt = new TRN.TRN07(); Dt = TRN171Rpt.TRN07_1(ParameterList, ReportOutputFormat, ref EOT); TRN171Rpt = null; #endregion break; case "TRN07_2": #region TRN07_2 報表 TRN.TRN07 TRN172Rpt = new TRN.TRN07(); Dt = TRN172Rpt.TRN07_2(ParameterList, ReportOutputFormat, ref EOT); TRN172Rpt = null; #endregion break; case "TRN07_3": #region TRN07_3 報表 TRN.TRN07 TRN173Rpt = new TRN.TRN07(); Dt = TRN173Rpt.TRN07_3(ParameterList, ReportOutputFormat, ref EOT); TRN173Rpt = null; #endregion break; case "TRN07_4": #region TRN07_4 報表 TRN.TRN07 TRN174Rpt = new TRN.TRN07(); Dt = TRN174Rpt.TRN07_4(ParameterList, ReportOutputFormat, ref EOT); TRN174Rpt = null; #endregion break; case "TRN07_5": #region TRN07_5 報表 TRN.TRN07 TRN175Rpt = new TRN.TRN07(); Dt = TRN175Rpt.TRN07_5(ParameterList, ReportOutputFormat, ref EOT); TRN175Rpt = null; #endregion break; case "TRN09_1": #region TRN09_1 報表 TRN.TRN09 TRN091Rpt = new TRN.TRN09(); Dt = TRN091Rpt.TRN09_1(ParameterList); TRN091Rpt = null; #endregion break; case "TRN09_2": #region TRN09_2 報表 TRN.TRN09 TRN092Rpt = new TRN.TRN09(); Dt = TRN092Rpt.TRN09_2(ParameterList, ReportOutputFormat, ref EOT); TRN092Rpt = null; #endregion break; case "TRN09_3": #region TRN09_3 報表 TRN.TRN09 TRN093Rpt = new TRN.TRN09(); Dt = TRN093Rpt.TRN09_3(ParameterList); TRN093Rpt = null; #endregion break; case "TRN09_4": #region TRN09_4 報表 TRN.TRN09 TRN094Rpt = new TRN.TRN09(); Dt = TRN094Rpt.TRN09_4(ParameterList, ReportOutputFormat, ref EOT); TRN094Rpt = null; #endregion break; case "TRN20_1": #region TRN20_1 報表 TRN.TRN20 TRN201Rpt = new TRN.TRN20(); Ds = TRN201Rpt.TRN20_1(ParameterList); TRN201Rpt = null; UseDataSet = true; #endregion break; case "TRN21_1": #region TRN21_1 報表 TRN.TRN21 TRN211Rpt = new TRN.TRN21(); Dt = TRN211Rpt.TRN21_1(ParameterList); TRN211Rpt = null; #endregion break; case "TRN22_1": #region TRN22_1 報表 TRN.TRN22 TRN221Rpt = new TRN.TRN22(); Dt = TRN221Rpt.TRN22_1(ParameterList); TRN221Rpt = null; #endregion break; case "TRN23_1": #region TRN23_1 報表 TRN.TRN23 TRN231Rpt = new TRN.TRN23(); Dt = TRN231Rpt.TRN23_1(ParameterList, ref EOT); TRN231Rpt = null; #endregion break; case "TRN24_1": #region TRN24_1 報表 TRN.TRN24 TRN241Rpt = new TRN.TRN24(); Dt = TRN241Rpt.TRN24_1(ParameterList); TRN241Rpt = null; #endregion break; case "TRN26_1": #region TRN26_1 報表 TRN.TRN26 TRN261Rpt = new TRN.TRN26(); Dt = TRN261Rpt.TRN26_1(ParameterList); TRN261Rpt = null; #endregion break; case "TRN27_1": #region TRN27_1 報表 TRN.TRN27 TRN271Rpt = new TRN.TRN27(); Dt = TRN271Rpt.TRN27_1(ParameterList); TRN271Rpt = null; #endregion break; #endregion #region VAM模組 case "VAM09_1": #region VAM09_1 報表 VAM.VAM09 VAM091Rpt = new VAM.VAM09(); Dt = VAM091Rpt.VAM09_1(ParameterList); VAM091Rpt = null; #endregion break; case "VAM09_2": #region VAM09_2 報表 VAM.VAM09 VAM092Rpt = new VAM.VAM09(); Dt = VAM092Rpt.VAM09_2(ParameterList); VAM092Rpt = null; #endregion break; case "VAM09_3": #region VAM09_3 報表 VAM.VAM09 VAM093Rpt = new VAM.VAM09(); Dt = VAM093Rpt.VAM09_3(ParameterList); VAM093Rpt = null; #endregion break; case "VAM09_4": #region VAM09_4 報表 VAM.VAM09 VAM094Rpt = new VAM.VAM09(); Ds = VAM094Rpt.VAM09_4(ParameterList); VAM094Rpt = null; UseDataSet = true; #endregion break; case "VAM09_5": #region VAM09_5 報表 VAM.VAM09 VAM095Rpt = new VAM.VAM09(); Dt = VAM095Rpt.VAM09_5(ParameterList); VAM095Rpt = null; #endregion break; case "VAM09_6": #region VAM09_6 報表 VAM.VAM09 VAM096Rpt = new VAM.VAM09(); Dt = VAM096Rpt.VAM09_6(ParameterList); VAM096Rpt = null; #endregion break; case "VAM18_1": #region VAM18_1 報表 VAM.VAM18 VAM181Rpt = new VAM.VAM18(); Dt = VAM181Rpt.VAM18_1(ParameterList, ReportOutputFormat); VAM181Rpt = null; UseDataSet = false; #endregion break; case "VAM23_1": #region VAM23_1 報表 VAM.VAM23 VAM231Rpt = new VAM.VAM23(); Dt = VAM231Rpt.VAM23_1(ParameterList); VAM231Rpt = null; UseDataSet = false; #endregion break; case "VAM25_1": #region VAM25_1 彙總表報表 VAM.VAM25 VAM251Rpt = new VAM.VAM25(); Dt = VAM251Rpt.VAM25_1(ParameterList); VAM251Rpt = null; UseDataSet = false; #endregion break; case "VAM25_2": #region VAM25_2 明細表報表 VAM.VAM25 VAM252Rpt = new VAM.VAM25(); Dt = VAM252Rpt.VAM25_2(ParameterList); VAM252Rpt = null; UseDataSet = false; #endregion break; case "VAM25_3": #region VAM25_3 彙總表報表 VAM.VAM25 VAM253Rpt = new VAM.VAM25(); Dt = VAM253Rpt.VAM25_3(ParameterList); VAM253Rpt = null; UseDataSet = false; #endregion break; case "VAM25_4": #region VAM25_4 明細表報表 VAM.VAM25 VAM254Rpt = new VAM.VAM25(); Dt = VAM254Rpt.VAM25_4(ParameterList); VAM254Rpt = null; UseDataSet = false; #endregion break; case "VAM29_1": #region VAM29_1 異常資料報表 VAM.VAM29 VAM291Rpt = new VAM.VAM29(); Dt = VAM291Rpt.VAM29_1(ParameterList); VAM291Rpt = null; UseDataSet = false; #endregion break; case "VAM30_1": #region VAM30_1 彙總表報表 VAM.VAM30 VAM301Rpt = new VAM.VAM30(); Dt = VAM301Rpt.VAM30_1(ParameterList); VAM301Rpt = null; UseDataSet = false; #endregion break; case "VAM30_2": #region VAM302 明細表報表 VAM.VAM30 VAM302Rpt = new VAM.VAM30(); Dt = VAM302Rpt.VAM30_2(ParameterList); VAM302Rpt = null; UseDataSet = false; #endregion break; #endregion #region VDM模組 #endregion #region VGI模組 case "VGI06_1": #region VGI06_1 報表 VGI.VGI06 VGI06_1Rpt = new VGI.VGI06(); Ds = VGI06_1Rpt.VGI06_1(ParameterList); VGI06_1Rpt = null; UseDataSet = true; #endregion break; case "VGI07_1": #region VGI07_1 報表 VGI.VGI07 VGI07_1Rpt = new VGI.VGI07(); Dt = VGI07_1Rpt.VGI07_1(ParameterList, ReportOutputFormat, ref EOT); VGI07_1Rpt = null; #endregion break; case "VGI08_1": #region VGI08_1 報表 VGI.VGI08 VGI081Rpt = new VGI.VGI08(); Dt = VGI081Rpt.VGI08_1(ParameterList, ReportOutputFormat, ref EOT); VGI081Rpt = null; #endregion break; case "VGI08_2": #region VGI08_2 報表 2010/07/28 modified VGI.VGI08 VGI082Rpt = new VGI.VGI08(); Dt = VGI082Rpt.VGI08_2(ParameterList, ReportOutputFormat, ref EOT); VGI081Rpt = null; #endregion break; case "VGI09_1": #region VGI09_1 報表 VGI.VGI09 VGI09_1Rpt = new VGI.VGI09(); Ds = VGI09_1Rpt.VGI09_1(ParameterList, ReportOutputFormat, ref EOT); VGI09_1Rpt = null; UseDataSet = true; #endregion break; #endregion #region VGR模組 case "VGR01_0": #region VGR01_0 報表 VGR.VGR01 VGR01Rpt = new VGR.VGR01(); Dt = VGR01Rpt.VGR01_0(ParameterList, ReportOutputFormat, ref EOT); VGR01Rpt = null; #endregion break; case "VGR03_1": #region VGR03_1 報表 VGR.VGR03 VGR03Rpt = new VGR.VGR03(); Dt = VGR03Rpt.VGR03_1(ParameterList, ReportOutputFormat, ref EOT); VGR03Rpt = null; #endregion break; case "VGR04_1": #region VGR04_1 報表 VGR.VGR04 VGR04Rpt = new VGR.VGR04(); Dt = VGR04Rpt.VGR04_1(ParameterList, ReportOutputFormat, ref EOT); VGR04Rpt = null; #endregion break; case "VGR05_1": #region VGR05_1 報表 VGR.VGR05 VGR05Rpt = new VGR.VGR05(); Dt = VGR05Rpt.VGR05_1(ParameterList, ReportOutputFormat, ref EOT); VGR05Rpt = null; #endregion break; case "VGR06_1": #region VGR06_1 報表 VGR.VGR06 VGR06Rpt = new VGR.VGR06(); Dt = VGR06Rpt.VGR06_1(ParameterList, ReportOutputFormat, ref EOT); VGR01Rpt = null; #endregion break; #endregion default: break; #endregion } WriteModuleLog(NowDateStr, ReportCodeStr, "結束BCO、DBO作業"); WriteModuleLog(NowDateStr, ReportCodeStr, "開始產生實體報表"); #region 產生報表,請勿異動 //產生報表,請勿異動 GenReportCheckType(DesDownLoadReportFileName, RPTFilePath, ref Dt, ref Ds, RP, ReportOutputFormat, EOT, ExcelStr, UseDataSet ); #endregion WriteModuleLog(NowDateStr, ReportCodeStr, "結束產生實體報表"); } catch (Exception ex) { WriteModuleLog(NowDateStr, ReportCodeStr, string.Format("結束BCO、DBO作業引發錯誤錯誤訊息:{0}", ex.Message ) ); throw ex; } finally { this.Dispose(); } }
/// <summary> /// 產生輸出檔案 /// </summary> /// <param name="s_FileName">產生檔案檔名</param> /// <param name="s_rptFilePath">RPT報表檔路徑及檔名</param> /// <param name="dt_Source">DB抓取的資料集(DataTable)</param> /// <param name="RP">報表變數,如無變數請輸入null</param> /// <param name="ROF">報表格式</param> public void LoadCrystalReport(string s_FileName, string s_rptFilePath, ref DataTable dt_Source, ReportParameter[] RP, string ReportOutputFormat ) { int bytesRead = 0; FileStream FS = new FileStream(s_FileName, FileMode.Create, FileAccess.Write); CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument(); try { report.Load(s_rptFilePath); report.SetDataSource(dt_Source); //判斷輸出檔案型態 switch (ReportOutputFormat) { case "EXCEL": //如果有報表參數 if (RP != null) { for (int i = 0; i < RP.Length; i++) { if ((RP[i].ParameterName != "") && (RP[i].ParameterValue != null)) { report.SetParameterValue(RP[i].ParameterName, RP[i].ParameterValue); } } } Stream streamXLS = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.Excel); byte[] bytesXLS; try { bytesXLS = new byte[streamXLS.Length]; bytesRead = streamXLS.Read(bytesXLS, 0, bytesXLS.Length); //export file while (bytesRead > 0) { FS.Write(bytesXLS, 0, bytesRead); bytesRead = streamXLS.Read(bytesXLS, 0, bytesXLS.Length); } } catch (Exception ex) { throw ex; } finally { bytesXLS = null; streamXLS.Flush(); streamXLS.Close(); streamXLS.Dispose(); } break; case "PDF": //如果有報表參數 if (RP != null) { for (int i = 0; i < RP.Length; i++) { if ((RP[i].ParameterName != "") && (RP[i].ParameterValue != null)) { report.SetParameterValue(RP[i].ParameterName, RP[i].ParameterValue); } } } Stream streamPDF = report.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat); byte[] bytesPDF; try { bytesPDF = new byte[streamPDF.Length]; bytesRead = streamPDF.Read(bytesPDF, 0, bytesPDF.Length); //streamPDF.Seek(0, System.IO.SeekOrigin.Begin); //export file while (bytesRead > 0) { FS.Write(bytesPDF, 0, bytesRead); bytesRead = streamPDF.Read(bytesPDF, 0, bytesPDF.Length); } } catch (Exception ex) { throw ex; } finally { bytesPDF = null; streamPDF.Flush(); streamPDF.Close(); streamPDF.Dispose(); } break; default: break; } } catch (Exception ex) { throw ex; } finally { FS.Flush(); FS.Close(); FS.Dispose(); report.Close(); report.Dispose(); dt_Source.Dispose(); } }
/// <summary> /// 產生報表共用函式 /// </summary> /// <param name="DesDownLoadReportFileName">報表存放路徑</param> /// <param name="RPTFilePath">報表檔存放路徑</param> /// <param name="Dt">選取的資料集DataTable</param> /// <param name="Ds">選取的資料集DataSet</param> /// <param name="RP">報表檔需要的變數</param> /// <param name="ReportOutputFormat">輸出格式(PDF,EXCEL,CSV)</param> /// <param name="EOT">Excel 匯出格式變數</param> /// <param name="ExcelStr">Excel CSV字串輸出</param> /// <param name="UseDataSet">是否使用DataSet</param> public void GenReportCheckType(string DesDownLoadReportFileName, string RPTFilePath, ref DataTable Dt, ref DataSet Ds, ReportParameter[] RP, string ReportOutputFormat, ExcelOtherType EOT, string ExcelStr, bool UseDataSet ) { #region 產生報表,請勿異動 if (!UseDataSet) { if (Dt != null) //有選到資料產生檔案 { if (EOT == ExcelOtherType.None)//無外掛Excel { LoadCrystalReport(DesDownLoadReportFileName, RPTFilePath, ref Dt, RP, ReportOutputFormat ); } else { switch (EOT) //外掛Excel { case ExcelOtherType.Normal: RenderDataTableToExcelByHSSFWorkbook(Dt, DesDownLoadReportFileName ); break; case ExcelOtherType.Index: break; case ExcelOtherType.Name: break; case ExcelOtherType.StringToExcel: //string 輸出成Excel break; default: break; } } Dt.Dispose(); } else { if (ExcelStr != "") { switch (EOT) { case ExcelOtherType.StringToExcel://string 輸出成Excel ExportStringToExcel(ExcelStr, DesDownLoadReportFileName ); break; default: break; } } ExcelStr = null; } } else //使用DataSet { if (Ds != null) //有選到資料產生檔案 { if (EOT == ExcelOtherType.None)//無外掛Excel { LoadCrystalReport(DesDownLoadReportFileName, RPTFilePath, ref Ds, RP, ReportOutputFormat ); } else { switch (EOT) //外掛Excel { case ExcelOtherType.Normal: RenderDataTableToExcelByHSSFWorkbook(Ds.Tables[0], DesDownLoadReportFileName ); break; case ExcelOtherType.Index: break; case ExcelOtherType.Name: break; case ExcelOtherType.StringToExcel: //string 輸出成Excel break; default: break; } } Ds.Dispose(); } } #endregion }