using AIMSBLL;
using AIMSModel;
using AIMSExtension;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
namespace AIMS.PublicUI.UI
{
public partial class frmSelectDictionary : Form
{
///
/// 传递取值控件
///
public TextBox _controlName;
///
/// 字典名称
///
public string _dictionaryName;
public List _arrayId = new List();
public List _arrayName = new List();
public BasicDictionary bd;
public bool isRadio = false;
public bool isAddItem = false;
public frmSelectDictionary()
{
InitializeComponent();
}
private void frmSelectDictionary_Load(object sender, EventArgs e)
{
LoadDate();
this.dgvDictionary.ShowCellToolTips = true;
this.dgvDictionary.CellMouseEnter += new DataGridViewCellEventHandler(dgvDictionary_CellMouseEnter);
}
///
/// 鼠标移到单元格时,设置当前单元格的ToolTipText属性内容为当前单元格内容
/// 解决tip内容显示不全的问题
///
///
///
void dgvDictionary_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.ColumnIndex < 0 || e.RowIndex < 0 || dgvDictionary.Rows.Count <= 0) return;
dgvDictionary.Rows[e.RowIndex].Cells[e.ColumnIndex].ToolTipText = (dgvDictionary.Rows[e.RowIndex].Cells[e.ColumnIndex].Value ?? string.Empty).ToString();
}
private void LoadDate()
{
dgvDictionary.AutoGenerateColumns = false;
btnAdd.Visible = isAddItem;
if (_dictionaryName.Length > 0)
{
this.Text = "选择" + _dictionaryName;
//this.lblName.Text = this.lblName.Text + _dictionaryName;
bd = BBasicDictionary.GetBasicDictionaryByName(_dictionaryName);
}
_arrayId = new List();
_arrayName = new List();
if (_controlName.Tag != null && _controlName.Tag.ToString() != "" && _controlName.Text.ToString().Trim() != "")
{
string[] id = _controlName.Tag.ToString().Split(',');
string[] name = _controlName.Text.Trim().Split(',');
_arrayId = id.ToList();
_arrayName = name.ToList();
}
FullDgv(_arrayId);
}
private void FullDgv(List list)
{
if (list.Count > 0)
{
List anaslist = new List();
bd.SubItem.ForEach((anas) =>
{
if (list.Contains(anas.Id.Value.ToString()))
anaslist.Add(anas);
});
bd.SubItem.ForEach((anas) =>
{
if (!list.Contains(anas.Id.Value.ToString()))
anaslist.Add(anas);
});
dgvDictionary.DataSource = anaslist;
foreach (string id in list)
{
foreach (DataGridViewRow row in dgvDictionary.Rows)
{
if (row.Cells["Id"].Value.ToString() == id)
{
row.Cells["Select"].Value = true;
break;
}
}
}
}
else
{
dgvDictionary.DataSource = bd.SubItem;
}
if (_dictionaryName == "ASA分级")
{
dgvDictionary.Columns["aName"].Width = 65;
dgvDictionary.Columns["Explain"].Width = 350;
this.Width += 100;
}
if (_dictionaryName == "特殊情况" || _dictionaryName == "术中合并症" || _dictionaryName == "麻醉后随访情况" || _dictionaryName == "手术中特殊问题处理")
{
dgvDictionary.Columns["aName"].Width = 350;
dgvDictionary.Columns["Explain"].Width = 65;
dgvDictionary.Columns["Explain"].Visible = false;
}
}
private void btnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnEnter_Click(object sender, EventArgs e)
{
string names = string.Join(",", _arrayName);
string ids = string.Join(",", _arrayId);
_controlName.Text = names;
_controlName.Tag = ids;
this.Close();
}
private void txtQuery_TextChanged(object sender, EventArgs e)
{
DataTable dt = BBasicDictionary.GetBasicDictionaryByKeyName(_dictionaryName, txtQuery.Text);
dgvDictionary.AutoGenerateColumns = false;
dgvDictionary.DataSource = dt;
}
private void txtQuery_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 39)
{
e.Handled = true;
}
}
private void dgvDictionary_CellClick(object sender, DataGridViewCellEventArgs e)
{
if (dgvDictionary.CurrentRow == null) return;
string id = dgvDictionary.CurrentRow.Cells["Id"].Value.ToString();
string name = dgvDictionary.CurrentRow.Cells["aName"].Value.ToString();
if (dgvDictionary.CurrentRow.Cells["Select"].EditedFormattedValue.ToString() == "True")
{
dgvDictionary.CurrentRow.Cells["Select"].Value = false;
if (_arrayId.Contains(id))
{
_arrayId.Remove(id);
}
if (_arrayName.Contains(name))
{
_arrayName.Remove(name);
}
}
else
{
dgvDictionary.CurrentRow.Cells["Select"].Value = true;
if (isRadio == false)
{
if (!_arrayId.Contains(id))
_arrayId.Add(id);
if (!_arrayName.Contains(name))
_arrayName.Add(name);
}
else
{
foreach (DataGridViewRow item in dgvDictionary.Rows)
{
DataGridViewCell senderdgvr = item.Cells["Select"];
if (senderdgvr.EditedFormattedValue.ToString() == "True" && item.Cells["ID"].Value.ToString() != id)
{
item.Cells["Select"].Value = false;
}
}
_arrayId = new List();
_arrayId.Add(id);
_arrayName = new List();
_arrayName.Add(name);
}
}
}
private void frmSelectDictionary_KeyPress(object sender, KeyPressEventArgs e)
{
if (txtQuery.Focused == false)
{
txtQuery.Focus();
txtQuery.Text = "";
txtQuery.ForeColor = Color.Black;
if (e.KeyChar > 33 && e.KeyChar < 126)
{
txtQuery.Text = e.KeyChar.ToString();
txtQuery.Select(1, 1);
}
}
}
private void btnAdd_Click(object sender, EventArgs e)
{
if (txtQuery.Text == null || txtQuery.Text.Trim() == "")
{
MessageBox.Show("名称不能为空!", "系统提示");
return;
}
if (txtQuery.Text.Contains('+') || txtQuery.Text.Contains('-') || txtQuery.Text.Contains(',') || txtQuery.Text.Contains('‘') || txtQuery.Text.Contains('\'') || txtQuery.Text.Contains('\"') || txtQuery.Text.Contains('/') || txtQuery.Text.Contains('*') || txtQuery.Text.Contains('\\') || txtQuery.Text.Contains('?') || txtQuery.Text.Contains('<') || txtQuery.Text.Contains('>') || txtQuery.Text.Contains('|'))
{
MessageBox.Show("名称不能包含下列任何字符:\n\r ,\\/:*?\"\'<>|+- ", "系统提示");
return;
}
BasicDictionary basicDictionary = BBasicDictionary.SelectSingle(" name='" + txtQuery.Text.Trim() + "' and parentid='" + bd.Id + "'", null, RecursiveType.None, 0);
if (basicDictionary == null || basicDictionary.Id == null)
{
basicDictionary = new BasicDictionary();
basicDictionary.ParentId = bd.Id;
basicDictionary.Name = txtQuery.Text.Trim();
basicDictionary.HelpCode = PublicMethod.GetFirstLetter(txtQuery.Text.Trim());
basicDictionary.IsValid = 1;
basicDictionary.Order = 0;
basicDictionary.Remark = "";
basicDictionary.OperatorNo = PublicMethod.OperatorNo;
basicDictionary.OperatorName = PublicMethod.OperatorName;
basicDictionary.OperateDate = DateTime.Now;
basicDictionary.Id = BBasicDictionary.Insert(basicDictionary);
}
_controlName.Text = basicDictionary.Name;
_controlName.Tag = basicDictionary.Id;
this.Close();
}
}
}