예제 #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="FilePath">Excel_Template</param>
 /// <param name="datetime">em_month.Text</param>
 public B30398(Workbook Workbook, string datetime)
 {
     _workbook    = Workbook;
     _emMonthText = datetime;
     daoAI3       = new AI3();
     daoAM2       = new AM2();
 }
예제 #2
0
        /// <summary>
        /// wf_30396
        /// </summary>
        /// <param name="IsKindID">商品代號</param>
        /// <param name="SheetName">工作表</param>
        /// <param name="RowIndex">Excel的Row位置</param>
        /// <param name="RowTotal">Excel的Column預留數</param>
        /// <returns></returns>
        public string Wf30396(string IsKindID = "BRF", string SheetName = "30396", int RowIndex = 1, int RowTotal = 33)
        {
            try {
                //前月倒數2天交易日
                DateTime StartDate = PbFunc.f_get_last_day("AI3", IsKindID, _emMonthText, 2);
                //抓當月最後交易日
                DateTime EndDate = PbFunc.f_get_end_day("AI3", IsKindID, _emMonthText);

                //切換Sheet
                Worksheet worksheet = _workbook.Worksheets[SheetName];
                //無前月資料

                int addRowCount = 0;//總計寫入的行數

                DataTable dtAI3 = new AI3().ListAI3(IsKindID, StartDate, EndDate);
                //讀取資料
                string firstDATE = dtAI3.AsEnumerable().FirstOrDefault()["AI3_DATE"].AsDateTime().ToString("yyyy/MM");
                if (firstDATE == _emMonthText)
                {
                    RowIndex = RowIndex + 2;
                }
                //寫入資料
                DateTime ldtYMD = new DateTime(1900, 1, 1);
                foreach (DataRow row in dtAI3.Rows)
                {
                    if (ldtYMD != row["AI3_DATE"].AsDateTime())
                    {
                        ldtYMD   = row["AI3_DATE"].AsDateTime();
                        RowIndex = RowIndex + 1;
                        addRowCount++;
                        worksheet.Rows[RowIndex][1 - 1].Value = ldtYMD.ToString("MM/dd");//日期
                    }
                    //if  not isnull(ld_val) then  iole_1.application.activecell(ii_ole_row, 3).value = ids_1.getitemdecimal(i, "ai3_close_price") - ids_1.getitemdecimal(i, "ai3_last_close_price")
                    //pb這段只會在Excel隱藏的欄位執行成功
                    if (RowIndex == 2 && row["AI3_LAST_CLOSE_PRICE"] != DBNull.Value)
                    {
                        worksheet.Rows[RowIndex][3 - 1].Value = row["AI3_CLOSE_PRICE"].AsDecimal() - row["AI3_LAST_CLOSE_PRICE"].AsDecimal(); //漲跌
                    }
                    worksheet.Rows[RowIndex][2 - 1].Value = row["AI3_CLOSE_PRICE"].AsDecimal();                                               //布蘭特原油期貨價格
                    worksheet.Rows[RowIndex][4 - 1].Value = row["AI3_M_QNTY"].AsDecimal();                                                    //布蘭特原油期貨總成交量
                    worksheet.Rows[RowIndex][5 - 1].Value = row["AI3_OI"].AsDecimal();                                                        //布蘭特原油期貨總未平倉量
                }
                //刪除空白列
                if (RowTotal > addRowCount)
                {
                    worksheet.Rows.Remove(RowIndex + 1, RowTotal - addRowCount);
                    //重新選取圖表範圍
                    ResetChartData(RowIndex + 1, _workbook, worksheet, $"{SheetName}a");//ex:30396a
                }
            }
            catch (Exception ex) {
#if DEBUG
                throw new Exception($"Wf30396:" + ex.Message);
#else
                throw ex;
#endif
            }

            return(MessageDisplay.MSG_OK);
        }
예제 #3
0
 /// <summary>
 /// 證期局七組月報
 /// </summary>
 /// <param name="FilePath">Excel_Template</param>
 /// <param name="datetime">em_month.Text</param>
 public B30310(string FilePath, string datetime)
 {
     daoAI2       = new AI2();
     daoAI3       = new AI3();
     dao30310     = new D30310();
     _lsFile      = FilePath;
     _emMonthText = datetime;
 }
예제 #4
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="FilePath">Excel_Template</param>
        /// <param name="datetime">em_month.Text</param>
        public B30393(Workbook workbook, string datetime)
        {
            _workbook    = workbook;
            _emMonthText = datetime;

            daoAI2 = new AI2();
            daoAI3 = new AI3();
            b30398 = new B30398(workbook, datetime);
        }
예제 #5
0
        public W30710(string programID, string programName) : base(programID, programName)
        {
            daoAI3 = new AI3();
            InitializeComponent();
            this.Text             = _ProgramID + "─" + _ProgramName;
            txtDate.DateTimeValue = GlobalInfo.OCF_DATE;

            ExportShow.Hide();
        }
예제 #6
0
        /// <summary>
        /// wf_30391()
        /// </summary>
        /// <param name="RowIndex">Excel的Row位置</param>
        /// <param name="RowTotal">Excel的Column預留數</param>
        /// <param name="IsKindID">商品代號</param>
        /// <param name="SheetName">工作表</param>
        /// <param name="RptName">作業名稱</param>
        /// <returns></returns>
        public string Wf30391(int RowIndex = 1, int RowTotal = 32, string IsKindID = "T5F", string SheetName = "30391", string RptName = "「台灣五十」期貨契約價量資料")
        {
            Workbook workbook = new Workbook();

            try {
                //前月倒數2天交易日
                DateTime StartDate = PbFunc.f_get_last_day("AI3", IsKindID, _emMonthText, 2);
                //抓當月最後交易日
                DateTime EndDate = PbFunc.f_get_end_day("AI3", IsKindID, _emMonthText);

                //切換Sheet
                workbook.LoadDocument(_lsFile);
                Worksheet worksheet = workbook.Worksheets[SheetName];

                //讀取資料
                DataTable dt = new AI3().ListAI3(IsKindID, StartDate, EndDate);
                if (dt.Rows.Count <= 0)
                {
                    return($"{StartDate.ToShortDateString()}~{EndDate.ToShortDateString()},30391-{RptName},{IsKindID}無任何資料!");
                }
                DateTime ldtYMD = new DateTime(1900, 1, 1);

                RowTotal = 32 + 1;   //Excel的Column預留數 預留顯示32行加上隱藏的1行
                int addRowCount = 0; //總計寫入的行數
                foreach (DataRow row in dt.Rows)
                {
                    if (ldtYMD != row["AI3_DATE"].AsDateTime())
                    {
                        ldtYMD   = row["AI3_DATE"].AsDateTime();
                        RowIndex = RowIndex + 1;
                        addRowCount++;
                        worksheet.Rows[RowIndex][1 - 1].Value = ldtYMD.ToString("MM/dd");       //日期
                    }
                    worksheet.Rows[RowIndex][2 - 1].Value = row["AI3_CLOSE_PRICE"].AsDecimal(); //臺灣50期貨指數
                    worksheet.Rows[RowIndex][4 - 1].Value = row["AI3_M_QNTY"].AsDecimal();      //臺灣50期貨總成交量
                    worksheet.Rows[RowIndex][5 - 1].Value = row["AI3_OI"].AsDecimal();          //臺灣50期貨總未平倉量
                    worksheet.Rows[RowIndex][6 - 1].Value = row["AI3_INDEX"].AsDecimal();       //臺灣50現貨指數
                }
                //刪除空白列
                if (RowTotal > addRowCount)
                {
                    worksheet.Rows.Remove(RowIndex + 1, RowTotal - addRowCount);
                }
            }
            catch (Exception ex) {
                throw ex;
            }
            finally {
                workbook.SaveDocument(_lsFile);
            }
            return(MessageDisplay.MSG_OK);
        }
예제 #7
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="FilePath">Excel_Template</param>
 /// <param name="datetime">em_month.Text</param>
 public B30330(string FilePath, string datetime)
 {
     daoAI3       = new AI3();
     _lsFile      = FilePath;
     _emMonthText = datetime;
 }