/// <summary>
/// 國內報價回應事件
/// </summary>
/// <param name="sMarketNo"></param>
/// <param name="nStockIdx"></param>
void m_SKQuoteLib_OnNotifyQuoteLONG(short sMarketNo, int nStockIdx)
{
// 報價資訊物件
SKSTOCKLONG pSKStockLONG = new SKSTOCKLONG();
// 取得最新報價寫入報價資訊物件
m_SKQuoteLib.SKQuoteLib_GetStockByIndexLONG(sMarketNo, nStockIdx, ref pSKStockLONG);
// 將報價資訊物件輸出在 DataGridView
onUpdateQuote(pSKStockLONG);
}
/// <summary>
/// 更新最新報價
/// </summary>
private void onUpdateQuote(SKSTOCKLONG pSKStockLONG)
{
if (dtQuote == null)
{
// 報價物件寫入 Datatable
dtQuote = new DataTable();
dtQuote.Columns.Add("QuoteName");
dtQuote.Columns.Add("QuoteValue");
DataRow drNew = dtQuote.NewRow();
drNew["QuoteName"] = "代碼";
drNew["QuoteValue"] = pSKStockLONG.bstrStockNo;
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "名稱";
drNew["QuoteValue"] = pSKStockLONG.bstrStockName;
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "開盤價";
drNew["QuoteValue"] = pSKStockLONG.nOpen / (Math.Pow(10, pSKStockLONG.sDecimal));
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "最高價";
drNew["QuoteValue"] = pSKStockLONG.nHigh / (Math.Pow(10, pSKStockLONG.sDecimal));
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "最低價";
drNew["QuoteValue"] = pSKStockLONG.nLow / (Math.Pow(10, pSKStockLONG.sDecimal));
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "成交價";
drNew["QuoteValue"] = pSKStockLONG.nClose / (Math.Pow(10, pSKStockLONG.sDecimal));
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "單量";
drNew["QuoteValue"] = pSKStockLONG.nTickQty;
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "昨收價";
drNew["QuoteValue"] = pSKStockLONG.nRef / (Math.Pow(10, pSKStockLONG.sDecimal));
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "買價";
drNew["QuoteValue"] = (pSKStockLONG.nBid / (Math.Pow(10, pSKStockLONG.sDecimal))).ToString();
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "買量";
drNew["QuoteValue"] = pSKStockLONG.nBc;
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "賣價";
drNew["QuoteValue"] = (pSKStockLONG.nAsk / (Math.Pow(10, pSKStockLONG.sDecimal))).ToString();
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "賣量";
drNew["QuoteValue"] = pSKStockLONG.nAc;
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "總量";
drNew["QuoteValue"] = pSKStockLONG.nTQty;
dtQuote.Rows.Add(drNew);
drNew = dtQuote.NewRow();
drNew["QuoteName"] = "時間";
drNew["QuoteValue"] = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
dtQuote.Rows.Add(drNew);
//輸出 GridView
gvQuote.DataSource = dtQuote;
gvQuote.Refresh();
}
else
{
// 報價物件更新 Datatable
DataRow dr = dtQuote.Select("QuoteName='開盤價'")[0];
dr["QuoteValue"] = pSKStockLONG.nOpen / (Math.Pow(10, pSKStockLONG.sDecimal));
dr = dtQuote.Select("QuoteName='最高價'")[0];
dr["QuoteValue"] = pSKStockLONG.nHigh / (Math.Pow(10, pSKStockLONG.sDecimal));
dr = dtQuote.Select("QuoteName='最低價'")[0];
dr["QuoteValue"] = pSKStockLONG.nLow / (Math.Pow(10, pSKStockLONG.sDecimal));
dr = dtQuote.Select("QuoteName='成交價'")[0];
dr["QuoteValue"] = pSKStockLONG.nClose / (Math.Pow(10, pSKStockLONG.sDecimal));
dr = dtQuote.Select("QuoteName='單量'")[0];
dr["QuoteValue"] = pSKStockLONG.nTickQty;
dr = dtQuote.Select("QuoteName='昨收價'")[0];
dr["QuoteValue"] = pSKStockLONG.nRef / (Math.Pow(10, pSKStockLONG.sDecimal));
dr = dtQuote.Select("QuoteName='買價'")[0];
dr["QuoteValue"] = (pSKStockLONG.nBid / (Math.Pow(10, pSKStockLONG.sDecimal))).ToString();
dr = dtQuote.Select("QuoteName='買量'")[0];
dr["QuoteValue"] = pSKStockLONG.nBc;
dr = dtQuote.Select("QuoteName='賣價'")[0];
dr["QuoteValue"] = (pSKStockLONG.nAsk / (Math.Pow(10, pSKStockLONG.sDecimal))).ToString();
dr = dtQuote.Select("QuoteName='賣量'")[0];
dr["QuoteValue"] = pSKStockLONG.nAc;
dr = dtQuote.Select("QuoteName='總量'")[0];
dr["QuoteValue"] = pSKStockLONG.nTQty;
dr = dtQuote.Select("QuoteName='時間'")[0];
dr["QuoteValue"] = DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss");
}
}