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

261 lines
9.4 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.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace DataDictionary.UI
{
public partial class frmAnaesthesiaMethod : Form
{
/// <summary>
/// 麻醉字典集合
/// </summary>
private List<AnaesthesiaMethod> list;
private EditState state = EditState.BROWSE;
/// <summary>
/// 编号
/// </summary>
public int pid;
public frmAnaesthesiaMethod()
{
InitializeComponent();
}
private void frmAnaesthesiaMethod_Load(object sender, EventArgs e)
{
Initial();
//FullTreeView(list);
ControlExtension.EnabledControl(panel1, false);
}
/// <summary>
/// 初始化TreeView
/// </summary>
private void Initial()
{
list = BAnaesthesiaMethod.Select(" IsValid=1 ", new ParameterList(), RecursiveType.None, 0);
tvDictionary.Nodes.Clear();
//设置根节点
TreeNode rootNode = new TreeNode("麻醉方式");
FillTvTreeNode(rootNode, 0);
tvDictionary.Nodes.Add(rootNode);
tvDictionary.Nodes[0].Expand();
//初始化ComboBox
List<AnaesthesiaMethod> sList = list;
sList.Insert(0, new AnaesthesiaMethod() { Id = -1, Name = "" });
cboDict.DataSource = sList;
cboDict.DisplayMember = "Name";
cboDict.ValueMember = "Id";
}
private void FillTvTreeNode(TreeNode node, int ParentId)
{
foreach (AnaesthesiaMethod sAnaes in list)
{
if (sAnaes.ParentId == ParentId)
{
TreeNode sNode = new TreeNode(sAnaes.Name);
sNode.Tag = sAnaes;
FillTvTreeNode(sNode, sAnaes.Id.Value);
node.Nodes.Add(sNode);
}
}
}
private void tsbExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void FullDgv(AnaesthesiaMethod anaes)
{
cboDict.Text = anaes.Name;
dgvDictionary.AutoGenerateColumns = false;
dgvDictionary.Rows.Clear();
int num = 1;
anaes.Children = list.Where(a => a.ParentId == anaes.Id).ToList();
foreach (AnaesthesiaMethod sAnaes in anaes.Children)
{
int index = this.dgvDictionary.Rows.Add();
this.dgvDictionary.Rows[index].Cells["Id"].Value = sAnaes.Id;
this.dgvDictionary.Rows[index].Cells["Index"].Value = num;
num++;
this.dgvDictionary.Rows[index].Cells["aName"].Value = sAnaes.Name;
this.dgvDictionary.Rows[index].Cells["HCode"].Value = sAnaes.HelpCode;
this.dgvDictionary.Rows[index].Cells["pName"].Value = anaes.Name;
this.dgvDictionary.Rows[index].Cells["UseRate"].Value = sAnaes.UseRate;
this.dgvDictionary.Rows[index].Cells["IsValid"].Value = sAnaes.IsValid == 1 ? "有效" : "无效";
this.dgvDictionary.Rows[index].Cells["Explain"].Value = sAnaes.Explain;
}
}
private void tsbAdd_Click(object sender, EventArgs e)
{
if (tvDictionary.SelectedNode == null)
{
MessageBox.Show("请选择麻醉目录");
return;
}
state = EditState.ADD;
chkIsValid.Checked = true;
if (tvDictionary.SelectedNode.Level == 0)
{
lblts.Text = "当前状态为:添加新麻醉类型";
ControlExtension.EnabledControl(panel1, true);
cboDict.Enabled = false;
}
else
{
lblts.Text = "当前状态为:为" + tvDictionary.SelectedNode.Text + "添加新麻醉方式";
ControlExtension.EnabledControl(panel1, true);
cboDict.Enabled = false;
}
}
private void tsbModify_Click(object sender, EventArgs e)
{
if (dgvDictionary.SelectedRows.Count < 1)
{
MessageBox.Show("请从列表中选择要修改的麻醉方式!");
return;
}
state = EditState.EDIT;
pid = Convert.ToInt32(dgvDictionary.SelectedRows[0].Cells["Id"].Value);
txtName.Text = dgvDictionary.SelectedRows[0].Cells["aName"].Value.ToString();
txtHCode.Text = dgvDictionary.SelectedRows[0].Cells["HCode"].Value.ToString();
if (dgvDictionary.SelectedRows[0].Cells["Explain"].Value != null)
txtHqms.Text = dgvDictionary.SelectedRows[0].Cells["Explain"].Value.ToString();
chkIsValid.Checked = dgvDictionary.SelectedRows[0].Cells["IsValid"].Value.ToString() == "有效" ? true : false;
intDepOrder.Text = dgvDictionary.SelectedRows[0].Cells["UseRate"].Value.ToString();
txtName.Enabled = true;
txtHCode.Enabled = true;
intDepOrder.Enabled = true;
chkIsValid.Enabled = true;
txtHqms.Enabled = true;
}
private void tsbCancel_Click(object sender, EventArgs e)
{
ControlExtension.EnabledControl(panel1, false);
ControlExtension.ClearControl(panel1);
lblts.Text = "";
state = EditState.BROWSE;
}
private void tsbSave_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow row in dgvDictionary.Rows)
{
if (state != EditState.EDIT && (row.Cells["aName"].Value.ToString() == txtName.Text.Trim()))
{
MessageBox.Show("麻醉方式已存在,请重新输入");
txtName.Text = "";
txtName.Focus();
return;
}
}
if (ValidInput())
{
AnaesthesiaMethod anaes = new AnaesthesiaMethod();
string nodeName = cboDict.Text.Trim();
if (Convert.ToInt32(cboDict.SelectedValue) > 0)
{
anaes.ParentId = Convert.ToInt32(cboDict.SelectedValue);
}
else
{
anaes.ParentId = 0;
}
anaes.Name = txtName.Text.Trim();
anaes.HelpCode = txtHCode.Text.Trim();
anaes.IsValid = chkIsValid.Checked == true ? 1 : 0;
if (intDepOrder.Text.Trim().Length > 0)
{
anaes.UseRate = int.Parse(intDepOrder.Text.Trim());
}
else
{
anaes.UseRate = 0;
}
anaes.Explain = txtHqms.Text.Trim();
anaes.OperatorNo = PublicMethod.OperatorNo;
anaes.OperatorName = PublicMethod.OperatorName;
anaes.OperateDate = DateTime.Now;
int n = 0;
if (state == EditState.ADD)
{
n = BAnaesthesiaMethod.Insert(anaes);
}
else if (state == EditState.EDIT)
{
anaes.Id = pid;
n = BAnaesthesiaMethod.Update(anaes);
}
if (n > 0)
{
MessageBox.Show("保存成功!");
ControlExtension.EnabledControl(panel1, false);
ControlExtension.ClearControl(panel1);
}
Initial();
state = EditState.BROWSE;
foreach (TreeNode node in tvDictionary.Nodes[0].Nodes)
{
if (node.Text == nodeName)
{
AnaesthesiaMethod sbd = node.Tag as AnaesthesiaMethod;
FullDgv(sbd);
break;
}
}
}
}
/// <summary>
/// 输入字典名称时为助记码文本框赋值
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txtName_TextChanged(object sender, EventArgs e)
{
txtHCode.Text = PublicMethod.GetFirstLetter(txtName.Text);
}
/// <summary>
/// 输入验证
/// </summary>
/// <returns></returns>
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 (txtHqms.Text.Trim().Length < 1)
{
MessageBox.Show("请输HQMS编码");
}
else
{
key = true;
}
return key;
}
private void tvDictionary_AfterSelect(object sender, TreeViewEventArgs e)
{
if (tvDictionary.SelectedNode.Level <= 0) return;
AnaesthesiaMethod bd = tvDictionary.SelectedNode.Tag as AnaesthesiaMethod;
FullDgv(bd);
}
}
}