AIMS/AIMSControls/DataDictionary/frmOperationRoom.cs
2023-08-16 22:32:16 +08:00

290 lines
11 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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
{
/// <summary>
/// 手术间集合
/// </summary>
public List<OperationRoom> list;
public List<Department> listNew = new List<Department>();
public List<Department> listOnit = new List<Department>();
public string cboDepartmentText;
/// <summary>
/// 声明保存数据时的状态
/// </summary>
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);
}
/// <summary>
/// 为DataGridView绑定数据
/// </summary>
private void BindDgv(List<OperationRoom> 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)
{
}
}
}
/// <summary>
/// 退出事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsbExit_Click(object sender, EventArgs e)
{
this.Close();
}
/// <summary>
/// 新增事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsbAdd_Click(object sender, EventArgs e)
{
//设置状态为新增
_state = EditState.ADD;
ControlExtension.EnabledControl(panel1, true);
ControlExtension.ClearControl(panel1);
}
/// <summary>
/// 修改事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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)
//{
//}
}
/// <summary>
/// 取消事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsbCancel_Click(object sender, EventArgs e)
{
ControlExtension.ClearControl(panel1);
ControlExtension.EnabledControl(panel1, false);
cboDepartment.SelectedIndex = -1;
cboDepartment.Text = "";
}
/// <summary>
/// 保存数据事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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);
}
}
/// <summary>
/// 输入验证
/// </summary>
/// <returns></returns>
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;
}
/// <summary>
/// 判断DataGridView是否显示全部记录
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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)
{
}
}
}