protected override ResultStatus Open() { base.Open(); labTradeDate.Text = "交易日期:" + PbFunc.f_ocf_date(0, "fut"); //設定價差數值型態下拉選單 List <LookupItem> priceFluc = new List <LookupItem>() { new LookupItem() { ValueMember = "F", DisplayMember = " " }, new LookupItem() { ValueMember = "P", DisplayMember = "百分比" } }; //價差數值型態下拉選單 lupPriceFluc = new RepositoryItemLookUpEdit(); lupPriceFluc.SetColumnLookUp(priceFluc, "ValueMember", "DisplayMember", TextEditStyles.DisableTextEditor, ""); gcMain.RepositoryItems.Add(lupPriceFluc); wf_retrieve(); return(ResultStatus.Success); }
/// <summary> /// PB在這邊設定dataWindow的連線 /// </summary> protected virtual void Open() { //Input Condition em_date.Text = PbFunc.f_ocf_date(0); em_month.Text = em_date.Text.Substring(0, 6); DateTime.TryParse(em_date.Text, out gdt_ocf_date); st_msg_txt.Visible = false; }
protected override ResultStatus Open() { if (DesignMode) { return(ResultStatus.Success); } base.Open(); txtPrevOcfDate.DateTimeValue = PbFunc.f_ocf_date(5, _DB_TYPE).AsDateTime("yyyyMMdd"); //GlobalInfo.OCF_DATE; return(ResultStatus.Success); }
protected override ResultStatus Open() { if (DesignMode) { return(ResultStatus.Success); } base.Open(); //txtPrevOcfDate.DateTimeValue = GlobalInfo.OCF_PREV_DATE; txtOcfDate.DateTimeValue = PbFunc.f_ocf_date(0, _DB_TYPE).AsDateTime(); //GlobalInfo.OCF_DATE; gcMain.DataSource = servicePrefix1.ListTxfByTxn(_ProgramID).Trim(); gcLogsp.DataSource = servicePrefix1.ListLogsp(txtOcfDate.DateTimeValue, _ProgramID).Trim(); return(ResultStatus.Success); }
private void wf_70010(string marketCode) { DateTime edate = txtOcfDate.DateTimeValue; #region 日 string symd = edate.ToString("yyyyMM01"); string eymd = txtOcfDate.FormatValue; createFile(symd, eymd, "D", "Daily", marketCode); #endregion string nextYmd = PbFunc.f_ocf_date(2, _DB_TYPE); DateTime nextDate = DateTime.ParseExact(nextYmd, "yyyyMMdd", null); DayOfWeek nextYmdDayNum = nextDate.DayOfWeek; #region 月 nextYmd = nextYmd.Substring(0, 6); symd = edate.ToString("yyyy01"); eymd = edate.ToString("yyyyMM"); // 當下營業日換月份時,才產出月檔 if (eymd != nextYmd) { createFile(symd, eymd, "M", "Monthly", marketCode); } #endregion #region 週 DayOfWeek dayNum = edate.DayOfWeek; eymd = txtOcfDate.FormatValue; symd = ""; if (dayNum > nextYmdDayNum && Math.Abs(new TimeSpan(edate.Ticks - nextDate.Ticks).Days) > 6) { createFile(symd, eymd, "D", "Weekly", marketCode); } #endregion #region 年 eymd = edate.ToString("yyyy"); nextYmd = nextYmd.Substring(0, 4); if (eymd != nextYmd) { symd = (int.Parse(eymd) - 9).ToString(); createFile(symd, eymd, "Y", "Yearly", marketCode); } #endregion }
protected override ResultStatus Open() { if (DesignMode) { return(ResultStatus.Success); } base.Open(); //txtPrevOcfDate.DateTimeValue = GlobalInfo.OCF_PREV_DATE; txtOcfDate.DateTimeValue = PbFunc.f_ocf_date(0, _DB_TYPE).AsDateTime(); //GlobalInfo.OCF_DATE; OCF_TYPE = txtOcfDate.DateType == BaseGround.Widget.TextDateEdit.DateTypeItem.Month ? "M" : "D"; gcMain.DataSource = servicePrefix1.ListTxfByTxn(_ProgramID).Trim(); gcLogsp.DataSource = servicePrefix1.ListLogsp(txtOcfDate.DateTimeValue, _ProgramID, OCF_TYPE).Trim(); gvSpLog.AppearancePrint.HeaderPanel.Font = new Font("標楷體", 10); gvSpLog.AppearancePrint.Row.Font = new Font("標楷體", 10); return(ResultStatus.Success); }
//protected override ResultStatus Run(PokeBall args) //{ // this.BeginInvoke(new MethodInvoker(() => { // args.GridControlMain = gcMain; // args.GridControlSecond = gcLogsp; // args.OcfDate = txtOcfDate.DateTimeValue; // args.OcfType = OCF_TYPE; // })); // ResultStatus result = base.RunAsync(args); // return result; //} /// <summary> /// 1系列功能使用 /// </summary> /// <param name="args"></param> /// <returns></returns> protected override ResultStatus Run(PokeBall args) { DateTime OcfDate = txtOcfDate.DateTimeValue; this.Invoke(new MethodInvoker(() => { FormWait formWait = new FormWait(); SplashScreenManager.ShowForm(this, typeof(FormWait), true, true); //SplashScreenManager.ShowForm(this , typeof(FormWait) , true , true , SplashFormStartPosition.Manual , pointWait , ParentFormState.Locked); })); GridView gv = gvMain; DataTable dtLOGSPForRuned = servicePrefix1.ListLogspForRunned(OcfDate, _ProgramID, OCF_TYPE); DataView dvLOGSPForRuned = new DataView(dtLOGSPForRuned); servicePrefix1.SetTXF1(" ", _ProgramID); for (int i = 0; i < gv.RowCount; i++) { string TXF_SERVER = gv.GetRowCellValue(i, "TXF_SERVER").AsString(); string TXF_DB = gv.GetRowCellValue(i, "TXF_DB").AsString(); string TXF_TXN_ID = gv.GetRowCellValue(i, "TXF_TXN_ID").AsString(); int TXF_SEQ_NO = gv.GetRowCellValue(i, "TXF_SEQ_NO").AsInt(); string TXF_TYPE = gv.GetRowCellValue(i, "TXF_TYPE").AsString(); string TXF_TID = gv.GetRowCellValue(i, "TXF_TID").AsString(); string TXF_TID_NAME = gv.GetRowCellValue(i, "TXF_TID_NAME").AsString(); string TXF_DESC = gv.GetRowCellValue(i, "TXF_DESC").AsString(); string TXF_DEFAULT = gv.GetRowCellValue(i, "TXF_DEFAULT").AsString(); string TXF_REDO = gv.GetRowCellValue(i, "TXF_REDO").AsString(); string TXF_ARG = gv.GetRowCellValue(i, "TXF_ARG").AsString(); string TXF_PERIOD = gv.GetRowCellValue(i, "TXF_PERIOD").AsString(); string TXF_SERVICE = gv.GetRowCellValue(i, "TXF_SERVICE").AsString(); string TXF_FOLDER = gv.GetRowCellValue(i, "TXF_FOLDER").AsString(); string TXF_AP_NAME = gv.GetRowCellValue(i, "TXF_AP_NAME").AsString(); args.TXF_TID = TXF_TID; args.TXF_TID_NAME = TXF_TID_NAME; if (TXF_DEFAULT == "1") { DateTime LOGSP_DATE = OcfDate; string LOGSP_TXN_ID = _ProgramID; int LOGSP_SEQ_NO = TXF_SEQ_NO; string LOGSP_TID = TXF_DESC; string LOGSP_TID_NAME = TXF_TID_NAME; DateTime LOGSP_BEGIN_TIME = new DateTime(); DateTime LOGSP_END_TIME = new DateTime(); string LOGSP_MSG = ""; //判斷是否可重覆執行 if (TXF_REDO == "N") { dvLOGSPForRuned.RowFilter = "LOGSP_TID='" + LOGSP_TID + "' AND NOT ISNULL(LOGSP_BEGIN_TIME)"; if (dvLOGSPForRuned.Count != 0) { if (MessageDisplay.Choose(TXF_TID + " ★★★曾經執行過且不可重覆執行,是否強迫繼續執行 ?") == DialogResult.No) { return(ResultStatus.Fail); } } } #region 開始執行 LOGSP_BEGIN_TIME = DateTime.Now; string nextYmd = PbFunc.f_ocf_date(2, _DB_TYPE); if (!string.IsNullOrEmpty(TXF_PERIOD)) { switch (TXF_PERIOD) { case "M": //月底執行 if (OcfDate.ToString("yyyyMM") == PbFunc.Left(nextYmd, 6)) { LOGSP_MSG = "完成! (今日非月底,不需執行)"; this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "TXF_DEFAULT", 0); })); } break; case "W": //週最後一天執行 if (Convert.ToInt32(OcfDate.DayOfWeek) < Convert.ToInt32(nextYmd.AsDateTime("yyyyMMdd").DayOfWeek)) { LOGSP_MSG = "完成! (今日非本週最後1天,不需執行)"; this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "TXF_DEFAULT", 0); })); } break; case "Y": //年底執行 if (OcfDate.ToString("yyyy") == PbFunc.Left(nextYmd, 4)) { LOGSP_MSG = "完成! (今日非本年度最後1日,不需執行)"; this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "TXF_DEFAULT", 0); })); } break; } LOGSP_END_TIME = DateTime.Now; servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE); continue; } //開始前執行特別的Function string rtnText = RunBeforeEveryItem(args); if (!string.IsNullOrEmpty(rtnText)) { if (PbFunc.Left(rtnText, 4) == "不需執行") { LOGSP_MSG = "完成! (" + rtnText + ")"; gv.SetRowCellValue(i, "ERR_MSG", LOGSP_MSG); gv.SetRowCellValue(i, "TXF_DEFAULT", 0); LOGSP_END_TIME = DateTime.Now; servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE); } else { if (MessageDisplay.Choose($"{rtnText}是否強迫繼續執行?", MessageBoxDefaultButton.Button2).AsInt() == 2) { gv.SetRowCellValue(i, "ERR_MSG", rtnText); continue; } } } //記錄正在執行 servicePrefix1.SetTXF1(TXF_TID, _ProgramID); servicePrefix1.SaveLogs(LOGSP_DATE, TXF_TID, DateTime.Now, GlobalInfo.USER_ID, "開始執行"); ResultData resultData = new ResultData(); string fileName = ""; switch (TXF_TYPE) { //Informatica case "I": fileName = $@"{GlobalInfo.DEFAULT_BATCH_ErrSP_DIRECTORY_PATH}\{TXF_SERVER}_{TXF_TXN_ID}_{TXF_SEQ_NO}_infor"; resultData = serviceCommon.ExecuteInfoWorkFlow(TXF_TID, UserProgInfo, TXF_FOLDER, TXF_SERVICE, TXF_AP_NAME, fileName); break; //SP case "S": List <DbParameterEx> listParams = null; // 如果這個SP有參數的話 if (TXF_ARG == "Y") { DataTable dtTXFPARM = serviceCommon.ListTXFPARM(TXF_SERVER, TXF_DB, TXF_TXN_ID, TXF_TID); if (dtTXFPARM.Rows.Count > 0) { listParams = new List <DbParameterEx>(); } foreach (DataRow row in dtTXFPARM.Rows) { string TXFPARM_ARG = row["TXFPARM_ARG"].AsString(); string TXFPARM_ARG_TYPE = row["TXFPARM_ARG_TYPE"].AsString(); string TXFPARM_DEFAULT = row["TXFPARM_DEFAULT"].AsString(); DbParameterEx paramEx; switch (TXFPARM_ARG) { case "": paramEx = new DbParameterEx("", TXFPARM_DEFAULT); listParams.Add(paramEx); break; case "em_ymd": paramEx = new DbParameterEx("", OcfDate.ToString("yyyyMMdd")); listParams.Add(paramEx); break; case "em_ym": paramEx = new DbParameterEx("", OcfDate.ToString("yyyyMM")); listParams.Add(paramEx); break; case "em_date": paramEx = new DbParameterEx(); paramEx.DbType = DbTypeEx.Date; paramEx.Name = ""; paramEx.Value = OcfDate; listParams.Add(paramEx); break; default: break; } } } ConnectionInfo connectionInfo = SettingDragons.Instance.GetConnectionInfo(TXF_DB); try { resultData = serviceCommon.ExecuteStoredProcedure(connectionInfo, string.Format("{0}.{1}", TXF_DB, TXF_TID), listParams, true); } catch (Exception ex) { resultData.Status = ResultStatus.Fail; string msg = fileName = $@"{GlobalInfo.DEFAULT_BATCH_ErrSP_DIRECTORY_PATH}\{TXF_SERVER}_{TXF_TXN_ID}_{TXF_SEQ_NO}.err"; System.IO.File.WriteAllText(fileName, ex.Message); resultData.returnString = $"請通知「{TXF_AP_NAME}」 作業執行失敗!\n{ex.Message}"; } break; //視窗功能 case "W": this.Invoke(new MethodInvoker(() => { resultData = ExecuteForm(args); })); break; default: break; } LOGSP_END_TIME = DateTime.Now; if (resultData.Status == ResultStatus.Success) { LOGSP_MSG = "執行正常完成!"; } else { LOGSP_MSG = "作業執行失敗!"; servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE); //MessageDisplay.Error("序號" + LOGSP_SEQ_NO + "的" + LOGSP_TID + "," + LOGSP_MSG); MessageDisplay.Error(resultData.returnString); this.Invoke(new MethodInvoker(() => { SplashScreenManager.CloseForm(); gv.SetRowCellValue(i, "ERR_MSG", LOGSP_MSG); })); return(ResultStatus.Fail); } this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "ERR_MSG", LOGSP_MSG); })); servicePrefix1.SaveLogsp(LOGSP_DATE, LOGSP_TXN_ID, LOGSP_SEQ_NO, LOGSP_TID, LOGSP_TID_NAME, LOGSP_BEGIN_TIME, LOGSP_END_TIME, LOGSP_MSG, OCF_TYPE); servicePrefix1.SaveLogs(LOGSP_DATE, TXF_TID, DateTime.Now, GlobalInfo.USER_ID, "執行完畢"); #endregion 開始執行 #region 執行特別的程式 this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "TXF_DEFAULT", 0); RunAfterEveryItem(args); })); #endregion 執行特別的程式 //流程時間控制 DataTable dtJRF = servicePrefix1.ListJrf(_ProgramID, TXF_TID); if (dtJRF.Rows.Count > 0) { string JRF_DO_TXN_ID = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString(); string JRF_DO_JOB_TYPE = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString(); string JRF_DO_SEQ_NO = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString(); string JRF_SW_CODE = dtJRF.Rows[0]["JRF_DO_TXN_ID"].AsString(); servicePrefix1.UpdateJsw(JRF_DO_TXN_ID, JRF_DO_JOB_TYPE, JRF_DO_SEQ_NO, JRF_SW_CODE, OcfDate, DateTime.Now, GlobalInfo.USER_ID); } } else { // 沒勾選項目的話清空狀態 this.Invoke(new MethodInvoker(() => { gv.SetRowCellValue(i, "ERR_MSG", ""); })); } if (i == gv.RowCount - 1 && OCF_TYPE == "D") { servicePrefix1.setCIOCF(); } } //全部結束 servicePrefix1.SetTXF1(" ", _ProgramID); this.Invoke(new MethodInvoker(() => { SplashScreenManager.CloseForm(); })); return(ResultStatus.Success); }
//RadioButton 判斷 private int wf_retrieve() { try { string ls_dw_name, ls_date; systemType = ""; if (gbMarket.EditValue.AsString() == "rbMarket1") { ls_dw_name = ""; if (gbType.EditValue.AsString() == "rbTypeFut") { ls_dw_name += "_fut"; ls_date = PbFunc.f_ocf_date(0, "futAH"); systemType = "(期貨夜盤)"; } else { ls_dw_name += "_opt"; ls_date = PbFunc.f_ocf_date(0, "optAH"); systemType = "(選擇權夜盤)"; } ls_dw_name += "_AH"; } else { ls_dw_name = ""; if (gbType.EditValue.AsString() == "rbTypeFut") { ls_dw_name += "_fut"; ls_date = PbFunc.f_ocf_date(0, "fut"); systemType = "(期貨一般)"; } else { ls_dw_name += "_opt"; ls_date = PbFunc.f_ocf_date(0, "opt"); systemType = "(選擇權一般)"; } } //若資料有變動 未儲存前retrieve則跳出msg //if dw_1.modifiedCount() > 0 then // if messagebox(gs_t_question , "資料有異動,是否放棄異動?" , Question!, YesNo!, 2) <> 1 then // return -1 // end if //end if DataTable dt = dao51070.ListData(ls_dw_name); labTradeDate.Text = "交易日期:" + (ls_date == "0001/01/01" ? " " : ls_date); //1. 設定gvMain gvMain.Columns.Clear(); gvMain.OptionsBehavior.AutoPopulateColumns = true; gcMain.DataSource = dt; string[] showColCaption = { "商品", "最大值", "最小值", "價差", $"月份{Environment.NewLine}順序", $"報價價差{Environment.NewLine}放寬倍數", $"價差{Environment.NewLine}max", " ", $"最低{Environment.NewLine}報價口數", $"價差{Environment.NewLine}數值型態" }; //1.1 設定欄位caption foreach (DataColumn dc in dt.Columns) { gvMain.SetColumnCaption(dc.ColumnName, showColCaption[dt.Columns.IndexOf(dc)]); gvMain.Columns[dc.ColumnName].AppearanceHeader.TextOptions.WordWrap = WordWrap.Wrap; gvMain.Columns[dc.ColumnName].AppearanceCell.TextOptions.WordWrap = WordWrap.Wrap; //設定合併欄位(一樣的值不顯示) gvMain.OptionsView.AllowCellMerge = true; gvMain.Columns[dc.ColumnName].AppearanceCell.TextOptions.VAlignment = VertAlignment.Center; gvMain.Columns[dc.ColumnName].OptionsColumn.AllowMerge = (dc.ColumnName == "SLT_KIND_ID") ? DefaultBoolean.True : DefaultBoolean.False; } //1.2 設定dropdownlist gvMain.Columns["SLT_PRICE_FLUC"].ColumnEdit = lupPriceFluc; lupPriceFluc.ReadOnly = true; //1.3 設定欄位順序 gvMain.Columns["SLT_KIND_ID"].VisibleIndex = 0; gvMain.Columns["SLT_MIN"].VisibleIndex = 1; gvMain.Columns["SLT_MAX"].VisibleIndex = 2; gvMain.Columns["SLT_SPREAD"].VisibleIndex = 3; gvMain.Columns["SLT_SPREAD_LONG"].VisibleIndex = 4; gvMain.Columns["SLT_SPREAD_MULTI"].VisibleIndex = 5; gvMain.Columns["SLT_SPREAD_MAX"].VisibleIndex = 6; gvMain.Columns["SLT_VALID_QNTY"].VisibleIndex = 7; gvMain.Columns["SLT_PRICE_FLUC"].VisibleIndex = 8; gvMain.Columns["OP_TYPE"].VisibleIndex = 9; //1.4 設定cell style gvMain.Columns["OP_TYPE"].AppearanceCell.ForeColor = Color.Red; gvMain.Columns["SLT_KIND_ID"].VisibleIndex = 1; gvMain.Columns["SLT_PRICE_FLUC"].AppearanceCell.ForeColor = Color.Red; gvMain.Columns["SLT_PRICE_FLUC"].AppearanceCell.TextOptions.HAlignment = HorzAlignment.Center; //1.5 設定欄位format格式 RepositoryItemTextEdit spread = new RepositoryItemTextEdit(); gcMain.RepositoryItems.Add(spread); gvMain.Columns["SLT_SPREAD"].ColumnEdit = spread; spread.DisplayFormat.FormatType = FormatType.Numeric; spread.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric; spread.DisplayFormat.FormatString = "########0.####"; spread.Mask.EditMask = "########0.####"; spread.MaxLength = 14; RepositoryItemTextEdit multi = new RepositoryItemTextEdit(); gcMain.RepositoryItems.Add(multi); gvMain.Columns["SLT_SPREAD_MULTI"].ColumnEdit = multi; multi.DisplayFormat.FormatType = FormatType.Numeric; multi.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric; multi.DisplayFormat.FormatString = "#######0.####"; multi.Mask.EditMask = "#######0.####"; multi.MaxLength = 13; RepositoryItemTextEdit max = new RepositoryItemTextEdit(); gcMain.RepositoryItems.Add(max); gvMain.Columns["SLT_SPREAD_MAX"].ColumnEdit = max; max.DisplayFormat.FormatType = FormatType.Numeric; max.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric; max.DisplayFormat.FormatString = "#######0.####"; max.Mask.EditMask = "#######0.####"; max.MaxLength = 13; RepositoryItemTextEdit qnty = new RepositoryItemTextEdit(); gcMain.RepositoryItems.Add(qnty); gvMain.Columns["SLT_VALID_QNTY"].ColumnEdit = qnty; qnty.MaxLength = 9; gvMain.BestFitColumns(); GridHelper.SetCommonGrid(gvMain); gvMain.Columns["OP_TYPE"].Width = 25; gcMain.Focus(); return(1); } catch (Exception ex) { WriteLog(ex); return(-1); } }
protected override ResultStatus Save(PokeBall poke) { try { DataTable dtCurrent = (DataTable)gcMain.DataSource; gvMain.CloseEditor(); gvMain.UpdateCurrentRow(); DataTable dtChange = dtCurrent.GetChanges(); DataTable dtForAdd = dtCurrent.GetChanges(DataRowState.Added); DataTable dtForModified = dtCurrent.GetChanges(DataRowState.Modified); DataTable dtForDeleted = dtCurrent.GetChanges(DataRowState.Deleted); if (dtChange == null) { MessageDisplay.Warning("沒有變更資料,不需要存檔!", GlobalInfo.WarningText); return(ResultStatus.Fail); } if (dtChange.Rows.Count == 0) { MessageDisplay.Warning("沒有變更資料,不需要存檔!", GlobalInfo.WarningText); return(ResultStatus.Fail); } dtChange = dtCurrent.GetChanges(); string ls_dw_name, ls_date; systemType = ""; if (gbMarket.EditValue.AsString() == "rbMarket1") { ls_dw_name = ""; if (gbType.EditValue.AsString() == "rbTypeFut") { ls_dw_name += "_fut"; ls_date = PbFunc.f_ocf_date(0, "futAH"); systemType = "(期貨夜盤)"; } else { ls_dw_name += "_opt"; ls_date = PbFunc.f_ocf_date(0, "optAH"); systemType = "(選擇權夜盤)"; } ls_dw_name += "_AH"; } else { ls_dw_name = ""; if (gbType.EditValue.AsString() == "rbTypeFut") { ls_dw_name += "_fut"; ls_date = PbFunc.f_ocf_date(0, "fut"); systemType = "(期貨一般)"; } else { ls_dw_name += "_opt"; ls_date = PbFunc.f_ocf_date(0, "opt"); systemType = "(選擇權一般)"; } } ResultData result = dao51070.UpdateData(dtChange, ls_dw_name); if (result.Status == ResultStatus.Fail) { return(ResultStatus.Fail); } Print(_ReportHelper); //AfterSaveForPrint(gcMain , dtChange , systemType); } catch (Exception ex) { WriteLog(ex); } return(ResultStatus.Success); }