using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using AIMSBLL; using AIMSExtension; using AIMSModel; namespace AIMS.PublicUI.UI { public partial class frmAppliance : Form { /// /// 器械集合全部 /// public List list; /// /// 器械集合有效 /// public List validlist; /// /// 声明保存数据时的状态 /// public EditState _state; /// /// 编号 /// public int numberId; public frmAppliance() { InitializeComponent(); } private void frmAppliance_Load(object sender, EventArgs e) { Initial(); chkAll_CheckedChanged(null, null); txtName.Enabled = true; txtName.TextChanged += new EventHandler(txtName_TextChanged); } private void Initial() { ControlExtension.EnabledControl(panel1, false); chkAll.Enabled = true; list = BAppliance.Select(); } /// /// 为DataGridView绑定数据 /// private void BindDgv(List list) { dgvAppliance.AutoGenerateColumns = false; dgvAppliance.Rows.Clear(); int num = 1; foreach (Appliance item in list) { int index = this.dgvAppliance.Rows.Add(); this.dgvAppliance.Rows[index].Cells["Id"].Value = item.Id; this.dgvAppliance.Rows[index].Cells["Index"].Value = num; num++; this.dgvAppliance.Rows[index].Cells["oName"].Value = item.Name; this.dgvAppliance.Rows[index].Cells["HCode"].Value = item.HCode; this.dgvAppliance.Rows[index].Cells["Type"].Value = GetTypeNameByCode(Convert.ToInt32(item.ApplianceType)); this.dgvAppliance.Rows[index].Cells["UseRate"].Value = item.UseRate; this.dgvAppliance.Rows[index].Cells["IsValid"].Value = item.IsValid == 1 ? "有效" : "无效"; } } /// /// 根据器械类型编码得到器械类型名称 /// /// /// private string GetTypeNameByCode(int code) { string typeName = string.Empty; switch (code) { case 0: typeName = "器械"; break; case 1: typeName = "敷料"; break; case 9: typeName = "其它"; break; } return typeName; } /// /// 根据器械类型名称得到器械类型编码 /// /// /// private int GetCodeByTypeName(string typeName) { int code = 0; switch (typeName) { case "器械": code = 0; break; case "敷料": code = 1; break; case "其它": code = 9; break; } return code; } /// /// 退出事件 /// /// /// private void tsbExit_Click(object sender, EventArgs e) { this.Close(); } /// /// 新增事件 /// /// /// private void tsbAdd_Click(object sender, EventArgs e) { //设置状态为新增 _state = EditState.ADD; txtName.TextChanged -= new EventHandler(txtName_TextChanged); txtName.TextChanged += new EventHandler(txtName_TextChanged_1); ControlExtension.ClearControl(panel1); ControlExtension.EnabledControl(panel1, true); chkIsValid.Checked = true; cboType.Text = "器械"; } /// /// 修改事件 /// /// /// private void tsbModify_Click(object sender, EventArgs e) { //设置状态为修改 _state = EditState.EDIT; if (!(dgvAppliance.SelectedRows.Count > 0)) { MessageBox.Show("请选择列表中的一项!"); return; } txtName.TextChanged -= new EventHandler(txtName_TextChanged); txtName.TextChanged -= new EventHandler(txtName_TextChanged); txtName.TextChanged += new EventHandler(txtName_TextChanged_1); //ControlExtension.ClearControl(panel1); ControlExtension.EnabledControl(panel1, true); numberId = Convert.ToInt32(dgvAppliance.SelectedRows[0].Cells["Id"].Value); txtName.Text = dgvAppliance.SelectedRows[0].Cells["oName"].Value.ToString(); txtHCode.Text = dgvAppliance.SelectedRows[0].Cells["HCode"].Value.ToString(); cboType.Text = dgvAppliance.SelectedRows[0].Cells["Type"].Value.ToString(); chkIsValid.Checked = dgvAppliance.SelectedRows[0].Cells["IsValid"].Value.ToString() == "有效" ? true : false; } /// /// 取消事件 /// /// /// private void tsbCancel_Click(object sender, EventArgs e) { ControlExtension.ClearControl(panel1); ControlExtension.EnabledControl(panel1, false); txtName.Enabled = true; chkAll.Enabled = true; txtName.TextChanged -= new EventHandler(txtName_TextChanged_1); txtName.TextChanged -= new EventHandler(txtName_TextChanged); txtName.TextChanged += new EventHandler(txtName_TextChanged); chkAll_CheckedChanged(null, null); } /// /// 保存数据事件 /// /// /// private void tsbSave_Click(object sender, EventArgs e) { if (!ValidInput()) { return; } if (_state == EditState.ADD && dgvAppliance.Rows.Count > 0 && ControlExtension.ValidDataGridViewExistsItemName(dgvAppliance, "oName", txtName.Text.Trim())) { MessageBox.Show("该器械名称已存在,请重新输入!/r/n或选择器械使用类型后保存!"); txtName.Focus(); return; } Appliance app = new Appliance(); app.Name = txtName.Text.Trim(); app.HCode = txtHCode.Text.Trim(); app.ApplianceType = GetCodeByTypeName(cboType.Text); app.IsValid = chkIsValid.Checked == true ? 1 : 0; app.OperatorId = PublicMethod.OperatorId; app.OperatorTime = DateTime.Now; int num = 0; if (_state == EditState.ADD) { app.UseRate = 0; num = BAppliance.Insert(app); if (num > 0) { MessageBox.Show("保存成功!"); tsbCancel_Click(null, null); } } else if (_state == EditState.EDIT) { app.Id = numberId;// Convert.ToInt32(dgvAppliance.SelectedRows[0].Cells["Id"].Value); app.UseRate = Convert.ToInt32(dgvAppliance.SelectedRows[0].Cells["UseRate"].Value); num = BAppliance.Update(app); if (num > 0) { MessageBox.Show("修改成功!"); dgvAppliance.SelectedRows[0].Cells["oName"].Value = txtName.Text.ToString(); dgvAppliance.SelectedRows[0].Cells["HCode"].Value = txtHCode.Text.ToString(); dgvAppliance.SelectedRows[0].Cells["Type"].Value = cboType.Text.ToString(); dgvAppliance.SelectedRows[0].Cells["IsValid"].Value = chkIsValid.Checked == true ? "有效" : "无效"; ControlExtension.ClearControl(panel1); ControlExtension.EnabledControl(panel1, false); txtName.Enabled = true; chkAll.Enabled = true; txtName.TextChanged -= new EventHandler(txtName_TextChanged_1); txtName.TextChanged -= new EventHandler(txtName_TextChanged); txtName.TextChanged += new EventHandler(txtName_TextChanged); } } } /// /// 输入验证 /// /// private bool ValidInput() { bool key = false; if (txtName.Text.Trim().Length < 1) { MessageBox.Show("请输入事件名称!", "系统提示"); } else if (txtHCode.Text.Trim().Length < 1) { MessageBox.Show("请输入助记码!", "系统提示"); } else if (cboType.Text.Trim().Length < 1) { MessageBox.Show("请选择器械类别!", "系统提示"); } else { key = true; } return key; } /// /// 输入字典名称时为助记码文本框赋值 /// /// /// private void txtName_TextChanged(object sender, EventArgs e) { chkAll_CheckedChanged(null, null); } /// /// 输入字典名称时为助记码文本框赋值 /// /// /// private void txtName_TextChanged_1(object sender, EventArgs e) { txtHCode.Text = PublicMethod.GetFirstLetter(txtName.Text); } private void chkAll_CheckedChanged(object sender, EventArgs e) { if (chkAll.Checked) { list = BAppliance.Select(" name like '%" + txtName.Text + "%' or HCode like '%" + txtName.Text + "%' ", null); BindDgv(list); } else { validlist = BAppliance.Select(" IsValid=1 and (name like '%" + txtName.Text + "%' or HCode like '%" + txtName.Text + "%')", null); BindDgv(validlist); } } } }