using AIMSBLL;
using AIMSExtension;
using AIMSModel;
using DrawGraph;
using HelperDB;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Reflection;
using System.Windows.Forms;
namespace DrawGraphManagement
{
public partial class Main : Form
{
TemplateManage templateManage = new TemplateManage();
object operationRecor = new DrawGraph.OperationRecord();
AreaManageBase areaManageBase = new AreaManageBase();
public Main()
{
InitializeComponent();
}
private void Main_Load(object sender, EventArgs e)
{
HospitalInfo hospital = BHospitalInfo.SelectSingle(1);
txtHospitalName.Text = hospital.HospitalName;
Person PersonObj = BPerson.GetModelByNo("admin");
AIMSExtension.PublicMethod.OperatorId = PersonObj.Id.Value;
AIMSExtension.PublicMethod.OperatorNo = PersonObj.No;
AIMSExtension.PublicMethod.OperatorName = PersonObj.Name;
AIMSExtension.PublicMethod.RoleId = PersonObj.RoleId.Value;
AIMSExtension.PublicMethod.DepId = PersonObj.DepId.Value;
AIMSExtension.PublicMethod.DeptName = BDepartment.GetModel(PersonObj.DepId.Value).Name;
Role role = BRole.GetModel(PersonObj.RoleId.Value);
AIMSExtension.PublicMethod.PermissionLevel = role.PermissionLevel == null ? 0 : role.PermissionLevel.Value;
AIMSExtension.PublicMethod.RoleName = BMenu.GetMenuRootListManageStr(AIMSExtension.PublicMethod.RoleId, "功能权限");
myPanel1.MouseWheel += new System.Windows.Forms.MouseEventHandler(panel1_MouseWheel);
LoadManageList();
}
///
/// 加载管理器列表
///
private void LoadManageList()
{
Assembly assembly = Assembly.LoadFile(AppDomain.CurrentDomain.BaseDirectory + "DrawGraph.dll");//你的loadfile
Type baseType = typeof(AreaManageBase);
List types = assembly.GetTypes().Where(t => t.IsSubclassOf(baseType)).ToList();
List viewTypes = types.Where(s => s.FullName.IndexOf(".document.") < 0).ToList();
List wsTypes = types.Where(s => s.FullName.IndexOf(".document.") >= 0).ToList();
cmbManageList.Items.Clear();
foreach (Type t in viewTypes)
{
cmbManageList.Items.Add(t.Name);
}
cmbManageList.Items.Add("-------------------");
foreach (Type t in wsTypes)
{
cmbManageList.Items.Add(t.Name);
}
}
///
/// 设置界面自适应
///
private void AutoSizeF()
{
#region 设置界面自适应
if (templateManage.ZedControl == null) return;
if (templateManage.Typesetting == TypesettingEnum.Horizontal)
{
//在此处可随时设置板子的属性
templateManage.ZedControl.Height = templateManage.GetPageWidth();
templateManage.ZedControl.Width = Convert.ToInt32(templateManage.ZedControl.Height * 1.414) + 2;
}
else
{
//在此处可随时设置板子的属性
templateManage.ZedControl.Width = templateManage.GetPageWidth();// templateManage.ZedControl.Parent.Width - 54;
templateManage.ZedControl.Height = Convert.ToInt32(templateManage.ZedControl.Width * 1.414) + 2;
}
templateManage.ZedControl.AxisChange();
templateManage.ZedControl.Refresh();
//最后还要调整图表进行自适应
PackObjBase pack = templateManage.GetPackObjectOTag("PhysioDataManage_ChartPackObj_6");
if (pack != null)
pack.Draw();
#endregion
}
///
/// 全部刷新
///
private void AllRefresh()
{
treeView1.Nodes.Clear();
foreach (AreaManageBase area in templateManage.ManageList)
{
//把管理器增加到树控件里
InsertPackObjTree(area);
List ables = area.PackManage.ListPob.Where(s => s is AbleEditPackObj).ToList();
foreach (PackObjBase pack in ables)
{
AbleEditPackObj ableEdit = pack as AbleEditPackObj;
if (ableEdit != null) ableEdit.IsVisible = false;
}
}
//画区域
drawArea();
}
///
/// 新建管理器
///
///
///
private void btnCreate_Click(object sender, EventArgs e)
{
string instanceName = cmbManageList.Text.Trim();
string name = txtManageName.Text.Trim();
string projectName = txtProjectName.Text.Trim();
if (instanceName == "" || name == "" || projectName == "")
{
MessageBox.Show("类名称及区域名称或项目名称不能为空!!!");
return;
}
areaManageBase = BoardFormUtil.AreaManageFactory(instanceName, templateManage.OpeRecord, zedGraphMain, templateManage, name);
bool isAddOk = templateManage.AddManage(areaManageBase);
if (isAddOk)
{
templateManage.ProjectName = projectName;
Point point = templateManage.GetBorderPackWH();
AreaManageForm form = form = new AreaManageForm(areaManageBase, PageStatus.Create, point.X, point.Y);
form.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.AreaManageForm_FormClosed);
form.Show();
}
else
{
MessageBox.Show("不能增加重复的管理器名称或管理器类名称");
}
}
///
/// 插入指定树结点的管理器控件内容
///
///
private void InsertPackObjTree(AreaManageBase areaManage)
{
TreeNode tnSub = new TreeNode();
tnSub.Name = areaManage.Name;
tnSub.Tag = areaManage;
tnSub.Text = areaManage.ClassName + "-" + areaManage.Name;
treeView1.Nodes.Add(tnSub);
//treeView1.SelectedNode = tnSub;
TreeNodeMouseClickEventArgs e = new TreeNodeMouseClickEventArgs(tnSub, 0, 0, 0, 0);
//treeView1_NodeMouseClick(treeView1, e);
}
private void drawArea()
{
templateManage.ZedControl = zedGraphMain;
templateManage.DrawArea();
}
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
//选中点击的节点
treeView1.SelectedNode = e.Node;
//获取节点区域的右下角坐标值
Point pos = new Point(e.Node.Bounds.X + e.Node.Bounds.Width, e.Node.Bounds.Y + e.Node.Bounds.Height);
//在选中的节点的右下角,弹出右键菜单,并设定控制者为treeView
contextMenuStrip1.Show(treeView1, pos);
}
if (e.Button == MouseButtons.Left)
{
TreeNode tn = e.Node;
AreaManageBase area = (AreaManageBase)tn.Tag;
if (area != null)
{
txtAreaX.DataBindings.Clear();
txtAreaX.DataBindings.Add("text", area.PackManage, "X");
txtAreaY.DataBindings.Clear();
txtAreaY.DataBindings.Add("text", area.PackManage, "Y");
}
}
}
private void EditAreaMenuItem_Click(object sender, EventArgs e)
{
TreeNode treeNode = treeView1.SelectedNode;
AreaManageBase selectAreaManage = treeNode.Tag as AreaManageBase;
Point point = templateManage.GetBorderPackWH();
AreaManageForm form = new AreaManageForm(selectAreaManage, PageStatus.Edit, point.X, point.Y);
form.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.AreaManageForm_FormClosed);
form.Show();
}
private void AreaManageForm_FormClosed(object sender, EventArgs e)
{
AreaManageForm form = sender as AreaManageForm;
if (form != null && form.pageStatus == PageStatus.Create)
{
InsertPackObjTree(areaManageBase);
}
//画区域
drawArea();
AutoSizeF();
}
private void btnSave_Click(object sender, EventArgs e)
{
bool reVal = templateManage.Save();
if (reVal)
{
new frmMessageBox().Show();
}
else
{
MessageBox.Show(templateManage.MsgStr);
}
}
///
/// 删除区域
///
///
///
private void ToolStripMenuItem2_Click(object sender, EventArgs e)
{
DialogResult result = MessageBox.Show("确认要删除所有内容吗", "删除", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result == DialogResult.Yes)
{
TreeNode node = treeView1.SelectedNode;
if (node != null)
{
AreaManageBase area = node.Tag as AreaManageBase;
if (area != null)
{
templateManage.DelManage(area);
treeView1.Nodes.Remove(node);
//画区域
drawArea();
}
}
}
}
private bool zedGraphMain_MouseDownEvent(ZedGraphControl sender, MouseEventArgs e)
{
if (templateManage != null)
{
templateManage.zedControl_MouseDownEvent(sender, e);
}
return default(bool);
}
private bool zedGraphMain_MouseMoveEvent(ZedGraphControl sender, MouseEventArgs e)
{
if (templateManage != null)
{
templateManage.zedControl_MouseMoveEvent(sender, e);
}
return default(bool);
}
private bool zedGraphMain_MouseUpEvent(ZedGraphControl sender, MouseEventArgs e)
{
if (templateManage != null)
{
templateManage.zedControl_MouseUpEvent(sender, e);
}
return default(bool);
}
private void zedGraphMain_MouseDoubleClick(object sender, MouseEventArgs e)
{
if (templateManage != null)
{
ZedGraphControl send = sender as ZedGraphControl;
templateManage.zedControl_MouseDoubleClick(send, e);
}
}
private void zedGraphMain_KeyUp(object sender, KeyEventArgs e)
{
if (templateManage != null)
{
ZedGraphControl send = sender as ZedGraphControl;
templateManage.zedControl_KeyUp(send, e);
}
}
private void BtnBind_Click(object sender, EventArgs e)
{
if (textBox1.Text == "") return;
#region 绑定所有手术记录的值
int id = 14;
if (textBox1.Text != "") id = int.Parse(textBox1.Text);
operationRecor = BOperationRecord.getRecord(new OperationRecord(), id, 1);
templateManage.OpeRecord = operationRecor;
//指定对象的所有值属性的绑定
templateManage.BindOperationRecordValueAll(templateManage.OpeRecord);
//非值对象的数据绑定
templateManage.Bind();
#endregion
#region 单独赋值绑定
//设置对象属性的值,单独属性付值
//EntityObjectChangeNotifier.SetValue(templateManage.OpeRecord, "OperationRecord .MZQYY", "麻醉前用药文本", "麻醉前用药值");
//EntityObjectChangeNotifier.SetValue(templateManage.OpeRecord, "PatientRef.Bed", "12", "12值");
//EntityObjectChangeNotifier.SetValue(operationRecor, "OperationSiteId", "体位1", "TY1");
//EntityObjectChangeNotifier.SetValue(operationRecor, "InRoomTime", "2020-08-20 16:09");
//EntityObjectChangeNotifier.SetValue(operationRecor, "OperationApplyRef.ApplyDepartmentRef.HospitalName", "dep234");
#endregion
//templateManage.NotificationAreaBindingUpdate("备注区域").NotificationAreaBindingUpdate("监测区域");
zedGraphMain.Refresh();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
this.Close();
this.Close();
}
catch (Exception)
{
}
}
private void panel1_MouseWheel(object sender, System.Windows.Forms.MouseEventArgs e)
{
templateManage.SetPYL();
}
private void myPanel1_Scroll(object sender, ScrollEventArgs e)
{
templateManage.SetPYL();
}
private void button1_Click_1(object sender, EventArgs e)
{
if (templateManage != null && templateManage.ManageList.Count > 0)
{
int OperationApplyId = 10;
if (textBox1.Text.Trim() != "") OperationApplyId = int.Parse(textBox1.Text.Trim());
DocumentParent documentParent = new DocumentParent();
documentParent.OperationApplyId = OperationApplyId;
//documentParent.OpeRecord = BOperationRecord.SelectSingle("OperationApplyId=@OperationApplyId", new ParameterList("@OperationApplyId", OperationApplyId), RecursiveType.Parent, 3);
if (templateManage.OpeRecord == null) return;
//指定对象的所有值属性的绑定
templateManage.BindOperationRecordValueAll(templateManage.OpeRecord);
templateManage.SetPYL(); //得设置一下偏移量
//非值对象的数据绑定
templateManage.Bind();
}
}
private void button3_Click(object sender, EventArgs e)
{
string txtFont = txtFontSize.Text.Trim();
foreach (AreaManageBase manage in templateManage.ManageList)
{
List ables = manage.PackManage.ListPob.Where(s => s is AbleEditPackObj).ToList();
foreach (PackObjBase pack in ables)
{
AbleEditPackObj ableEdit = pack as AbleEditPackObj;
ableEdit.EditFontSize = int.Parse(txtFont);
}
}
}
private void button4_Click(object sender, EventArgs e)
{
templateManage.BindDefaultValue();
}
private void button5_Click(object sender, EventArgs e)
{
templateManage.ClearEdit();
}
private void cmbTypesetting_SelectedValueChanged(object sender, EventArgs e)
{
if (templateManage != null)
{
string typeset = cmbTypesetting.Text;
if (typeset == "横向")
{
templateManage.Typesetting = TypesettingEnum.Horizontal;
}
else
{
templateManage.Typesetting = TypesettingEnum.Vertical;
}
AutoSizeF();
}
}
private void cmbPageType_SelectedIndexChanged(object sender, EventArgs e)
{
if (templateManage != null)
{
string pageType = cmbPageType.Text;
if (pageType == "A4")
{
templateManage.PageType = PageTypeEnum.A4;
}
else
{
templateManage.PageType = PageTypeEnum.A3;
}
AutoSizeF();
}
}
private void button2_Click(object sender, EventArgs e)
{
if (templateManage != null)
{
templateManage.ControlClear();
}
try
{
string jsonStr = DBHelper.ExecuteScalar("SELECT [JsonDate] FROM [dbo].[OperationRecordTemplate] where id=1").ToString();
if (jsonStr != null && jsonStr != "")
{
templateManage = JsonConvert.DeserializeObject(jsonStr);
templateManage.ZedControl = zedGraphMain;
templateManage.OpeRecord = operationRecor;
templateManage.Id = 1;
bool reVal = templateManage.Load();
if (reVal)
{
AllRefresh();
}
else
{
MessageBox.Show(templateManage.MsgStr);
}
AutoSizeF();
}
//设置排版值
if (templateManage.Typesetting == TypesettingEnum.Vertical)
{
cmbTypesetting.Text = "竖向";
}
else
{
cmbTypesetting.Text = "横向";
}
//设置纸张类型
if (templateManage.PageType == PageTypeEnum.A4)
{
cmbPageType.Text = "A4";
}
else
{
cmbPageType.Text = "A3";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button6_Click(object sender, EventArgs e)
{
if (templateManage != null)
{
templateManage.ControlClear();
}
try
{
string jsonStr = DBHelper.ExecuteScalar("SELECT [JsonDate] FROM [dbo].[OperationRecordTemplate] where id=10").ToString();
if (jsonStr != null && jsonStr != "")
{
templateManage = JsonConvert.DeserializeObject(jsonStr);
templateManage.ZedControl = zedGraphMain;
templateManage.OpeRecord = operationRecor;
templateManage.Id = 10;
bool reVal = templateManage.Load();
if (reVal)
{
AllRefresh();
}
else
{
MessageBox.Show(templateManage.MsgStr);
}
AutoSizeF();
}
//设置排版值
if (templateManage.Typesetting == TypesettingEnum.Vertical)
{
cmbTypesetting.Text = "竖向";
}
else
{
cmbTypesetting.Text = "横向";
}
//设置纸张类型
if (templateManage.PageType == PageTypeEnum.A4)
{
cmbPageType.Text = "A4";
}
else
{
cmbPageType.Text = "A3";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button7_Click(object sender, EventArgs e)
{
if (templateManage != null)
{
templateManage.ControlClear();
}
try
{
string jsonStr = DBHelper.ExecuteScalar("SELECT [JsonDate] FROM [dbo].[OperationRecordTemplate] where id=20").ToString();
if (jsonStr != null && jsonStr != "")
{
templateManage = JsonConvert.DeserializeObject(jsonStr);
templateManage.ZedControl = zedGraphMain;
templateManage.OpeRecord = operationRecor;
templateManage.Id = 20;
bool reVal = templateManage.Load();
if (reVal)
{
AllRefresh();
}
else
{
MessageBox.Show(templateManage.MsgStr);
}
AutoSizeF();
}
//设置排版值
if (templateManage.Typesetting == TypesettingEnum.Vertical)
{
cmbTypesetting.Text = "竖向";
}
else
{
cmbTypesetting.Text = "横向";
}
//设置纸张类型
if (templateManage.PageType == PageTypeEnum.A4)
{
cmbPageType.Text = "A4";
}
else
{
cmbPageType.Text = "A3";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button9_Click(object sender, EventArgs e)
{
if (templateManage != null)
{
templateManage.ControlClear();
}
try
{
string jsonStr = DBHelper.ExecuteScalar("SELECT [JsonDate] FROM [dbo].[OperationRecordTemplate] where id=50").ToString();
if (jsonStr != null && jsonStr != "")
{
templateManage = JsonConvert.DeserializeObject(jsonStr);
templateManage.ZedControl = zedGraphMain;
templateManage.OpeRecord = operationRecor;
templateManage.Id = 50;
bool reVal = templateManage.Load();
if (reVal)
{
AllRefresh();
}
else
{
MessageBox.Show(templateManage.MsgStr);
}
AutoSizeF();
}
//设置排版值
if (templateManage.Typesetting == TypesettingEnum.Vertical)
{
cmbTypesetting.Text = "竖向";
}
else
{
cmbTypesetting.Text = "横向";
}
//设置纸张类型
if (templateManage.PageType == PageTypeEnum.A4)
{
cmbPageType.Text = "A4";
}
else
{
cmbPageType.Text = "A3";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button8_Click(object sender, EventArgs e)
{
if (templateManage != null)
{
templateManage.ControlClear();
}
try
{
string jsonStr = DBHelper.ExecuteScalar("SELECT [JsonDate] FROM [dbo].[OperationRecordTemplate] where id=30").ToString();
if (jsonStr != null && jsonStr != "")
{
templateManage = JsonConvert.DeserializeObject(jsonStr);
templateManage.ZedControl = zedGraphMain;
templateManage.OpeRecord = operationRecor;
templateManage.Id = 30;
bool reVal = templateManage.Load();
if (reVal)
{
AllRefresh();
}
else
{
MessageBox.Show(templateManage.MsgStr);
}
AutoSizeF();
}
//设置排版值
if (templateManage.Typesetting == TypesettingEnum.Vertical)
{
cmbTypesetting.Text = "竖向";
}
else
{
cmbTypesetting.Text = "横向";
}
//设置纸张类型
if (templateManage.PageType == PageTypeEnum.A4)
{
cmbPageType.Text = "A4";
}
else
{
cmbPageType.Text = "A3";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button10_Click(object sender, EventArgs e)
{
if (templateManage != null)
{
templateManage.ControlClear();
}
try
{
string jsonStr = DBHelper.ExecuteScalar("SELECT [JsonDate] FROM [dbo].[OperationRecordTemplate] where id=40").ToString();
if (jsonStr != null && jsonStr != "")
{
templateManage = JsonConvert.DeserializeObject(jsonStr);
templateManage.ZedControl = zedGraphMain;
templateManage.OpeRecord = operationRecor;
templateManage.Id = 40;
bool reVal = templateManage.Load();
if (reVal)
{
AllRefresh();
}
else
{
MessageBox.Show(templateManage.MsgStr);
}
AutoSizeF();
}
//设置排版值
if (templateManage.Typesetting == TypesettingEnum.Vertical)
{
cmbTypesetting.Text = "竖向";
}
else
{
cmbTypesetting.Text = "横向";
}
//设置纸张类型
if (templateManage.PageType == PageTypeEnum.A4)
{
cmbPageType.Text = "A4";
}
else
{
cmbPageType.Text = "A3";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void button11_Click(object sender, EventArgs e)
{
frmTemplateD frmTemplateD = new frmTemplateD();
frmTemplateD.Show();
}
private void button12_Click(object sender, EventArgs e)
{
if (templateManage != null)
{
templateManage.ControlClear();
}
try
{
string jsonStr = DBHelper.ExecuteScalar("SELECT [JsonDate] FROM [dbo].[OperationRecordTemplate] where id=60").ToString();
if (jsonStr != null && jsonStr != "")
{
templateManage = JsonConvert.DeserializeObject(jsonStr);
templateManage.ZedControl = zedGraphMain;
templateManage.OpeRecord = operationRecor;
templateManage.Id = 60;
bool reVal = templateManage.Load();
if (reVal)
{
AllRefresh();
}
else
{
MessageBox.Show(templateManage.MsgStr);
}
AutoSizeF();
}
//设置排版值
if (templateManage.Typesetting == TypesettingEnum.Vertical)
{
cmbTypesetting.Text = "竖向";
}
else
{
cmbTypesetting.Text = "横向";
}
//设置纸张类型
if (templateManage.PageType == PageTypeEnum.A4)
{
cmbPageType.Text = "A4";
}
else
{
cmbPageType.Text = "A3";
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
}
}