//그리드에 값 넣기 /// <summary> /// 그리드에 값 넣기 /// </summary> /// <param name="p_ViewFlag">Hold,Interest</param> /// <param name="p_dt">테이블</param> private void fnInsertValue(enViewFlag p_ViewFlag, DataTable p_dt) { //만든 컬럼에 값 넣기 string CodeNum = ""; Dictionary <string, string> Value = new Dictionary <string, string>(); for (int i = 0; i < p_dt.Rows.Count; i++) { dgvView.Rows.Add(); CodeNum = p_dt.Rows[i]["CodeNum"].ToString(); dgvView["종목명", i].Value = p_dt.Rows[i]["종목명"].ToString(); Value = Parser.GetInfo(CodeNum); dgvView["현재가", i].Value = Value["NowV"]; dgvView["전일가", i].Value = Value["YesterDayV"]; dgvView["전일차이", i].Value = Value["Interval"]; dgvView["차이%", i].Value = Value["Per"]; dgvView["거래량", i].Value = Value["QV"]; dgvView["CodeNum", i].Value = CodeNum; if (p_ViewFlag == enViewFlag.Hold) { dgvView["평균가", i].Value = p_dt.Rows[i]["평균가"].ToString(); dgvView["수량", i].Value = p_dt.Rows[i]["수량"].ToString(); dgvView["합계", i].Value = p_dt.Rows[i]["합계"].ToString(); dgvView["예상수익", i].Value = ((Convert.ToDouble(Value["NowV"]) - Convert.ToDouble(dgvView["평균가", i].Value)) * Convert.ToDouble(dgvView["수량", i].Value)) //현재가 - 보유평균가 - (Convert.ToDouble(Value["NowV"]) * Convert.ToDouble(dgvView["수량", i].Value) * 0.003); //매도세금 dgvView["예상수익%", i].Value = (((Convert.ToDouble(Value["NowV"]) - Convert.ToDouble(dgvView["평균가", i].Value)) * Convert.ToDouble(dgvView["수량", i].Value)) //현재가 - 보유평균가 - (Convert.ToDouble(Value["NowV"]) * Convert.ToDouble(dgvView["수량", i].Value) * 0.003)) //매도세금 / (Convert.ToDouble(dgvView["평균가", i].Value) * Convert.ToDouble(dgvView["수량", i].Value)) * 100; //%구하기 dgvView["예상세금", i].Value = (Convert.ToDouble(Value["NowV"]) * Convert.ToDouble(dgvView["수량", i].Value) * 0.003); } } }
// 그리드정렬 /// <summary> /// 그리드 초기화 /// </summary> /// <param name="p_isSearch"></param> private void fnSortGrid(enViewFlag p_ViewFlag, bool p_isSearch) { if (p_isSearch) { foreach (DataGridViewColumn col in dgvView.Columns) { col.HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter; col.SortMode = DataGridViewColumnSortMode.NotSortable; } dgvView.Columns["종목명"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; if (p_ViewFlag == enViewFlag.Hold) { dgvView.Columns["평균가"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvView.Columns["수량"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvView.Columns["합계"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvView.Columns["예상수익"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvView.Columns["예상수익%"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvView.Columns["예상세금"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvView.Columns["평균가"].DefaultCellStyle.Format = "#,##"; dgvView.Columns["수량"].DefaultCellStyle.Format = "#,##"; dgvView.Columns["합계"].DefaultCellStyle.Format = "#,##"; dgvView.Columns["예상수익"].DefaultCellStyle.Format = "#,##"; dgvView.Columns["예상수익%"].DefaultCellStyle.Format = "#,#0.##"; dgvView.Columns["예상세금"].DefaultCellStyle.Format = "#,##"; } dgvView.Columns["현재가"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvView.Columns["현재가"].DefaultCellStyle.Format = "#,##"; dgvView.Columns["전일가"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvView.Columns["전일차이"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvView.Columns["차이%"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvView.Columns["거래량"].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter; dgvView.Columns["전일가"].DefaultCellStyle.Format = "#,##"; dgvView.Columns["전일차이"].DefaultCellStyle.Format = "#,##"; dgvView.Columns["차이%"].DefaultCellStyle.Format = "#,##"; dgvView.Columns["거래량"].DefaultCellStyle.Format = "#,##"; //포커스 if (dgvView.Rows.Count > 0) { dgvView.Rows[dgvView.Rows.Count - 1].Selected = true; dgvView.CurrentCell = dgvView.Rows[dgvView.Rows.Count - 1].Cells["종목명"]; dgvView.BeginEdit(true); } } if (p_ViewFlag == enViewFlag.Hold) { dgvView.Columns["현재가"].Width = 70; dgvView.Columns["평균가"].Width = 70; dgvView.Columns["수량"].Width = 60; dgvView.Columns["합계"].Width = 70; dgvView.Columns["예상수익"].Width = 70; dgvView.Columns["예상수익%"].Width = 70; dgvView.Columns["예상세금"].Width = 70; } if (dgvView.Height - 20 - (dgvView.RowTemplate.Height * dgvView.RowCount) > 0) { //스크롤바 안 생기는 경우 dgvView.Columns["종목명"].Width = 355 - 270;//dgvHold.Width - 270; } else { //스크롤바 생기는 경우 dgvView.Columns["종목명"].Width = 355 - 290; //dgvHold.Width - 290; } dgvView.Columns["전일가"].Width = 70; dgvView.Columns["전일차이"].Width = 70; dgvView.Columns["차이%"].Width = 60; dgvView.Columns["거래량"].Width = 70; }
//컬럼추가 /// <summary> /// 현재가만 추가해줌. (Time이벤트에도 넣기 위해 일부러 뺌) /// </summary> /// <param name="p_strViewFlag">Hold or Interest</param> private void fnColumnAdd(enViewFlag p_ViewFlag, DataTable p_dt) { if (!dgvView.Columns.Contains("종목명")) { dgvView.Columns.Add("종목명", "종목명"); } if (!dgvView.Columns.Contains("현재가")) { dgvView.Columns.Add("현재가", "현재가"); } if (!dgvView.Columns.Contains("전일가")) { dgvView.Columns.Add("전일가", "전일가"); } if (!dgvView.Columns.Contains("전일차이")) { dgvView.Columns.Add("전일차이", "전일차이"); } if (!dgvView.Columns.Contains("차이%")) { dgvView.Columns.Add("차이%", "차이%"); } if (!dgvView.Columns.Contains("거래량")) { dgvView.Columns.Add("거래량", "거래량"); } if (!dgvView.Columns.Contains("CodeNum")) { dgvView.Columns.Add("CodeNum", "CodeNum"); } if (p_ViewFlag == enViewFlag.Hold) { if (!dgvView.Columns.Contains("평균가")) { dgvView.Columns.Add("평균가", "평균가"); } if (!dgvView.Columns.Contains("수량")) { dgvView.Columns.Add("수량", "수량"); } if (!dgvView.Columns.Contains("합계")) { dgvView.Columns.Add("합계", "합계"); } if (!dgvView.Columns.Contains("예상수익")) { dgvView.Columns.Add("예상수익", "예상수익"); } if (!dgvView.Columns.Contains("예상수익%")) { dgvView.Columns.Add("예상수익%", "예상수익%"); } if (!dgvView.Columns.Contains("예상세금")) { dgvView.Columns.Add("예상세금", "예상세금"); } } dgvView.Columns["종목명"].DisplayIndex = 0; dgvView.Columns["현재가"].DisplayIndex = 1; dgvView.Columns["전일가"].DisplayIndex = 2; dgvView.Columns["전일차이"].DisplayIndex = 3; dgvView.Columns["차이%"].DisplayIndex = 4; dgvView.Columns["거래량"].DisplayIndex = 5; dgvView.Columns["CodeNum"].Visible = false; if (p_ViewFlag == enViewFlag.Hold) { dgvView.Columns["평균가"].DisplayIndex = 6; dgvView.Columns["수량"].DisplayIndex = 7; dgvView.Columns["합계"].DisplayIndex = 8; } }