protected override ResultStatus Print(ReportHelper reportHelper)
        {
            ShowMsg("列印中...");
            try {
                //ShowFormWait();
                CommonReportLandscapeA4 reportLandscapeA4 = new CommonReportLandscapeA4();
                if (_defReport == null)
                {
                    _defReport = new defReport();
                }
                XtraReport xtraReport    = reportHelper.CreateCompositeReport(_defReport, reportLandscapeA4);
                string     dateCondition = DateText() == "" ? "" : "," + DateText();
                reportHelper.LeftMemo = ConditionText() + dateCondition;
                reportHelper.Create(xtraReport);

                reportHelper.Print(reportHelper.MainReport);
                ShowReport(_defReport);//xtraReport列印後畫面會莫名被清空,所以重新讓它顯示
                //CloseFormWait();
            }
            catch (Exception ex) {
                WriteLog(ex);
                throw ex;
            }
            finally {
                EndExport("列印完成!");
            }

            return(ResultStatus.Success);
        }
        protected override ResultStatus Print(ReportHelper reportHelper)
        {
            ShowMsg("列印中...");
            try {
                CommonReportPortraitA4 reportPortraitA4 = new CommonReportPortraitA4();
                if (_defReport == null)
                {
                    _defReport = new defReport();
                }

                _defReport.SetMemoInPageFooter("註:★代表收盤前40秒間詢價");
                XtraReport xtraReport    = reportHelper.CreateCompositeReport(_defReport, reportPortraitA4);
                string     dateCondition = DateText() == "" ? "" : "," + DateText();
                reportHelper.LeftMemo = ConditionText() + dateCondition;
                reportHelper.Create(xtraReport);

                reportHelper.Print(reportHelper.MainReport);
                ShowReport(_defReport);
            }
            catch (Exception ex) {
                WriteLog(ex);
                throw ex;
            }
            finally {
                EndExport("列印完成!");
            }

            return(ResultStatus.Success);
        }
        protected override ResultStatus Retrieve()
        {
            if (gbDetial.EditValue.Equals("rb_detail"))
            {
                MessageDisplay.Warning("明細資料僅提供「轉出」CSV檔案,請按轉出功能!");
                return(ResultStatus.Fail);
            }
            if (!StartRetrieve())
            {
                return(ResultStatus.Fail);
            }

            if (!GetData())
            {
                return(ResultStatus.Fail);
            }

            List <ReportProp> caption = new List <ReportProp> {
                new ReportProp {
                    DataColumn = "AMM0_YMD", Caption = "日期", CellWidth = gbDetial.EditValue.Equals("rb_gnodate")?120:65, DetailRowFontSize = gbDetial.EditValue.Equals("rb_gnodate")?8:9, HeaderFontSize = 11
                },
                new ReportProp {
                    DataColumn = "AMM0_BRK_NO", Caption = "期貨商        代號", CellWidth = 80, DetailRowFontSize = 10, HeaderFontSize = 11
                },
                new ReportProp {
                    DataColumn = "BRK_ABBR_NAME", Caption = "期貨商名稱", CellWidth = 150, DetailRowFontSize = 9.75f, HeaderFontSize = 11
                },
                new ReportProp {
                    DataColumn = "AMM0_CNT", Caption = "詢價筆數", CellWidth = gbDetial.EditValue.Equals("rb_gnodate")?90:120, textAlignment = TextAlignment.MiddleRight, DetailRowFontSize = 11, HeaderFontSize = 11
                },
                new ReportProp {
                    DataColumn = "CP_RATE_VALID_CNT", Caption = "佔全市場            詢價比例(%)", CellWidth = 100, textAlignment = TextAlignment.MiddleRight, TextFormatString = "{0:##0.0#}", DetailRowFontSize = 11, HeaderFontSize = 11
                },
                new ReportProp {
                    DataColumn = "AMM0_MARKET_R_CNT", Caption = "全市場                詢價筆數", CellWidth = 120, textAlignment = TextAlignment.MiddleRight, DetailRowFontSize = 11, HeaderFontSize = 11
                }
            };

            //商品名稱會根據列印順序有所不同
            ReportProp productName = new ReportProp {
                DataColumn = "AMM0_PROD_ID", Caption = "商品名稱", CellWidth = 120, DetailRowFontSize = 11, HeaderFontSize = 11
            };

            if (_D500Xx.SortType == "P")
            {
                caption.Insert(1, productName);//選擇商品,商品名稱會位於第二欄
            }
            else
            {
                caption.Insert(3, productName);//選擇造勢者,商品名稱會位於第四欄
            }

            _defReport = new defReport(_Data, caption);
            ShowReport(_defReport);

            //WriteLog("查詢資料 " + _D500Xx.LogText, "query", "R");
            return(ResultStatus.Success);
        }
        protected override ResultStatus Retrieve()
        {
            documentViewer1.DocumentSource = null;

            try {
                ShowMsg("開始讀取");
                if (!GetData())
                {
                    return(ResultStatus.Fail);
                }

                ShowMsg("資料搜尋...");
                //判斷連續x個月不符造市規定
                DataTable ids = b50032.CompareDataByParallel(_Data, SleCMth.Text);
                _Data = b50032.FilterDataByParallel(_Data, ids);

                ShowMsg("讀取中...");

                List <ReportProp> caption = new List <ReportProp> {
                    new ReportProp {
                        DataColumn = "CP_ROW", Caption = "筆數", CellWidth = 40, DetailRowFontSize = 8, HeaderFontSize = 11
                    },
                    new ReportProp {
                        DataColumn = "AMM0_BRK_NO", Caption = "期貨商        代號", CellWidth = 70, DetailRowFontSize = 10, HeaderFontSize = 11, DataRowMerge = true
                    },
                    new ReportProp {
                        DataColumn = "BRK_ABBR_NAME", Caption = "期貨商名稱", CellWidth = 150, DetailRowFontSize = 9, HeaderFontSize = 11, DataRowMerge = true
                    },
                    new ReportProp {
                        DataColumn = "AMM0_ACC_NO", Caption = "帳號", CellWidth = 60, DetailRowFontSize = 10, HeaderFontSize = 11, DataRowMerge = true
                    },
                    new ReportProp {
                        DataColumn = "AMM0_PROD_ID", Caption = "商品名稱", CellWidth = 80, DetailRowFontSize = 10, HeaderFontSize = 11, DataRowMerge = true
                    },
                    new ReportProp {
                        DataColumn = "AMM0_YMD", Caption = "日期", CellWidth = 65, DetailRowFontSize = 9, HeaderFontSize = 11
                    },
                    new ReportProp {
                        DataColumn = "AMM0_OM_QNTY", Caption = "委託          成交量", CellWidth = 65, textAlignment = TextAlignment.MiddleRight, TextFormatString = "{0:#,##0}", DetailRowFontSize = 10, HeaderFontSize = 11
                    },
                    new ReportProp {
                        DataColumn = "AMM0_QM_QNTY", Caption = "報價          成交量", CellWidth = 65, textAlignment = TextAlignment.MiddleRight, TextFormatString = "{0:#,##0}", DetailRowFontSize = 10, HeaderFontSize = 11
                    },
                    new ReportProp {
                        DataColumn = "QNTY", Caption = "造市量", CellWidth = 65, textAlignment = TextAlignment.MiddleRight, TextFormatString = "{0:#,##0}", DetailRowFontSize = 10, HeaderFontSize = 11,
                        Expression = new DevExpress.XtraReports.UI.ExpressionBinding[] {
                            new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[QNTY]"),
                            new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "BackColor", "Iif ([QNTY] < [MMF_QNTY_LOW], RGB(255,128,255), RGB(255,255,255))")
                        }
                    },
                    new ReportProp {
                        DataColumn = "CP_M_QNTY", Caption = "造市者   總成交量", CellWidth = 75, textAlignment = TextAlignment.MiddleRight, TextFormatString = "{0:#,##0}", DetailRowFontSize = 10, HeaderFontSize = 11
                    },
                    new ReportProp {
                        DataColumn = "CP_RATE_M", Caption = "總成交量   市佔率(%)", CellWidth = 60, textAlignment = TextAlignment.MiddleRight, TextFormatString = "{0:##0.0#}", DetailRowFontSize = 10, HeaderFontSize = 8
                    },
                    new ReportProp {
                        DataColumn = "AMM0_VALID_CNT", Caption = "有效報價     筆數", CellWidth = 75, textAlignment = TextAlignment.MiddleRight, TextFormatString = "{0:#,##0}", DetailRowFontSize = 10, HeaderFontSize = 11
                    },
                    new ReportProp {
                        DataColumn = "VALID_RATE", Caption = "有效報/詢價   比例(%)", CellWidth = 70, textAlignment = TextAlignment.MiddleRight, TextFormatString = "{0:##0.0#}", DetailRowFontSize = 10, HeaderFontSize = 8,
                        Expression = new DevExpress.XtraReports.UI.ExpressionBinding[] {
                            new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "Text", "[VALID_RATE]"),
                            new DevExpress.XtraReports.UI.ExpressionBinding("BeforePrint", "BackColor", "Iif ([VALID_RATE] < [MMF_RESP_RATIO], RGB(255,128,255), RGB(255,255,255))")
                        }
                    },
                    new ReportProp {
                        DataColumn = "AMM0_MARKET_R_CNT", Caption = "全市場   詢價筆數", CellWidth = 75, textAlignment = TextAlignment.MiddleRight, TextFormatString = "{0:#,##0}", DetailRowFontSize = 10, HeaderFontSize = 11
                    },
                    new ReportProp {
                        DataColumn = "AMM0_MARKET_M_QNTY", Caption = "全市場   總成交量", CellWidth = 75, textAlignment = TextAlignment.MiddleRight, TextFormatString = "{0:#,##0}", DetailRowFontSize = 10, HeaderFontSize = 11
                    },
                    new ReportProp {
                        DataColumn = "AMM0_KEEP_FLAG", Caption = "符合報價每日平均維持時間", CellWidth = 55, textAlignment = TextAlignment.MiddleCenter, DetailRowFontSize = 10, HeaderFontSize = 8
                    }
                };
                _defReport = new defReport(_Data, caption);
                ShowReport(_defReport);

                ShowMsg("匯出檔案...");
                string destinationFilePath = Path.Combine(GlobalInfo.DEFAULT_REPORT_DIRECTORY_PATH, "50032.xlsx");
                try {
                    Workbook workbook = new Workbook();
                    workbook.CreateNewDocument();
                    workbook.SaveDocument(destinationFilePath, DocumentFormat.Xlsx);
                    ids.Columns.Remove(ids.Columns["CP_ROW"]);
                    ids.Columns.Remove(ids.Columns["CP_M_QNTY"]);
                    ids.Columns.Remove(ids.Columns["CP_RATE_M"]);
                    ids.Columns.Remove(ids.Columns["CP_INVALID"]);
                    workbook.Worksheets[0].Import(ids, true, 0, 0);
                    workbook.SaveDocument(destinationFilePath);
                }
                catch (Exception ex) {
                    if (File.Exists(destinationFilePath))
                    {
                        File.Delete(destinationFilePath);
                    }
                    throw ex;
                }
            }
            catch (Exception ex) {
                throw ex;
            }
            finally {
                EndExport();
            }

            return(ResultStatus.Success);
        }