using AIMS; using AIMSBLL; using AIMSExtension; using AIMSModel; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Net; using System.Windows.Forms; namespace DataDictionary.UI { public partial class frmOperationRoom : Form { /// /// 手术间集合 /// public List list; public List listNew = new List(); public List listOnit = new List(); public string cboDepartmentText; /// /// 声明保存数据时的状态 /// public EditState _state; public frmOperationRoom() { InitializeComponent(); } private void frmOperationRoom_Load(object sender, EventArgs e) { list = BOperationRoom.Select(" order by Site,[RoomOrder] asc", new ParameterList(), RecursiveType.None, 0); ControlExtension.EnabledControl(panel1, false); //listOnit = BDepartment.Select(" id in (select roomtype from operationroom) order by id desc ", new ParameterList(), RecursiveType.None, 0); //listOnit.Insert(0, new Department() { Id = -1, Name = "" }); //this.cboDepartment.Items.AddRange(listOnit.ToArray()); //cboDepartment.ValueMember = "Id"; //cboDepartment.DisplayMember = "Name"; //cboDepartment.Text = cboDepartmentText; //cboDepartment.Enabled = true; BindDgv(list); } /// /// 为DataGridView绑定数据 /// private void BindDgv(List list) { dgvOperationsRoom.AutoGenerateColumns = false; dgvOperationsRoom.Rows.Clear(); int num = 1; foreach (OperationRoom item in list) { try { int index = this.dgvOperationsRoom.Rows.Add(); this.dgvOperationsRoom.Rows[index].Cells["Id"].Value = item.Id; this.dgvOperationsRoom.Rows[index].Cells["Index"].Value = num; num++; this.dgvOperationsRoom.Rows[index].Cells["oName"].Value = item.Name; this.dgvOperationsRoom.Rows[index].Cells["type"].Value = item.Site; this.dgvOperationsRoom.Rows[index].Cells["Ip1"].Value = item.Ip; this.dgvOperationsRoom.Rows[index].Cells["Ip2"].Value = item.Ip2; this.dgvOperationsRoom.Rows[index].Cells["Ip3"].Value = item.Ip3; this.dgvOperationsRoom.Rows[index].Cells["OrderBy"].Value = item.RoomOrder; this.dgvOperationsRoom.Rows[index].Cells["IsValid"].Value = item.IsValid == 1 ? "有效" : "无效"; } catch (Exception) { } } } /// /// 退出事件 /// /// /// private void tsbExit_Click(object sender, EventArgs e) { this.Close(); } /// /// 新增事件 /// /// /// private void tsbAdd_Click(object sender, EventArgs e) { //设置状态为新增 _state = EditState.ADD; ControlExtension.EnabledControl(panel1, true); ControlExtension.ClearControl(panel1); } /// /// 修改事件 /// /// /// private void tsbModify_Click(object sender, EventArgs e) { //设置状态为修改 _state = EditState.EDIT; if (!(dgvOperationsRoom.SelectedRows.Count > 0)) { MessageBox.Show("请选择列表中的一项!"); return; } ControlExtension.EnabledControl(panel1, true); txtName.Text = dgvOperationsRoom.SelectedRows[0].Cells["oName"].Value.ToString(); if (dgvOperationsRoom.SelectedRows[0].Cells["Ip1"].EditedFormattedValue.ToString() != "") { txtIp1.Text = dgvOperationsRoom.SelectedRows[0].Cells["Ip1"].Value.ToString(); } if (dgvOperationsRoom.SelectedRows[0].Cells["Ip2"].EditedFormattedValue.ToString() != "") { txtIp2.Text = dgvOperationsRoom.SelectedRows[0].Cells["Ip2"].Value.ToString(); } if (dgvOperationsRoom.SelectedRows[0].Cells["Ip3"].EditedFormattedValue.ToString() != "") { txtIp3.Text = dgvOperationsRoom.SelectedRows[0].Cells["Ip3"].Value.ToString(); } cbotype.Text = dgvOperationsRoom.SelectedRows[0].Cells["type"].Value.ToString(); txtOrderBy.Text = dgvOperationsRoom.SelectedRows[0].Cells["OrderBy"].Value.ToString(); chkIsValid.Checked = dgvOperationsRoom.SelectedRows[0].Cells["IsValid"].Value.ToString() == "有效" ? true : false; //try //{ // cboDepartment.Text = dgvOperationsRoom.SelectedRows[0].Cells["DepartmentNameColumn"].EditedFormattedValue.ToString(); //} //catch (Exception) //{ //} } /// /// 取消事件 /// /// /// private void tsbCancel_Click(object sender, EventArgs e) { ControlExtension.ClearControl(panel1); ControlExtension.EnabledControl(panel1, false); cboDepartment.SelectedIndex = -1; cboDepartment.Text = ""; } /// /// 保存数据事件 /// /// /// private void tsbSave_Click(object sender, EventArgs e) { if (!ValidInput()) { return; } if (_state == EditState.ADD && dgvOperationsRoom.Rows.Count > 0 && ControlExtension.ValidDataGridViewExistsItemName(dgvOperationsRoom, "oName", txtName.Text.Trim())) { MessageBox.Show("该手术间已存在,请重新输入!"); txtName.Focus(); return; } OperationRoom opr = new OperationRoom(); opr.Name = txtName.Text.Trim(); opr.HelpCode = PublicMethod.GetFirstLetter(txtName.Text.Trim()); opr.Ip = txtIp1.Text.Trim(); opr.Ip2 = txtIp2.Text.Trim(); opr.Ip3 = txtIp3.Text.Trim(); opr.Site = cbotype.Text.Trim(); opr.RoomOrder = Convert.ToInt32(txtOrderBy.Text.Trim()); opr.IsValid = chkIsValid.Checked == true ? 1 : 0; opr.OperatorName = PublicMethod.OperatorName; opr.OperatorNo = PublicMethod.OperatorNo; opr.OperateDate = DateTime.Now; int num = 0; if (_state == EditState.ADD) { num = BOperationRoom.Insert(opr); } else if (_state == EditState.EDIT) { opr.Id = Convert.ToInt32(dgvOperationsRoom.SelectedRows[0].Cells["Id"].Value); num = BOperationRoom.Update(opr); } if (num > 0) { MessageBox.Show("保存成功!"); ControlExtension.EnabledControl(panel1, false); ControlExtension.ClearControl(panel1); list = BOperationRoom.Select(" order by Site,[RoomOrder] asc", new ParameterList(), RecursiveType.None, 0); ; BindDgv(list); } } /// /// 输入验证 /// /// private bool ValidInput() { bool key = false; if (txtName.Text.Trim().Length < 1) { MessageBox.Show("请输入手术间!"); txtName.Focus(); } else if (txtIp1.Text.Trim().Length < 1) { MessageBox.Show("请输入一个Ip地址!"); txtIp1.Focus(); } else if (txtOrderBy.Text.Trim().Length < 1) { MessageBox.Show("请输入排序顺序!"); txtOrderBy.Focus(); } else { key = true; } return key; } /// /// 判断DataGridView是否显示全部记录 /// /// /// private void chkAll_CheckedChanged(object sender, EventArgs e) { if (chkAll.Checked == true) { BindDgv(list); } else { var results = from p in list where p.IsValid == 1 select p; BindDgv(results.ToList()); } } private void txtIp1_Leave(object sender, EventArgs e) { TextBox tb = (TextBox)sender; if (tb.Text.Trim().Length == 0) { return; } IPAddress ip; if (!IPAddress.TryParse(tb.Text.Trim(), out ip)) { MessageBox.Show("非法IP地址,请重新输入!"); tb.Text = ""; tb.Focus(); } } private void cboDepartment_TextUpdate(object sender, EventArgs e) { //清空combobox this.cboDepartment.Items.Clear(); //清空listNew listNew.Clear(); //遍历全部备查数据 listNew = BDepartment.Select("IsValid=1 and (HCode like '%" + cboDepartment.Text + "%' or Name like '%" + cboDepartment.Text + "%' )", new ParameterList(), RecursiveType.None, 0); if (listNew.Count <= 0) { listNew = BDepartment.Select("IsValid=1 ", new ParameterList(), RecursiveType.None, 0); listNew.Insert(0, new Department() { Id = -1, Name = "全部科室" }); } //combobox添加已经查到的关键词 this.cboDepartment.Items.AddRange(listNew.ToArray()); //设置光标位置,否则光标位置始终保持在第一列,造成输入关键词的倒序排列 this.cboDepartment.SelectionStart = this.cboDepartment.Text.Length; //保持鼠标指针原来状态,有时候鼠标指针会被下拉框覆盖,所以要进行一次设置。 Cursor = Cursors.Default; //自动弹出下拉框 this.cboDepartment.DroppedDown = true; } private void tsbClear_Click(object sender, EventArgs e) { } } }