コード例 #1
0
        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);
                }

                //隱藏欄位賦值
                foreach (DataRow dr in dtCurrent.Rows)
                {
                    if (dr.RowState == DataRowState.Added || dr.RowState == DataRowState.Modified)
                    {
                        dr["SPNT1_W_TIME"]    = DateTime.Now;
                        dr["SPNT1_W_USER_ID"] = GlobalInfo.USER_ID;
                    }
                }

                dtChange = dtCurrent.GetChanges();
                ResultData result = new SPNT1().UpdateData(dtChange);
                if (result.Status == ResultStatus.Fail)
                {
                    return(ResultStatus.Fail);
                }
            } catch (Exception ex) {
                WriteLog(ex);
            }
            return(ResultStatus.Success);
        }
コード例 #2
0
ファイル: W40210.cs プロジェクト: KJTomYeh/RekindlePhoenixCI
        /// <summary>
        /// 3.6 跨商品折抵比率
        /// </summary>
        /// <param name="workbook"></param>
        /// <param name="is_eymd">yyyyMMdd</param>
        /// <param name="is_code"></param>
        /// <returns></returns>
        protected ResultStatus wf_40210_8(Workbook workbook, string is_eymd, List <string> is_code)
        {
            try {
                string reportId   = "40210_8";
                string reportName = "跨商品折抵比率";
                ShowMsg(reportId + '-' + reportName + " 轉檔中...");
                //1.get master dataTable
                DataTable dtTarget = dao40210.d_40210_8(is_eymd, is_code);

                if (dtTarget.Rows.Count <= 0)
                {
                    MessageDisplay.Info(string.Format("{0},{1}-{2},讀取無任何資料!", is_eymd, reportId, reportName), GlobalInfo.ResultText);
                    return(ResultStatus.Fail);
                }

                //1.1 write caption
                Worksheet worksheet = workbook.Worksheets[reportName];

                //欄位(B1, B5) value=T150 T180
                DataTable dtTemp = new SPNT1().ListData2();
                worksheet.Cells[0, 1].SetValue(dtTemp.Rows[0]["tinv_150"]);
                worksheet.Cells[4, 1].SetValue(dtTemp.Rows[0]["tinv_180"]);


                //1.2 write data
                foreach (DataRow dr in dtTarget.Rows)
                {
                    int rpt_col_num = dr["rpt_col_num"].AsInt() - 1;
                    worksheet.Cells[1, rpt_col_num].SetValue(dr["spns1_150_avg_val"]);
                    worksheet.Cells[2, rpt_col_num].SetValue(dr["spns1_150_std"]);
                    worksheet.Cells[3, rpt_col_num].SetValue(dr["spns2_150_rate"]);

                    worksheet.Cells[5, rpt_col_num].SetValue(dr["spns1_180_avg_val"]);
                    worksheet.Cells[6, rpt_col_num].SetValue(dr["spns1_180_std"]);
                    worksheet.Cells[7, rpt_col_num].SetValue(dr["spns2_180_rate"]);

                    worksheet.Cells[8, rpt_col_num].SetValue(dr["spns2_max_rate"]);


                    int     col               = dr["col"].AsInt();
                    int     row_1             = dr["row_1"].AsInt();
                    decimal spns2_cp_day_rate = Math.Truncate(dr["spns2_cp_day_rate"].AsDecimal() * 100) / 100;//ken,要把小數點第二位直接去掉,不能用Round
                    worksheet.Cells[row_1 - 1, col - 1].Value = spns2_cp_day_rate;

                    int     row_2          = dr["row_2"].AsInt();
                    decimal spns2_day_rate = Math.Truncate(dr["spns2_day_rate"].AsDecimal() * 100) / 100;//ken,要把小數點第二位直接去掉,不能用Round
                    worksheet.Cells[row_2 - 1, col - 1].Value = spns2_day_rate;
                }//foreach(DataRow dr in dtTarget.Rows){


                //2.get detail dataTable
                DataTable dtDetail = dao40210.d_40210_8_detail(is_eymd, is_code);

                if (dtDetail.Rows.Count <= 0)
                {
                    MessageDisplay.Info(string.Format("{0},{1}-{2}明細,讀取無任何資料!", is_eymd, reportId, reportName), GlobalInfo.ResultText);
                    return(ResultStatus.Fail);
                }

                //2.1 write data
                int      rowIndex = 20 - 1;
                DateTime ls_ymd   = DateTime.MinValue;
                foreach (DataRow dr in dtDetail.Rows)
                {
                    int      colIndex          = dr["rpt_col_num"].AsInt();
                    DateTime spns1d_detial_ymd = dr["spns1d_detial_ymd"].AsDateTime("yyyyMMdd");

                    if (ls_ymd != spns1d_detial_ymd)
                    {
                        ls_ymd = spns1d_detial_ymd;
                        rowIndex++;
                        worksheet.Cells[rowIndex, 0].SetValue(spns1d_detial_ymd.ToString("yyyy/MM/dd"));
                    }

                    worksheet.Cells[rowIndex, colIndex - 1].SetValue(dr["spns1d_t_val"]);
                }//foreach(DataRow dr in dtDetail.Rows){

                worksheet.ScrollTo(0, 0);
                flag++;

                return(ResultStatus.Success);
            } catch (Exception ex) {
                WriteLog(ex);
                return(ResultStatus.Fail);
            }
        }
コード例 #3
0
ファイル: W40210.cs プロジェクト: KJTomYeh/RekindlePhoenixCI
        protected override ResultStatus Export()
        {
            try {
                #region 輸入&日期檢核
                if (string.Compare(txtStartDate.Text, txtEndDate.Text) > 0)
                {
                    MessageDisplay.Error(CheckDate.Datedif, GlobalInfo.ErrorText);
                    return(ResultStatus.Fail);
                }
                #endregion

                //0.檢查日期跟商品是否有選擇正確
                //todo check
                if (cbxProd.CheckedItemsCount < 1)
                {
                    MessageDisplay.Warning("請勾選商品!", GlobalInfo.WarningText);
                    return(ResultStatus.Fail);
                }
                this.Cursor = Cursors.WaitCursor;
                this.Refresh();
                Thread.Sleep(5);
                labMsg.Visible = true;
                ShowMsg("訊息:資料轉出中........");
                //1.設定一些變數,把邏輯直接寫在該變數屬性內
                List <string> listCode = new List <string>();//多筆,用逗號分隔
                if (cbxProd.Items[0].CheckState == CheckState.Checked)
                {
                    listCode.Add("'1'");
                }
                if (cbxProd.Items[1].CheckState == CheckState.Checked)
                {
                    listCode.Add("'5'");
                }

                DataTable dtTemp  = new SPNT1().ListData();
                decimal   chi_150 = dtTemp.Rows[0][0].AsDecimal();
                decimal   chi_180 = dtTemp.Rows[0][1].AsDecimal();
                decimal   v365    = dtTemp.Rows[0][2].AsDecimal();


                //2.開始轉出資料
                panFilter.Enabled = false;
                panProd.Enabled   = false;
                //labMsg.Visible = true;
                //labMsg.Text = "訊息:資料轉出中........";
                //this.Refresh();

                //2.1 open xls
                string   excelDestinationPath = PbFunc.wf_copy_file(_ProgramID, _ProgramID, "");
                Workbook workbook             = new Workbook();
                workbook.LoadDocument(excelDestinationPath);
                flag = 0;

                //3.write sheet data
                if (cbxProd.Items[0].CheckState == CheckState.Checked ||
                    cbxProd.Items[1].CheckState == CheckState.Checked)
                {
                    //3.1 現貨data
                    wf_40210_3_old(workbook, StartDate, EndDate, listCode, TotalDayCount);

                    //3.2 指數選擇權VSR
                    wf_40210_4(workbook, StartDate, EndDate, listCode, chi_150, chi_180, v365, TotalDayCount);

                    //3.3 期貨data
                    wf_40210_5(workbook, StartDate, EndDate, listCode, TotalDayCount);

                    //3.4 期貨契約PSR
                    wf_40210_6(workbook, EndDate, listCode);

                    //3.5 Delta折耗比率
                    wf_40210_7(workbook, StartDate, EndDate, listCode, TotalDayCount);

                    //3.6 跨商品折抵比率
                    wf_40210_8(workbook, EndDate, listCode);
                }//if (cbxProd.Items[0].CheckState || cbxProd.Items[1].CheckState)

                //3.7 STC VSR計算
                if (cbxProd.Items[2].CheckState == CheckState.Checked)
                {
                    wf_40210_1(workbook, "STC", StartDate, EndDate, chi_150, chi_180, v365, TotalDayCount);
                }

                //3.8 ETC VSR計算
                if (cbxProd.Items[3].CheckState == CheckState.Checked)
                {
                    wf_40210_1(workbook, "ETC", StartDate, EndDate, chi_150, chi_180, v365, TotalDayCount);
                }

                if (flag <= 0)
                {
                    File.Delete(excelDestinationPath);
                    return(ResultStatus.Fail);
                }
                else
                {
                    //存檔
                    workbook.SaveDocument(excelDestinationPath);
                    ShowMsg("轉檔完成");
                    if (FlagAdmin)
                    {
                        System.Diagnostics.Process.Start(excelDestinationPath);
                    }
                    return(ResultStatus.Success);
                }
            } catch (Exception ex) {
                ShowMsg("轉檔錯誤");
                WriteLog(ex);
            } finally {
                panFilter.Enabled = true;
                panProd.Enabled   = true;
                labMsg.Text       = "";
                labMsg.Visible    = false;
                this.Cursor       = Cursors.Arrow;
                this.Refresh();
                Thread.Sleep(5);
            }
            return(ResultStatus.Fail);
        }