Exemple #1
0
 public static databases.tmpDS.investorRow FindAndCache(databases.tmpDS.investorDataTable tbl, string code)
 {
     databases.tmpDS.investorRow row = tbl.FindBycode(code);
     if (row != null) return row;
     if (tbl.Count == 0)
     {
         LoadInvestor(tbl, false);
         row = tbl.FindBycode(code);
         if (row != null) return row;
     }
     return null;
 }
Exemple #2
0
 public static databases.baseDS.investorRow FindAndCache(databases.baseDS.investorDataTable tbl, string code)
 {
     databases.baseDS.investorRow row = tbl.FindBycode(code);
     if (row != null) return row;
     databases.baseDSTableAdapters.investorTA dataTA = new databases.baseDSTableAdapters.investorTA();
     dataTA.ClearBeforeFill = false;
     dataTA.FillByCode(tbl, code);
     row = tbl.FindBycode(code);
     if (row != null) return row;
     return null;
 }
        private void DoRefreshPrice(databases.tmpDS.stockCodeDataTable dataTbl)
        {
            databases.baseDS.lastPriceDataDataTable openPriceTbl = DataAccess.Libs.myLastDailyOpenPrice;
            databases.baseDS.lastPriceDataDataTable closePriceTbl = DataAccess.Libs.myLastDailyClosePrice;
            if (openPriceTbl==null || closePriceTbl == null) return;

            dataTbl.priceColumn.ReadOnly = false;
            dataTbl.priceVariantColumn.ReadOnly = false;

            databases.tmpDS.stockCodeRow stockCodeRow;
            databases.baseDS.lastPriceDataRow openPriceRow, closePriceRow;
            for (int idx = 0; idx < stockGV.RowCount; idx++)
            {
                stockCodeRow = dataTbl.FindBycode(stockGV.Rows[idx].Cells[codeColumn.Name].Value.ToString());
                if (stockCodeRow == null) continue;
                closePriceRow = closePriceTbl.FindBystockCode(stockCodeRow.code);
                if (closePriceRow == null) continue;

                if (stockCodeRow.price == closePriceRow.value) continue;
                stockCodeRow.price = closePriceRow.value;
                openPriceRow = openPriceTbl.FindBystockCode(stockCodeRow.code);
                if (openPriceRow != null)
                    stockCodeRow.priceVariant = closePriceRow.value - openPriceRow.value;
                else stockCodeRow.priceVariant = 0;
            }
            SetColor();
        }
        protected void LoadPorfolioWatch(databases.tmpDS.porfolioWatchDataTable tbl,string investorCode)
        {
            databases.tmpDS.investorStockDataTable investorStockTbl = DataAccess.Libs.GetOwnedStockSum_ByInvestor(investorCode);
            if (investorStockTbl == null) return;

            databases.tmpDS.porfolioWatchRow porfolioWatchRow;
            for (int idx1 = 0; idx1 < investorStockTbl.Count; idx1++)
            {
                porfolioWatchRow = tbl.FindBycode(investorStockTbl[idx1].stockCode);
                if (porfolioWatchRow == null)
                {
                    databases.tmpDS.stockCodeRow stockCodeRow = DataAccess.Libs.myStockCodeTbl.FindBycode(investorStockTbl[idx1].stockCode);
                    if (stockCodeRow == null) continue;

                    porfolioWatchRow = tbl.NewporfolioWatchRow();
                    databases.AppLibs.InitData(porfolioWatchRow);
                    porfolioWatchRow.code = investorStockTbl[idx1].stockCode;
                    porfolioWatchRow.stockExchange = stockCodeRow.stockExchange;
                    porfolioWatchRow.name = stockCodeRow.name;
                    porfolioWatchRow.nameEn = stockCodeRow.nameEn;
                    tbl.AddporfolioWatchRow(porfolioWatchRow);
                }
                //TUAN - 29 Sept 2012 remove for no flicker when refresh data
                else
                {
                    databases.tmpDS.stockCodeRow stockCodeRow = DataAccess.Libs.myStockCodeTbl.FindBycode(investorStockTbl[idx1].stockCode);
                    if (stockCodeRow == null) continue;
                    porfolioWatchRow = tbl.NewporfolioWatchRow();
                    databases.AppLibs.InitData(porfolioWatchRow);
                    porfolioWatchRow.code = investorStockTbl[idx1].stockCode;
                    porfolioWatchRow.stockExchange = stockCodeRow.stockExchange;
                    porfolioWatchRow.name = stockCodeRow.name;
                    porfolioWatchRow.nameEn = stockCodeRow.nameEn;                    
                }
                //TUAN - 29 Sept 2012 remove for no flicker when refresh data
                porfolioWatchRow.qty += investorStockTbl[idx1].qty;
                porfolioWatchRow.boughtAmt += investorStockTbl[idx1].buyAmt;
            }
            UpdatePrice(tbl);
            SetListColor();
        }
        private void DoRefreshPrice(databases.tmpDS.stockCodeDataTable dataTbl)
        {
            databases.baseDS.lastPriceDataDataTable openPriceTbl = DataAccess.Libs.myLastDailyOpenPrice;
            databases.baseDS.lastPriceDataDataTable closePriceTbl = DataAccess.Libs.myLastDailyClosePrice;
            //databases.baseDS.lastPriceDataDataTable volumeTbl = DataAccess.Libs.myLastDailyVolume;
            
            if (openPriceTbl==null || closePriceTbl == null) return;

            dataTbl.priceColumn.ReadOnly = false;
            dataTbl.priceVariantColumn.ReadOnly = false;

            databases.tmpDS.stockCodeRow stockCodeRow;
            databases.baseDS.lastPriceDataRow openPriceRow, closePriceRow;
            //databases.baseDS.lastPriceDataRow volumeRow;
            for (int idx = 0; idx < stockGV.RowCount; idx++)
            {
                //Lay stock code
                stockCodeRow = dataTbl.FindBycode(stockGV.Rows[idx].Cells[codeColumn.Name].Value.ToString());
                if (stockCodeRow == null) continue;
                
                //Lay gia dong cua
                closePriceRow = closePriceTbl.FindBystockCode(stockCodeRow.code);
                if (closePriceRow == null) continue;

                if (stockCodeRow.price == closePriceRow.value) continue;

                //Lay chenh lech Open/Close
                stockCodeRow.price = closePriceRow.value;
                openPriceRow = openPriceTbl.FindBystockCode(stockCodeRow.code);
                if (openPriceRow != null&&openPriceRow.value!=0)
                    stockCodeRow.priceVariant = (closePriceRow.value - openPriceRow.value) / openPriceRow.value;
                else stockCodeRow.priceVariant = 0;

                //Lay volume
                //volumeRow = volumeTbl.FindBystockCode(stockCodeRow.code);
                //if (volumeRow == null) continue;
                //if (stockCodeRow.volume == volumeRow.value) continue;
                //stockCodeRow.volume = volumeRow.value;
                

            }
            SetColor();
        }