//*----------------------------------------------------------- private void OnMouseDoubleClick() { if (dataGrid2.SelectedItems.Count <= 0) { return; } myViewModel?.Clear(); DataRowView drv = (DataRowView)dataGrid2.SelectedItem; cmt_empno.Text = (string)drv.Row["bas_empno"]; bas_name.Text = (string)drv.Row["bas_name"]; //--DB Handling(Start)------------------------------------- try { con = Utility.SetOracleConnection(); OracleCommand cmd = con.CreateCommand(); cmd.CommandText = SQLStatement.SelectSQL; cmd.Parameters.Add("cmt_empno", OracleDbType.Varchar2).Value = cmt_empno.Text; OracleDataReader dr = cmd.ExecuteReader(); while (dr.Read()) { var data = new UcSubC04ViewModel { Cmt_empno = dr.GetString(0), Cmt_cmtnm = dr.GetString(1), Cmt_sdate = Utility.FormatDate(dr.GetString(2)), Cmt_edate = Utility.FormatDate(dr.GetString(3)), Key1 = dr.GetString(0), DataStatus = "" }; myViewModel.Add(data); } dr.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } finally { if (con != null) { con.Close(); } } //--DB Handling(End)------------------------------------- SearchCount.Text = myViewModel.Count.ToString(); if (myViewModel.Count == 0) { UserMessage.Text = "조건을 만족하는 자료가 없습니다."; Utility.SetFuncBtn(MainBtn, "1"); return; } UserMessage.Text = "자료가 정상적으로 조회 되었습니다."; Utility.SelectingFocusingGridControl(dataGrid, tableView, 0); Utility.SetFuncBtn(MainBtn, "2"); }
//************************************************************ //** 입력 버튼 Click //************************************************************ public void BtnInsert_Click(int type) { if (authority.Insert.Equals("0")) { Utility.MsgAuthorityViolation("입력"); return; } int rowIndex = tableView.FocusedRowHandle; if (dataGrid.SelectedItems.Count < 1) { rowIndex = -1; } rowIndex++; UcSubC04ViewModel data = new UcSubC04ViewModel(); myViewModel.Insert(rowIndex, data); //----데이터 복제(Start)---------------------------------------------------------------------------------- if ((type == 2) && (dataGrid.SelectedItem != null)) { for (int i = 0; i <= dataGrid.Columns.Count - 1; i++) { tableView.Grid.SetCellValue(rowIndex, dataGrid.Columns[i], tableView.Grid.GetCellValue(rowIndex - 1, dataGrid.Columns[i])); } data.DataStatus = "A"; } //----데이터 복제(End)---------------------------------------------------------------------------------- //---초기화 설정(2019.10.15)-------------- data.Cmt_empno = cmt_empno.Text; SearchCount.Text = myViewModel.Count.ToString(); //추가된 Row 선택 및 Focus 이동 Utility.SelectingFocusingGridControl(dataGrid, tableView, rowIndex); //최초 입력 Control로 Focus 이동 cmt_cmtnm.Focus(); Utility.SetFuncBtn(MainBtn, "3"); }
//************************************************************ //** 입력값의 정합성 Check //************************************************************ private Boolean InputCheck() { if (myViewModel.Count <= 0) { MessageBox.Show("저장할 DATA가 없습니다."); return(false); } for (int i = 0; i <= myViewModel.Count - 1; i++) { UcSubC04ViewModel vm = (UcSubC04ViewModel)myViewModel.ElementAt(i); if (vm.DataStatus.Equals("")) { continue; //수정 및 신규입력 자료만 입력 Check } if (vm.HasError) { Utility.ShowValidationCheckMsg(vm.GetErrorMsg, i + 1); return(false); } } return(true); }
//************************************************************ //** 저장 버튼 Click (여러 건의 DATA 추가입력/수정 후 저장) //************************************************************ public void BtnSave_Click() { if (MessageBox.Show("입력 및 수정중인 자료를 저장합니다.", "저장확인", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No) { return; } if (!InputCheck()) { return; } OracleTransaction tran = null; try { con = Utility.SetOracleConnection(); tran = con.BeginTransaction(IsolationLevel.ReadCommitted); OracleCommand cmd = con.CreateCommand(); cmd.BindByName = true; cmd.Transaction = tran; for (int i = 0; i <= myViewModel.Count - 1; i++) { UcSubC04ViewModel vm = (UcSubC04ViewModel)myViewModel.ElementAt(i); if (vm.DataStatus.Equals("")) { continue; } if (vm.DataStatus.Equals("A")) { cmd.CommandText = SQLStatement.InsertSQL; } if (vm.DataStatus.Equals("U")) { cmd.CommandText = SQLStatement.UpdateSQL; cmd.Parameters.Add("key1", OracleDbType.Varchar2).Value = vm.Key1; } cmd.Parameters.Add("cmt_empno", OracleDbType.Varchar2).Value = vm.Cmt_empno; cmd.Parameters.Add("cmt_cmtnm", OracleDbType.Varchar2).Value = vm.Cmt_cmtnm; cmd.Parameters.Add("cmt_sdate", OracleDbType.Varchar2).Value = Utility.FormatDateR(vm.Cmt_sdate); cmd.Parameters.Add("cmt_edate", OracleDbType.Varchar2).Value = Utility.FormatDateR(vm.Cmt_edate); cmd.Parameters.Add("datasys3", OracleDbType.Varchar2).Value = string.Concat(UserId, ":", UserNm); /* if (vm.DataStatus.Equals("U")) * { * cmd.Parameters.Add("key1", OracleDbType.Varchar2).Value = vm.Key1; * }*/ cmd.ExecuteNonQuery(); cmd.Parameters.Clear(); //*----반드시 포함 } tran.Commit(); } catch (Exception ex) { tran.Rollback(); MessageBox.Show(ex.Message); return; } finally { if (con != null) { con.Close(); } } //**정상 저장 후 초기화******************************************************* for (int i = 0; i <= myViewModel.Count - 1; i++) { UcSubC04ViewModel vm = (UcSubC04ViewModel)myViewModel.ElementAt(i); if (vm.DataStatus.Equals("")) { continue; } vm.Key1 = vm.Cmt_empno; vm.DataStatus = ""; } dataGrid.RefreshData(); UserMessage.Text = "자료가 정상적으로 저장 되었습니다."; Utility.SetFuncBtn(MainBtn, "2"); }
//************************************************************ //** 삭제 버튼 Click (삭제는 DATA 1건씩 처리) //************************************************************ public void BtnDelete_Click() { if (dataGrid.SelectedItems.Count < 1) { MessageBox.Show("삭제할 자료를 먼저 선택하세요.", "삭제확인", MessageBoxButton.OK, MessageBoxImage.Information); return; } UcSubC04ViewModel vm = (UcSubC04ViewModel)dataGrid.SelectedItem; //신규 입력중인 자료는 단순하게 Grid에서 제거만 한다. if (vm.DataStatus.Equals("A")) { myViewModel.Remove(vm); SearchCount.Text = myViewModel.Count.ToString(); return; } //---------------------------------------------------------------- if (authority.Delete.Equals("0")) { Utility.MsgAuthorityViolation("삭제"); return; } if (MessageBox.Show(vm.Cmt_cmtnm + " 자료를 삭제하시겠습니까?", "삭제확인", MessageBoxButton.YesNo, MessageBoxImage.Question) == MessageBoxResult.No) { return; } //--DB Handling(Start)------------------------------------- try { con = Utility.SetOracleConnection(); OracleCommand cmd = con.CreateCommand(); cmd.CommandText = SQLStatement.DeleteSQL; cmd.Parameters.Add("key1", OracleDbType.Varchar2).Value = vm.Key1; if (cmd.ExecuteNonQuery() > 0) { myViewModel.Remove(vm); SearchCount.Text = myViewModel.Count.ToString(); UserMessage.Text = "자료가 정상적으로 삭제 되었습니다."; } else { UserMessage.Text = "자료삭제에 문제가 있습니다. 시스템 담당자에게 문의하세요."; } } catch (Exception ex) { MessageBox.Show(ex.Message); return; } finally { if (con != null) { con.Close(); } } //--DB Handling(End)------------------------------------- }