/// <summary> /// 검색버튼 클릭 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnSearch_Click(object sender, EventArgs e) { // 자료 조회 // 조회URL: stockcode/?search=검색어 HttpRestClient client = new HttpRestClient("stockcode"); // 조회조건 if (txtSearch.Text.Length > 0) { client.QueryString.Add("search", txtSearch.Text); } if (!client.doWorkDialog()) { client.showErrorDialog(); return; } // 응답 데이터 처리 StockCode data = JsonConvert.DeserializeObject <StockCode>(client.getString()); // 리스트뷰 뷰 타입 listView1.View = View.Details; // 데이터를 갱신하기 전에 UI쓰레드를 멈춘다. listView1.BeginUpdate(); // 컬럼헤더 Clear listView1.Columns.Clear(); listView1.Columns.Add("stockCode", "종목코드", 5 * 15); listView1.Columns.Add("stockName", "종목명", 9 * 15); listView1.Columns.Add("stockCate", "소속업종", 9 * 15); // 종목코드 찾음, 없을경우 새 row에 등록 listView1.Items.Clear(); foreach (StockCodeItem item in data.dataList) { ListViewItem listItem = new ListViewItem(item.stockCode); listItem.Name = item.stockCode; listItem.SubItems.Add(item.stockName); listItem.SubItems.Add(item.cateName); listView1.Items.Add(listItem); } // UI 쓰레드 재개 listView1.EndUpdate(); }
private void btnSearch_Click(object sender, System.EventArgs e) { if (this.listDataTypes.SelectedIndex < 0) { MessageBox.Show("자료 종류를 선택하지 않았습니다.", "Error"); return; } if (this.listDataTimes.SelectedIndex < 0) { MessageBox.Show("시간을 선택하지 않았습니다.", "Error"); return; } // 자료 종류 MasterList selectedMaster = (MasterList)this.listDataTypes.SelectedItem; string dataTypeName = selectedMaster.name; int dataTypeId = selectedMaster.id; // 자료 시간 string dataTime = (string)this.listDataTimes.SelectedValue; // 자료일자 DateTime d = this.datePicker.Value; string dataDate = d.ToString("yyyyMMdd"); Console.WriteLine("자료종류: " + dataTypeId + ":" + dataTypeName); Console.WriteLine("자료일자: " + dataDate); Console.WriteLine("자료시간: " + dataTime); // 자료 조회 // 등록URL: data/<자료종류>/<자료일자>/<자료시간> string resource_value = dataTypeId + "/" + dataDate + "/" + dataTime; HttpRestClient client = new HttpRestClient("data/" + resource_value); if (!client.doWorkDialog()) { client.showErrorDialog(); return; } DataRoot data = JsonConvert.DeserializeObject <DataRoot>(client.getString()); Console.WriteLine("statusCode: " + data._metadata.statusCode); // 조회한 자료를 table로 생성한다... // 리스트뷰 뷰 타입 listView.View = View.Details; // 데이터를 갱신하기 전에 UI쓰레드를 멈춘다. listView.BeginUpdate(); // 컬럼헤더 Clear listView.Columns.Clear(); listView.Columns.Add("stockCode", "종목코드", 5 * 15); listView.Columns.Add("stockName", "종목명", 9 * 15); foreach (DataHeader header in selectedMaster.dataHeader) { ColumnHeader hdrItem = new ColumnHeader(); hdrItem.Text = header.name; hdrItem.Name = "" + header.id; hdrItem.Width = hdrItem.Text.Length * 15; listView.Columns.Add(hdrItem); } // 종목코드 찾음, 없을경우 새 row에 등록 foreach (DataList item in data.dataList) { if (listView.Items.ContainsKey(item.stockCode)) { // 자료 있음 (기존자료 확인) int idx = listView.Items.IndexOfKey(item.stockCode); for (int i = 0; i < selectedMaster.dataHeader.Count; i++) { if (selectedMaster.dataHeader[i].id == item.itemKey) { // 0: 내부 key // 1: 종목명 listView.Items[idx].SubItems[i + 2].Text = item.data; } } } else { // 자료 없음 (새 자료 입력) ListViewItem listItem = new ListViewItem(item.stockCode); listItem.Name = item.stockCode; listItem.SubItems.Add(item.stockName); foreach (DataHeader header in selectedMaster.dataHeader) { if (header.id == item.itemKey) { listItem.SubItems.Add(item.data); } else { listItem.SubItems.Add(""); } } listView.Items.Add(listItem); } } // UI 쓰레드 재개 listView.EndUpdate(); /* * dataGridView1 버전 * DataTable workTable = new DataTable("Report"); * foreach (DataHeader header in master.dataHeader) * { * workTable.Columns.Add(header.name, typeof(String)); * } * * foreach (DataList item in data.dataList) * { * DataRow[] foundRows = workTable.Select("종목코드 = '" + item.stockCode + "'"); * if (foundRows == null || foundRows.Length == 0) * { * DataRow workRow = workTable.NewRow(); * workRow["종목코드"] = item.stockCode; * workRow["종목명"] = item.stockName; * workRow[item.itemName] = item.data; * workTable.Rows.Add(workRow); * } * else * { * foundRows[0].BeginEdit(); * foundRows[0][item.itemName] = item.data; * foundRows[0].EndEdit(); * } * } * * dataGridView1.DataSource = workTable; * dataGridView1.AutoResizeColumns(); */ txtDataInfo.Text = dataTypeName + " / " + dataDate + " / " + dataTime; isValidView = true; }