/// <summary> /// wf_30017down /// </summary> /// <param name="asYmd"></param> /// <param name="ws"></param> /// <returns></returns> protected int wf_30017down(string asYmd, Worksheet ws) { try { string rptName = "本公司及周邊單位市場交易速報表"; string rptId = "30017down"; // 讀取資料 DataTable dt30017down = dao30017.d_30017down(asYmd); if (dt30017down.Rows.Count == 0) { MessageDisplay.Info(txtSDate.Text + "," + rptId + '-' + rptName + ",無任何資料!"); return(0); } ShowMsg(rptId + '-' + rptName + " 轉檔中..."); // 填入資料 int f, liDays, liFut, liOpt, liAll; decimal ldFutQnty, ldOptQnty, ldQnty; liAll = -1; liFut = -1; liOpt = -1; for (f = 0; f < dt30017down.Rows.Count; f++) { DataRow dr = dt30017down.Rows[f]; switch (dr["AI8_PROD_TYPE"].ToString()) { case " ": liAll = f; break; case "F": liFut = f; break; case "O": liOpt = f; break; } } int rowNum = 61; // 預計交易天數 string lsStr = asYmd.SubStr(0, 4); liDays = dao30017.am7tDayCount(lsStr); ws.Cells[rowNum, 20].Value = liDays; ws.Cells[rowNum, 16].Value = liDays - dt30017down.Rows[liAll]["AI8_YEAR_DAYS"].AsInt(); if (liFut >= 0) { ws.Cells[rowNum, 13].SetValue(dt30017down.Rows[liFut]["AVG_MTH"]); ws.Cells[rowNum, 17].SetValue(dt30017down.Rows[liFut]["AI8_YEAR_QNTY"]); } if (liOpt >= 0) { ws.Cells[rowNum + 1, 13].SetValue(dt30017down.Rows[liOpt]["AVG_MTH"]); ws.Cells[rowNum + 1, 17].SetValue(dt30017down.Rows[liOpt]["AI8_YEAR_QNTY"]); } if (liAll >= 0) { ws.Cells[rowNum + 2, 13].SetValue(dt30017down.Rows[liAll]["AVG_MTH"]); ws.Cells[rowNum + 2, 17].SetValue(dt30017down.Rows[liAll]["AI8_YEAR_QNTY"]); } // rowNum = 57; lsStr = "註1:"; lsStr = lsStr + (txtSDate.DateTimeValue.Year - 1911) + "年度預計有" + liDays.AsString() + "個交易日,已交易" + dt30017down.Rows[liAll]["AI8_YEAR_DAYS"].AsInt() + "日,"; lsStr = lsStr + "共計成交" + dt30017down.Rows[liAll]["AI8_YEAR_QNTY"].AsDecimal().ToString("#,##0.##") + "口"; ldQnty = 0; ldFutQnty = 0; ldOptQnty = 0; if (liAll >= 0) { ldQnty = dt30017down.Rows[liAll]["AVG_YEAR"].AsDecimal(); } if (liFut >= 0) { ldFutQnty = dt30017down.Rows[liFut]["AVG_YEAR"].AsDecimal(); } if (liOpt >= 0) { ldOptQnty = dt30017down.Rows[liOpt]["AVG_YEAR"].AsDecimal(); } lsStr = lsStr + "【日均量" + ldQnty.ToString("#,##0.##") + "口("; lsStr = lsStr + "期貨日均量" + ldFutQnty.ToString("#,##0.##") + "口,占比:" + (ldFutQnty / ldQnty * 100).ToString("#0.0#") + "%、"; lsStr = lsStr + "選擇權日均量" + ldOptQnty.ToString("#,##0.##") + "口,占比:" + (100 - (ldFutQnty / ldQnty * 100)).ToString("#0.0#") + "%)】。"; lsStr = lsStr + "\r" + "\n"; // lsStr = lsStr + " " + (txtSDate.DateTimeValue.Year - 1911 - 1) + "年度同期(交易天數" + dt30017down.Rows[liAll]["AI8_LAST_YEAR_DAYS"].AsInt() + "天)"; lsStr = lsStr + dt30017down.Rows[liAll]["AI8_LAST_YEAR_QNTY"].AsDecimal().ToString("#,##0.##") + "口"; ldQnty = 0; ldFutQnty = 0; ldOptQnty = 0; if (liAll >= 0) { ldQnty = dt30017down.Rows[liAll]["AVG_LAST_YEAR"].AsDecimal(); } if (liFut >= 0) { ldFutQnty = dt30017down.Rows[liFut]["AVG_LAST_YEAR"].AsDecimal(); } if (liOpt >= 0) { ldOptQnty = dt30017down.Rows[liOpt]["AVG_LAST_YEAR"].AsDecimal(); } lsStr = lsStr + "【日均量" + ldQnty.ToString("#,##0.##") + "口("; lsStr = lsStr + "期貨日均量" + ldFutQnty.ToString("#,##0.##") + "口,占比:" + (ldFutQnty / ldQnty * 100).ToString("#0.0#") + "%、"; lsStr = lsStr + "選擇權日均量" + ldOptQnty.ToString("#,##0.##") + "口,占比:" + (100 - (ldFutQnty / ldQnty * 100)).ToString("#0.0#") + "%)】,"; lsStr = lsStr + "\r" + "\n"; // lsStr = lsStr + " 另達成" + (txtSDate.DateTimeValue.Year - 1911 - 1) + "年度" + dt30017down.Rows[liAll]["AI8_LAST_ALL_YEAR_DAYS"].AsInt() + "個交易日,"; lsStr = lsStr + "全年成交" + dt30017down.Rows[liAll]["AI8_LAST_ALL_YEAR_QNTY"].AsDecimal().ToString("#,##0.##") + "口"; ldQnty = 0; ldFutQnty = 0; ldOptQnty = 0; if (liAll >= 0) { ldQnty = dt30017down.Rows[liAll]["AVG_LAST_ALL_YEAR"].AsDecimal(); } if (liFut >= 0) { ldFutQnty = dt30017down.Rows[liFut]["AVG_LAST_ALL_YEAR"].AsDecimal(); } if (liOpt >= 0) { ldOptQnty = dt30017down.Rows[liOpt]["AVG_LAST_ALL_YEAR"].AsDecimal(); } lsStr = lsStr + "【日均量" + ldQnty.ToString("#,##0.##") + "口("; lsStr = lsStr + "期貨日均量" + ldFutQnty.ToString("#,##0.##") + "口,占比:" + (ldFutQnty / ldQnty * 100).ToString("#0.0#") + "%、"; lsStr = lsStr + "選擇權日均量" + ldOptQnty.ToString("#,##0.##") + "口,占比:" + (100 - (ldFutQnty / ldQnty * 100)).ToString("#0.0#") + "%)】。"; lsStr = lsStr + "\r" + "\n"; // ws.Cells[rowNum, 0].Value = lsStr; // rowNum = rowNum + 1; lsStr = "註2:"; lsStr = lsStr + (txtSDate.DateTimeValue.Year - 1911) + "年" + (txtSDate.DateTimeValue.Month) + "月份預計有" + PbFunc.f_calc_mth_trade_days(asYmd.SubStr(0, 6)) + "個交易日,"; lsStr = lsStr + "已交易" + dt30017down.Rows[liAll]["AI8_MTH_DAYS"].AsInt() + "日,"; lsStr = lsStr + "共計成交" + dt30017down.Rows[liAll]["AI8_MTH_QNTY"].AsDecimal().ToString("#,##0.##") + "口"; ldQnty = 0; ldFutQnty = 0; ldOptQnty = 0; if (liAll >= 0) { ldQnty = dt30017down.Rows[liAll]["AVG_MTH"].AsDecimal(); } if (liFut >= 0) { ldFutQnty = dt30017down.Rows[liFut]["AVG_MTH"].AsDecimal(); } if (liOpt >= 0) { ldOptQnty = dt30017down.Rows[liOpt]["AVG_MTH"].AsDecimal(); } lsStr = lsStr + "【日均量" + ldQnty.ToString("#,##0.##") + "口("; lsStr = lsStr + "期貨日均量" + ldFutQnty.ToString("#,##0.##") + "口,占比:" + (ldFutQnty / ldQnty * 100).ToString("#0.0#") + "%、"; lsStr = lsStr + "選擇權日均量" + ldOptQnty.ToString("#,##0.##") + "口,占比:" + (100 - (ldFutQnty / ldQnty * 100)).ToString("#0.0#") + "%)】。"; lsStr = lsStr + "\r" + "\n"; // lsStr = lsStr + " " + (txtSDate.DateTimeValue.Year - 1911 - 1) + "年度" + (txtSDate.DateTimeValue.Month) + "月份"; lsStr = lsStr + "共計成交" + dt30017down.Rows[liAll]["AI8_LAST_ALL_MTH_QNTY"].AsDecimal().ToString("#,##0.##") + "口("; ldFutQnty = 0; if (liFut >= 0) { ldFutQnty = dt30017down.Rows[liAll]["AVG_LAST_ALL_MTH"].AsDecimal(); } if (ldFutQnty > 0) { lsStr = lsStr + "日均量" + ldFutQnty.ToString("#,##0.##") + "口),日均量比值約為" + (ldQnty / ldFutQnty * 100).ToString("#0.0#") + "%。"; } // ws.Cells[rowNum, 0].Value = lsStr; return(1); } catch (Exception ex) { WriteLog(ex); } return(0); }