模板增加开始时间 手术医生麻醉医生后可以追加时间 事件图例打印横线去掉

This commit is contained in:
leomon 2023-05-03 18:16:47 +08:00
parent 05b0b07250
commit 7313554700
17 changed files with 1521 additions and 1063 deletions

View File

@ -841,6 +841,12 @@
<Compile Include="DataDictionary\frmUserPurviewDetail.Designer.cs"> <Compile Include="DataDictionary\frmUserPurviewDetail.Designer.cs">
<DependentUpon>frmUserPurviewDetail.cs</DependentUpon> <DependentUpon>frmUserPurviewDetail.cs</DependentUpon>
</Compile> </Compile>
<Compile Include="PublicUI\frmTemplateSel.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="PublicUI\frmTemplateSel.Designer.cs">
<DependentUpon>frmTemplateSel.cs</DependentUpon>
</Compile>
<Compile Include="PublicUI\MainFormManage.cs"> <Compile Include="PublicUI\MainFormManage.cs">
<SubType>Form</SubType> <SubType>Form</SubType>
</Compile> </Compile>
@ -1237,6 +1243,9 @@
<EmbeddedResource Include="DataDictionary\frmUserPurviewDetail.resx"> <EmbeddedResource Include="DataDictionary\frmUserPurviewDetail.resx">
<DependentUpon>frmUserPurviewDetail.cs</DependentUpon> <DependentUpon>frmUserPurviewDetail.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>
<EmbeddedResource Include="PublicUI\frmTemplateSel.resx">
<DependentUpon>frmTemplateSel.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="PublicUI\MainFormManage.resx"> <EmbeddedResource Include="PublicUI\MainFormManage.resx">
<DependentUpon>MainFormManage.cs</DependentUpon> <DependentUpon>MainFormManage.cs</DependentUpon>
</EmbeddedResource> </EmbeddedResource>

View File

@ -31,14 +31,6 @@
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.panel2 = new System.Windows.Forms.Panel(); this.panel2 = new System.Windows.Forms.Panel();
this.dgv = new System.Windows.Forms.DataGridView(); this.dgv = new System.Windows.Forms.DataGridView();
this.tsbExit = new System.Windows.Forms.ToolStripButton();
this.tsbCreateTemplate = new System.Windows.Forms.ToolStripButton();
this.panel1 = new System.Windows.Forms.Panel();
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.TemplateNameColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.TemplateNameColumn = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.OperatorName = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.OperatorName = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.InputColumn = new System.Windows.Forms.DataGridViewButtonColumn(); this.InputColumn = new System.Windows.Forms.DataGridViewButtonColumn();
@ -47,6 +39,14 @@
this.IsPublic = new System.Windows.Forms.DataGridViewCheckBoxColumn(); this.IsPublic = new System.Windows.Forms.DataGridViewCheckBoxColumn();
this.OperatorNo = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.OperatorNo = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.InRoomTime2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.InRoomTime2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.tsbExit = new System.Windows.Forms.ToolStripButton();
this.tsbCreateTemplate = new System.Windows.Forms.ToolStripButton();
this.panel1 = new System.Windows.Forms.Panel();
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.dataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.panel2.SuspendLayout(); this.panel2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit();
this.panel1.SuspendLayout(); this.panel1.SuspendLayout();
@ -90,6 +90,74 @@
this.dgv.TabIndex = 6; this.dgv.TabIndex = 6;
this.dgv.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgv_CellContentClick); this.dgv.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dgv_CellContentClick);
// //
// TemplateNameColumn
//
this.TemplateNameColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.TemplateNameColumn.DataPropertyName = "TemplateName";
this.TemplateNameColumn.HeaderText = "模板名称";
this.TemplateNameColumn.Name = "TemplateNameColumn";
this.TemplateNameColumn.ReadOnly = true;
//
// OperatorName
//
this.OperatorName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.OperatorName.DataPropertyName = "OperatorName";
this.OperatorName.HeaderText = "创建人";
this.OperatorName.Name = "OperatorName";
this.OperatorName.Width = 70;
//
// InputColumn
//
this.InputColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.InputColumn.HeaderText = "";
this.InputColumn.Name = "InputColumn";
this.InputColumn.Text = "导入";
this.InputColumn.UseColumnTextForButtonValue = true;
this.InputColumn.Width = 60;
//
// EditColumn
//
this.EditColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.EditColumn.HeaderText = "";
this.EditColumn.Name = "EditColumn";
this.EditColumn.ReadOnly = true;
this.EditColumn.Text = "编辑";
this.EditColumn.UseColumnTextForButtonValue = true;
this.EditColumn.Width = 60;
//
// DeleteColumn
//
this.DeleteColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.DeleteColumn.HeaderText = "";
this.DeleteColumn.Name = "DeleteColumn";
this.DeleteColumn.ReadOnly = true;
this.DeleteColumn.Text = "删除";
this.DeleteColumn.UseColumnTextForButtonValue = true;
this.DeleteColumn.Width = 60;
//
// IsPublic
//
this.IsPublic.DataPropertyName = "IsPublic";
this.IsPublic.HeaderText = "公有";
this.IsPublic.Name = "IsPublic";
this.IsPublic.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.IsPublic.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.IsPublic.Visible = false;
//
// OperatorNo
//
this.OperatorNo.DataPropertyName = "OperatorNo";
this.OperatorNo.HeaderText = "OperatorNo";
this.OperatorNo.Name = "OperatorNo";
this.OperatorNo.Visible = false;
//
// InRoomTime2
//
this.InRoomTime2.DataPropertyName = "InRoomTime";
this.InRoomTime2.HeaderText = "InRoomTime";
this.InRoomTime2.Name = "InRoomTime2";
this.InRoomTime2.Visible = false;
//
// tsbExit // tsbExit
// //
this.tsbExit.Font = new System.Drawing.Font("微软雅黑", 9F); this.tsbExit.Font = new System.Drawing.Font("微软雅黑", 9F);
@ -167,74 +235,6 @@
this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4";
this.dataGridViewTextBoxColumn4.Visible = false; this.dataGridViewTextBoxColumn4.Visible = false;
// //
// TemplateNameColumn
//
this.TemplateNameColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.TemplateNameColumn.DataPropertyName = "TemplateName";
this.TemplateNameColumn.HeaderText = "模板名称";
this.TemplateNameColumn.Name = "TemplateNameColumn";
this.TemplateNameColumn.ReadOnly = true;
//
// OperatorName
//
this.OperatorName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.OperatorName.DataPropertyName = "OperatorName";
this.OperatorName.HeaderText = "创建人";
this.OperatorName.Name = "OperatorName";
this.OperatorName.Width = 70;
//
// InputColumn
//
this.InputColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.InputColumn.HeaderText = "";
this.InputColumn.Name = "InputColumn";
this.InputColumn.Text = "导入";
this.InputColumn.UseColumnTextForButtonValue = true;
this.InputColumn.Width = 60;
//
// EditColumn
//
this.EditColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.EditColumn.HeaderText = "";
this.EditColumn.Name = "EditColumn";
this.EditColumn.ReadOnly = true;
this.EditColumn.Text = "编辑";
this.EditColumn.UseColumnTextForButtonValue = true;
this.EditColumn.Width = 60;
//
// DeleteColumn
//
this.DeleteColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None;
this.DeleteColumn.HeaderText = "";
this.DeleteColumn.Name = "DeleteColumn";
this.DeleteColumn.ReadOnly = true;
this.DeleteColumn.Text = "删除";
this.DeleteColumn.UseColumnTextForButtonValue = true;
this.DeleteColumn.Width = 60;
//
// IsPublic
//
this.IsPublic.DataPropertyName = "IsPublic";
this.IsPublic.HeaderText = "公有";
this.IsPublic.Name = "IsPublic";
this.IsPublic.Resizable = System.Windows.Forms.DataGridViewTriState.True;
this.IsPublic.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic;
this.IsPublic.Visible = false;
//
// OperatorNo
//
this.OperatorNo.DataPropertyName = "OperatorNo";
this.OperatorNo.HeaderText = "OperatorNo";
this.OperatorNo.Name = "OperatorNo";
this.OperatorNo.Visible = false;
//
// InRoomTime2
//
this.InRoomTime2.DataPropertyName = "InRoomTime";
this.InRoomTime2.HeaderText = "InRoomTime";
this.InRoomTime2.Name = "InRoomTime2";
this.InRoomTime2.Visible = false;
//
// frmTemplate // frmTemplate
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);

View File

@ -61,12 +61,18 @@ namespace AIMS.PublicUI.UI
{ {
if (this.dgv.Columns[e.ColumnIndex].Name == "InputColumn") if (this.dgv.Columns[e.ColumnIndex].Name == "InputColumn")
{ {
if (MessageBox.Show("确认要导入[" + dgv.CurrentRow.Cells["TemplateNameColumn"].Value.ToString() + "]模板吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) frmTemplateSel templateSel = new frmTemplateSel();
templateSel.InRoomTime = InRoomTime;
if (templateSel.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{ {
//BOperationTemplate.ClearData(PatientId, TypeId); BOperationTemplate.InputData(dgv.CurrentRow.Cells["TemplateNameColumn"].Value.ToString(), PatientId, templateSel.InRoomTime, TypeId, _record);
BOperationTemplate.InputData(dgv.CurrentRow.Cells["TemplateNameColumn"].Value.ToString(), PatientId, InRoomTime, TypeId,_record);
this.DialogResult = System.Windows.Forms.DialogResult.OK; this.DialogResult = System.Windows.Forms.DialogResult.OK;
} }
//if (MessageBox.Show("确认要导入[" + dgv.CurrentRow.Cells["TemplateNameColumn"].Value.ToString() + "]模板吗?\n模板开始时间"+ InRoomTime, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
//{
// //BOperationTemplate.ClearData(PatientId, TypeId);
// BOperationTemplate.InputData(dgv.CurrentRow.Cells["TemplateNameColumn"].Value.ToString(), PatientId, InRoomTime, TypeId,_record);
//}
} }
else if (this.dgv.Columns[e.ColumnIndex].Name == "EditColumn") else if (this.dgv.Columns[e.ColumnIndex].Name == "EditColumn")
{ {

96
AIMS/PublicUI/frmTemplateSel.Designer.cs generated Normal file
View File

@ -0,0 +1,96 @@
namespace AIMS.PublicUI
{
partial class frmTemplateSel
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.dtpStartTempTime = new System.Windows.Forms.DateTimePicker();
this.btnQuery = new DevComponents.DotNetBar.ButtonX();
this.SuspendLayout();
//
// label1
//
this.label1.AutoSize = true;
this.label1.BackColor = System.Drawing.Color.Transparent;
this.label1.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.label1.Location = new System.Drawing.Point(15, 23);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(56, 17);
this.label1.TabIndex = 12;
this.label1.Text = "开始时间";
//
// dtpStartTempTime
//
this.dtpStartTempTime.CustomFormat = "yyyy-MM-dd HH:mm";
this.dtpStartTempTime.Font = new System.Drawing.Font("微软雅黑", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.dtpStartTempTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
this.dtpStartTempTime.Location = new System.Drawing.Point(74, 19);
this.dtpStartTempTime.Name = "dtpStartTempTime";
this.dtpStartTempTime.Size = new System.Drawing.Size(145, 23);
this.dtpStartTempTime.TabIndex = 11;
//
// btnQuery
//
this.btnQuery.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton;
this.btnQuery.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground;
this.btnQuery.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.btnQuery.Location = new System.Drawing.Point(225, 19);
this.btnQuery.Name = "btnQuery";
this.btnQuery.Size = new System.Drawing.Size(80, 23);
this.btnQuery.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled;
this.btnQuery.TabIndex = 13;
this.btnQuery.Text = "确定";
this.btnQuery.Click += new System.EventHandler(this.btnQuery_Click);
//
// frmTemplateSel
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(308, 67);
this.Controls.Add(this.btnQuery);
this.Controls.Add(this.label1);
this.Controls.Add(this.dtpStartTempTime);
this.MaximizeBox = false;
this.MinimizeBox = false;
this.Name = "frmTemplateSel";
this.ShowIcon = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "模板开始时间";
this.Load += new System.EventHandler(this.frmTemplateSel_Load);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.DateTimePicker dtpStartTempTime;
private DevComponents.DotNetBar.ButtonX btnQuery;
}
}

View File

@ -0,0 +1,31 @@
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 AIMS.PublicUI
{
public partial class frmTemplateSel : Form
{
public DateTime InRoomTime;
public frmTemplateSel()
{
InitializeComponent();
}
private void btnQuery_Click(object sender, EventArgs e)
{
InRoomTime = dtpStartTempTime.Value;
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
private void frmTemplateSel_Load(object sender, EventArgs e)
{
dtpStartTempTime.Value = InRoomTime;
}
}
}

View File

@ -0,0 +1,120 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -59,6 +59,8 @@ namespace AIMSBLL
_record.Age = OperationFrontdt.Rows[0]["Age"].ToString(); _record.Age = OperationFrontdt.Rows[0]["Age"].ToString();
_record.Identity = OperationFrontdt.Rows[0]["IdentityCard"].ToString(); _record.Identity = OperationFrontdt.Rows[0]["IdentityCard"].ToString();
_record.FareType = OperationFrontdt.Rows[0]["PatientKind"].ToString(); _record.FareType = OperationFrontdt.Rows[0]["PatientKind"].ToString();
_record.BloodType = OperationFrontdt.Rows[0]["BloodType"].ToString();
_record.RHBloodType = OperationFrontdt.Rows[0]["RHBloodType"].ToString();
ASALevel = OperationFrontdt.Rows[0]["ASA"].ToString(); ASALevel = OperationFrontdt.Rows[0]["ASA"].ToString();
if (OperationFrontdt.Rows[0]["Height"].ToString() != "") if (OperationFrontdt.Rows[0]["Height"].ToString() != "")
{ {
@ -136,7 +138,7 @@ namespace AIMSBLL
} }
_record.OpeRecordInfo.InfoRemark = "-"; _record.OpeRecordInfo.InfoRemark = "-";
_record.OpeRecordInfo.RuleNurse = "-"; _record.OpeRecordInfo.NeedleDirection = "-";
_record.OpeRecordInfo.OperatorId = PublicMethod.OperatorName; _record.OpeRecordInfo.OperatorId = PublicMethod.OperatorName;
_record.OpeRecordInfo.OperatorTime = DateTime.Now; _record.OpeRecordInfo.OperatorTime = DateTime.Now;

View File

@ -270,11 +270,12 @@ namespace DrawGraph
tokenEditor.Leave -= TokenEditor_Leave; tokenEditor.Leave -= TokenEditor_Leave;
tokenEditor.Leave += TokenEditor_Leave; tokenEditor.Leave += TokenEditor_Leave;
if (ableEdit.ControlTitleText == "手术" || ableEdit.ControlTitleText == "诊断") if ((PublicMethod.RoleName.Contains("增加诊断") && ableEdit.ControlTitleText == "诊断") || (AIMSExtension.PublicMethod.RoleName.Contains("增加手术") && ableEdit.ControlTitleText == "手术"))
{ {
tokenEditor.ValidateToken -= new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken); tokenEditor.ValidateToken -= new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken);
tokenEditor.ValidateToken += new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken); tokenEditor.ValidateToken += new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken);
} }
} }
else if (ableEdit.ControlType == EControlType.CheckBox) else if (ableEdit.ControlType == EControlType.CheckBox)
{ {

View File

@ -272,11 +272,12 @@ namespace DrawGraph
tokenEditor.Leave -= TokenEditor_Leave; tokenEditor.Leave -= TokenEditor_Leave;
tokenEditor.Leave += TokenEditor_Leave; tokenEditor.Leave += TokenEditor_Leave;
if (ableEdit.ControlTitleText == "手术" || ableEdit.ControlTitleText == "诊断") if ((PublicMethod.RoleName.Contains("增加诊断") && ableEdit.ControlTitleText == "诊断") || (AIMSExtension.PublicMethod.RoleName.Contains("增加手术") && ableEdit.ControlTitleText == "手术"))
{ {
tokenEditor.ValidateToken -= new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken); tokenEditor.ValidateToken -= new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken);
tokenEditor.ValidateToken += new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken); tokenEditor.ValidateToken += new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken);
} }
} }
else if (ableEdit.ControlType == EControlType.CheckBox) else if (ableEdit.ControlType == EControlType.CheckBox)
{ {

View File

@ -5,6 +5,7 @@ using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Windows.Forms; using System.Windows.Forms;
using DevComponents.DotNetBar.Controls; using DevComponents.DotNetBar.Controls;
using Newtonsoft.Json.Linq;
namespace DrawGraph namespace DrawGraph
{ {
@ -85,7 +86,19 @@ namespace DrawGraph
break; break;
case EControlType.Directorys: case EControlType.Directorys:
value = ableEdit.PackValue; value = ableEdit.PackValue;
if (ableEdit.ClassDataSourceName == "OperationRecord.OperationDoctor" && myOpeRecord.OpeRecordInfo.Extend4 != null && myOpeRecord.OpeRecordInfo.Extend4 != "" && myOpeRecord.OpeRecordInfo.Extend4 != "|")
{
text = DBManage.GetDictionaryValuesById(ableEdit.PackValue, ableEdit.ControlTitleText, myOpeRecord.OpeRecordInfo.Extend4 );
}
else if (ableEdit.ClassDataSourceName == "OperationRecord.AnesthesiaDoctor" && myOpeRecord.OpeRecordInfo.Extend5 != null && myOpeRecord.OpeRecordInfo.Extend5 != "" && myOpeRecord.OpeRecordInfo.Extend5 != "|")
{
text = DBManage.GetDictionaryValuesById(ableEdit.PackValue, ableEdit.ControlTitleText, myOpeRecord.OpeRecordInfo.Extend5 );
}
else
{
text = DBManage.GetDictionaryValuesById(ableEdit.PackValue, ableEdit.ControlTitleText); text = DBManage.GetDictionaryValuesById(ableEdit.PackValue, ableEdit.ControlTitleText);
}
//设置属性的值 //设置属性的值
template.SetObjValue(OpeRecord, ableEdit.ClassDataSourceName, text, value); template.SetObjValue(OpeRecord, ableEdit.ClassDataSourceName, text, value);
break; break;
@ -518,11 +531,20 @@ namespace DrawGraph
tokenEditor.Leave -= TokenEditor_Leave; tokenEditor.Leave -= TokenEditor_Leave;
tokenEditor.Leave += TokenEditor_Leave; tokenEditor.Leave += TokenEditor_Leave;
if (ableEdit.ControlTitleText == "手术" || ableEdit.ControlTitleText == "诊断") if ((PublicMethod.RoleName.Contains("增加诊断") && ableEdit.ControlTitleText == "诊断") || (AIMSExtension.PublicMethod.RoleName.Contains("增加手术") && ableEdit.ControlTitleText == "手术"))
{ {
tokenEditor.ValidateToken -= new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken); tokenEditor.ValidateToken -= new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken);
tokenEditor.ValidateToken += new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken); tokenEditor.ValidateToken += new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken);
} }
if (ableEdit.ClassDataSourceName == "OperationRecord.OperationDoctor" || ableEdit.ClassDataSourceName == "OperationRecord.AnesthesiaDoctor")
{
tokenEditor.ValidateToken -= new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken1);
tokenEditor.ValidateToken += new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken1);
tokenEditor.Leave -= TokenEditor_Leave;
tokenEditor.Leave -= TokenEditor_Leave2;
tokenEditor.Leave += TokenEditor_Leave2;
}
EditTextBox_DoubleClick(tokenEditor.EditTextBox, null); EditTextBox_DoubleClick(tokenEditor.EditTextBox, null);
tokenEditor.EditTextBox.Select(); tokenEditor.EditTextBox.Select();
} }
@ -554,12 +576,39 @@ namespace DrawGraph
} }
} }
private void tokenEditor_ValidateToken1(object sender, DevComponents.DotNetBar.Controls.ValidateTokenEventArgs ea)
{
DevComponents.DotNetBar.Controls.TokenEditor tokenEditor = sender as DevComponents.DotNetBar.Controls.TokenEditor;
AbleEditPackObj aEdit = tokenEditor.Tag as AbleEditPackObj;
if (ea.IsNewToken)
{
if (tokenEditor.SelectedTokens.Count > 0)
{
tokenEditor.EditTextBox.TextChanged -= EditTextBox_TextChanged;
EditToken token = tokenEditor.SelectedTokens[tokenEditor.SelectedTokens.Count - 1];
string Tokentxt = ea.Token.Value.Replace("", ":");
token.Text += Tokentxt;
ea.Token = null;
tokenEditor.EditTextBox.Text = "";
tokenEditor.IsPopupOpen = false;
tokenEditor.EditTextBox.TextChanged += EditTextBox_TextChanged;
}
}
}
private void TokenEditor_Leave(object sender, EventArgs e) private void TokenEditor_Leave(object sender, EventArgs e)
{ {
DevComponents.DotNetBar.Controls.TokenEditor tokenEditor = sender as DevComponents.DotNetBar.Controls.TokenEditor; DevComponents.DotNetBar.Controls.TokenEditor tokenEditor = sender as DevComponents.DotNetBar.Controls.TokenEditor;
AbleEditPackObj aEdit = tokenEditor.Tag as AbleEditPackObj; AbleEditPackObj aEdit = tokenEditor.Tag as AbleEditPackObj;
TokenEditorManage.SaveDictItem(template, OpeRecord as OperationRecord, tokenEditor, aEdit, true); TokenEditorManage.SaveDictItem(template, OpeRecord as OperationRecord, tokenEditor, aEdit, true);
} }
private void TokenEditor_Leave2(object sender, EventArgs e)
{
DevComponents.DotNetBar.Controls.TokenEditor tokenEditor = sender as DevComponents.DotNetBar.Controls.TokenEditor;
AbleEditPackObj aEdit = tokenEditor.Tag as AbleEditPackObj;
TokenEditorManage.SaveDictItem2(template, OpeRecord as OperationRecord, tokenEditor, aEdit, true);
}
} }
} }

View File

@ -394,7 +394,10 @@ namespace DrawGraph
conl.DoubleClick += Conl_DoubleClick; conl.DoubleClick += Conl_DoubleClick;
break; break;
case "OperationRecord.BloodType": //血型 case "OperationRecord.BloodType": //血型
TYZD_Click(aEdit1, e); TYZD_Click(aEdit1, e, true);
break;
case "OperationRecord.RHBloodType": //血型
TYZD_Click(aEdit1, e, true);
break; break;
case "OperationRecord.Applydiagnose": //手术诊断 case "OperationRecord.Applydiagnose": //手术诊断
opeDisease_Click(aEdit1, e); opeDisease_Click(aEdit1, e);
@ -441,14 +444,14 @@ namespace DrawGraph
AbleEditPackObj ableEdit = sender; AbleEditPackObj ableEdit = sender;
if (ableEdit == null) return; if (ableEdit == null) return;
if (myOpeRecord == null) return; if (myOpeRecord == null) return;
if (ableEdit.ControlType == EControlType.Directory) if (ableEdit.ControlType == EControlType.Directorys)
{
SelDict(sender, e, ableEdit.ControlTitleText, isRadio);
}
else if (ableEdit.ControlType == EControlType.Directorys)
{ {
SetDirectorysMethod(ableEdit); SetDirectorysMethod(ableEdit);
} }
else
{
SelDict(sender, e, ableEdit.ControlTitleText, isRadio);
}
} }
catch (Exception ex) catch (Exception ex)
{ {
@ -598,11 +601,12 @@ namespace DrawGraph
tokenEditor.Leave -= TokenEditor_Leave; tokenEditor.Leave -= TokenEditor_Leave;
tokenEditor.Leave += TokenEditor_Leave; tokenEditor.Leave += TokenEditor_Leave;
if (ableEdit.ControlTitleText == "手术" || ableEdit.ControlTitleText == "诊断") if ((PublicMethod.RoleName.Contains("增加诊断") && ableEdit.ControlTitleText == "诊断") || (AIMSExtension.PublicMethod.RoleName.Contains("增加手术") && ableEdit.ControlTitleText == "手术"))
{ {
tokenEditor.ValidateToken -= new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken); tokenEditor.ValidateToken -= new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken);
tokenEditor.ValidateToken += new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken); tokenEditor.ValidateToken += new DevComponents.DotNetBar.Controls.ValidateTokenEventHandler(this.tokenEditor_ValidateToken);
} }
EditTextBox_DoubleClick(tokenEditor.EditTextBox, null); EditTextBox_DoubleClick(tokenEditor.EditTextBox, null);
tokenEditor.EditTextBox.Select(); tokenEditor.EditTextBox.Select();
} }
@ -820,6 +824,5 @@ namespace DrawGraph
AbleEditPackObj aEdit = tokenEditor.Tag as AbleEditPackObj; AbleEditPackObj aEdit = tokenEditor.Tag as AbleEditPackObj;
TokenEditorManage.SaveDictItem(template, OpeRecord as OperationRecord, tokenEditor, aEdit, true); TokenEditorManage.SaveDictItem(template, OpeRecord as OperationRecord, tokenEditor, aEdit, true);
} }
} }
} }

View File

@ -4,6 +4,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data; using System.Data;
using System.Linq; using System.Linq;
using System.Net;
using System.Text; using System.Text;
namespace DrawGraph namespace DrawGraph
@ -76,14 +77,14 @@ namespace DrawGraph
break; break;
default: default:
strSql = "SELECT top 30 p.Id,p.Name,p.Remark Code FROM BasicDictionary p WHERE p.IsValid=1 and ParentId in(select Id from BasicDictionary where Name='" + _title + "') AND (p.Name LIKE '%" + HelpCode + "%' OR p.HelpCode LIKE '%" + HelpCode + "%' )"; strSql = "SELECT top 30 p.Id,p.Name,p.Remark Code FROM BasicDictionary p WHERE p.IsValid=1 and ParentId in(select Id from BasicDictionary where Name='" + _title + "') AND (p.Name LIKE '%" + HelpCode + "%' OR p.HelpCode LIKE '%" + HelpCode + "%' )";
if (SelPerson != "") strSql += " AND p.Id not in (" + SelPerson + ") "; //if (SelPerson != "" && ) strSql += " AND p.Id not in (" + SelPerson + ") ";
strSql += " order by p.[Order] asc"; strSql += " order by p.[Order] asc";
break; break;
} }
return HelperDB.DbHelperSQL.GetDataTable(strSql.ToString()); return HelperDB.DbHelperSQL.GetDataTable(strSql.ToString());
} }
public static int SetOperationRecordValue(object operationRecord, string propertyName, string value) public static int SetOperationRecordValue(object operationRecord, string propertyName, string value, string Text)
{ {
int i = 0; int i = 0;
OperationRecord _operationRecord = operationRecord as OperationRecord; OperationRecord _operationRecord = operationRecord as OperationRecord;
@ -181,6 +182,10 @@ namespace DrawGraph
{ {
i += UpdatePatient(items[1] + "='" + value + "' where Id= " + _operationRecord.PatientId); i += UpdatePatient(items[1] + "='" + value + "' where Id= " + _operationRecord.PatientId);
} }
else if (items[1] == "BloodType" || items[1] == "RHBloodType")
{
i += UpdatePatient(items[1] + "='" + Text + "' where Id= " + _operationRecord.PatientId);
}
else if (items[1] == "OperationType") else if (items[1] == "OperationType")
{ {
i += UpdateApply(items[1] + "='" + value + "' where Id= " + _operationRecord.PatientId); i += UpdateApply(items[1] + "='" + value + "' where Id= " + _operationRecord.PatientId);
@ -706,5 +711,62 @@ namespace DrawGraph
return Explain; return Explain;
} }
public static string GetDictionaryValuesById(string Ids, string DictionaryName, string Tags)
{
if (Ids == null || Ids.Trim() == "") return "";
string Explain = "";
try
{
string sql = "";
switch (DictionaryName)
{
case "手术":
sql = "select dbo.GetOperation('" + Ids + "') value";
break;
case "CA人员":
sql = "select dbo.GetPersons('" + Ids + "') value";
break;
case "人员":
sql = "select dbo.GetPersons('" + Ids + "') value";
break;
case "诊断":
sql = "select dbo.GetDisease('" + Ids + "') value";
break;
case "麻醉方式":
sql = "select dbo.GetAnaesthesiaMethod('" + Ids + "') value";
break;
case "手术体位":
sql = "select dbo.GetOperationBodyPosition('" + Ids + "') value";
break;
case "手术部位":
sql = "select dbo.GetOperationPosition('" + Ids + "') value";
break;
default:
sql = "select dbo.funBasicDictionary('" + Ids + "') value";
break;
}
if (sql != "")
{
object dt = DBHelper.ExecuteScalar(sql);
if (dt != null)
{
string namestr = dt.ToString();
List<string> list = namestr.Split(',').ToList();
List<string> tags = Tags.Split('|').ToList();
for (int i = 0; i < list.Count; i++)
{
list[i] = list[i] + tags[i];
}
Explain = string.Join(",", list);
}
}
}
catch (Exception ex)
{
PublicMethod.WriteLog(ex);
Explain = "";
}
return Explain;
}
} }
} }

View File

@ -648,14 +648,16 @@ namespace DrawGraph
pp.ConfigType = "事件"; pp.ConfigType = "事件";
pp.ConveColor = System.Drawing.Color.White; pp.ConveColor = System.Drawing.Color.White;
if (pp.IsDefalultShow == true)
{
pp.IsValid = true; pp.IsValid = true;
pp.ClearTagstr(ZedControl);
pp.phListPack = phListPack; pp.phListPack = phListPack;
pp.setAnasArr(ZedControl, chartPack.RealX, chartPack.RealEndX, myOpeRecord.PageBegin, pp.setAnasArr(ZedControl, chartPack.RealX, chartPack.RealEndX, myOpeRecord.PageBegin,
myOpeRecord.PageBegin.AddMinutes(EVERY_PAGE_TIME_SPAN)); myOpeRecord.PageBegin.AddMinutes(EVERY_PAGE_TIME_SPAN));
pp.initCurve(); pp.initCurve();
} }
} }
}
catch (Exception ex) catch (Exception ex)
{ {
//异常处理保存 //异常处理保存
@ -744,6 +746,21 @@ namespace DrawGraph
} }
} }
} }
//加载事件图标
//IList<PhysioDataConfig> dtevent = PhysioDataConfig.GetEventList();
//for (int i = 0; i < dtevent.Count; i++)
//{
// PhysioDataConfig pp = dtevent[i];
// pp.ConfigType = "事件";
// pp.ConveColor = System.Drawing.Color.White;
// pp.IsValid = true;
// pp.ClearTagstr(ZedControl);
// pp.phListPack = phListPack;
// pp.setAnasArr(ZedControl, chartPack.RealX, chartPack.RealEndX, myOpeRecord.PageBegin,
// myOpeRecord.PageBegin.AddMinutes(EVERY_PAGE_TIME_SPAN));
// pp.initCurve();
//}
if (phListPack != null) if (phListPack != null)
{ {

View File

@ -103,7 +103,7 @@ namespace DrawGraph
if (isUpdate && t != null) if (isUpdate && t != null)
{ {
//为真时更新数据库 //为真时更新数据库
i = DBManage.SetOperationRecordValue(t, propertyName, newValue); i = DBManage.SetOperationRecordValue(t, propertyName, newValue, newText);
} }
if (isUpdate && i <= 0) return i; if (isUpdate && i <= 0) return i;

View File

@ -27,7 +27,7 @@ namespace DrawGraph
PersonType = "0"; PersonType = "0";
break; break;
case "OperationRecord.InstrumentNurse": case "OperationRecord.InstrumentNurse":
tokenEditor.DropDownHeight = 120; tokenEditor.DropDownHeight = 250;
PersonType = "3"; PersonType = "3";
break; break;
case "OperationRecord.Assistant1": case "OperationRecord.Assistant1":
@ -35,7 +35,7 @@ namespace DrawGraph
PersonType = "0"; PersonType = "0";
break; break;
case "OperationRecord.TourNurse": case "OperationRecord.TourNurse":
tokenEditor.DropDownHeight = 120; tokenEditor.DropDownHeight = 250;
PersonType = "3"; PersonType = "3";
break; break;
case "OperationRecord.OrtherDoctorId": case "OperationRecord.OrtherDoctorId":
@ -94,6 +94,18 @@ namespace DrawGraph
} }
return Id; return Id;
} }
public static string GetWorkerTags(string text, string value)
{
string result = "";
string sql = string.Format("select Name from Person where Id = '{0}'", value);
object dt = DBHelper.ExecuteScalar(sql);
if (dt != null)
{
string name = dt.ToString();
result = text.Replace(name, "");
}
return result;
}
public static void SaveDictItem(TemplateManage _template, OperationRecord OpeRecord, TokenEditor tokenEditor, AbleEditPackObj aEdit, bool IsVisible = false) public static void SaveDictItem(TemplateManage _template, OperationRecord OpeRecord, TokenEditor tokenEditor, AbleEditPackObj aEdit, bool IsVisible = false)
{ {
string SplitChar = ","; string SplitChar = ",";
@ -126,6 +138,7 @@ namespace DrawGraph
if (aEdit.PackValue != Value) if (aEdit.PackValue != Value)
//设置属性的值 //设置属性的值
_template.SetObjValue(OpeRecord, aEdit.ClassDataSourceName, Value, Key, true); _template.SetObjValue(OpeRecord, aEdit.ClassDataSourceName, Value, Key, true);
} }
public static void SaveDictItemText(TemplateManage _template, OperationRecord OpeRecord, TokenEditor tokenEditor, AbleEditPackObj aEdit, bool IsVisible = false) public static void SaveDictItemText(TemplateManage _template, OperationRecord OpeRecord, TokenEditor tokenEditor, AbleEditPackObj aEdit, bool IsVisible = false)
{ {
@ -155,5 +168,52 @@ namespace DrawGraph
//设置属性的值 //设置属性的值
_template.SetObjValue(OpeRecord, aEdit.ClassDataSourceName, Value, Value, true); _template.SetObjValue(OpeRecord, aEdit.ClassDataSourceName, Value, Value, true);
} }
public static void SaveDictItem2(TemplateManage _template, OperationRecord OpeRecord, TokenEditor tokenEditor, AbleEditPackObj aEdit, bool IsVisible = false)
{
string SplitChar = ",";
if (aEdit.ClassDataSourceName == "OperationRecord.AnaesthesiaMethodName")
{
SplitChar = "+";
}
string Value = "";
string Key = "";
string Tag = "";
List<string> namevalue = new List<string>();
List<string> idvalue = new List<string>();
List<string> tagvalue = new List<string>();
foreach (var item in tokenEditor.SelectedTokens)
{
namevalue.Add(item.Text);
idvalue.Add(item.Value);
tagvalue.Add(GetWorkerTags(item.Text,item.Value));
}
if (idvalue.Count > 0)
{
Value = string.Join(SplitChar, namevalue);
Key = string.Join(SplitChar, idvalue);
Tag = string.Join("|", tagvalue);
}
else
{
Value = "";
Key = "";
Tag = "";
}
if (IsVisible == true)
aEdit.IsVisible = !aEdit.IsVisible;
if (aEdit.PackValue != Value)
//设置属性的值
_template.SetObjValue(OpeRecord, aEdit.ClassDataSourceName, Value, Key, true);
if (aEdit.ClassDataSourceName == "OperationRecord.OperationDoctor")
{
_template.SetObjValue(OpeRecord, "OperationRecord.OpeRecordInfo.Extend4", Tag, Tag, true);
}
else if (aEdit.ClassDataSourceName == "OperationRecord.AnesthesiaDoctor")
{
_template.SetObjValue(OpeRecord, "OperationRecord.OpeRecordInfo.Extend5", Tag, Tag, true);
}
}
} }
} }

View File

@ -280,8 +280,8 @@ namespace DrawGraph
get { return _fontSpec; } get { return _fontSpec; }
set set
{ {
if ( value == null ) if (value == null)
throw new ArgumentNullException( "Uninitialized FontSpec in Legend" ); throw new ArgumentNullException("Uninitialized FontSpec in Legend");
_fontSpec = value; _fontSpec = value;
} }
} }
@ -382,17 +382,17 @@ namespace DrawGraph
_position = Default.Position; _position = Default.Position;
_isHStack = Default.IsHStack; _isHStack = Default.IsHStack;
_isVisible = Default.IsVisible; _isVisible = Default.IsVisible;
this.Location = new Location( 0, 0, CoordType.PaneFraction ); this.Location = new Location(0, 0, CoordType.PaneFraction);
_fontSpec = new FontSpec( Default.FontFamily, Default.FontSize, _fontSpec = new FontSpec(Default.FontFamily, Default.FontSize,
Default.FontColor, Default.FontBold, Default.FontColor, Default.FontBold,
Default.FontItalic, Default.FontUnderline, Default.FontItalic, Default.FontUnderline,
Default.FontFillColor, Default.FontFillBrush, Default.FontFillColor, Default.FontFillBrush,
Default.FontFillType ); Default.FontFillType);
_fontSpec.Border.IsVisible = false; _fontSpec.Border.IsVisible = false;
_border = new Border( Default.IsBorderVisible, Default.BorderColor, Default.BorderWidth ); _border = new Border(Default.IsBorderVisible, Default.BorderColor, Default.BorderWidth);
_fill = new Fill( Default.FillColor, Default.FillBrush, Default.FillType ); _fill = new Fill(Default.FillColor, Default.FillBrush, Default.FillType);
_gap = Default.Gap; _gap = Default.Gap;
@ -403,7 +403,7 @@ namespace DrawGraph
/// The Copy Constructor /// The Copy Constructor
/// </summary> /// </summary>
/// <param name="rhs">The XAxis object from which to copy</param> /// <param name="rhs">The XAxis object from which to copy</param>
public Legend( Legend rhs ) public Legend(Legend rhs)
{ {
_rect = rhs.Rect; _rect = rhs.Rect;
_position = rhs.Position; _position = rhs.Position;
@ -437,7 +437,7 @@ namespace DrawGraph
/// <returns>A new, independent copy of this class</returns> /// <returns>A new, independent copy of this class</returns>
public Legend Clone() public Legend Clone()
{ {
return new Legend( this ); return new Legend(this);
} }
#endregion #endregion
@ -455,44 +455,44 @@ namespace DrawGraph
/// </param> /// </param>
/// <param name="context">A <see cref="StreamingContext"/> instance that contains the serialized data /// <param name="context">A <see cref="StreamingContext"/> instance that contains the serialized data
/// </param> /// </param>
protected Legend( SerializationInfo info, StreamingContext context ) protected Legend(SerializationInfo info, StreamingContext context)
{ {
// The schema value is just a file version parameter. You can use it to make future versions // The schema value is just a file version parameter. You can use it to make future versions
// backwards compatible as new member variables are added to classes // backwards compatible as new member variables are added to classes
int sch = info.GetInt32( "schema" ); int sch = info.GetInt32("schema");
_position = (LegendPos) info.GetValue( "position", typeof(LegendPos) ); _position = (LegendPos)info.GetValue("position", typeof(LegendPos));
_isHStack = info.GetBoolean( "isHStack" ); _isHStack = info.GetBoolean("isHStack");
_isVisible = info.GetBoolean( "isVisible" ); _isVisible = info.GetBoolean("isVisible");
_fill = (Fill) info.GetValue( "fill", typeof(Fill) ); _fill = (Fill)info.GetValue("fill", typeof(Fill));
_border = (Border) info.GetValue( "border", typeof(Border) ); _border = (Border)info.GetValue("border", typeof(Border));
_fontSpec = (FontSpec) info.GetValue( "fontSpec", typeof(FontSpec) ); _fontSpec = (FontSpec)info.GetValue("fontSpec", typeof(FontSpec));
_location = (Location) info.GetValue( "location", typeof(Location) ); _location = (Location)info.GetValue("location", typeof(Location));
_gap = info.GetSingle( "gap" ); _gap = info.GetSingle("gap");
if ( schema >= 11 ) if (schema >= 11)
_isReverse = info.GetBoolean( "isReverse" ); _isReverse = info.GetBoolean("isReverse");
} }
/// <summary> /// <summary>
/// Populates a <see cref="SerializationInfo"/> instance with the data needed to serialize the target object /// Populates a <see cref="SerializationInfo"/> instance with the data needed to serialize the target object
/// </summary> /// </summary>
/// <param name="info">A <see cref="SerializationInfo"/> instance that defines the serialized data</param> /// <param name="info">A <see cref="SerializationInfo"/> instance that defines the serialized data</param>
/// <param name="context">A <see cref="StreamingContext"/> instance that contains the serialized data</param> /// <param name="context">A <see cref="StreamingContext"/> instance that contains the serialized data</param>
[SecurityPermissionAttribute(SecurityAction.Demand,SerializationFormatter=true)] [SecurityPermissionAttribute(SecurityAction.Demand, SerializationFormatter = true)]
public virtual void GetObjectData( SerializationInfo info, StreamingContext context ) public virtual void GetObjectData(SerializationInfo info, StreamingContext context)
{ {
info.AddValue( "schema", schema ); info.AddValue("schema", schema);
info.AddValue( "position", _position ); info.AddValue("position", _position);
info.AddValue( "isHStack", _isHStack ); info.AddValue("isHStack", _isHStack);
info.AddValue( "isVisible", _isVisible ); info.AddValue("isVisible", _isVisible);
info.AddValue( "fill", _fill ); info.AddValue("fill", _fill);
info.AddValue( "border", _border ); info.AddValue("border", _border);
info.AddValue( "fontSpec", _fontSpec ); info.AddValue("fontSpec", _fontSpec);
info.AddValue( "location", _location ); info.AddValue("location", _location);
info.AddValue( "gap", _gap ); info.AddValue("gap", _gap);
info.AddValue( "isReverse", _isReverse ); info.AddValue("isReverse", _isReverse);
} }
#endregion #endregion
@ -519,25 +519,25 @@ namespace DrawGraph
/// <see cref="PaneBase.CalcScaleFactor"/> method, and is used to proportionally adjust /// <see cref="PaneBase.CalcScaleFactor"/> method, and is used to proportionally adjust
/// font sizes, etc. according to the actual size of the graph. /// font sizes, etc. according to the actual size of the graph.
/// </param> /// </param>
public void Draw( Graphics g, PaneBase pane, float scaleFactor ) public void Draw(Graphics g, PaneBase pane, float scaleFactor)
{ {
// if the legend is not visible, do nothing // if the legend is not visible, do nothing
if ( ! _isVisible ) if (!_isVisible)
return; return;
// Fill the background with the specified color if required // Fill the background with the specified color if required
_fill.Draw( g, _rect ); _fill.Draw(g, _rect);
PaneList paneList = GetPaneList( pane ); PaneList paneList = GetPaneList(pane);
float halfGap = _tmpSize / 2.0F; float halfGap = _tmpSize / 2.0F;
// Check for bad data values // Check for bad data values
if ( _hStack <= 0 ) if (_hStack <= 0)
_hStack = 1; _hStack = 1;
if ( _legendItemWidth <= 0 ) if (_legendItemWidth <= 0)
_legendItemWidth = 100; _legendItemWidth = 100;
if ( _legendItemHeight <= 0 ) if (_legendItemHeight <= 0)
_legendItemHeight = _tmpSize; _legendItemHeight = _tmpSize;
//float gap = pane.ScaledGap( scaleFactor ); //float gap = pane.ScaledGap( scaleFactor );
@ -546,18 +546,18 @@ namespace DrawGraph
float x, y; float x, y;
// Get a brush for the legend label text // Get a brush for the legend label text
using ( SolidBrush brushB = new SolidBrush( Color.Black ) ) using (SolidBrush brushB = new SolidBrush(Color.Black))
{ {
foreach ( GraphPane tmpPane in paneList ) foreach (GraphPane tmpPane in paneList)
{ {
// Loop for each curve in the CurveList collection // Loop for each curve in the CurveList collection
//foreach ( CurveItem curve in tmpPane.CurveList ) //foreach ( CurveItem curve in tmpPane.CurveList )
int count = tmpPane.CurveList.Count; int count = tmpPane.CurveList.Count;
for ( int i = 0; i < count; i++ ) for (int i = 0; i < count; i++)
{ {
CurveItem curve = tmpPane.CurveList[_isReverse ? count - i - 1 : i]; CurveItem curve = tmpPane.CurveList[_isReverse ? count - i - 1 : i];
if ( curve._label._text != "" && curve._label._isVisible ) if (curve._label._text != "" && curve._label._isVisible)
{ {
// Calculate the x,y (TopLeft) location of the current // Calculate the x,y (TopLeft) location of the current
// curve legend label // curve legend label
@ -567,60 +567,60 @@ namespace DrawGraph
// legendHeight is the line spacing, with no extra margin above // legendHeight is the line spacing, with no extra margin above
x = _rect.Left + halfGap / 2.0F + x = _rect.Left + halfGap / 2.0F +
( iEntry % _hStack ) * _legendItemWidth; (iEntry % _hStack) * _legendItemWidth;
y = _rect.Top + (int)( iEntry / _hStack ) * _legendItemHeight; y = _rect.Top + (int)(iEntry / _hStack) * _legendItemHeight;
// Draw the legend label for the current curve // Draw the legend label for the current curve
FontSpec tmpFont = ( curve._label._fontSpec != null ) ? FontSpec tmpFont = (curve._label._fontSpec != null) ?
curve._label._fontSpec : this.FontSpec; curve._label._fontSpec : this.FontSpec;
// This is required because, for long labels, the centering can affect the // This is required because, for long labels, the centering can affect the
// position in GDI+. // position in GDI+.
tmpFont.StringAlignment = StringAlignment.Near; tmpFont.StringAlignment = StringAlignment.Near;
tmpFont.Draw( g, pane, curve._label._text, tmpFont.Draw(g, pane, curve._label._text,
x + 2.5F * _tmpSize, y + _legendItemHeight / 2.0F, x + 2.5F * _tmpSize, y + _legendItemHeight / 2.0F,
AlignH.Left, AlignV.Center, scaleFactor ); AlignH.Left, AlignV.Center, scaleFactor);
RectangleF rect = new RectangleF( x, y + _legendItemHeight / 4.0F, RectangleF rect = new RectangleF(x, y + _legendItemHeight / 4.0F,
2 * _tmpSize, _legendItemHeight / 2.0F ); 2 * _tmpSize, _legendItemHeight / 2.0F);
curve.DrawLegendKey( g, tmpPane, rect, scaleFactor ); curve.DrawLegendKey(g, tmpPane, rect, scaleFactor);
// maintain a curve count for positioning // maintain a curve count for positioning
iEntry++; iEntry++;
} }
} }
if ( pane is MasterPane && ( (MasterPane)pane ).IsUniformLegendEntries ) if (pane is MasterPane && ((MasterPane)pane).IsUniformLegendEntries)
break; break;
} }
// Draw a border around the legend if required // Draw a border around the legend if required
if ( iEntry > 0 ) if (iEntry > 0)
this.Border.Draw( g, pane, scaleFactor, _rect ); this.Border.Draw(g, pane, scaleFactor, _rect);
} }
} }
private float GetMaxHeight( PaneList paneList, Graphics g, float scaleFactor ) private float GetMaxHeight(PaneList paneList, Graphics g, float scaleFactor)
{ {
// Set up some scaled dimensions for calculating sizes and locations // Set up some scaled dimensions for calculating sizes and locations
float defaultCharHeight = this.FontSpec.GetHeight( scaleFactor ); float defaultCharHeight = this.FontSpec.GetHeight(scaleFactor);
float maxCharHeight = defaultCharHeight; float maxCharHeight = defaultCharHeight;
// Find the largest charHeight, just in case the curves have individual fonts defined // Find the largest charHeight, just in case the curves have individual fonts defined
foreach ( GraphPane tmpPane in paneList ) foreach (GraphPane tmpPane in paneList)
{ {
foreach ( CurveItem curve in tmpPane.CurveList ) foreach (CurveItem curve in tmpPane.CurveList)
{ {
if ( curve._label._text != string.Empty && curve._label._isVisible ) if (curve._label._text != string.Empty && curve._label._isVisible)
{ {
float tmpHeight = defaultCharHeight; float tmpHeight = defaultCharHeight;
if ( curve._label._fontSpec != null ) if (curve._label._fontSpec != null)
tmpHeight = curve._label._fontSpec.GetHeight( scaleFactor ); tmpHeight = curve._label._fontSpec.GetHeight(scaleFactor);
// Account for multiline legend entries // Account for multiline legend entries
tmpHeight *= curve._label._text.Split( '\n' ).Length; tmpHeight *= curve._label._text.Split('\n').Length;
if ( tmpHeight > maxCharHeight ) if (tmpHeight > maxCharHeight)
maxCharHeight = tmpHeight; maxCharHeight = tmpHeight;
} }
} }
@ -651,31 +651,31 @@ namespace DrawGraph
/// <returns>true if the mouse point is within the <see cref="Legend"/> bounding /// <returns>true if the mouse point is within the <see cref="Legend"/> bounding
/// box, false otherwise.</returns> /// box, false otherwise.</returns>
/// <seealso cref="GraphPane.FindNearestObject"/> /// <seealso cref="GraphPane.FindNearestObject"/>
public bool FindPoint( PointF mousePt, PaneBase pane, float scaleFactor, out int index ) public bool FindPoint(PointF mousePt, PaneBase pane, float scaleFactor, out int index)
{ {
index = -1; index = -1;
if ( _rect.Contains( mousePt ) ) if (_rect.Contains(mousePt))
{ {
int j = (int) ( ( mousePt.Y - _rect.Top ) / _legendItemHeight ); int j = (int)((mousePt.Y - _rect.Top) / _legendItemHeight);
int i = (int) ( ( mousePt.X - _rect.Left - _tmpSize / 2.0f ) / _legendItemWidth ); int i = (int)((mousePt.X - _rect.Left - _tmpSize / 2.0f) / _legendItemWidth);
if ( i < 0 ) if (i < 0)
i = 0; i = 0;
if ( i >= _hStack ) if (i >= _hStack)
i = _hStack - 1; i = _hStack - 1;
int pos = i + j * _hStack; int pos = i + j * _hStack;
index = 0; index = 0;
PaneList paneList = GetPaneList( pane ); PaneList paneList = GetPaneList(pane);
foreach ( GraphPane tmpPane in paneList ) foreach (GraphPane tmpPane in paneList)
{ {
foreach ( CurveItem curve in tmpPane.CurveList ) foreach (CurveItem curve in tmpPane.CurveList)
{ {
if ( curve._label._isVisible && curve._label._text != string.Empty ) if (curve._label._isVisible && curve._label._text != string.Empty)
{ {
if ( pos == 0 ) if (pos == 0)
return true; return true;
pos--; pos--;
} }
@ -689,16 +689,16 @@ namespace DrawGraph
return false; return false;
} }
private PaneList GetPaneList( PaneBase pane ) private PaneList GetPaneList(PaneBase pane)
{ {
// For a single GraphPane, create a PaneList to contain it // For a single GraphPane, create a PaneList to contain it
// Otherwise, just use the paneList from the MasterPane // Otherwise, just use the paneList from the MasterPane
PaneList paneList; PaneList paneList;
if ( pane is GraphPane ) if (pane is GraphPane)
{ {
paneList = new PaneList(); paneList = new PaneList();
paneList.Add( (GraphPane) pane ); paneList.Add((GraphPane)pane);
} }
else else
paneList = ((MasterPane)pane).PaneList; paneList = ((MasterPane)pane).PaneList;
@ -733,8 +733,8 @@ namespace DrawGraph
/// The rectangle that contains the area bounded by the axes, in pixel units. /// The rectangle that contains the area bounded by the axes, in pixel units.
/// <seealso cref="Chart.Rect" /> /// <seealso cref="Chart.Rect" />
/// </param> /// </param>
public void CalcRect( Graphics g, PaneBase pane, float scaleFactor, public void CalcRect(Graphics g, PaneBase pane, float scaleFactor,
ref RectangleF tChartRect ) ref RectangleF tChartRect)
{ {
// Start with an empty rectangle // Start with an empty rectangle
_rect = Rectangle.Empty; _rect = Rectangle.Empty;
@ -742,63 +742,65 @@ namespace DrawGraph
_legendItemWidth = 1; _legendItemWidth = 1;
_legendItemHeight = 0; _legendItemHeight = 0;
RectangleF clientRect = pane.CalcClientRect( g, scaleFactor ); RectangleF clientRect = pane.CalcClientRect(g, scaleFactor);
// If the legend is invisible, don't do anything // If the legend is invisible, don't do anything
if ( !_isVisible ) if (!_isVisible)
return; return;
int nCurve = 0; int nCurve = 0;
PaneList paneList = GetPaneList( pane ); PaneList paneList = GetPaneList(pane);
_tmpSize = GetMaxHeight( paneList, g, scaleFactor ); _tmpSize = GetMaxHeight(paneList, g, scaleFactor);
float halfGap = _tmpSize / 2.0F, float halfGap = _tmpSize / 2.0F,
maxWidth = 0, maxWidth = 0,
tmpWidth, tmpWidth,
gapPix = _gap * _tmpSize; gapPix = _gap * _tmpSize;
foreach ( GraphPane tmpPane in paneList ) foreach (GraphPane tmpPane in paneList)
{ {
// Loop through each curve in the curve list // Loop through each curve in the curve list
// Find the maximum width of the legend labels // Find the maximum width of the legend labels
//foreach ( CurveItem curve in tmpPane.CurveList ) //foreach ( CurveItem curve in tmpPane.CurveList )
//foreach ( CurveItem curve in GetIterator( tmpPane.CurveList, _isReverse ) ) //foreach ( CurveItem curve in GetIterator( tmpPane.CurveList, _isReverse ) )
int count = tmpPane.CurveList.Count; int count = tmpPane.CurveList.Count;
for ( int i = 0; i < count; i++ ) for (int i = 0; i < count; i++)
{ {
CurveItem curve = tmpPane.CurveList[_isReverse ? count - i - 1 : i]; CurveItem curve = tmpPane.CurveList[_isReverse ? count - i - 1 : i];
if ( curve._label._text != string.Empty && curve._label._isVisible ) if (curve._label._text != string.Empty && curve._label._isVisible)
{ {
// Calculate the width of the label save the max width // Calculate the width of the label save the max width
FontSpec tmpFont = ( curve._label._fontSpec != null ) ? FontSpec tmpFont = (curve._label._fontSpec != null) ?
curve._label._fontSpec : this.FontSpec; curve._label._fontSpec : this.FontSpec;
tmpWidth = tmpFont.GetWidth( g, curve._label._text, scaleFactor ); tmpWidth = tmpFont.GetWidth(g, curve._label._text, scaleFactor);
if ( tmpWidth > maxWidth ) if (tmpWidth > maxWidth)
maxWidth = tmpWidth; maxWidth = tmpWidth;
// Save the maximum symbol height for line-type curves // Save the maximum symbol height for line-type curves
if ( curve is LineItem && ( (LineItem) curve ).Symbol.Size > _legendItemHeight ) if (curve is LineItem && ((LineItem)curve).Symbol.Size > _legendItemHeight)
_legendItemHeight = ( (LineItem) curve ).Symbol.Size; _legendItemHeight = ((LineItem)curve).Symbol.Size;
if (curve.Label.Text.Contains("ÊÖÊõ") || curve.Label.Text.Contains("Âé×í") || curve.Label.Text.Contains("¹Ü") || curve.Label.Text.Contains("ÊÒ"))
curve.Color = Color.White;
nCurve++; nCurve++;
} }
} }
if ( pane is MasterPane && ((MasterPane)pane).IsUniformLegendEntries ) if (pane is MasterPane && ((MasterPane)pane).IsUniformLegendEntries)
break ; break;
} }
float widthAvail; float widthAvail;
// Is this legend horizontally stacked? // Is this legend horizontally stacked?
if ( _isHStack ) if (_isHStack)
{ {
// Determine the available space for horizontal stacking // Determine the available space for horizontal stacking
switch( _position ) switch (_position)
{ {
// Never stack if the legend is to the right or left // Never stack if the legend is to the right or left
case LegendPos.Right: case LegendPos.Right:
@ -810,7 +812,7 @@ namespace DrawGraph
case LegendPos.Top: case LegendPos.Top:
case LegendPos.TopCenter: case LegendPos.TopCenter:
case LegendPos.Bottom: case LegendPos.Bottom:
case LegendPos.BottomCenter : case LegendPos.BottomCenter:
widthAvail = tChartRect.Width; widthAvail = tChartRect.Width;
break; break;
@ -841,15 +843,15 @@ namespace DrawGraph
// Calculate the number of columns in the legend // Calculate the number of columns in the legend
// Normally, the legend is: // Normally, the legend is:
// available width / ( max width of any entry + space for line&symbol ) // available width / ( max width of any entry + space for line&symbol )
if ( maxWidth > 0 ) if (maxWidth > 0)
_hStack = (int) ( (widthAvail - halfGap) / _legendItemWidth ); _hStack = (int)((widthAvail - halfGap) / _legendItemWidth);
// You can never have more columns than legend entries // You can never have more columns than legend entries
if ( _hStack > nCurve ) if (_hStack > nCurve)
_hStack = nCurve; _hStack = nCurve;
// a saftey check // a saftey check
if ( _hStack == 0 ) if (_hStack == 0)
_hStack = 1; _hStack = 1;
} }
else else
@ -869,23 +871,23 @@ namespace DrawGraph
float totLegWidth = _hStack * _legendItemWidth; float totLegWidth = _hStack * _legendItemWidth;
// The total legend height // The total legend height
_legendItemHeight = _legendItemHeight * (float) scaleFactor + halfGap; _legendItemHeight = _legendItemHeight * (float)scaleFactor + halfGap;
if ( _tmpSize > _legendItemHeight ) if (_tmpSize > _legendItemHeight)
_legendItemHeight = _tmpSize; _legendItemHeight = _tmpSize;
float totLegHeight = (float) Math.Ceiling( (double) nCurve / (double) _hStack ) float totLegHeight = (float)Math.Ceiling((double)nCurve / (double)_hStack)
* _legendItemHeight; * _legendItemHeight;
RectangleF newRect = new RectangleF(); RectangleF newRect = new RectangleF();
// Now calculate the legend rect based on the above determined parameters // Now calculate the legend rect based on the above determined parameters
// Also, adjust the ChartRect to reflect the space for the legend // Also, adjust the ChartRect to reflect the space for the legend
if ( nCurve > 0 ) if (nCurve > 0)
{ {
newRect = new RectangleF( 0, 0, totLegWidth, totLegHeight ); newRect = new RectangleF(0, 0, totLegWidth, totLegHeight);
// The switch statement assigns the left and top edges, and adjusts the ChartRect // The switch statement assigns the left and top edges, and adjusts the ChartRect
// as required. The right and bottom edges are calculated at the bottom of the switch. // as required. The right and bottom edges are calculated at the bottom of the switch.
switch( _position ) switch (_position)
{ {
case LegendPos.Right: case LegendPos.Right:
newRect.X = clientRect.Right - totLegWidth; newRect.X = clientRect.Right - totLegWidth;
@ -908,7 +910,7 @@ namespace DrawGraph
tChartRect.Height -= totLegHeight + gapPix * 1.5f; tChartRect.Height -= totLegHeight + gapPix * 1.5f;
break; break;
case LegendPos.TopCenter: case LegendPos.TopCenter:
newRect.X = tChartRect.Left + ( tChartRect.Width - totLegWidth ) / 2; newRect.X = tChartRect.Left + (tChartRect.Width - totLegWidth) / 2;
newRect.Y = tChartRect.Top; newRect.Y = tChartRect.Top;
tChartRect.Y += totLegHeight + gapPix; tChartRect.Y += totLegHeight + gapPix;
@ -927,7 +929,7 @@ namespace DrawGraph
tChartRect.Height -= totLegHeight + gapPix; tChartRect.Height -= totLegHeight + gapPix;
break; break;
case LegendPos.BottomCenter: case LegendPos.BottomCenter:
newRect.X = tChartRect.Left + ( tChartRect.Width - totLegWidth ) / 2; newRect.X = tChartRect.Left + (tChartRect.Width - totLegWidth) / 2;
newRect.Y = clientRect.Bottom - totLegHeight; newRect.Y = clientRect.Bottom - totLegHeight;
tChartRect.Height -= totLegHeight + gapPix; tChartRect.Height -= totLegHeight + gapPix;
@ -956,7 +958,7 @@ namespace DrawGraph
newRect.Y = tChartRect.Bottom - totLegHeight; newRect.Y = tChartRect.Bottom - totLegHeight;
break; break;
case LegendPos.Float: case LegendPos.Float:
newRect.Location = this.Location.TransformTopLeft( pane, totLegWidth, totLegHeight ); newRect.Location = this.Location.TransformTopLeft(pane, totLegWidth, totLegHeight);
break; break;
} }
} }
@ -964,16 +966,16 @@ namespace DrawGraph
_rect = newRect; _rect = newRect;
} }
// /// <summary> // /// <summary>
// /// Private method to the render region that gives the iterator depending on the attribute // /// Private method to the render region that gives the iterator depending on the attribute
// /// </summary> // /// </summary>
// /// <param name="c"></param> // /// <param name="c"></param>
// /// <param name="forward"></param> // /// <param name="forward"></param>
// /// <returns></returns> // /// <returns></returns>
// private IEnumerable<CurveItem> GetIterator(CurveList c, bool forward) // private IEnumerable<CurveItem> GetIterator(CurveList c, bool forward)
// { // {
// return forward ? c.Forward : c.Backward; // return forward ? c.Forward : c.Backward;
// } // }
#endregion #endregion
} }

View File

@ -575,7 +575,6 @@ namespace DrawGraph
// innerRect is the area for the GraphPane's // innerRect is the area for the GraphPane's
RectangleF innerRect = CalcClientRect( g, scaleFactor ); RectangleF innerRect = CalcClientRect( g, scaleFactor );
_legend.CalcRect( g, this, scaleFactor, ref innerRect ); _legend.CalcRect( g, this, scaleFactor, ref innerRect );
//this.legend.SetLocation( this,
_legend.Draw( g, this, scaleFactor ); _legend.Draw( g, this, scaleFactor );