Exemplo n.º 1
0
        /// <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
                                                   )
                                    );
            }

        }
Exemplo n.º 2
0
        /// <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();
            }
        }
Exemplo n.º 3
0
        /// <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();
            }
        }
Exemplo n.º 4
0
        /// <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
        }