286 lines
12 KiB
C#
286 lines
12 KiB
C#
using DrawGraph;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
|
|
namespace DrawGraph
|
|
{
|
|
public class SelectWorkerValue
|
|
{
|
|
private volatile static SelectWorkerValue _instance = null;
|
|
private static readonly object lockHelper = new object();
|
|
public static bool isUpdate = true;
|
|
|
|
private SelectWorkerValue() { }
|
|
public static SelectWorkerValue CreateInstance()
|
|
{
|
|
if (_instance == null)
|
|
{
|
|
lock (lockHelper)
|
|
{
|
|
if (_instance == null)
|
|
{
|
|
_instance = new SelectWorkerValue();
|
|
|
|
System.Windows.Forms.DataGridViewTextBoxColumn id = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
|
id.HeaderText = "id";
|
|
id.Name = "id";
|
|
id.DataPropertyName = "id";
|
|
id.ReadOnly = true;
|
|
id.Visible = false;
|
|
System.Windows.Forms.DataGridViewTextBoxColumn Name = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
|
Name.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
|
|
Name.HeaderText = "名称";
|
|
Name.Name = "Name";
|
|
Name.DataPropertyName = "Name";
|
|
Name.ReadOnly = true;
|
|
System.Windows.Forms.DataGridViewTextBoxColumn Code = new System.Windows.Forms.DataGridViewTextBoxColumn();
|
|
Code.HeaderText = "编码";
|
|
Code.Name = "Code";
|
|
Code.DataPropertyName = "Code";
|
|
Code.ReadOnly = true;
|
|
|
|
dgvZd = new System.Windows.Forms.DataGridView();
|
|
dgvZd.AllowUserToAddRows = false;
|
|
dgvZd.AllowUserToDeleteRows = false;
|
|
dgvZd.BackgroundColor = System.Drawing.Color.White;
|
|
DataGridViewCellStyle dgvStyle1 = new DataGridViewCellStyle();
|
|
dgvStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
|
|
dgvStyle1.BackColor = System.Drawing.Color.White;
|
|
dgvStyle1.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
|
dgvStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
|
|
dgvStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
|
dgvStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
|
dgvStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
|
|
dgvZd.ColumnHeadersDefaultCellStyle = dgvStyle1;
|
|
dgvZd.ColumnHeadersHeight = 30;
|
|
dgvZd.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
|
|
id,
|
|
Name,
|
|
Code});
|
|
DataGridViewCellStyle dgvStyle2 = new DataGridViewCellStyle();
|
|
dgvStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
|
|
dgvStyle2.BackColor = System.Drawing.SystemColors.Window;
|
|
dgvStyle2.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
|
|
dgvStyle2.ForeColor = System.Drawing.Color.Black;
|
|
dgvStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
|
|
dgvStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
|
|
dgvStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
|
|
dgvZd.DefaultCellStyle = dgvStyle2;
|
|
dgvZd.EnableHeadersVisualStyles = false;
|
|
dgvZd.Name = "dgvZd";
|
|
dgvZd.ReadOnly = true;
|
|
dgvZd.RowHeadersVisible = false;
|
|
dgvZd.RowTemplate.Height = 30;
|
|
dgvZd.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
|
|
dgvZd.Size = new System.Drawing.Size(200, 290);
|
|
dgvZd.TabIndex = 17;
|
|
dgvZd.AllowUserToResizeRows = false;
|
|
dgvZd.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(dgvZd_CellClick);
|
|
//dgvZd.KeyDown += new System.Windows.Forms.KeyEventHandler(dgvZd_KeyDown);
|
|
//dgvZd.KeyPress += new System.Windows.Forms.KeyPressEventHandler(dgvZd_KeyPress);
|
|
//dgvZd.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(dgvZd_PreviewKeyDown);
|
|
}
|
|
}
|
|
}
|
|
return _instance;
|
|
}
|
|
static System.Windows.Forms.DataGridView dgvZd;
|
|
static AbleEditPackObj aEdit;
|
|
static string type;
|
|
public static TemplateManage template;
|
|
public static object OpeRecord;
|
|
public static string Key;
|
|
public static string Value;
|
|
|
|
public void Show(TemplateManage _template, object _OpeRecord, AbleEditPackObj _aEdit, string _type, bool _isUpdate = true)
|
|
{
|
|
isUpdate = _isUpdate;
|
|
type = _type;
|
|
aEdit = _aEdit;
|
|
template = _template;
|
|
OpeRecord = _OpeRecord;
|
|
if (aEdit == null) return;
|
|
Key = aEdit.PackValue;
|
|
Value = aEdit.PackText;
|
|
DataTable dt = DBManage.GetDictDataTable((OpeRecord as OperationRecord), "", aEdit.ControlTitleText, type.ToString(), Key);
|
|
dgvZd.DataSource = dt;
|
|
System.Drawing.Point point = new System.Drawing.Point(aEdit.CControl.Location.X, aEdit.CControl.Location.Y - aEdit.CControl.Height);
|
|
if (_type == "手术" || _type == "诊断")
|
|
{
|
|
dgvZd.Size = new System.Drawing.Size(400, 210);
|
|
if (_aEdit.RealEndY > 0.8)
|
|
point = new System.Drawing.Point(aEdit.CControl.Location.X, aEdit.CControl.Location.Y - 220);
|
|
}
|
|
else
|
|
{
|
|
dgvZd.Size = new System.Drawing.Size(200, 290);
|
|
if (_aEdit.RealEndY > 0.8)
|
|
point = new System.Drawing.Point(aEdit.CControl.Location.X, aEdit.CControl.Location.Y - 300);
|
|
}
|
|
dgvZd.Location = point;
|
|
if (dgvZd.Parent == null)
|
|
aEdit.CControl.Parent.Controls.Add(dgvZd);
|
|
else
|
|
{
|
|
aEdit.CControl.Parent.Controls.Remove(dgvZd);
|
|
aEdit.CControl.Parent.Controls.Add(dgvZd);
|
|
}
|
|
dgvZd.Visible = true;
|
|
dgvZd.BringToFront();
|
|
}
|
|
public void ShowSel(Control CControl, object _OpeRecord)
|
|
{
|
|
OpeRecord = _OpeRecord;
|
|
if (aEdit == null) return;
|
|
Key = aEdit.PackValue;
|
|
Value = aEdit.PackText;
|
|
string text = CControl.Text;
|
|
text = text.Replace(Value + ",", "");
|
|
DataTable dt = DBManage.GetDictDataTable((OpeRecord as OperationRecord), text, aEdit.ControlTitleText, type.ToString(), Key);
|
|
dgvZd.DataSource = dt;
|
|
dgvZd.BringToFront();
|
|
}
|
|
public void DelSel(Control CControl, object _OpeRecord)
|
|
{
|
|
OpeRecord = _OpeRecord;
|
|
if (aEdit == null) return;
|
|
if (CControl.Text.Trim() != "" && CControl.Text != Value)
|
|
{
|
|
string[] strs = CControl.Text.Split(',');
|
|
string[] names = Value.Split(',');
|
|
string[] ids = Key.Split(',');
|
|
List<string> namevalue = new List<string>();
|
|
List<string> idvalue = new List<string>();
|
|
|
|
|
|
for (int i = 0; i < strs.Length; i++)
|
|
{
|
|
for (int j = 0; j < names.Length; j++)
|
|
{
|
|
if (strs[i] == names[j])
|
|
{
|
|
namevalue.Add(names[j]);
|
|
idvalue.Add(ids[j]);
|
|
}
|
|
}
|
|
}
|
|
if (idvalue.Count > 0)
|
|
{
|
|
Value = string.Join(",", namevalue);
|
|
Key = string.Join(",", idvalue);
|
|
}
|
|
else
|
|
{
|
|
Value = "";
|
|
Key = "";
|
|
}
|
|
|
|
dgvZd.Visible = false;
|
|
aEdit.IsVisible = !aEdit.IsVisible;
|
|
//设置属性的值
|
|
template.SetObjValue(OpeRecord, aEdit.ClassDataSourceName, Value, Key, true);
|
|
}
|
|
else
|
|
{
|
|
Value = "";
|
|
Key = "";
|
|
dgvZd.Visible = false;
|
|
aEdit.IsVisible = !aEdit.IsVisible;
|
|
//设置属性的值
|
|
template.SetObjValue(OpeRecord, aEdit.ClassDataSourceName, Value, Key, true);
|
|
}
|
|
}
|
|
public static void Hidden(bool isShow = false)
|
|
{
|
|
if (aEdit != null)
|
|
{
|
|
aEdit.CControl.Parent.Controls.Remove(dgvZd);
|
|
dgvZd.Visible = false;
|
|
aEdit.IsVisible = false;
|
|
}
|
|
}
|
|
|
|
|
|
static void dgvZd_CellClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
if (e.RowIndex >= 0)
|
|
{
|
|
SetContent(e.RowIndex);
|
|
}
|
|
}
|
|
//static void dgvZd_KeyDown(object sender, KeyEventArgs e)
|
|
//{
|
|
// if (e.KeyCode == Keys.Down)
|
|
// {
|
|
// if (dgvZd.CurrentRow.Index == dgvZd.Rows.Count - 1)
|
|
// {
|
|
// e.Handled = true;
|
|
// dgvZd.CurrentCell = dgvZd.Rows[0].Cells[3];
|
|
// dgvZd.Rows[0].Selected = true;
|
|
// }
|
|
// }
|
|
// if (e.KeyCode == Keys.Up)
|
|
// {
|
|
// if (dgvZd.CurrentRow.Index == 0)
|
|
// {
|
|
// e.Handled = true;
|
|
// dgvZd.CurrentCell = dgvZd.Rows[dgvZd.Rows.Count - 1].Cells[3];
|
|
// dgvZd.Rows[dgvZd.Rows.Count - 1].Selected = true;
|
|
// }
|
|
// }
|
|
//}
|
|
|
|
//static void dgvZd_KeyPress(object sender, KeyPressEventArgs e)
|
|
//{
|
|
// if (e.KeyChar.ToString() == "\r")
|
|
// {
|
|
// if (dgvZd.SelectedRows.Count > 0)
|
|
// {
|
|
// SetContent(dgvZd.SelectedRows[0].Index);
|
|
// }
|
|
// }
|
|
//}
|
|
//static void dgvZd_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e)
|
|
//{
|
|
// if (e.KeyCode == Keys.Enter)
|
|
// {
|
|
// index = dgvZd.CurrentRow.Index;
|
|
// }
|
|
//}
|
|
static void SetContent(int index)
|
|
{
|
|
if (dgvZd.Rows[index].Cells["Name"].EditedFormattedValue.ToString() != "")
|
|
{
|
|
int id = int.Parse(dgvZd.Rows[index].Cells["id"].Value.ToString());
|
|
string name = dgvZd.Rows[index].Cells["Name"].Value.ToString();
|
|
string code = dgvZd.Rows[index].Cells["code"].Value.ToString();
|
|
|
|
if (Key != null && Key.Trim() != "")
|
|
{
|
|
Key = Key + "," + id;
|
|
Value = Value + "," + name;
|
|
}
|
|
else
|
|
{
|
|
Key = id.ToString();
|
|
Value = name;
|
|
}
|
|
|
|
index = 0;
|
|
dgvZd.Visible = false;
|
|
if (isUpdate == true)
|
|
{
|
|
//设置属性的值
|
|
aEdit.IsVisible = !aEdit.IsVisible;
|
|
}
|
|
template.SetObjValue(OpeRecord, aEdit.ClassDataSourceName, Value, Key, isUpdate);
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|