diff --git a/AIMS/AIMS.csproj b/AIMS/AIMS.csproj
index f60e29f..d49bc71 100644
--- a/AIMS/AIMS.csproj
+++ b/AIMS/AIMS.csproj
@@ -1317,6 +1317,7 @@
+
diff --git a/AIMS/Extensions/itextsharp.dll b/AIMS/Extensions/itextsharp.dll
new file mode 100644
index 0000000..180d255
Binary files /dev/null and b/AIMS/Extensions/itextsharp.dll differ
diff --git a/AIMS/OperationAanesthesia/frmAanesthesiaRecord.Designer.cs b/AIMS/OperationAanesthesia/frmAanesthesiaRecord.Designer.cs
index e8be1b2..3a7f421 100644
--- a/AIMS/OperationAanesthesia/frmAanesthesiaRecord.Designer.cs
+++ b/AIMS/OperationAanesthesia/frmAanesthesiaRecord.Designer.cs
@@ -872,8 +872,8 @@
this.superTabMain.ControlBox.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] {
this.superTabMain.ControlBox.MenuBox,
this.superTabMain.ControlBox.CloseBox});
- this.superTabMain.Controls.Add(this.superTabControlPanel1);
this.superTabMain.Controls.Add(this.superTabControlPanel2);
+ this.superTabMain.Controls.Add(this.superTabControlPanel1);
this.superTabMain.Dock = System.Windows.Forms.DockStyle.Fill;
this.superTabMain.Location = new System.Drawing.Point(0, 58);
this.superTabMain.Name = "superTabMain";
@@ -984,7 +984,7 @@
this.superTabControlPanel2.Dock = System.Windows.Forms.DockStyle.Fill;
this.superTabControlPanel2.Location = new System.Drawing.Point(0, 28);
this.superTabControlPanel2.Name = "superTabControlPanel2";
- this.superTabControlPanel2.Size = new System.Drawing.Size(1760, 904);
+ this.superTabControlPanel2.Size = new System.Drawing.Size(1389, 803);
this.superTabControlPanel2.TabIndex = 0;
this.superTabControlPanel2.TabItem = this.spTabBM;
//
@@ -997,7 +997,7 @@
this.panelExBLSJ.Dock = System.Windows.Forms.DockStyle.Fill;
this.panelExBLSJ.Location = new System.Drawing.Point(0, 0);
this.panelExBLSJ.Name = "panelExBLSJ";
- this.panelExBLSJ.Size = new System.Drawing.Size(1760, 904);
+ this.panelExBLSJ.Size = new System.Drawing.Size(1389, 803);
this.panelExBLSJ.Style.Alignment = System.Drawing.StringAlignment.Center;
this.panelExBLSJ.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground;
this.panelExBLSJ.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2;
@@ -1016,7 +1016,7 @@
this.panel82.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel82.Location = new System.Drawing.Point(0, 0);
this.panel82.Name = "panel82";
- this.panel82.Size = new System.Drawing.Size(1760, 904);
+ this.panel82.Size = new System.Drawing.Size(1389, 803);
this.panel82.TabIndex = 3;
this.panel82.Scroll += new System.Windows.Forms.ScrollEventHandler(this.panel82_Scroll);
//
diff --git a/AIMS/OperationAanesthesia/frmAanesthesiaRecord.cs b/AIMS/OperationAanesthesia/frmAanesthesiaRecord.cs
index 745e748..be8ba35 100644
--- a/AIMS/OperationAanesthesia/frmAanesthesiaRecord.cs
+++ b/AIMS/OperationAanesthesia/frmAanesthesiaRecord.cs
@@ -1215,7 +1215,6 @@ namespace AIMS.OperationAanesthesia
zgcAnaesRecord2.Visible = true;
}
-
private void _record_SpeedyDrugsParam(List factDrugs)
{
frmFactSpeedyDrug frmFact = new frmFactSpeedyDrug();
@@ -1312,14 +1311,12 @@ namespace AIMS.OperationAanesthesia
MessageBox.Show("请选择患者");
}
}
-
private void FrmFactOutputLiquids_OutParam()
{
templateManage.Bind("OutputManage");
templateManage.Bind("RemarkManage");
zgcAnaesRecord.Refresh();
}
-
private void button6_Click(object sender, EventArgs e)
{
frmAanesthesiaQuality frmAnaseDataQuality = new frmAanesthesiaQuality();
@@ -2254,6 +2251,13 @@ namespace AIMS.OperationAanesthesia
{
bool isTrue = true;
+ if (PublicMethod.HospitalName.Contains("秦皇岛"))
+ if (_record.AnesthesiaDoctor == null || _record.AnesthesiaDoctor.Trim() == "")
+ {
+ message = "请填写麻醉医生";
+ isTrue = false;
+ }
+
if (_record.AnesthesiaDoctor != null && _record.AnesthesiaDoctor.Trim() != "")
{
if (_record.AnaseDataQualityRecordList == null || _record.AnaseDataQualityRecordList.Count <= 0)
diff --git a/AIMS/OperationAfter/frmNotesRecordExport.cs b/AIMS/OperationAfter/frmNotesRecordExport.cs
index 143127c..64e8e38 100644
--- a/AIMS/OperationAfter/frmNotesRecordExport.cs
+++ b/AIMS/OperationAfter/frmNotesRecordExport.cs
@@ -86,7 +86,7 @@ namespace AIMS
{
record.Content6 = dr.Cells[7].EditedFormattedValue.ToString();
record.Content7 = dr.Cells[8].EditedFormattedValue.ToString();
- record.Content8 = dr.Cells[9].EditedFormattedValue.ToString();
+ record.Content8 = dr.Cells[9].EditedFormattedValue.ToString();
record.ExecWork = dr.Cells[10].EditedFormattedValue.ToString();
}
else if (selectdgv.Columns.Count == 9)
@@ -270,7 +270,7 @@ namespace AIMS
{
record.Content6 = dr.Cells[7].EditedFormattedValue.ToString();
record.Content7 = dr.Cells[8].EditedFormattedValue.ToString();
- record.Content8 = dr.Cells[9].EditedFormattedValue.ToString();
+ record.Content8 = dr.Cells[9].EditedFormattedValue.ToString();
record.ExecWork = dr.Cells[10].EditedFormattedValue.ToString();
}
else if (selectdgv.Columns.Count == 9)
@@ -318,7 +318,7 @@ namespace AIMS
record.Content5,
record.Content6,
record.Content7,
- record.Content8,
+ record.Content8,
record.ExecWork
};
rowNum++;
@@ -360,12 +360,13 @@ namespace AIMS
rowNum++;
}
}
- if (isprintview==true)
- excel.PrintPreview();
+ if (isprintview == true)
+ excel.PrintPreview();
else
excel.Print();
excel.Close();
- break;
+ if (isprintview == true)
+ break;
}
}
diff --git a/AIMS/OperationAfter/frmOperationCharg3.cs b/AIMS/OperationAfter/frmOperationCharg3.cs
index 9b74271..b2fa8fc 100644
--- a/AIMS/OperationAfter/frmOperationCharg3.cs
+++ b/AIMS/OperationAfter/frmOperationCharg3.cs
@@ -411,11 +411,11 @@ namespace AIMS.OperationAfter.UI
{
string feerid = item.Cells[0].EditedFormattedValue.ToString();
FeesRecord report = BFeesRecord.SelectSingle(Convert.ToInt32(feerid));
- report.InsureNO = item.Cells[10].EditedFormattedValue.ToString();
- report.Extend5 = item.Cells[13].EditedFormattedValue.ToString();
- report.Conclusion = item.Cells[14].EditedFormattedValue.ToString();
- report.IsInsure = item.Cells[15].EditedFormattedValue.ToString();
- report.LimitDrug = item.Cells[2].EditedFormattedValue.ToString();
+ report.InsureNO = item.Cells[6].EditedFormattedValue.ToString();
+ report.Extend5 = item.Cells[12].EditedFormattedValue.ToString();
+ report.Conclusion = item.Cells[10].EditedFormattedValue.ToString();
+ report.IsInsure = item.Cells[9].EditedFormattedValue.ToString();
+ //report.LimitDrug = item.Cells[2].EditedFormattedValue.ToString();
BFeesRecord.Update(report);
}
MessageBox.Show("保存成功!", "系统提示");
@@ -466,5 +466,208 @@ namespace AIMS.OperationAfter.UI
}
}
+
+ private void toolStripButton3_Click(object sender, EventArgs e)
+ {
+
+ KillAllExcel();
+ if (dgvDrugs.Rows.Count <= 0) return;
+ List groupedList = new List();
+ foreach (DataGridViewRow item in dgvDrugs.Rows)
+ {
+ groupedList.Add(item);
+ }
+ int n = 21;
+ List> groupedLists = new List>();
+ for (int i = 0; i < groupedList.Count; i += n)
+ {
+ List group = groupedList.GetRange(i, Math.Min(n, groupedList.Count - i));
+ groupedLists.Add(group);
+ }
+
+ foreach (List item in groupedLists)
+ {
+ ExprotExcel3(item, true);
+ }
+ }
+
+ private void ExprotExcel3(List itemlist, bool isPrint = false)
+ {
+ //自定义表头
+ string title = "麻醉、精一药品注射剂使用、及残余液处理登记表";
+
+ //是否横向
+ bool xlLandscape = true;
+ if (dataGridViewSetting != null && dataGridViewSetting.Landscape == false) xlLandscape = false;
+ //主体字体大小
+ int BodySize = 9;
+ if (dataGridViewSetting != null && dataGridViewSetting.FontSize > 0) BodySize = dataGridViewSetting.FontSize;
+
+ myExcel = new Microsoft.Office.Interop.Excel.Application();
+ this.Cursor = Cursors.WaitCursor;
+ //保存文化环境
+ System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture;
+ System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
+
+ Workbook workbookData = myExcel.Workbooks.Add(Missing.Value);
+ Worksheet xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)workbookData.Worksheets[1];
+
+ xlSheet.Name = title;
+
+ if (isPrint == false)
+ myExcel.Visible = true;
+
+ myExcel.Cells[1, 1] = title;//默认的就是在sheet1里面的。
+ string DrugName = "科室:麻醉科";
+ myExcel.Cells[2, 1] = DrugName;//默认的就是在sheet1里面的。
+ int startIndex = 3;
+
+ WorksheetClass wsClass = new WorksheetClass();
+
+ Dictionary Columns = new Dictionary();
+ //填充标题
+ for (int i = 0; i < dgvDrugs.Columns.Count; i++)
+ {
+ if (dataGridViewSetting != null)
+ {
+ foreach (var item in dataGridViewSetting.Exports)
+ {
+ if (dgvDrugs.Columns[i].Name == item.Name)
+ {
+ if (item.IsPrint == true)
+ {
+ Columns.Add(i, dgvDrugs.Columns[i].HeaderText);
+ continue;
+ }
+
+ }
+ }
+ }
+ else
+ {
+ if (dgvDrugs.Columns[i].Visible == true)
+ Columns.Add(i, dgvDrugs.Columns[i].HeaderText);
+ }
+ }
+
+ List> ColumnsStr = Columns.ToList();
+
+ for (int i = 0; i < ColumnsStr.Count; i++)
+ {
+ myExcel.Cells[startIndex, i + 1] = ColumnsStr[i].Value;
+ if (dataGridViewSetting != null)
+ {
+ foreach (var item in dataGridViewSetting.Exports)
+ {
+ if (ColumnsStr[i].Value == item.Text)
+ {
+ xlSheet.get_Range(xlSheet.Cells[startIndex, i + 1], xlSheet.Cells[startIndex, i + 1]).ColumnWidth = item.PrintWidth;//列宽
+ }
+ }
+ }
+ else
+ {
+ xlSheet.get_Range(xlSheet.Cells[startIndex, i + 1], xlSheet.Cells[startIndex, i + 1]).ColumnWidth = 5;//列宽
+ }
+ }
+ //获得数据表的值
+ int RowCount = itemlist.Count;
+ int colCount = ColumnsStr.Count;
+ //设置填充单元格样式
+ xlSheet.get_Range(xlSheet.Cells[startIndex, 1], xlSheet.Cells[RowCount + startIndex, colCount]).Borders.LineStyle = XlLineStyle.xlContinuous;//边框的样式
+ object[,] objData = new object[RowCount, colCount];
+
+ //将DataTable里的值填充到对象数组中
+ for (int i = 0; i < RowCount; i++)
+ {
+ for (int j = 0; j < colCount; j++)
+ {
+ if (dgvDrugs.Columns[ColumnsStr[j].Key].Name == "序号" || dgvDrugs.Columns[ColumnsStr[j].Key].Name == "ApplyId")
+ objData[i, j] = i + 1;
+ else if (itemlist[i].Cells[ColumnsStr[j].Key].Value != null)
+ objData[i, j] = itemlist[i].Cells[ColumnsStr[j].Key].Value.ToString().Trim();
+ }
+ System.Windows.Forms.Application.DoEvents();
+ }
+
+ //将对象数组的值赋值给Excel
+ Range range = xlSheet.get_Range(xlSheet.Cells[4, 1], xlSheet.Cells[RowCount + startIndex, colCount]);
+ range.NumberFormat = "@";
+ range.Value2 = objData;
+ range.RowHeight = 19;
+ //xlSheet.get_Range(xlSheet.Cells[2, 1], xlSheet.Cells[RowCount + 2, colCount]).Font.Size = BodySize;//字体大小
+
+ //设置主标题单元格的样式
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).MergeCells = true;//合并单元格
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).HorizontalAlignment = XlHAlign.xlHAlignCenter;//水平对齐方式
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).VerticalAlignment = XlVAlign.xlVAlignCenter;//垂直对齐方式
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).Font.Bold = true;//字体加粗
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).Font.ColorIndex = 0;//字体颜色
+ //xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).Font.Italic = true;//是否斜体
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).Font.Size = 20;//字体大小
+ //xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[2, colCount]).Borders.LineStyle = XlLineStyle.xlContinuous;//边框样式
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).RowHeight = 33.75;//行高
+
+ xlSheet.get_Range(xlSheet.Cells[2, 1], xlSheet.Cells[2, colCount]).MergeCells = true;//合并单元格
+
+ //设置标题单元格样式
+ xlSheet.get_Range(xlSheet.Cells[2, 1], xlSheet.Cells[startIndex, colCount]).RowHeight = 21;//行高
+
+ if (xlLandscape == true)
+ xlSheet.PageSetup.Orientation = XlPageOrientation.xlLandscape;//页面方向为横向
+ //复苏文化环境
+ System.Threading.Thread.CurrentThread.CurrentCulture = CurrentCI;
+ try
+ {
+ if (isPrint == true)
+ xlSheet.PrintOutEx();
+ //myExcel.Save(@"D:a.xls");
+ //myExcel.Quit();
+ this.Cursor = Cursors.Default;
+ //MessageBox.Show("导出成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ }
+ finally
+ {
+ if (isPrint == true)
+ {
+ //释放资源
+ System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet);
+ System.Runtime.InteropServices.Marshal.ReleaseComObject(workbookData);
+ System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
+ System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel);
+ GC.Collect();
+ range = null;
+ xlSheet = null;
+ workbookData = null;
+ myExcel = null;
+ KillAllExcel();
+ }
+ }
+ }
+
+ private void toolStripButton4_Click(object sender, EventArgs e)
+ {
+ if (comboBoxExType.Text == "") return;
+ if (cnoDrugName.Text == "") return;
+ string beginTime = Convert.ToDateTime(dtpOpeTime.Value).ToString("yyyy-MM-dd 00:00:00");
+ string endTime = Convert.ToDateTime(dtpEnd.Value).ToString("yyyy-MM-dd 23:59:59");
+ string sql = string.Format(" ExecTime>='{0}' and ExecTime<'{1}'", beginTime, endTime);
+ if (comboBoxExType.SelectedItem != null)
+ {
+ ComboItem chargitem = comboBoxExType.SelectedItem as ComboItem;
+ sql += " and (FeeTypeId = '" + chargitem.Value + "' ) ";
+ }
+ if (cnoDrugName.SelectedItem != null)
+ {
+ ComboItem chargitem = cnoDrugName.SelectedItem as ComboItem;
+ sql += " and (ChargName = '" + chargitem.Value + "' ) ";
+ }
+ if (FeeType != "")
+ {
+ sql += " and (FeeType = '" + FeeType + "' ) ";
+ }
+ BFeesRecordReport.UpdateChargcyl(sql);
+ btnOK_Click(null, null);
+ }
}
}
diff --git a/AIMS/OperationAfter/frmOperationCharg3.designer.cs b/AIMS/OperationAfter/frmOperationCharg3.designer.cs
index 4165f59..87541c6 100644
--- a/AIMS/OperationAfter/frmOperationCharg3.designer.cs
+++ b/AIMS/OperationAfter/frmOperationCharg3.designer.cs
@@ -28,16 +28,18 @@
///
private void InitializeComponent()
{
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle15 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle16 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle17 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle18 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle20 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle21 = new System.Windows.Forms.DataGridViewCellStyle();
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle19 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle();
this.panel1 = new System.Windows.Forms.Panel();
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
+ this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
+ this.toolStripButton3 = new System.Windows.Forms.ToolStripButton();
this.cboRoom = new DevComponents.DotNetBar.Controls.ComboBoxEx();
this.label22 = new System.Windows.Forms.Label();
this.tsbSettingDGV = new System.Windows.Forms.Button();
@@ -101,7 +103,7 @@
this.dataGridViewTextBoxColumn31 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dgvDrugs = new DevComponents.DotNetBar.Controls.DataGridViewX();
this.dataGridViewTextBoxColumn21 = new System.Windows.Forms.DataGridViewTextBoxColumn();
- this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
+ this.toolStripButton4 = new System.Windows.Forms.ToolStripButton();
this.panel1.SuspendLayout();
this.toolStrip1.SuspendLayout();
this.panel2.SuspendLayout();
@@ -134,13 +136,26 @@
this.toolStrip1.ImageScalingSize = new System.Drawing.Size(25, 25);
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButton2,
- this.toolStripButton1});
+ this.toolStripButton1,
+ this.toolStripButton3,
+ this.toolStripButton4});
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(1350, 49);
this.toolStrip1.TabIndex = 36;
this.toolStrip1.Text = "toolStrip1";
//
+ // toolStripButton2
+ //
+ this.toolStripButton2.Font = new System.Drawing.Font("微软雅黑", 9F);
+ this.toolStripButton2.Image = global::AIMS.Properties.Resources.图标_设置;
+ this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.toolStripButton2.Name = "toolStripButton2";
+ this.toolStripButton2.Size = new System.Drawing.Size(60, 46);
+ this.toolStripButton2.Text = "导出设置";
+ this.toolStripButton2.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
+ this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click);
+ //
// toolStripButton1
//
this.toolStripButton1.Font = new System.Drawing.Font("微软雅黑", 9F);
@@ -152,6 +167,17 @@
this.toolStripButton1.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.toolStripButton1.Click += new System.EventHandler(this.button1_Click);
//
+ // toolStripButton3
+ //
+ this.toolStripButton3.Font = new System.Drawing.Font("微软雅黑", 9F);
+ this.toolStripButton3.Image = global::AIMS.Properties.Resources.图标_手术排程;
+ this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.toolStripButton3.Name = "toolStripButton3";
+ this.toolStripButton3.Size = new System.Drawing.Size(65, 46);
+ this.toolStripButton3.Text = "打印Excel";
+ this.toolStripButton3.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
+ this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click);
+ //
// cboRoom
//
this.cboRoom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
@@ -490,19 +516,19 @@
// dgvOperation
//
this.dgvOperation.AllowUserToAddRows = false;
- dataGridViewCellStyle15.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(239)))), ((int)(((byte)(247)))), ((int)(((byte)(255)))));
- this.dgvOperation.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle15;
+ dataGridViewCellStyle8.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(239)))), ((int)(((byte)(247)))), ((int)(((byte)(255)))));
+ this.dgvOperation.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle8;
this.dgvOperation.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
this.dgvOperation.BackgroundColor = System.Drawing.Color.Snow;
this.dgvOperation.BorderStyle = System.Windows.Forms.BorderStyle.None;
- dataGridViewCellStyle16.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- dataGridViewCellStyle16.BackColor = System.Drawing.SystemColors.Control;
- dataGridViewCellStyle16.Font = new System.Drawing.Font("微软雅黑", 10F);
- dataGridViewCellStyle16.ForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle16.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle16.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- dataGridViewCellStyle16.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.dgvOperation.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle16;
+ dataGridViewCellStyle9.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+ dataGridViewCellStyle9.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle9.Font = new System.Drawing.Font("微软雅黑", 10F);
+ dataGridViewCellStyle9.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle9.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle9.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle9.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.dgvOperation.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle9;
this.dgvOperation.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvOperation.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Id,
@@ -833,29 +859,29 @@
this.dgvDrugs.AllowUserToAddRows = false;
this.dgvDrugs.AllowUserToResizeColumns = false;
this.dgvDrugs.AllowUserToResizeRows = false;
- dataGridViewCellStyle17.BackColor = System.Drawing.Color.MintCream;
- this.dgvDrugs.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle17;
+ dataGridViewCellStyle10.BackColor = System.Drawing.Color.MintCream;
+ this.dgvDrugs.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle10;
this.dgvDrugs.BackgroundColor = System.Drawing.Color.White;
this.dgvDrugs.BorderStyle = System.Windows.Forms.BorderStyle.None;
- dataGridViewCellStyle18.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- dataGridViewCellStyle18.BackColor = System.Drawing.SystemColors.Control;
- dataGridViewCellStyle18.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- dataGridViewCellStyle18.ForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle18.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle18.SelectionForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle18.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.dgvDrugs.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle18;
+ dataGridViewCellStyle11.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+ dataGridViewCellStyle11.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle11.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle11.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle11.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle11.SelectionForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle11.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.dgvDrugs.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle11;
this.dgvDrugs.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
this.dgvDrugs.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.dataGridViewTextBoxColumn21});
- dataGridViewCellStyle20.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle20.BackColor = System.Drawing.SystemColors.Window;
- dataGridViewCellStyle20.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- dataGridViewCellStyle20.ForeColor = System.Drawing.Color.Black;
- dataGridViewCellStyle20.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle20.SelectionForeColor = System.Drawing.Color.Black;
- dataGridViewCellStyle20.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
- this.dgvDrugs.DefaultCellStyle = dataGridViewCellStyle20;
+ dataGridViewCellStyle13.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle13.BackColor = System.Drawing.SystemColors.Window;
+ dataGridViewCellStyle13.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle13.ForeColor = System.Drawing.Color.Black;
+ dataGridViewCellStyle13.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle13.SelectionForeColor = System.Drawing.Color.Black;
+ dataGridViewCellStyle13.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
+ this.dgvDrugs.DefaultCellStyle = dataGridViewCellStyle13;
this.dgvDrugs.Dock = System.Windows.Forms.DockStyle.Fill;
this.dgvDrugs.EditMode = System.Windows.Forms.DataGridViewEditMode.EditOnEnter;
this.dgvDrugs.EnableHeadersVisualStyles = false;
@@ -864,14 +890,14 @@
this.dgvDrugs.Margin = new System.Windows.Forms.Padding(0);
this.dgvDrugs.MultiSelect = false;
this.dgvDrugs.Name = "dgvDrugs";
- dataGridViewCellStyle21.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
- dataGridViewCellStyle21.BackColor = System.Drawing.SystemColors.Control;
- dataGridViewCellStyle21.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
- dataGridViewCellStyle21.ForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle21.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle21.SelectionForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle21.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.dgvDrugs.RowHeadersDefaultCellStyle = dataGridViewCellStyle21;
+ dataGridViewCellStyle14.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
+ dataGridViewCellStyle14.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle14.Font = new System.Drawing.Font("微软雅黑", 10.5F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
+ dataGridViewCellStyle14.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle14.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle14.SelectionForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle14.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.dgvDrugs.RowHeadersDefaultCellStyle = dataGridViewCellStyle14;
this.dgvDrugs.RowHeadersVisible = false;
this.dgvDrugs.RowTemplate.Height = 25;
this.dgvDrugs.ShowCellErrors = false;
@@ -884,23 +910,24 @@
// dataGridViewTextBoxColumn21
//
this.dataGridViewTextBoxColumn21.DataPropertyName = "id";
- dataGridViewCellStyle19.ForeColor = System.Drawing.Color.Red;
- this.dataGridViewTextBoxColumn21.DefaultCellStyle = dataGridViewCellStyle19;
+ dataGridViewCellStyle12.ForeColor = System.Drawing.Color.Red;
+ this.dataGridViewTextBoxColumn21.DefaultCellStyle = dataGridViewCellStyle12;
this.dataGridViewTextBoxColumn21.HeaderText = "ID";
this.dataGridViewTextBoxColumn21.Name = "dataGridViewTextBoxColumn21";
this.dataGridViewTextBoxColumn21.Visible = false;
this.dataGridViewTextBoxColumn21.Width = 30;
//
- // toolStripButton2
+ // toolStripButton4
//
- this.toolStripButton2.Font = new System.Drawing.Font("微软雅黑", 9F);
- this.toolStripButton2.Image = global::AIMS.Properties.Resources.图标_设置;
- this.toolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta;
- this.toolStripButton2.Name = "toolStripButton2";
- this.toolStripButton2.Size = new System.Drawing.Size(60, 46);
- this.toolStripButton2.Text = "导出设置";
- this.toolStripButton2.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
- this.toolStripButton2.Click += new System.EventHandler(this.toolStripButton2_Click);
+ this.toolStripButton4.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
+ this.toolStripButton4.Font = new System.Drawing.Font("微软雅黑", 9F);
+ this.toolStripButton4.Image = global::AIMS.Properties.Resources.图标_刷新;
+ this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.toolStripButton4.Name = "toolStripButton4";
+ this.toolStripButton4.Size = new System.Drawing.Size(72, 46);
+ this.toolStripButton4.Text = "更新残余量";
+ this.toolStripButton4.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
+ this.toolStripButton4.Click += new System.EventHandler(this.toolStripButton4_Click);
//
// frmOperationCharg3
//
@@ -1001,5 +1028,7 @@
private System.Windows.Forms.ToolStrip toolStrip1;
private System.Windows.Forms.ToolStripButton toolStripButton1;
private System.Windows.Forms.ToolStripButton toolStripButton2;
+ private System.Windows.Forms.ToolStripButton toolStripButton3;
+ private System.Windows.Forms.ToolStripButton toolStripButton4;
}
}
\ No newline at end of file
diff --git a/AIMS/OperationAfter/frmOperationCharg5.cs b/AIMS/OperationAfter/frmOperationCharg5.cs
index 6c81026..bd4a1bd 100644
--- a/AIMS/OperationAfter/frmOperationCharg5.cs
+++ b/AIMS/OperationAfter/frmOperationCharg5.cs
@@ -38,10 +38,10 @@ namespace AIMS.OperationAfter.UI
try
{
dtpOpeTime.Value = DateTime.Now;
- dtpEnd.Value = dtpOpeTime.Value;
+ dtpEnd.Value = dtpOpeTime.Value;
DataGridViewPath = GetControlPath(dgvDrugs);
exportConfig = BSysConfig.SelectSingle(" Note='" + DataGridViewPath + "'", null, RecursiveType.None, 0);
-
+
if (exportConfig != null)
ConfigDataGridView(exportConfig);
@@ -55,7 +55,7 @@ namespace AIMS.OperationAfter.UI
PublicMethod.WriteLog(exp);
}
}
-
+
private void btnOK_Click(object sender, EventArgs e)
{
//if (comboBoxExType.Text == "") return;
@@ -136,7 +136,7 @@ namespace AIMS.OperationAfter.UI
}
private void button1_Click(object sender, EventArgs e)
- {
+ {
KillAllExcel();
ExprotExcel2();
}
@@ -144,7 +144,7 @@ namespace AIMS.OperationAfter.UI
private void ExprotExcel2(bool isPrint = false)
{
//自定义表头
- string title = "麻醉、精一药品注射剂使用、及残余液处理登记表";
+ string title = "麻醉、精一药品注射剂使用、及残余液处理登记表";
//是否横向
bool xlLandscape = true;
@@ -168,7 +168,7 @@ namespace AIMS.OperationAfter.UI
myExcel.Visible = true;
myExcel.Cells[1, 1] = title;//默认的就是在sheet1里面的。
- string DrugName = "科室:麻醉科";
+ string DrugName = "科室:麻醉科";
myExcel.Cells[2, 1] = DrugName;//默认的就是在sheet1里面的。
int startIndex = 3;
@@ -327,11 +327,11 @@ namespace AIMS.OperationAfter.UI
item.Value = table.Rows[i][0].ToString();
cnoDrugName.Items.Add(item);
}
- }
+ }
private void btnSave_Click(object sender, EventArgs e)
{
if (comboBoxExType.Text == "") return;
- if (cnoDrugName.Text == "") return;
+ if (cnoDrugName.Text == "") return;
foreach (DataGridViewRow item in dgvDrugs.Rows)
{
string feerid = item.Cells[0].EditedFormattedValue.ToString();
@@ -343,7 +343,7 @@ namespace AIMS.OperationAfter.UI
//report.LimitDrug = item.Cells[2].EditedFormattedValue.ToString();
BFeesRecord.Update(report);
}
- MessageBox.Show("保存成功!", "系统提示");
+ MessageBox.Show("保存成功!", "系统提示");
}
private void dgvDrugs_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
@@ -352,7 +352,7 @@ namespace AIMS.OperationAfter.UI
this.dgvDrugs.RowsDefaultCellStyle.BackColor = Color.White;//设置背景为白色
this.dgvDrugs.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(222)))), (((int)(((byte)242)))));//青色
}
-
+
private void dgvDrugs_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
DialogResult dialog = MessageBox.Show("是否批量填写数据?", "系统提示", MessageBoxButtons.YesNo);
@@ -376,5 +376,205 @@ namespace AIMS.OperationAfter.UI
}
}
+
+ private void toolStripButton3_Click(object sender, EventArgs e)
+ {
+ KillAllExcel();
+ if (dgvDrugs.Rows.Count <= 0) return;
+ List groupedList = new List();
+ foreach (DataGridViewRow item in dgvDrugs.Rows)
+ {
+ groupedList.Add(item);
+ }
+ int n = 21;
+ List> groupedLists = new List>();
+ for (int i = 0; i < groupedList.Count; i += n)
+ {
+ List group = groupedList.GetRange(i, Math.Min(n, groupedList.Count - i));
+ groupedLists.Add(group);
+ }
+
+ foreach (List item in groupedLists)
+ {
+ ExprotExcel3(item, true);
+ }
+ }
+
+ private void ExprotExcel3(List itemlist, bool isPrint = false)
+ {
+ //自定义表头
+ string title = "麻醉、精一药品注射剂使用、及残余液处理登记表";
+
+ //是否横向
+ bool xlLandscape = true;
+ if (dataGridViewSetting != null && dataGridViewSetting.Landscape == false) xlLandscape = false;
+ //主体字体大小
+ int BodySize = 9;
+ if (dataGridViewSetting != null && dataGridViewSetting.FontSize > 0) BodySize = dataGridViewSetting.FontSize;
+
+ myExcel = new Microsoft.Office.Interop.Excel.Application();
+ this.Cursor = Cursors.WaitCursor;
+ //保存文化环境
+ System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture;
+ System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
+
+ Workbook workbookData = myExcel.Workbooks.Add(Missing.Value);
+ Worksheet xlSheet = (Microsoft.Office.Interop.Excel.Worksheet)workbookData.Worksheets[1];
+
+ xlSheet.Name = title;
+
+ if (isPrint == false)
+ myExcel.Visible = true;
+
+ myExcel.Cells[1, 1] = title;//默认的就是在sheet1里面的。
+ string DrugName = "科室:麻醉科";
+ myExcel.Cells[2, 1] = DrugName;//默认的就是在sheet1里面的。
+ int startIndex = 3;
+
+ WorksheetClass wsClass = new WorksheetClass();
+
+ Dictionary Columns = new Dictionary();
+ //填充标题
+ for (int i = 0; i < dgvDrugs.Columns.Count; i++)
+ {
+ if (dataGridViewSetting != null)
+ {
+ foreach (var item in dataGridViewSetting.Exports)
+ {
+ if (dgvDrugs.Columns[i].Name == item.Name)
+ {
+ if (item.IsPrint == true)
+ {
+ Columns.Add(i, dgvDrugs.Columns[i].HeaderText);
+ continue;
+ }
+
+ }
+ }
+ }
+ else
+ {
+ if (dgvDrugs.Columns[i].Visible == true)
+ Columns.Add(i, dgvDrugs.Columns[i].HeaderText);
+ }
+ }
+
+ List> ColumnsStr = Columns.ToList();
+
+ for (int i = 0; i < ColumnsStr.Count; i++)
+ {
+ myExcel.Cells[startIndex, i + 1] = ColumnsStr[i].Value;
+ if (dataGridViewSetting != null)
+ {
+ foreach (var item in dataGridViewSetting.Exports)
+ {
+ if (ColumnsStr[i].Value == item.Text)
+ {
+ xlSheet.get_Range(xlSheet.Cells[startIndex, i + 1], xlSheet.Cells[startIndex, i + 1]).ColumnWidth = item.PrintWidth;//列宽
+ }
+ }
+ }
+ else
+ {
+ xlSheet.get_Range(xlSheet.Cells[startIndex, i + 1], xlSheet.Cells[startIndex, i + 1]).ColumnWidth = 5;//列宽
+ }
+ }
+ //获得数据表的值
+ int RowCount = itemlist.Count;
+ int colCount = ColumnsStr.Count;
+ //设置填充单元格样式
+ xlSheet.get_Range(xlSheet.Cells[startIndex, 1], xlSheet.Cells[RowCount + startIndex, colCount]).Borders.LineStyle = XlLineStyle.xlContinuous;//边框的样式
+ object[,] objData = new object[RowCount, colCount];
+
+ //将DataTable里的值填充到对象数组中
+ for (int i = 0; i < RowCount; i++)
+ {
+ for (int j = 0; j < colCount; j++)
+ {
+ if (dgvDrugs.Columns[ColumnsStr[j].Key].Name == "序号" || dgvDrugs.Columns[ColumnsStr[j].Key].Name == "ApplyId")
+ objData[i, j] = i + 1;
+ else if (itemlist[i].Cells[ColumnsStr[j].Key].Value != null)
+ objData[i, j] = itemlist[i].Cells[ColumnsStr[j].Key].Value.ToString().Trim();
+ }
+ System.Windows.Forms.Application.DoEvents();
+ }
+
+ //将对象数组的值赋值给Excel
+ Range range = xlSheet.get_Range(xlSheet.Cells[4, 1], xlSheet.Cells[RowCount + startIndex, colCount]);
+ range.NumberFormat = "@";
+ range.Value2 = objData;
+ range.RowHeight = 19;
+ //xlSheet.get_Range(xlSheet.Cells[2, 1], xlSheet.Cells[RowCount + 2, colCount]).Font.Size = BodySize;//字体大小
+
+ //设置主标题单元格的样式
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).MergeCells = true;//合并单元格
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).HorizontalAlignment = XlHAlign.xlHAlignCenter;//水平对齐方式
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).VerticalAlignment = XlVAlign.xlVAlignCenter;//垂直对齐方式
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).Font.Bold = true;//字体加粗
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).Font.ColorIndex = 0;//字体颜色
+ //xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).Font.Italic = true;//是否斜体
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).Font.Size = 20;//字体大小
+ //xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[2, colCount]).Borders.LineStyle = XlLineStyle.xlContinuous;//边框样式
+ xlSheet.get_Range(xlSheet.Cells[1, 1], xlSheet.Cells[1, colCount]).RowHeight = 33.75;//行高
+
+ xlSheet.get_Range(xlSheet.Cells[2, 1], xlSheet.Cells[2, colCount]).MergeCells = true;//合并单元格
+
+ //设置标题单元格样式
+ xlSheet.get_Range(xlSheet.Cells[2, 1], xlSheet.Cells[startIndex, colCount]).RowHeight = 21;//行高
+
+ if (xlLandscape == true)
+ xlSheet.PageSetup.Orientation = XlPageOrientation.xlLandscape;//页面方向为横向
+ //复苏文化环境
+ System.Threading.Thread.CurrentThread.CurrentCulture = CurrentCI;
+ try
+ {
+ if (isPrint == true)
+ xlSheet.PrintOutEx();
+ //myExcel.Save(@"D:a.xls");
+ //myExcel.Quit();
+ this.Cursor = Cursors.Default;
+ //MessageBox.Show("导出成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ }
+ finally
+ {
+ if (isPrint == true)
+ {
+ //释放资源
+ System.Runtime.InteropServices.Marshal.ReleaseComObject(xlSheet);
+ System.Runtime.InteropServices.Marshal.ReleaseComObject(workbookData);
+ System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
+ System.Runtime.InteropServices.Marshal.ReleaseComObject(myExcel);
+ GC.Collect();
+ range = null;
+ xlSheet = null;
+ workbookData = null;
+ myExcel = null;
+ KillAllExcel();
+ }
+ }
+ }
+
+ private void toolStripButton4_Click(object sender, EventArgs e)
+ {
+ string beginTime = Convert.ToDateTime(dtpOpeTime.Value).ToString("yyyy-MM-dd 00:00:00");
+ string endTime = Convert.ToDateTime(dtpEnd.Value).ToString("yyyy-MM-dd 23:59:59");
+ string sql = string.Format(" ExecTime>='{0}' and ExecTime<'{1}'", beginTime, endTime);
+ if (comboBoxExType.SelectedItem != null)
+ {
+ ComboItem chargitem = comboBoxExType.SelectedItem as ComboItem;
+ sql += " and (FeeTypeId = '" + chargitem.Value + "' ) ";
+ }
+ if (cnoDrugName.SelectedItem != null)
+ {
+ ComboItem chargitem = cnoDrugName.SelectedItem as ComboItem;
+ sql += " and (ChargName = '" + chargitem.Value + "' ) ";
+ }
+ if (FeeType != "")
+ {
+ sql += " and (FeeType = '" + FeeType + "' ) ";
+ }
+ BFeesRecordReport.UpdateChargcyl(sql);
+ btnOK_Click(null, null);
+ }
}
}
diff --git a/AIMS/OperationAfter/frmOperationCharg5.designer.cs b/AIMS/OperationAfter/frmOperationCharg5.designer.cs
index dff8b7c..b035713 100644
--- a/AIMS/OperationAfter/frmOperationCharg5.designer.cs
+++ b/AIMS/OperationAfter/frmOperationCharg5.designer.cs
@@ -37,6 +37,7 @@
this.toolStrip1 = new System.Windows.Forms.ToolStrip();
this.toolStripButton2 = new System.Windows.Forms.ToolStripButton();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
+ this.toolStripButton3 = new System.Windows.Forms.ToolStripButton();
this.cboRoom = new DevComponents.DotNetBar.Controls.ComboBoxEx();
this.label22 = new System.Windows.Forms.Label();
this.tsbSettingDGV = new System.Windows.Forms.Button();
@@ -90,6 +91,7 @@
this.dataGridViewTextBoxColumn31 = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.dgvDrugs = new DevComponents.DotNetBar.Controls.DataGridViewX();
this.dataGridViewTextBoxColumn21 = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.toolStripButton4 = new System.Windows.Forms.ToolStripButton();
this.panel1.SuspendLayout();
this.toolStrip1.SuspendLayout();
this.panel2.SuspendLayout();
@@ -120,7 +122,9 @@
this.toolStrip1.ImageScalingSize = new System.Drawing.Size(25, 25);
this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripButton2,
- this.toolStripButton1});
+ this.toolStripButton1,
+ this.toolStripButton3,
+ this.toolStripButton4});
this.toolStrip1.Location = new System.Drawing.Point(0, 0);
this.toolStrip1.Name = "toolStrip1";
this.toolStrip1.Size = new System.Drawing.Size(1350, 49);
@@ -149,6 +153,17 @@
this.toolStripButton1.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
this.toolStripButton1.Click += new System.EventHandler(this.button1_Click);
//
+ // toolStripButton3
+ //
+ this.toolStripButton3.Font = new System.Drawing.Font("微软雅黑", 9F);
+ this.toolStripButton3.Image = global::AIMS.Properties.Resources.图标_手术排程;
+ this.toolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.toolStripButton3.Name = "toolStripButton3";
+ this.toolStripButton3.Size = new System.Drawing.Size(65, 46);
+ this.toolStripButton3.Text = "打印Excel";
+ this.toolStripButton3.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
+ this.toolStripButton3.Click += new System.EventHandler(this.toolStripButton3_Click);
+ //
// cboRoom
//
this.cboRoom.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
@@ -762,6 +777,18 @@
this.dataGridViewTextBoxColumn21.Visible = false;
this.dataGridViewTextBoxColumn21.Width = 30;
//
+ // toolStripButton4
+ //
+ this.toolStripButton4.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
+ this.toolStripButton4.Font = new System.Drawing.Font("微软雅黑", 9F);
+ this.toolStripButton4.Image = global::AIMS.Properties.Resources.图标_刷新;
+ this.toolStripButton4.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.toolStripButton4.Name = "toolStripButton4";
+ this.toolStripButton4.Size = new System.Drawing.Size(72, 46);
+ this.toolStripButton4.Text = "更新残余量";
+ this.toolStripButton4.TextImageRelation = System.Windows.Forms.TextImageRelation.ImageAboveText;
+ this.toolStripButton4.Click += new System.EventHandler(this.toolStripButton4_Click);
+ //
// frmOperationCharg5
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@@ -848,5 +875,7 @@
private System.Windows.Forms.ToolStrip toolStrip1;
private System.Windows.Forms.ToolStripButton toolStripButton1;
private System.Windows.Forms.ToolStripButton toolStripButton2;
+ private System.Windows.Forms.ToolStripButton toolStripButton3;
+ private System.Windows.Forms.ToolStripButton toolStripButton4;
}
}
\ No newline at end of file
diff --git a/AIMSEntity/BLL/Extension/BFeesRecordReport.cs b/AIMSEntity/BLL/Extension/BFeesRecordReport.cs
index bc134e1..5372876 100644
--- a/AIMSEntity/BLL/Extension/BFeesRecordReport.cs
+++ b/AIMSEntity/BLL/Extension/BFeesRecordReport.cs
@@ -101,5 +101,23 @@ LEFT JOIN V_OperationRecordInfo voi on voi.RecoredId=FeesRecord.OperationRecordI
DataTable dt = DBHelper.GetDataTable(sql);
return dt;
}
+ public static void UpdateChargcyl(string where)
+ {
+ string sql = string.Format(@"
+ Update [FeesRecord] set IsInsure=(select convert(nvarchar(10),(num*Qty)-Qty2 )+ unitt from (
+SELECT fr.Id
+ ,[FeeNum] num
+ ,[Extend1] unitt
+ , CASE WHEN ISNUMERIC( fr.[Extend2] )=1 AND fr.[Extend2] not LIKE '%[^0-9.]%'
+ THEN CAST( fr.[Extend2] AS DECIMAL(19,6))
+ ELSE 0.0 END AS Qty2
+ , CASE WHEN ISNUMERIC(Drugs.Dosage )=1 AND Drugs.Dosage not LIKE '%[^0-9.]%'
+ THEN CAST( Drugs.Dosage AS DECIMAL(19,6))
+ ELSE 0.0 END AS Qty
+ FROM [dbo].[FeesRecord] fr
+ left join Drugs on fr.FeeId =Drugs.Id where fr.Id= [FeesRecord].Id) temp)
+ where FeeIsDrug=1 and FeesRecord.Extend4<>'' and {0}", where);
+ DBHelper.ExecuteScalar(sql);
+ }
}
}
diff --git a/DrawGraphManagement/AreaManageForm.Designer.cs b/DrawGraphManagement/AreaManageForm.Designer.cs
index e364e0d..0347066 100644
--- a/DrawGraphManagement/AreaManageForm.Designer.cs
+++ b/DrawGraphManagement/AreaManageForm.Designer.cs
@@ -72,7 +72,7 @@
this.txtInstanceName = new System.Windows.Forms.ComboBox();
this.panel3 = new System.Windows.Forms.Panel();
this.panel4 = new System.Windows.Forms.Panel();
- this.panelzgc = new DrawGraphManagement.MyPanel();
+ this.panelzgc = new System.Windows.Forms.Panel();
this.alignCmdOfPackPnl = new System.Windows.Forms.Panel();
this.btnAlignCmd = new System.Windows.Forms.Button();
this.cmbPackAlignType = new System.Windows.Forms.ComboBox();
@@ -1086,7 +1086,7 @@
private System.Windows.Forms.TreeView treeView1;
private System.Windows.Forms.Panel panel3;
private System.Windows.Forms.Panel panel4;
- private MyPanel panelzgc;
+ private System.Windows.Forms.Panel panelzgc;
public DrawGraph.ZedGraphControl zedGraphControl1;
private System.Windows.Forms.ColorDialog colorDialog1;
private System.Windows.Forms.MenuStrip menuStrip1;
diff --git a/DrawGraphManagement/DrawGraphManagement.csproj b/DrawGraphManagement/DrawGraphManagement.csproj
index bba5ec4..4ea416c 100644
--- a/DrawGraphManagement/DrawGraphManagement.csproj
+++ b/DrawGraphManagement/DrawGraphManagement.csproj
@@ -77,8 +77,16 @@
False
..\AIMS\Extensions\Newtonsoft.Json.dll
+
+ False
+ .\PdfiumViewer.dll
+ False
+
+
+
+
@@ -87,6 +95,7 @@
+
@@ -102,18 +111,18 @@
frmTemplateD.cs
+
+ Form
+
+
+ MainUp.cs
+
Form
Main.cs
-
- Component
-
-
- MyPanel.cs
-
Form
@@ -124,6 +133,7 @@
+
@@ -132,12 +142,12 @@
frmTemplateD.cs
+
+ MainUp.cs
+
Main.cs
-
- MyPanel.cs
-
ConvertModeForm.cs
@@ -151,6 +161,7 @@
Resources.resx
True
+
SettingsSingleFileGenerator
Settings.Designer.cs
@@ -166,6 +177,9 @@
Always
+
+ Always
+
diff --git a/DrawGraphManagement/Main.Designer.cs b/DrawGraphManagement/Main.Designer.cs
index 0b88ee7..6c1e44f 100644
--- a/DrawGraphManagement/Main.Designer.cs
+++ b/DrawGraphManagement/Main.Designer.cs
@@ -72,9 +72,8 @@
this.label5 = new System.Windows.Forms.Label();
this.txtAreaX = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
- this.myPanel1 = new DrawGraphManagement.MyPanel();
+ this.myPanel1 = new System.Windows.Forms.Panel();
this.zedGraphMain = new DrawGraph.ZedGraphControl();
- this.btnPrint = new System.Windows.Forms.Button();
this.panel1.SuspendLayout();
this.panel4.SuspendLayout();
this.pnlManageList.SuspendLayout();
@@ -179,7 +178,6 @@
this.panel4.Controls.Add(this.button10);
this.panel4.Controls.Add(this.button2);
this.panel4.Controls.Add(this.btnCreate);
- this.panel4.Controls.Add(this.btnPrint);
this.panel4.Controls.Add(this.btnSave);
this.panel4.Dock = System.Windows.Forms.DockStyle.Bottom;
this.panel4.Location = new System.Drawing.Point(0, 4);
@@ -545,16 +543,6 @@
this.zedGraphMain.KeyUp += new System.Windows.Forms.KeyEventHandler(this.zedGraphMain_KeyUp);
this.zedGraphMain.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.zedGraphMain_MouseDoubleClick);
//
- // btnPrint
- //
- this.btnPrint.Location = new System.Drawing.Point(1067, 7);
- this.btnPrint.Name = "btnPrint";
- this.btnPrint.Size = new System.Drawing.Size(59, 23);
- this.btnPrint.TabIndex = 5;
- this.btnPrint.Text = "打印";
- this.btnPrint.UseVisualStyleBackColor = true;
- this.btnPrint.Click += new System.EventHandler(this.btnPrint_Click);
- //
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@@ -609,7 +597,7 @@
private System.Windows.Forms.Button BtnBind;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox textBox1;
- private MyPanel myPanel1;
+ private System.Windows.Forms.Panel myPanel1;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox txtHospitalName;
@@ -629,6 +617,5 @@
private System.Windows.Forms.Button button10;
private System.Windows.Forms.Button button11;
private System.Windows.Forms.Button button12;
- private System.Windows.Forms.Button btnPrint;
}
}
\ No newline at end of file
diff --git a/DrawGraphManagement/Main.cs b/DrawGraphManagement/Main.cs
index 399bf77..ff7dbbf 100644
--- a/DrawGraphManagement/Main.cs
+++ b/DrawGraphManagement/Main.cs
@@ -815,174 +815,6 @@ namespace DrawGraphManagement
}
}
-
- private void btnPrint_Click(object sender, EventArgs e)
- {
- if (textBox1.Text == "") return;
- try
- {
- mPanes = new List();
- UpPanes = new List();
-
- PrintDocPage(null, null);
-
- count = 0;
- int pylWidth = 3;
- System.Drawing.Printing.PrintDocument pDoc = new System.Drawing.Printing.PrintDocument();
- pDoc.DefaultPageSettings.Landscape = false;
- pDoc.OriginAtMargins = true;
- pDoc.DefaultPageSettings.PrinterResolution.Kind = PrinterResolutionKind.High;
- pDoc.DefaultPageSettings.Margins = new Margins(pylWidth, 0, 0, 0);
- pDoc.PrintPage -= new PrintPageEventHandler(pDoc_PrintPage);
- pDoc.PrintPage += new PrintPageEventHandler(pDoc_PrintPage);
-
- System.Windows.Forms.PrintDialog pDlg = new System.Windows.Forms.PrintDialog();
- pDlg.Document = pDoc;
- if (pDlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
- {
- pDoc.Print();
- }
- count = 0;
- }
- catch (Exception exp)
- {
- PublicMethod.WriteLog(exp, "");
- }
- }
- public List mPanes = new List();
- public List UpPanes = new List();
- int m_startPrintPage;// 打印的起始页码
- int m_endPrintPage;//打印的终止页码
- int count = 0;
- private void pDoc_PrintPage(object sender, PrintPageEventArgs e)
- {
- System.Drawing.Printing.PrintDocument pDoc = sender as System.Drawing.Printing.PrintDocument;
- m_startPrintPage = pDoc.PrinterSettings.FromPage;
- m_endPrintPage = pDoc.PrinterSettings.ToPage;
-
- int printCount = mPanes.Count;
- if (mPanes.Count > 0 && count < printCount)
- {
- mPanes[count].Draw(e.Graphics);
- count++;
- if (count < printCount)
- {
- e.HasMorePages = true;
- }
- }
- else
- {
- e.HasMorePages = false;
- }
- }
- private void PrintDocPage(object sender, PrintPageEventArgs e)
- {
- OperationRecord _record = operationRecor as OperationRecord;
- if (_record.currentPage == 1)
- {
- PrintDocPane(e, zedGraphMain, templateManage, true);
- //PrintDocPane(e, zgcAnaesRecord2, templateManage2, false);
- }
- //else
- //{
- // for (int i = 1; i <= _record.pageCount; i++)
- // {
- // PrintDocPane(e, zgcAnaesRecord, templateManage, true);
- // if (i == 1)
- // {
- // PrintDocPane(e, zgcAnaesRecord2, templateManage2, false);
- // }
- // btnNextPage_Click(null, null);
- // if (i != 1)
- // {
- // MasterPane mPane = new MasterPane();
- // mPane.Border.IsVisible = false;
- // mPanes.Add(mPane);
- // }
- // }
- //}
-
- }
-
-
- private void PrintDocPane(PrintPageEventArgs e, ZedGraphControl zedGraph, TemplateManage template, bool InitChart)
- {
- OperationRecord _record = operationRecor as OperationRecord;
- foreach (AreaManageBase area in template.ManageList)
- {
- area.setPrint(false);
- area.BindTempData();
- }
- int zedGraphMainWidth = zedGraph.Size.Width;
- int zedGraphMainHeight = zedGraph.Size.Height;
-
- int width = 825;
- int height = Convert.ToInt32(width * 1.414) + 2;
- zedGraph.Size = new Size(width, height);
- zedGraph.Width = width;
- zedGraph.Height = height;
-
- if (InitChart == true)
- foreach (PhysioDataConfig pp in _record.PhysioConfigList)
- {
- if (pp.ShowText == true)
- {
- pp.IsValid = false;
- ///重新设置曲线属性
- pp.reSetCurveSpo2();
- }
- }
- TipBox.Hidden();
-
- MasterPane mPane = zedGraph.MasterPane; //this.MasterPane;
- mPane.Border.IsVisible = false;
- //当前窗体中的矩形区域大小
- RectangleF saveRect = mPane.Rect;
- if (InitChart == true)
- template.initChart();
- mPanes.Add(mPane.Clone());
- if (e != null)
- mPane.Draw(e.Graphics); //在打印文档中画出MasterPane内容
- using (Graphics g = zedGraph.CreateGraphics())
- {
- mPane.ReSize(g, saveRect);
- }
-
- zedGraph.Size = new Size(zedGraphMainWidth, zedGraphMainHeight);
- if (InitChart == true)
- template.initChart();
- UpPanes.Add(mPane.Clone());
-
- if (InitChart == true)
- foreach (PhysioDataConfig pp in _record.PhysioConfigList)
- {
- if (pp.ShowText == true)
- {
- pp.IsValid = true;
- ///重新设置曲线属性
- pp.reSetCurveSpo2();
- }
- }
- //if (InitChart == false)
- //{
- // int LocationY = Convert.ToInt32(templateManage2.ZedControl.Height * 0.065);
- // templateManage2.LocationY = LocationY;
- // templateManage2.SetPYL();
- // foreach (AreaManageBase area in template.ManageList)
- // {
- // area.setPrint(true);
- // }
- //}
- //else
- //{
- int LocationY = Convert.ToInt32(templateManage.ZedControl.Height * 0.04);
- templateManage.LocationY = LocationY;
- templateManage.SetPYL();
- foreach (AreaManageBase area in template.ManageList)
- {
- area.setPrint(true);
- }
- //}
- }
+
}
}
diff --git a/DrawGraphManagement/MainUp.Designer.cs b/DrawGraphManagement/MainUp.Designer.cs
new file mode 100644
index 0000000..82933a8
--- /dev/null
+++ b/DrawGraphManagement/MainUp.Designer.cs
@@ -0,0 +1,440 @@
+namespace DrawGraphManagement
+{
+ partial class MainUp
+ {
+ ///
+ /// Required designer variable.
+ ///
+ private System.ComponentModel.IContainer components = null;
+
+ ///
+ /// Clean up any resources being used.
+ ///
+ /// true if managed resources should be disposed; otherwise, false.
+ protected override void Dispose(bool disposing)
+ {
+ if (disposing && (components != null))
+ {
+ components.Dispose();
+ }
+ base.Dispose(disposing);
+ }
+
+ #region Windows Form Designer generated code
+
+ ///
+ /// Required method for Designer support - do not modify
+ /// the contents of this method with the code editor.
+ ///
+ private void InitializeComponent()
+ {
+ this.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainUp));
+ this.cmbManageList = new System.Windows.Forms.ComboBox();
+ this.label1 = new System.Windows.Forms.Label();
+ this.label2 = new System.Windows.Forms.Label();
+ this.txtManageName = new System.Windows.Forms.TextBox();
+ this.btnCreate = new System.Windows.Forms.Button();
+ this.btnSave = new System.Windows.Forms.Button();
+ this.panel1 = new System.Windows.Forms.Panel();
+ this.panel4 = new System.Windows.Forms.Panel();
+ this.button5 = new System.Windows.Forms.Button();
+ this.button4 = new System.Windows.Forms.Button();
+ this.button11 = new System.Windows.Forms.Button();
+ this.BtnBind = new System.Windows.Forms.Button();
+ this.label6 = new System.Windows.Forms.Label();
+ this.textBox1 = new System.Windows.Forms.TextBox();
+ this.button9 = new System.Windows.Forms.Button();
+ this.button8 = new System.Windows.Forms.Button();
+ this.button12 = new System.Windows.Forms.Button();
+ this.button7 = new System.Windows.Forms.Button();
+ this.button6 = new System.Windows.Forms.Button();
+ this.button10 = new System.Windows.Forms.Button();
+ this.button2 = new System.Windows.Forms.Button();
+ this.btnPrint = new System.Windows.Forms.Button();
+ this.label3 = new System.Windows.Forms.Label();
+ this.txtProjectName = new System.Windows.Forms.TextBox();
+ this.label7 = new System.Windows.Forms.Label();
+ this.txtHospitalName = new System.Windows.Forms.TextBox();
+ this.myPanel1 = new System.Windows.Forms.Panel();
+ this.zgcAnaesRecord2 = new DrawGraph.ZedGraphControl();
+ this.zgcAnaesRecord = new DrawGraph.ZedGraphControl();
+ this.panel1.SuspendLayout();
+ this.panel4.SuspendLayout();
+ this.myPanel1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // cmbManageList
+ //
+ this.cmbManageList.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend;
+ this.cmbManageList.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems;
+ this.cmbManageList.FormattingEnabled = true;
+ this.cmbManageList.Location = new System.Drawing.Point(771, 10);
+ this.cmbManageList.Name = "cmbManageList";
+ this.cmbManageList.Size = new System.Drawing.Size(155, 20);
+ this.cmbManageList.TabIndex = 0;
+ this.cmbManageList.Visible = false;
+ //
+ // label1
+ //
+ this.label1.AutoSize = true;
+ this.label1.Location = new System.Drawing.Point(664, 14);
+ this.label1.Name = "label1";
+ this.label1.Size = new System.Drawing.Size(101, 12);
+ this.label1.TabIndex = 1;
+ this.label1.Text = "区域管理器类型:";
+ this.label1.Visible = false;
+ //
+ // label2
+ //
+ this.label2.AutoSize = true;
+ this.label2.Location = new System.Drawing.Point(932, 14);
+ this.label2.Name = "label2";
+ this.label2.Size = new System.Drawing.Size(101, 12);
+ this.label2.TabIndex = 2;
+ this.label2.Text = "区域管理器名称:";
+ this.label2.Visible = false;
+ //
+ // txtManageName
+ //
+ this.txtManageName.Location = new System.Drawing.Point(1039, 10);
+ this.txtManageName.Name = "txtManageName";
+ this.txtManageName.Size = new System.Drawing.Size(180, 21);
+ this.txtManageName.TabIndex = 3;
+ this.txtManageName.Visible = false;
+ //
+ // btnCreate
+ //
+ this.btnCreate.Location = new System.Drawing.Point(1302, 8);
+ this.btnCreate.Name = "btnCreate";
+ this.btnCreate.Size = new System.Drawing.Size(75, 23);
+ this.btnCreate.TabIndex = 4;
+ this.btnCreate.Text = "新建";
+ this.btnCreate.UseVisualStyleBackColor = true;
+ this.btnCreate.Visible = false;
+ //
+ // btnSave
+ //
+ this.btnSave.Location = new System.Drawing.Point(895, 7);
+ this.btnSave.Name = "btnSave";
+ this.btnSave.Size = new System.Drawing.Size(75, 23);
+ this.btnSave.TabIndex = 5;
+ this.btnSave.Text = "保存";
+ this.btnSave.UseVisualStyleBackColor = true;
+ this.btnSave.Click += new System.EventHandler(this.btnSave_Click);
+ //
+ // panel1
+ //
+ this.panel1.Controls.Add(this.panel4);
+ this.panel1.Controls.Add(this.label3);
+ this.panel1.Controls.Add(this.txtProjectName);
+ this.panel1.Controls.Add(this.cmbManageList);
+ this.panel1.Controls.Add(this.label1);
+ this.panel1.Controls.Add(this.label2);
+ this.panel1.Controls.Add(this.txtManageName);
+ this.panel1.Controls.Add(this.label7);
+ this.panel1.Controls.Add(this.txtHospitalName);
+ this.panel1.Dock = System.Windows.Forms.DockStyle.Top;
+ this.panel1.Location = new System.Drawing.Point(0, 0);
+ this.panel1.Name = "panel1";
+ this.panel1.Size = new System.Drawing.Size(1350, 46);
+ this.panel1.TabIndex = 6;
+ //
+ // panel4
+ //
+ this.panel4.Controls.Add(this.button5);
+ this.panel4.Controls.Add(this.button4);
+ this.panel4.Controls.Add(this.button11);
+ this.panel4.Controls.Add(this.BtnBind);
+ this.panel4.Controls.Add(this.label6);
+ this.panel4.Controls.Add(this.textBox1);
+ this.panel4.Controls.Add(this.button9);
+ this.panel4.Controls.Add(this.button8);
+ this.panel4.Controls.Add(this.button12);
+ this.panel4.Controls.Add(this.button7);
+ this.panel4.Controls.Add(this.button6);
+ this.panel4.Controls.Add(this.button10);
+ this.panel4.Controls.Add(this.button2);
+ this.panel4.Controls.Add(this.btnCreate);
+ this.panel4.Controls.Add(this.btnPrint);
+ this.panel4.Controls.Add(this.btnSave);
+ this.panel4.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.panel4.Location = new System.Drawing.Point(0, 4);
+ this.panel4.Name = "panel4";
+ this.panel4.Size = new System.Drawing.Size(1350, 42);
+ this.panel4.TabIndex = 9;
+ //
+ // button5
+ //
+ this.button5.Location = new System.Drawing.Point(1394, 15);
+ this.button5.Name = "button5";
+ this.button5.Size = new System.Drawing.Size(75, 23);
+ this.button5.TabIndex = 16;
+ this.button5.Text = "清空";
+ this.button5.UseVisualStyleBackColor = true;
+ this.button5.Visible = false;
+ this.button5.Click += new System.EventHandler(this.button5_Click);
+ //
+ // button4
+ //
+ this.button4.Location = new System.Drawing.Point(1313, 15);
+ this.button4.Name = "button4";
+ this.button4.Size = new System.Drawing.Size(75, 23);
+ this.button4.TabIndex = 15;
+ this.button4.Text = "默认";
+ this.button4.UseVisualStyleBackColor = true;
+ this.button4.Visible = false;
+ this.button4.Click += new System.EventHandler(this.button4_Click);
+ //
+ // button11
+ //
+ this.button11.Location = new System.Drawing.Point(981, 6);
+ this.button11.Name = "button11";
+ this.button11.Size = new System.Drawing.Size(75, 23);
+ this.button11.TabIndex = 12;
+ this.button11.Text = "文书加载";
+ this.button11.UseVisualStyleBackColor = true;
+ this.button11.Click += new System.EventHandler(this.button11_Click);
+ //
+ // BtnBind
+ //
+ this.BtnBind.Location = new System.Drawing.Point(809, 7);
+ this.BtnBind.Name = "BtnBind";
+ this.BtnBind.Size = new System.Drawing.Size(75, 23);
+ this.BtnBind.TabIndex = 11;
+ this.BtnBind.Text = "加载数据";
+ this.BtnBind.UseVisualStyleBackColor = true;
+ this.BtnBind.Click += new System.EventHandler(this.BtnBind_Click);
+ //
+ // label6
+ //
+ this.label6.AutoSize = true;
+ this.label6.Location = new System.Drawing.Point(20, 13);
+ this.label6.Name = "label6";
+ this.label6.Size = new System.Drawing.Size(53, 12);
+ this.label6.TabIndex = 9;
+ this.label6.Text = "患者ID:";
+ //
+ // textBox1
+ //
+ this.textBox1.Location = new System.Drawing.Point(81, 9);
+ this.textBox1.Name = "textBox1";
+ this.textBox1.Size = new System.Drawing.Size(59, 21);
+ this.textBox1.TabIndex = 10;
+ this.textBox1.Text = "786";
+ //
+ // button9
+ //
+ this.button9.Location = new System.Drawing.Point(321, 7);
+ this.button9.Name = "button9";
+ this.button9.Size = new System.Drawing.Size(107, 23);
+ this.button9.TabIndex = 6;
+ this.button9.Text = "麻醉记录单2背面";
+ this.button9.UseVisualStyleBackColor = true;
+ this.button9.Click += new System.EventHandler(this.button9_Click);
+ //
+ // button8
+ //
+ this.button8.Location = new System.Drawing.Point(609, 7);
+ this.button8.Name = "button8";
+ this.button8.Size = new System.Drawing.Size(102, 23);
+ this.button8.TabIndex = 6;
+ this.button8.Text = "器械清点单背面";
+ this.button8.UseVisualStyleBackColor = true;
+ this.button8.Click += new System.EventHandler(this.button8_Click);
+ //
+ // button12
+ //
+ this.button12.Location = new System.Drawing.Point(722, 7);
+ this.button12.Name = "button12";
+ this.button12.Size = new System.Drawing.Size(76, 23);
+ this.button12.TabIndex = 6;
+ this.button12.Text = "镇静记录单";
+ this.button12.UseVisualStyleBackColor = true;
+ this.button12.Click += new System.EventHandler(this.button12_Click);
+ //
+ // button7
+ //
+ this.button7.Location = new System.Drawing.Point(523, 7);
+ this.button7.Name = "button7";
+ this.button7.Size = new System.Drawing.Size(75, 23);
+ this.button7.TabIndex = 6;
+ this.button7.Text = "器械清点单";
+ this.button7.UseVisualStyleBackColor = true;
+ this.button7.Click += new System.EventHandler(this.button7_Click);
+ //
+ // button6
+ //
+ this.button6.Location = new System.Drawing.Point(439, 7);
+ this.button6.Name = "button6";
+ this.button6.Size = new System.Drawing.Size(73, 23);
+ this.button6.TabIndex = 6;
+ this.button6.Text = "恢复记录单";
+ this.button6.UseVisualStyleBackColor = true;
+ this.button6.Click += new System.EventHandler(this.button6_Click);
+ //
+ // button10
+ //
+ this.button10.Location = new System.Drawing.Point(230, 7);
+ this.button10.Name = "button10";
+ this.button10.Size = new System.Drawing.Size(80, 23);
+ this.button10.TabIndex = 6;
+ this.button10.Text = "麻醉记录单2";
+ this.button10.UseVisualStyleBackColor = true;
+ this.button10.Click += new System.EventHandler(this.button10_Click);
+ //
+ // button2
+ //
+ this.button2.Location = new System.Drawing.Point(146, 7);
+ this.button2.Name = "button2";
+ this.button2.Size = new System.Drawing.Size(73, 23);
+ this.button2.TabIndex = 6;
+ this.button2.Text = "麻醉记录单";
+ this.button2.UseVisualStyleBackColor = true;
+ this.button2.Click += new System.EventHandler(this.button2_Click);
+ //
+ // btnPrint
+ //
+ this.btnPrint.Location = new System.Drawing.Point(1067, 7);
+ this.btnPrint.Name = "btnPrint";
+ this.btnPrint.Size = new System.Drawing.Size(59, 23);
+ this.btnPrint.TabIndex = 5;
+ this.btnPrint.Text = "打印";
+ this.btnPrint.UseVisualStyleBackColor = true;
+ this.btnPrint.Click += new System.EventHandler(this.btnPrint_Click);
+ //
+ // label3
+ //
+ this.label3.AutoSize = true;
+ this.label3.Location = new System.Drawing.Point(347, 14);
+ this.label3.Name = "label3";
+ this.label3.Size = new System.Drawing.Size(65, 12);
+ this.label3.TabIndex = 7;
+ this.label3.Text = "项目名称:";
+ this.label3.Visible = false;
+ //
+ // txtProjectName
+ //
+ this.txtProjectName.Location = new System.Drawing.Point(418, 10);
+ this.txtProjectName.Name = "txtProjectName";
+ this.txtProjectName.Size = new System.Drawing.Size(225, 21);
+ this.txtProjectName.TabIndex = 8;
+ this.txtProjectName.Visible = false;
+ //
+ // label7
+ //
+ this.label7.AutoSize = true;
+ this.label7.Location = new System.Drawing.Point(28, 14);
+ this.label7.Name = "label7";
+ this.label7.Size = new System.Drawing.Size(65, 12);
+ this.label7.TabIndex = 10;
+ this.label7.Text = "医院名称:";
+ //
+ // txtHospitalName
+ //
+ this.txtHospitalName.Location = new System.Drawing.Point(99, 10);
+ this.txtHospitalName.Name = "txtHospitalName";
+ this.txtHospitalName.Size = new System.Drawing.Size(213, 21);
+ this.txtHospitalName.TabIndex = 11;
+ //
+ // myPanel1
+ //
+ this.myPanel1.AutoScroll = true;
+ this.myPanel1.Controls.Add(this.zgcAnaesRecord2);
+ this.myPanel1.Controls.Add(this.zgcAnaesRecord);
+ this.myPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.myPanel1.Location = new System.Drawing.Point(0, 46);
+ this.myPanel1.Name = "myPanel1";
+ this.myPanel1.Size = new System.Drawing.Size(1350, 683);
+ this.myPanel1.TabIndex = 10;
+ this.myPanel1.Scroll += new System.Windows.Forms.ScrollEventHandler(this.myPanel1_Scroll);
+ //
+ // zgcAnaesRecord2
+ //
+ this.zgcAnaesRecord2.Location = new System.Drawing.Point(266, -159);
+ this.zgcAnaesRecord2.Name = "zgcAnaesRecord2";
+ this.zgcAnaesRecord2.ScrollGrace = 0D;
+ this.zgcAnaesRecord2.ScrollMaxX = 0D;
+ this.zgcAnaesRecord2.ScrollMaxY = 0D;
+ this.zgcAnaesRecord2.ScrollMaxY2 = 0D;
+ this.zgcAnaesRecord2.ScrollMinX = 0D;
+ this.zgcAnaesRecord2.ScrollMinY = 0D;
+ this.zgcAnaesRecord2.ScrollMinY2 = 0D;
+ this.zgcAnaesRecord2.Size = new System.Drawing.Size(800, 1000);
+ this.zgcAnaesRecord2.TabIndex = 2;
+ this.zgcAnaesRecord2.Visible = false;
+ //
+ // zgcAnaesRecord
+ //
+ this.zgcAnaesRecord.Location = new System.Drawing.Point(3, 3);
+ this.zgcAnaesRecord.Name = "zgcAnaesRecord";
+ this.zgcAnaesRecord.ScrollGrace = 0D;
+ this.zgcAnaesRecord.ScrollMaxX = 0D;
+ this.zgcAnaesRecord.ScrollMaxY = 0D;
+ this.zgcAnaesRecord.ScrollMaxY2 = 0D;
+ this.zgcAnaesRecord.ScrollMinX = 0D;
+ this.zgcAnaesRecord.ScrollMinY = 0D;
+ this.zgcAnaesRecord.ScrollMinY2 = 0D;
+ this.zgcAnaesRecord.Size = new System.Drawing.Size(225, 304);
+ this.zgcAnaesRecord.TabIndex = 1;
+ this.zgcAnaesRecord.MouseDownEvent += new DrawGraph.ZedGraphControl.ZedMouseEventHandler(this.zgcAnaesRecord_MouseDownEvent);
+ this.zgcAnaesRecord.MouseUpEvent += new DrawGraph.ZedGraphControl.ZedMouseEventHandler(this.zgcAnaesRecord_MouseUpEvent);
+ this.zgcAnaesRecord.MouseMoveEvent += new DrawGraph.ZedGraphControl.ZedMouseEventHandler(this.zgcAnaesRecord_MouseMoveEvent);
+ this.zgcAnaesRecord.KeyUp += new System.Windows.Forms.KeyEventHandler(this.zgcAnaesRecord_KeyUp);
+ this.zgcAnaesRecord.MouseDoubleClick += new System.Windows.Forms.MouseEventHandler(this.zgcAnaesRecord_MouseDoubleClick);
+ //
+ // MainUp
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.AutoScroll = true;
+ this.ClientSize = new System.Drawing.Size(1350, 729);
+ this.Controls.Add(this.myPanel1);
+ this.Controls.Add(this.panel1);
+ this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
+ this.Name = "MainUp";
+ this.Text = "记录单制作工具";
+ this.WindowState = System.Windows.Forms.FormWindowState.Maximized;
+ this.Load += new System.EventHandler(this.MainUp_Load);
+ this.panel1.ResumeLayout(false);
+ this.panel1.PerformLayout();
+ this.panel4.ResumeLayout(false);
+ this.panel4.PerformLayout();
+ this.myPanel1.ResumeLayout(false);
+ this.ResumeLayout(false);
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ComboBox cmbManageList;
+ private System.Windows.Forms.Label label1;
+ private System.Windows.Forms.Label label2;
+ private System.Windows.Forms.TextBox txtManageName;
+ private System.Windows.Forms.Button btnCreate;
+ private System.Windows.Forms.Button btnSave;
+ private System.Windows.Forms.Panel panel1;
+ private DrawGraph.ZedGraphControl zgcAnaesRecord;
+ private System.Windows.Forms.Label label3;
+ private System.Windows.Forms.TextBox txtProjectName;
+ private System.Windows.Forms.Panel panel4;
+ private System.Windows.Forms.Button BtnBind;
+ private System.Windows.Forms.Label label6;
+ private System.Windows.Forms.TextBox textBox1;
+ private System.Windows.Forms.Panel myPanel1;
+ private System.Windows.Forms.Label label7;
+ private System.Windows.Forms.TextBox txtHospitalName;
+ private System.Windows.Forms.Button button4;
+ private System.Windows.Forms.Button button5;
+ private System.Windows.Forms.Button button2;
+ private System.Windows.Forms.Button button6;
+ private System.Windows.Forms.Button button7;
+ private System.Windows.Forms.Button button8;
+ private System.Windows.Forms.Button button9;
+ private System.Windows.Forms.Button button10;
+ private System.Windows.Forms.Button button11;
+ private System.Windows.Forms.Button button12;
+ private System.Windows.Forms.Button btnPrint;
+ private DrawGraph.ZedGraphControl zgcAnaesRecord2;
+ }
+}
\ No newline at end of file
diff --git a/DrawGraphManagement/MainUp.cs b/DrawGraphManagement/MainUp.cs
new file mode 100644
index 0000000..e36c814
--- /dev/null
+++ b/DrawGraphManagement/MainUp.cs
@@ -0,0 +1,866 @@
+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.Drawing.Printing;
+using System.IO;
+using System.IO.Packaging;
+using System.Linq;
+using System.Reflection;
+using System.Windows.Documents;
+using System.Windows.Forms;
+using System.Windows.Xps;
+using System.Windows.Xps.Packaging;
+
+namespace DrawGraphManagement
+{
+ public partial class MainUp : Form
+ {
+ TemplateManage templateManage = new TemplateManage();
+ TemplateManage templateManage2 = new TemplateManage();
+ object operationRecor = new DrawGraph.OperationRecord();
+
+ public MainUp()
+ {
+ InitializeComponent();
+ }
+
+ private void MainUp_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();
+
+ button10_Click(null, null);
+ BtnBind_Click(null, null);
+ }
+ ///
+ /// 加载管理器列表
+ ///
+ 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()
+ {
+ foreach (AreaManageBase area in templateManage.ManageList)
+ {
+ 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 drawArea()
+ {
+ templateManage.ZedControl = zgcAnaesRecord;
+ templateManage.DrawArea();
+ }
+
+ private void AllRefresh2()
+ {
+ foreach (AreaManageBase area in templateManage2.ManageList)
+ {
+ 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;
+ }
+ }
+ //画区域
+ drawArea2();
+ }
+
+ private void drawArea2()
+ {
+ templateManage2.ZedControl = zgcAnaesRecord2;
+ templateManage2.DrawArea();
+ }
+ private void btnSave_Click(object sender, EventArgs e)
+ {
+ bool reVal = templateManage.Save();
+ if (reVal)
+ {
+ new frmMessageBox().Show();
+ }
+ else
+ {
+ MessageBox.Show(templateManage.MsgStr);
+ }
+ }
+
+ private bool zgcAnaesRecord_MouseDownEvent(ZedGraphControl sender, MouseEventArgs e)
+ {
+ if (templateManage != null)
+ {
+ templateManage.zedControl_MouseDownEvent(sender, e);
+ }
+ return default(bool);
+ }
+
+ private bool zgcAnaesRecord_MouseMoveEvent(ZedGraphControl sender, MouseEventArgs e)
+ {
+ if (templateManage != null)
+ {
+ templateManage.zedControl_MouseMoveEvent(sender, e);
+ }
+ return default(bool);
+ }
+
+ private bool zgcAnaesRecord_MouseUpEvent(ZedGraphControl sender, MouseEventArgs e)
+ {
+ if (templateManage != null)
+ {
+ templateManage.zedControl_MouseUpEvent(sender, e);
+ }
+ return default(bool);
+ }
+
+ private void zgcAnaesRecord_MouseDoubleClick(object sender, MouseEventArgs e)
+ {
+ if (templateManage != null)
+ {
+ ZedGraphControl send = sender as ZedGraphControl;
+ templateManage.zedControl_MouseDoubleClick(send, e);
+ }
+ }
+
+ private void zgcAnaesRecord_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();
+
+ templateManage2.OpeRecord = operationRecor;
+
+ //指定对象的所有值属性的绑定
+ templateManage2.BindOperationRecordValueAll(templateManage2.OpeRecord);
+ //非值对象的数据绑定
+ templateManage2.Bind();
+ #endregion
+
+ foreach (AreaManageBase area in templateManage.ManageList)
+ {
+ area.setPrint(true);
+ }
+ foreach (AreaManageBase area in templateManage2.ManageList)
+ {
+ area.setPrint(true);
+ }
+
+ zgcAnaesRecord.Refresh();
+ zgcAnaesRecord2.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 button4_Click(object sender, EventArgs e)
+ {
+ templateManage.BindDefaultValue();
+ }
+
+ private void button5_Click(object sender, EventArgs e)
+ {
+ templateManage.ClearEdit();
+ }
+
+ 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 = zgcAnaesRecord;
+ templateManage.OpeRecord = operationRecor;
+ templateManage.Id = 1;
+ bool reVal = templateManage.Load();
+ if (reVal)
+ {
+ AllRefresh();
+ }
+ else
+ {
+ MessageBox.Show(templateManage.MsgStr);
+ }
+ AutoSizeF();
+
+ }
+
+ }
+ 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 = zgcAnaesRecord;
+ templateManage.OpeRecord = operationRecor;
+ templateManage.Id = 10;
+ bool reVal = templateManage.Load();
+ if (reVal)
+ {
+ AllRefresh();
+ }
+ else
+ {
+ MessageBox.Show(templateManage.MsgStr);
+ }
+ AutoSizeF();
+
+ }
+
+ }
+ 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 = zgcAnaesRecord;
+ templateManage.OpeRecord = operationRecor;
+ templateManage.Id = 20;
+ bool reVal = templateManage.Load();
+ if (reVal)
+ {
+ AllRefresh();
+ }
+ else
+ {
+ MessageBox.Show(templateManage.MsgStr);
+ }
+ AutoSizeF();
+
+ }
+ }
+ 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 = zgcAnaesRecord;
+ templateManage.OpeRecord = operationRecor;
+ templateManage.Id = 50;
+ bool reVal = templateManage.Load();
+ if (reVal)
+ {
+ AllRefresh();
+ }
+ else
+ {
+ MessageBox.Show(templateManage.MsgStr);
+ }
+ AutoSizeF();
+
+ }
+
+ }
+ 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 = zgcAnaesRecord;
+ templateManage.OpeRecord = operationRecor;
+ templateManage.Id = 30;
+ bool reVal = templateManage.Load();
+ if (reVal)
+ {
+ AllRefresh();
+ }
+ else
+ {
+ MessageBox.Show(templateManage.MsgStr);
+ }
+ AutoSizeF();
+
+ }
+
+ }
+ 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 = zgcAnaesRecord;
+ templateManage.OpeRecord = operationRecor;
+ templateManage.Id = 40;
+ bool reVal = templateManage.Load();
+ if (reVal)
+ {
+ AllRefresh();
+ }
+ else
+ {
+ MessageBox.Show(templateManage.MsgStr);
+ }
+ AutoSizeF();
+
+ }
+
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message);
+ }
+
+ try
+ {
+ string jsonStr = DBHelper.ExecuteScalar("SELECT [JsonDate] FROM [dbo].[OperationRecordTemplate] where id=50").ToString();
+ if (jsonStr != null && jsonStr != "")
+ {
+ templateManage2 = JsonConvert.DeserializeObject(jsonStr);
+ templateManage2.ZedControl = zgcAnaesRecord2;
+ templateManage2.OpeRecord = operationRecor;
+ templateManage2.Id = 50;
+ bool reVal = templateManage2.Load();
+ if (reVal)
+ {
+ AllRefresh2();
+ }
+ else
+ {
+ MessageBox.Show(templateManage2.MsgStr);
+ }
+ AutoSizeF();
+
+ }
+
+ }
+ 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 = zgcAnaesRecord;
+ templateManage.OpeRecord = operationRecor;
+ templateManage.Id = 60;
+ bool reVal = templateManage.Load();
+ if (reVal)
+ {
+ AllRefresh();
+ }
+ else
+ {
+ MessageBox.Show(templateManage.MsgStr);
+ }
+ AutoSizeF();
+
+ }
+ }
+ catch (Exception ex)
+ {
+ MessageBox.Show(ex.Message);
+ }
+
+ }
+
+ private void btnPrint_Click(object sender, EventArgs e)
+ {
+ if (textBox1.Text == "") return;
+ try
+ {
+ mPanes = new List();
+ UpPanes = new List();
+
+ PrintDocPage(null, null);
+
+ System.Drawing.Printing.PrintDocument pDoc = new System.Drawing.Printing.PrintDocument();
+ pDoc.DefaultPageSettings.Landscape = false;
+ pDoc.OriginAtMargins = true;
+ pDoc.DefaultPageSettings.PrinterResolution.Kind = PrinterResolutionKind.High;
+ pDoc.DefaultPageSettings.Margins = new Margins(33, 0, 35, 0);
+ pDoc.PrintPage -= new PrintPageEventHandler(pDoc_PrintPage);
+ pDoc.PrintPage += new PrintPageEventHandler(pDoc_PrintPage);
+ pDoc.PrinterSettings.PrintFileName =
+ Application.StartupPath + "\\backup.xps";
+ pDoc.PrinterSettings.PrintToFile = true;
+ pDoc.PrinterSettings.PrinterName = "XPS";
+ pDoc.DefaultPageSettings.PrinterSettings.PrinterName = "Microsoft XPS Document Writer";
+ pDoc.Print();
+
+ FixedDocument2Pdf();
+ }
+ catch (Exception exp)
+ {
+ PublicMethod.WriteLog(exp, "");
+ }
+ }
+ public static void FixedDocument2Pdf( )
+ {
+ //// Convert FixedDocument to XPS file in memory
+ //var ms = new MemoryStream();
+ //var package = Package.Open(ms, FileMode.Create);
+ //var doc = new XpsDocument(package);
+ //var writer = XpsDocument.CreateXpsDocumentWriter(doc);
+ //writer.Write(fd.DocumentPaginator);
+ //doc.Close();
+ //package.Close();
+
+ //// Get XPS file bytes
+ //var bytes = ms.ToArray();
+ //ms.Dispose();
+
+ byte[] bytes = File.ReadAllBytes( Application.StartupPath + "\\backup.xps");
+
+ // Print to PDF
+ var outputFilePath = @"D:\test.pdf";
+ PdfFilePrinter.PrintXpsToPdf(bytes, outputFilePath, "Document Title");
+ }
+
+ int m_startPrintPage;// 打印的起始页码
+ int m_endPrintPage;//打印的终止页码
+ //int m_PageIndex;// 当前打印页码
+ int count = 0;
+ private void pDoc_PrintPage(object sender, PrintPageEventArgs e)
+ {
+ System.Drawing.Printing.PrintDocument pDoc = sender as System.Drawing.Printing.PrintDocument;
+ m_startPrintPage = pDoc.PrinterSettings.FromPage;
+ m_endPrintPage = pDoc.PrinterSettings.ToPage;
+
+ int printCount = mPanes.Count;
+ if (mPanes.Count > 0 && count < printCount)
+ {
+ mPanes[count].Draw(e.Graphics);
+ count++;
+ if (count < printCount)
+ {
+ e.HasMorePages = true;
+ }
+ }
+ else
+ {
+ e.HasMorePages = false;
+ }
+ }
+
+ //public static void ImageConvertToPdfAnes(List Images, string SvaePath = @"D:\Temp.pdf")
+ //{
+ // try
+ // {
+ // System.Drawing.Image pic = Images[0];//strFilePath是该图片的绝对路径
+ // int intWidth = pic.Width;//长度像素值
+ // int intHeight = pic.Height;//高度像素值
+ // //pic.Dispose();
+ // iTextSharp.text.Rectangle pagesize = new iTextSharp.text.Rectangle(intWidth, intHeight);
+ // Document pdfdoc = new Document(pagesize);//建立Document对象的实例,并设置Document的大小与边距。
+
+ // PdfWriter writer = PdfWriter.GetInstance(pdfdoc, new FileStream(SvaePath, FileMode.Create)); //建立一个PdWf riter对象Writer与document对象关联,通过Writer可以将文档写入到磁盘中。
+ // pdfdoc.Open(); //打开文档。
+ // PdfContentByte cb = writer.DirectContent;
+ // foreach (System.Drawing.Image image in Images)
+ // {
+ // image.Save(@"D:\temp.Jpeg", ImageFormat.Jpeg);
+ // iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(@"D:\temp.Jpeg");
+ // img.SetAbsolutePosition(0, 0);
+ // cb.AddImage(img); //向文档中添加图像数据。
+ // pdfdoc.NewPage();
+ // }
+ // pdfdoc.Close(); //关闭文档,将缓冲区的内容写入磁盘以保存文件。
+ // }
+ // catch (Exception ex)
+ // {
+ // }
+ //}
+ //public void ImageConvertToPdfAnes2(string SvaePath = @"D:\Temp.pdf")
+ //{
+ // try
+ // {
+ // int intWidth = zgcAnaesRecord.Width;//长度像素值
+ // int intHeight = zgcAnaesRecord.Height;//高度像素值
+ // //pic.Dispose();
+ // iTextSharp.text.Rectangle pagesize = new iTextSharp.text.Rectangle(intWidth, intHeight);
+ // Document pdfdoc = new Document(pagesize);//建立Document对象的实例,并设置Document的大小与边距。
+
+ // PdfWriter writer = PdfWriter.GetInstance(pdfdoc, new FileStream(SvaePath, FileMode.Create)); //建立一个PdWf riter对象Writer与document对象关联,通过Writer可以将文档写入到磁盘中。
+ // pdfdoc.Open(); //打开文档。
+ // PdfContentByte cb = writer.DirectContent;
+ // foreach (MasterPane image in mPanes)
+ // {
+ // // 创建一个位图对象
+ // Bitmap bitmap = new Bitmap(intWidth, intHeight);
+ // // 创建一个画布对象
+ // Graphics g = Graphics.FromImage(bitmap);
+ // g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
+ // g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
+ // g.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
+ // // 清除画布表面,填充指定的颜色
+ // //g.Clear(Color.White);
+ // image.Draw(g);
+ // // 释放资源
+ // g.Dispose();
+ // bitmap.Save(@"D:\temp.Jpeg", ImageFormat.Png);
+ // iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(@"D:\temp.Jpeg");
+ // img.SetAbsolutePosition(0, 0);
+ // cb.AddImage(img); //向文档中添加图像数据。
+ // pdfdoc.NewPage();
+ // }
+ // pdfdoc.Close(); //关闭文档,将缓冲区的内容写入磁盘以保存文件。
+ // }
+ // catch (Exception ex)
+ // {
+ // }
+ //}
+ public List mPanes = new List();
+ public List UpPanes = new List();
+ private void PrintDocPage(object sender, PrintPageEventArgs e)
+ {
+ OperationRecord _record = operationRecor as OperationRecord;
+ if (_record.currentPage == 1)
+ {
+ PrintDocPane(e, zgcAnaesRecord, templateManage, true);
+ PrintDocPane(e, zgcAnaesRecord2, templateManage2, false);
+ }
+ else
+ {
+ for (int i = 1; i <= _record.pageCount; i++)
+ {
+ PrintDocPane(e, zgcAnaesRecord, templateManage, true);
+ if (i == 1)
+ {
+ PrintDocPane(e, zgcAnaesRecord2, templateManage2, false);
+ }
+ btnNextPage_Click(_record.PatientId.Value);
+ if (i != 1)
+ {
+ MasterPane mPane = new MasterPane();
+ mPane.Border.IsVisible = false;
+ mPanes.Add(mPane);
+ }
+ }
+ }
+
+ }
+
+ public void SetNextPageTime()
+ {
+ OperationRecord _record = operationRecor as OperationRecord;
+ //当下一页的开始时间,小于当前最大时间
+ DateTime curTimeTemp = OperationRecord.getOpeMaxTime(_record);
+ if (_record.lastPageBegin > curTimeTemp) return;
+ //先设置新页的开始时间
+ _record.PageBegin = _record.lastPageBegin;
+ _record.lastPageBegin = _record.PageBegin.AddMinutes(240);
+ _record.pageCount++;
+ if (_record.pageCount > _record.currentPage) _record.pageCount = _record.currentPage;
+
+ }
+
+ private void btnNextPage_Click(int PatientId)
+ {
+ OperationRecord _record = operationRecor as OperationRecord;
+ if (PatientId == 0) return;
+ if (_record.pageCount == _record.currentPage) return;
+ SetNextPageTime();
+
+ try
+ {
+ if (PatientId != 0)
+ {
+ templateManage.OpeRecord = BOperationRecord.getRecord(_record, PatientId, 1);
+ templateManage2.OpeRecord = templateManage.OpeRecord;
+ templateManage.BindOperationRecordValueAll(templateManage.OpeRecord);
+ templateManage2.BindOperationRecordValueAll(templateManage2.OpeRecord);
+
+ templateManage.Bind();
+ templateManage2.Bind();
+
+ zgcAnaesRecord.Refresh();
+ zgcAnaesRecord2.Refresh();
+ }
+ }
+ catch (Exception ex)
+ {
+ PublicMethod.WriteLog(ex);
+ }
+ }
+
+ private void PrintDocPane(PrintPageEventArgs e, ZedGraphControl zedGraph, TemplateManage template, bool InitChart)
+ {
+ OperationRecord _record = operationRecor as OperationRecord;
+ foreach (AreaManageBase area in template.ManageList)
+ {
+ area.setPrint(false);
+ area.BindTempData();
+ }
+ int zedGraphMainWidth = zedGraph.Size.Width;
+ int zedGraphMainHeight = zedGraph.Size.Height;
+
+ int width = 765;
+ int height = Convert.ToInt32(width * 1.414) + 2;
+ zedGraph.Size = new Size(width, height);
+ zedGraph.Width = width;
+ zedGraph.Height = height;
+
+ if (InitChart == true)
+ foreach (PhysioDataConfig pp in _record.PhysioConfigList)
+ {
+ if (pp.ShowText == true)
+ {
+ pp.IsValid = false;
+ ///重新设置曲线属性
+ pp.reSetCurveSpo2();
+ }
+ }
+ TipBox.Hidden();
+
+ MasterPane mPane = zedGraph.MasterPane; //this.MasterPane;
+ mPane.Border.IsVisible = false;
+ //当前窗体中的矩形区域大小
+ RectangleF saveRect = mPane.Rect;
+ if (InitChart == true)
+ template.initChart();
+ mPanes.Add(mPane.Clone());
+ if (e != null)
+ mPane.Draw(e.Graphics); //在打印文档中画出MasterPane内容
+ using (Graphics g = zedGraph.CreateGraphics())
+ {
+ mPane.ReSize(g, saveRect);
+ }
+ UpPanes.Add(mPane.Clone());
+
+
+ zedGraph.Size = new Size(zedGraphMainWidth, zedGraphMainHeight);
+ if (InitChart == true)
+ template.initChart();
+
+ if (InitChart == true)
+ foreach (PhysioDataConfig pp in _record.PhysioConfigList)
+ {
+ if (pp.ShowText == true)
+ {
+ pp.IsValid = true;
+ ///重新设置曲线属性
+ pp.reSetCurveSpo2();
+ }
+ }
+ }
+ }
+}
diff --git a/DrawGraphManagement/MainUp.resx b/DrawGraphManagement/MainUp.resx
new file mode 100644
index 0000000..9274a8f
--- /dev/null
+++ b/DrawGraphManagement/MainUp.resx
@@ -0,0 +1,1253 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+
+
+ AAABAAEAgIAAAAEAIAAoCAEAFgAAACgAAACAAAAAAAEAAAEAIAAAAAAAAAABACUWAAAlFgAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAD///8A////AP///wD///8B////D////0v///+J////vf///9/////1/////v//
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+////9f///9////+9////if//
+ /0v///8P////Af///wD///8A////AAAAAAAAAAAAAAAAAAAAAAD///8A////AP///wD///8A////Ff//
+ /0n///+J////tP///9H////l////8v////v////+////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7////7////8v///+X////R////tP///4n///9J////Ff///wD///8A////AP//
+ /wAAAAAAAAAAAP///wD///8A////A////yf///9n////sf///+7/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////7v///7L///9o////KP///wP///8A////AAAAAAD///8A////AP///wP///8i////hv//
+ /9n//////////v//////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////+/////////9r///+H////Iv//
+ /wP///8A////AP///wD///8A////Jf///4D////b/////f//////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////f///9v///+A////Jf///wD///8A////AP///xX///9n////1v//
+ //z/////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////////P//
+ /9b///9n////Ff///wD///8B////S////7T/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////7T///9M////Af///w////+N////8///
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////9P///47///8Q////S////7X/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////tv///0z///+J////0f//
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////R////iv///7r////k////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////+X///+9////2f//
+ //D/////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////8////+D////t////+P//////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////7////9P//
+ //r////9////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////7////9////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v3//fz7//v5+P/79/X/+vf1//v49//8+/n//v38/////v//////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+//37+v/59PH/9e3o//Ln
+ 4P/y59//8+rk//fx7P/7+Pb//v39////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////v///v3/+/f0//Tq4//u3NH/6tPE/+nSwv/s2cz/8eTa//jy7f/9+/r///7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+//79/P/58uz/8d3P/+jI
+ sv/lu5//5bqd/+fDqv/r0b//9Ojf//v49v/+/f3/////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/f3/+/r5//bq4v/u0Lv/5baV/+Opgf/jqH//5bCN/+jApf/w283/+PHt//z6
+ +f/+/v7/////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////7+//38+//59fP/8uLW/+vE
+ qf/kqH//451t/+Odbf/jo3j/5rGO/+zNuv/z5t//+fTy//79/f//////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/f3//Pn4//bv6//v2Mr/6LqZ/+Sebv/jlWD/45Zh/+Oaaf/kpXv/58Cn/+3c
+ 0f/17+v//fz7////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////39/f/7+Pb/8unk/+vR
+ wP/ms5D/45lm/+OTXP/jlF3/45di/+Ofcf/jt5j/6NLD//Lp4//9+/r/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////f39//r29P/w5N3/6Mu3/+Wviv/jl2P/45Jb/+OTXP/jlmD/45xr/+Gv
+ jf/lybb/8eTc//z6+f//////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////9/Pz/+vTy/+7f
+ 1v/lxa//46uF/+OWYv/jklv/45Nc/+OVXv/immj/4KqE/+XDq//w4NT//Pn3////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////38+//58/D/7NvQ/+PAqP/iqID/45Zh/+OSW//jk1z/45Re/+OY
+ Zv/hpXz/5b2h//Dczf/79vT///7////+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v///fv7//ny
+ 7v/q18r/4ruh/+GlfP/jlmH/45Jb/+OTXP/jlF7/45hk/+Ojdv/nuJj/79bE//fw7P/8+/v//v7+////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////9+/v/+PHt/+rUxf/huJv/4aN5/+OVYP/jk1v/45Nc/+OT
+ Xf/jl2L/5KBw/+eyjf/szbf/8+ff//n29P/+/fz/////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////////////37
+ +v/48Or/6tG//+G0lP/hoXX/45Vg/+OTW//jk1z/45Nd/+OVYP/km2n/5qqB/+nDqP/t3dH/9vHs//38
+ +///////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7//fv5//jv6P/qzrn/4rGO/+Gfcv/jlV//45Nb/+OT
+ XP/jk1z/45Re/+SXYv/ko3X/5bma/+jSwv/z6+T//Pv5////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v/9+vj/+e7m/+3Ls//lrof/455u/+OVX//jk1v/45Nc/+OTXP/jk13/45Rf/+Odbv/isY7/5cm1//Hl
+ 3f/8+ff/////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v79//z49f/46uD/7sar/+eqgP/knGr/45Re/+OT
+ XP/jk1z/45Nc/+KSXP/jk13/4ppp/+Krhf/lwan/8eHV//z49f///v7/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///9/Pv/+fPw//Tj1//sv6D/5qR2/+SZZf/jlF3/45Nc/+OTXP/iklv/4ZFb/+KSXP/imGb/46Z9/+a7
+ nv/x3M7/+/by//79/f//////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////7///7+///+/v///v7///7+///+
+ /v///v7///7+///+/v//////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////z6+f/27ur/8NvO/+m4lf/lnm3/45Vg/+OT
+ XP/jk1z/4pJb/+CRWv/gkFn/4ZFa/+OXY//konX/57WS//DWxP/58uz//Pv6///+/v//////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+/v7//v39//38+v/8+ff//Pj2//z39f/89/T//Pf1//z49v/8+ff//Pv5//39/P/+/v7/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7/+vf2//Pp4//s1MT/57GM/+SaZ//jlF3/4pNc/+KSW//hkVv/35Ba/96PWf/gkFn/4pVf/+Sd
+ bP/mrIP/7My0//Po4P/59vT//v39////////////////////////////////////////////////////
+ //////////////////////////////////////////////38/P/7+Pb/9/Ds//Pn4P/y49n/8uHW//Hg
+ 1f/x4db/8ePZ//Ln3//17un/+ff1//z7+//+/v7/////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////+/v/59fP/8OTc/+jNuv/krIb/45hl/+OT
+ XP/iklv/4ZFb/+CQWv/ej1n/3Y5Y/96PWf/hklz/45hl/+Wkd//owKT/7dzQ//Xv6//9/Pv/////////
+ //////////////////////////////////////////////////////////////////////////////7+
+ /v/9/Pr/+vXy//br5f/v3tL/6dC+/+jJtP/oxq//58Wt/+fGr//nybT/6M+8/+3azP/06eD/+fPu//z6
+ +P/+/v3///7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////7+//n08f/u39b/5May/+Opgv/jmGT/45Nc/+KSW//hklv/35Fa/96PWv/cj1n/3o9a/+GR
+ XP/ilWH/5J5v/+S2lv/p0cH/8+ni//37+f//////////////////////////////////////////////
+ ///////////////////////////////////+/v3//Pv5//n07//z597/7tfI/+nHsP/luZv/5LKQ/+Sw
+ jP/kr4v/47CM/+OykP/kt5f/6cGm/+/Svf/z4dT/9+/p//v49//+/f3/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////+/v///v7/+PLu/+3b0P/iwar/4aZ9/+OX
+ Y//jk1z/4pNc/+CTXv/flF//3pNf/92TX//fk17/4ZNd/+KVX//im2r/4q6J/+bIs//x49n//Pn4////
+ ///////////////////////////////////////////////////////////////////////////+//79
+ +//59fL/8+jh/+3Wxv/owqj/5LGN/+Olev/ioHL/4p5v/+Kebv/in2//4qBx/+Ojdv/lq4L/6rqX/+7N
+ tv/y4dX/9/Ht//z6+v///v7/////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////7+//79/v/38Oz/69fK/+C8ov/hpHn/45Zi/+OTXf/ilWD/4Jpq/96fcv/fonf/4KJ3/+Ke
+ b//jmWb/45dj/+OaaP/hqID/5cCm//He0v/8+fb/////////////////////////////////////////
+ /////////////////////////////////////////fz6//Xu6P/r2cv/58Oq/+Svi//ioXT/4plo/+KX
+ Y//ilmH/4pZh/+KWYf/il2P/45hm/+SdbP/mp3r/6bmX/+zOuf/y5Nn/+vf0//7+/f//////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v/+/fz//fr5//z59v/99/T//ffz//338//99/P//ffz//338//99/P//ffz//33
+ 8//99/P//ffz//338//99/P//ffz//338//99/P//ffz//338//99/P//ff0//349f/9+vj//v38///+
+ /v///////////////////////////////////////////////////v7//v7+//bv6v/q1MT/4Lea/+Ch
+ df/jlmL/45Re/+KYZf/go3r/4K+N/+K2l//luJn/5q2G/+Whc//kmmj/45pn/+Kkef/mu5z/8drL//v2
+ 8////////////////////v7//fz6//z59//8+PX//ffz//338//99/P//ffz//338//99/P//ffz//33
+ 8v/68uv/8eHV/+bJs//js5L/4qF2/+KYZf/jlWD/45Re/+OUXf/jlF3/45Rd/+OUXv/jlV//45Zi/+Sb
+ af/lqH7/57qb/+3TwP/37uj//Pn4//7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/v7//fz8//r28//16+T/9OTZ//Xf
+ 0P/23Mv/9tzL//bcy//23Mv/9tzL//bcy//23Mv/9tzL//bcy//23Mv/9tzL//bcy//23Mv/9tzL//bc
+ y//23Mv/9tzM//bczP/13s7/9eHU//Xn3v/69PD//fv7//7+/v//////////////////////////////
+ ///////////////+/v/+/v3/9+7n/+rQvv/hspL/4Z9y/+KWYf/jlWD/45tr/+Kui//kwaj/6cu3/+zO
+ uP/pu5z/5ad+/+Odbf/jmWb/46Jz/+e3lP/v1cL/+PHs//z9/P/+/v3///79//37+v/48ev/9OXb//Tg
+ 0v/13c3/9tzL//bcy//23Mv/9tzL//bcy//23Mv/9tzL//TZxf/tzbX/5rmb/+Opgf/im2r/4pRf/+OT
+ Xf/jk1z/45Nc/+OTXP/jk1z/45Nc/+OTXf/jlF3/45Zh/+Oebv/kq4T/6cKn//Hg1f/38e3//Pv6////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////7+/f/8+vj/9+7p/+3bzv/rzbn/7MSo/+6/n//uv5//7r+f/+6/n//uv5//7r+f/+6/
+ n//uv5//7r+f/+6/n//uv5//7r+f/+6/n//uv5//7r+f/+6/n//uv5//7r+f/+3CpP/sx67/7dLA//Xp
+ 4f/79vT//fz8//////////////////////////////////////////////7+//7+/v/37eX/7M25/+Ku
+ i//hnW7/4pZh/+OXY//koHL/5rqd/+rSwv/v39T/8uDU/+vIsP/kroj/4p9x/+OZZf/kn27/6LKM/+3O
+ uP/06uL/+vj3//78/P/9/Pv/+vbz//Lj2P/rz7v/68Ws/+3Aov/uv5//7r+f/+6/n//uv5//7r+f/+6/
+ n//uv57/7b6c/+q3k//mrIX/5KFz/+OXY//jk1z/45Nc/+OTXP/jk1z/45Nc/+OTXP/jk1z/45Nc/+OT
+ XP/jlF3/4pdj/+OfcP/ls5D/6tLB//Ln4f/79/b/////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v79//z59v/06uP/59DB/+W+
+ ov/msIr/6Kl8/+ipff/oqX3/6Kl9/+ipff/oqX3/6Kl9/+ipff/oqX3/6Kl9/+ipff/oqX3/6Kl9/+ip
+ ff/oqX3/6Kl9/+ipff/oqX3/56uB/+axjP/ovaH/7tnL//Xt5//7+Pb////+////////////////////
+ /////////////////////v7///7+//js4//uy7T/5KuE/+Kba//jl2L/5Jto/+eoff/rx67/8OHX//Xt
+ 5//36+T/7NC9/+Oykf/ioXX/45hk/+SaZ//mqn//6cSp/+7f0//28e7//Pr5//r39f/27Ob/7tXE/+e9
+ oP/msYz/56qA/+ipfP/oqX3/6Kl9/+ipff/oqX3/6Kl9/+ipfP/nqHv/5qZ4/+Whcv/km2j/45Vf/+OT
+ W//jk1z/45Nc/+OTXP/jk1z/45Nc/+OTXP/jk1z/45Nc/+OTXP/jlF7/4pln/+Oqg//lx7L/7uDW//n1
+ 8v//////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////+/v3/+/j2//Po4f/lzLv/4raY/+Ome//lnWr/5Z1r/+Wda//lnWv/5Z1r/+Wd
+ a//lnWv/5Z1r/+Wda//lnWv/5Z1r/+Wda//lnWv/5Z1r/+Wda//lnWv/5Z1q/+Wcaf/knWv/5KJ0/+Wu
+ iP/oyrX/7+HY//jz7////v7////////////////////////////////////////+/v/+/fz/+Org/+/J
+ r//mqX//45po/+SYZP/mn27/6a+H//DRvf/27Ob/+vXy//nw6//s1cX/4ria/+Gkev/jl2P/45Zg/+Si
+ dP/muZr/6dLD//Pq5P/69vT/9vDs//Dh1v/qyLD/5rCL/+Wlef/ln27/5Z1q/+Wda//lnWv/5Z1r/+Wd
+ a//lnWv/5Z1r/+Wdav/lnWr/5Jto/+OYY//jlF7/45Nc/+OTXP/jk1z/45Nc/+OTXP/jk1z/45Nc/+OT
+ XP/jk1z/45Nc/+OTXP/imGT/4ad+/+LBqv/s3NH/+PPw////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////79/f/7+Pb/8+jh/+XL
+ uf/itpj/5KZ8/+WebP/lnmz/5Z5s/+WebP/lnmz/5Z5s/+WebP/lnmz/5Z5s/+WebP/lnmz/5Z5s/+We
+ bP/lnmz/5Z5s/+WdbP/lnGn/5Jhj/+OXYv/jm2j/46Z7/+S/pf/r2Mv/9u7p//7+/f//////////////
+ //////////////////////7//f38//r59//15dn/7saq/+eofP/kmmf/5Jll/+ehcv/qs43/8tjE//ny
+ 7f/8+ff/+fPv/+3bzf/jvqT/4ah//+OYY//jlF3/451t/+Owjv/myLT/8eXc//jz7v/z6OD/6tTE/+a7
+ nf/lp3z/5aBx/+WebP/lnmz/5Z5s/+WebP/lnmz/5Z5s/+WebP/lnmz/5Z5s/+WebP/lnWr/5Jlk/+OV
+ Xv/jk1z/45Nc/+OTXP/jk1z/45Nc/+OTXP/jk1z/45Nc/+OTXP/jk1z/45Nc/+OXY//hp37/4cGr/+vc
+ 0f/48/D/////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79//v49v/z6eP/59C//+W9ov/nsIr/6Kl8/+ipff/oqX3/6Kl9/+ip
+ ff/oqX3/6Kl9/+ipff/oqX3/6Kl9/+ipff/oqX3/6Kl9/+ipff/oqHv/56V4/+agcf/kmGT/45Vf/+OX
+ Y//ioXP/4raY/+nRwP/16uP//v79//////////////////////////////////7+/v/8+/r/9/Pw//Hf
+ 0v/swaT/56Z5/+WaZf/kmWX/5qN0/+u2kf/028r/+/by//38+//69vL/7uDW/+XGr//irYf/45pm/+OT
+ XP/jmmj/4qqD/+TAp//w39T/9+/q/+/g1f/lyLL/4q+L/+Sgcf/ln23/56Jy/+ileP/oqHz/6Kl9/+ip
+ ff/oqX3/6Kl9/+ipff/oqHz/56Z5/+ajc//knGn/45Zg/+OTXP/jk1z/45Nc/+OTXP/jk1z/45Nc/+OT
+ XP/jk1z/45Nc/+OTXP/jlF3/45lm/+Kpgf/jxbD/7d7V//j08f//////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v7//Pr5//fw
+ 6//u39P/7dO//+/KsP/wxaf/8Mao//DGqP/wxqj/8Mao//DGqP/wxqj/8Mao//DGqP/wxqj/8Mao//DF
+ qP/wxaj/8MWn/+2/oP/otpP/5KqC/+Obav/jlF//45Zg/+Kebv/hsI7/6Mu3//To3//+/v3/////////
+ /////////////////////////v39//v49//07ej/7dfH/+m7mv/moXL/5Jhi/+SZZf/lpXf/6rmV//Xe
+ zf/8+PT//v38//v49v/x6OH/6dC+/+W2lP/kn2//45Zg/+OZZv/jpnv/5rqb//Lczf/47eb/7trN/+O+
+ pP/gp3//45xq/+afbf/oqHr/7LWQ/+/Bov/wxaf/8Mao//DGqP/wxqj/8MWn/+7CpP/quZf/5auD/+Of
+ cf/jlmH/45Jb/+OTXP/jk1z/45Nc/+OTXP/jk1z/45Nc/+OTXP/jk1z/45Nc/+OWYf/knm3/5K+L/+bM
+ uv/v49v/+fb0////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////7+///+/fz/+/j2//fw6v/26+H/9+fa//jl1//45df/+OXX//jl
+ 1//45df/+OXX//jl1//45df/+OXX//jl1//45df/+OXX//jk1v/449X/8tnI/+rKs//kt5f/46Fz/+OX
+ Yv/jlmH/45xr/+Kshv/pxq7/9OXa//78+//////////////////////////////////9/f3/+/b1//Hn
+ 4P/pz7z/5rOQ/+Sbaf/jlV//45lm/+Smev/ou5n/9N/Q//z49f/+/v3//Pr5//Xv6//u283/6MCj/+Sm
+ e//jmWb/45ll/+Wjdv/ptpL/89fE//fo3v/u1ML/47eY/+Gidv/jmmf/5qBv/+mtg//wxqn/9t3M//jk
+ 1v/45df/+OXX//jl1//35Nb/9eDQ/+3Puf/kt5n/4qZ9/+KZZ//jlF3/45Nc/+OTXP/jk1z/45Nc/+OT
+ XP/jk1z/45Nc/+OTXP/jlV//5Jtq/+WmfP/mupz/6tbI//Lp5P/7+Pb/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////////////7+
+ /v/9/Pv//Pj2//v28v/89e///PTu//z07v/89O7//PTu//z07v/89O7//PTu//z07v/89O7//PTu//z0
+ 7v/89O7//PPu//zz7P/26N7/7dfI/+fCqf/lqX//5Jtp/+SXY//jm2n/46h//+nCpf/y4NL/+/j1//79
+ /P////7///////////////////////38/P/69fL/7uHY/+bIsv/krYj/45hk/+OTXf/jmWj/46d+/+a9
+ n//z4NP//fj2///+/v/9/Pv/+fXz//Lk2v/qyK//5KyF/+Kca//jmWX/5aJy/+mxiv/vzbf/8tvN/+zJ
+ s//ksI3/4p9w/+OZZv/loXL/6LCL//HPuP/66+H/+/Ps//z07v/89O7//PTu//zz7v/57+f/8t/S/+jI
+ sv/ks5P/4qJ2/+KYZf/jlV//45Nd/+OTXP/jk1z/45Nc/+OTXP/jlF3/5JZg/+WbaP/kpXn/5bOQ/+nI
+ sf/w4tj/9/Ht//z7+v//////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////+/v/+/v3//v38//79/P/+/Pv//vz7//78
+ +//+/Pv//vz7//78+//+/Pv//vz7//78+//+/Pv//vz7//78+//+/Pv//vz6//jz7f/x49j/6s66/+ey
+ jP/loHH/5Jlm/+OaZv/lpXf/6ryc//DZyP/48u7//Pv6//7+/v///////////////////////fz7//nz
+ 8P/s3NH/5MGp/+Opgf/jlmL/45Nd/+Kaaf/iqYP/5L+m//Li1//9+ff///////7+/v/8+/r/9uzk/+zP
+ u//jso//4Z9x/+OZZv/ln2//6KuC/+vApP/syrX/6b2f/+Wqgf/jnGv/45lm/+Sidv/ntJP/8dXC//vz
+ 7v/++/r//v38//78+//+/fv//vz7//z59v/27eb/7dnM/+jErP/kr4z/4qB0/+KZZv/ilmH/45Vg/+OV
+ X//jlV//4pVg/+OXY//knGr/5qR4/+axjv/mwqj/69fI//Xt6P/7+Pb//v39////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////+/n2//Xt5v/u2cn/6LmY/+Slef/jmmj/45hj/+Wfbv/otJD/7dC8//Pq
+ 5P/69/b//v39///////////////////+///9+/r/+PLt/+rXyf/iu6D/4aV8/+OVYf/jklz/4ptr/+Gs
+ iP/kxK3/8uTb//359/////////7+//7+/f/48Ov/7dTE/+K3mf/gonb/45ll/+SbaP/monX/56+K/+e1
+ k//mrYb/5aJz/+SZZf/jmWb/46V8/+W5nP/w2sv/+/bz///+/v///////////////////////v39//r2
+ 8//06eL/7tfI/+nErP/kspH/4aV7/+Gfcv/inGz/4ptp/+Kbav/hnW//4aJ2/+Oqg//nt5b/6sau/+3W
+ xv/y59//+vb0//38/P///v7/////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////9/Pv/+fTv//Li
+ 1v/nv6P/46iA/+Kbav/jlmD/5Jlm/+WshP/oxq//7uHY//jz8f/+/fz///////////////////7///37
+ +v/48Or/6dLB/+G2mP/honj/45Vg/+OTXP/inW7/4rGP/+TKt//y6N///fr4/////////v7///7///nz
+ 7//t2cz/4r2k/+Gmff/jmWb/45Zi/+OZZv/jnm//46F0/+Oebv/kmmf/5JZh/+ObaP/jq4X/5cKq//Df
+ 1P/8+PX///7+/////////////////////////v7//fv6//r18v/16uL/8NvP/+nKtv/juZ3/4rGP/+Os
+ hv/kqoL/5aqC/+Ouiv/itZb/5cCn/+rOvP/w3dD/9erj//r08f/9+/r///7+////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////79/f/79/T/9Ofd/+fErP/irIf/4p1t/+OVX//jl2H/5KZ8/+W+
+ pf/q2c7/9/Dt//78+/////////////////////7//fv5//jv6P/qzrv/4rKR/+Ggc//jlWD/45Nd/+Of
+ cf/jt5f/59HB//Pr5f/8+/n/////////////////+vXy/+/f1f/lxrL/462K/+Scbf/jlmL/4pVg/+GX
+ Y//hmGX/4pdj/+SXYv/kmGP/5aJy/+a3lv/pz77/8ujh//z69////v7////////////////////////+
+ /v///f3//fr6//r08f/27Ob/8eDV/+zTwv/rzLf/7Mmx/+3Hrf/tx63/68u0/+vQvf/t2Mr/8eLZ//Xs
+ 5v/59PL//Pv6//7+/f//////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////////v7+//z5
+ 9//26+L/58q1/+Gwjv/hn3H/45Rf/+OVX//jonb/47ib/+jSw//27ej//fz7////////////////////
+ /v/9+/j/+O7m/+vLtf/jr4r/4p5w/+OVYP/jlF7/5KN2/+a9oP/r2c3/9u/r//38+///////////////
+ ///79/b/8ubf/+nRwf/mt5j/5KJ2/+KYZf/hk13/4JJc/+GTXf/ilF7/45Zg/+SbaP/nqX7/6sOo/+/e
+ 0v/28e7//fv7///////////////////////////////////////+/v7//fz6//v49v/58u7/9uvk//bn
+ 3v/25tv/9uXZ//bl2f/259z/9erh//bu6P/48/D/+/f2//37+//+/v7/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////v7//fr4//bt5//nz77/4bWW/+GhdP/jlF7/45Re/+Kf
+ cv/is5P/58u5//Xr5P/9+/r////////////////////+//37+P/57eX/7cmw/+WshP/jnW3/45Zh/+SY
+ ZP/nqn//68eu//Dk2//49fP//v38//////////////////z6+f/37ur/793S/+nApv/kp37/4ppp/+GT
+ Xf/hkVr/4pJb/+KTXP/jlmH/5J5t/+evif/tzbb/9Oni//r4+P/+/f3/////////////////////////
+ //////////////////////7//v79//37+//8+ff//Pf1//z39P/89/P//Pfz//z39P/8+Pb//Pr5//38
+ +//+/f3///7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v/9+vn/9+/q/+nVyP/ju5//46R6/+OVYP/jlF7/4p1u/+Kui//mxrD/9eff//36+P//////////////
+ /////v7//fr3//ns4v/vx6v/56qA/+Sca//kmGP/5Z1r/+myi//w0bz/9u7o//v6+f/+/v7/////////
+ /////////v39//v28//16OH/68mz/+Osh//hnG7/4ZRf/+KSW//ik1z/45Nd/+OXYv/ioHP/5bST/+/T
+ wf/48ev//f39//7+/v///////////////////////////////////////////////////v////7+//79
+ /P/+/fz//vz8//78/P/+/Pz//vz8//79/P/+/v3//v7+///+/v//////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////+//38+v/48u7/7NzS/+fErP/lrIT/5Zpn/+OW
+ YP/jnGv/5KqE/+jBp//z49j/+/f0//79/f////////////79/P/79vP/9+fd/+7Ep//nqX7/5Z1q/+SZ
+ ZP/moHD/67eT//LXxP/59PD//f39//7+/v/////////////////+/v7//Pr4//ju6P/sz7z/47CP/+Gf
+ c//ilWD/4pNb/+OTXP/jk17/45hk/+Kkev/kup7/79jJ//r18P//////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////7//vz7//n18v/x5d3/6826/+e0kf/loHD/45hj/+Obaf/lp33/6Lyd//Hez//48+7//Pv6////
+ /////////Pv6//jy7f/z4dT/7MCh/+ene//lnGn/5Jll/+WidP/qupj/89vK//z49f/+////////////
+ ///////////////////9/Pv/+fLt/+3Vxf/itpj/4aN5/+KWYv/jklv/45Nc/+OVX//jmmj/4amD/+TA
+ qv/v3tL/+/f0////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/f3/+/j3//bt6f/v18j/6bye/+Sk
+ eP/jmWb/45lm/+WidP/otJD/7tXD//Ts5f/6+Pb///7+///////7+Pf/9ezm/+7Zyf/puZf/5qN0/+Sa
+ Zv/jmWb/46N3/+m8nP/z3c3//fr3//////////////////////////////////79+//69PD/7drN/+O9
+ o//hp3//45dj/+OSW//jlF7/5Jhj/+SfcP/jsZD/5sq4//Hj2//8+ff/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v/++/v/+vbz//Pg1P/pw6j/4qiA/+Kaaf/jl2L/5Jxq/+aqgv/pyrT/8OPa//jz
+ 8P/+/v3///7+//r28//x5t3/6dC9/+axi//knWv/5Jdi/+OZZv/ipXv/576h//Le0P/9+vj/////////
+ /////////////////////////v38//r28v/v4Nf/5caw/+Osh//jmWX/45Nb/+OWYP/lnGr/5qh9/+e9
+ of/r1sn/8+rl//z6+f//////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////+//79/P/8+vj/9OXb/+nI
+ sf/hrIj/4pxs/+OWYf/jmWX/5KV5/+XCqP/s28//9vDr//7+/P////7/+PPw/+7g1f/lx7L/46qD/+OZ
+ Zv/jlmD/4ppo/+Cof//mwab/8uDT//37+f/////////////////////////////////+/f3/+/j1//Ho
+ 4f/p0L//5raU/+Wfbv/klV//45di/+SgcP/mr4j/68mx//Hi2f/38u///fz8////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v79//38+v/06eD/6M25/+CxkP/hnm//45Zg/+OXYv/joXT/4rqd/+nU
+ xf/07OX//v38//7+/v/38e3/7NrN/+K/p//hpXz/45dj/+OVYP/im2n/4KqF/+XErP/x4tb//fv5////
+ //////////////////////////////7+/v/8+/n/9fDr/+7bzv/pwKP/5qd6/+SaZ//jm2j/5KV6/+a2
+ lv/u08H/9u7o//v49//+/v7/////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////////////////v7//v37//Xs
+ 5f/p0sH/4LaY/+Kgcv/jlmH/45Zh/+KfcP/gs5T/5868//Tp4f/+/Pv//v7+//bv6f/q1MX/4Lic/+Gi
+ dv/jlmL/45Vg/+Kca//grYr/5cey//Hk2v/9+/r///////////////////////////////////////38
+ +//59vT/8+bc/+vLtP/lsYz/4qN3/+Kid//jrov/58Gp//De0f/69fL//vz8////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////+/v/+/fz/9u7p/+vYyf/ivqL/46R3/+OXYv/jlmH/4p1t/+Cv
+ i//nybP/8+bc//77+v/+/v7/9u3m/+rQvv/gspT/4Z9y/+OWYf/jlWD/4p1t/+Cxkf/mzLr/8ubf//37
+ +v///////////////////////////////////////v79//37+v/37+n/7dfI/+S/pf/hsZL/4rKS/+W/
+ pv/q0cL/8+jh//z59////v3/////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////+//79
+ /P/48u7/7t/U/+bHsf/lq4L/5Jxp/+SXY//jnGv/4qqE/+fEq//y4db//Pn3//79/f/26+T/6824/+Gv
+ jP/hnW7/45Vg/+OVYf/jnnD/47eZ/+jTxP/z6uT//fz7////////////////////////////////////
+ //////7//v79//v28//z5t3/7NXG/+nMuP/qzbj/7dbG//Hj2v/48e3//fz7/////v//////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////7//v7+//n18//y5t7/69HA/+ezj//loXL/5Jlm/+Oa
+ aP/jpnz/6L6h//Dczv/59fL//fv6//fq4f/sy7P/46yF/+Kca//jlWD/45dj/+SidP/mv6T/7NvP//Xv
+ 6v/+/fz///////////////////////////////////////////////7//fv6//nz7//16+X/9Ofe//Xn
+ 3v/27OX/+PPu//v59//+/v3/////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///+////+/n3//bu6P/w287/6buc/+Wlev/jm2n/45hk/+Ogcf/nt5X/7tTD//Xu6f/7+Pb/+One/+7J
+ r//lqoD/45tp/+OWYf/kmmj/5qh9/+vJsf/x5dz/+PXx//7+/f//////////////////////////////
+ ///////////////////+/v3//fz7//z6+P/8+Pb//Pj2//z6+P/9/Pr//v39////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////+/Pv/+vTx//Tj2f/owaf/46mC/+Kc
+ a//jlmH/45ln/+athv/qybP/8OTc//jy7f/35dn/78er/+eofP/kmmf/5Jhk/+agb//qsYn/8dTB//fv
+ 6f/8+vj///7+///////////////////////////////////////////////////////+/v7//v38//79
+ /P/+/fz//v39//7+/v/+//7/////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////7+/f/7+PX/9eng/+fHsP/irYn/4p1v/+OVX//jlmH/5KV7/+a9of/q1MX/8eHV//LY
+ xf/tv5//56Z4/+SaZv/kmWb/5aJ1/+q1kv/z2sn/+/Tv//79/P//////////////////////////////
+ ///////////////////////////////////////////+////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////////v7+//z5+P/27OX/58y4/+Gy
+ kf/hn3L/45Rf/+OUX//jn3H/47CO/+TBqv/qy7f/7Mar/+q1kP/mo3T/5Jll/+OZZ//kpHn/6bmY//Tf
+ z//89/T///7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v///fr5//fu6P/o0cH/4beZ/+Gidv/jlF7/45Nd/+KZaf/go3v/4a2M/+W1
+ lP/nso3/5qh+/+Sdbf/jl2P/45pp/+Omff/nvJ7/9OHT//359v//////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////+/v/9+/r/9/Hs/+rY
+ y//jvqP/4qZ8/+OVX//iklz/4ZRh/+CYaP/fnG//4qBy/+OgcP/im2n/4ZZi/+KUX//immn/46mC/+a+
+ o//z4tb//fn3////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////+//38+//49PD/7uHX/+jIsv/lroj/5Jln/+KUX//hkl7/4JNf/9+V
+ Yv/gl2P/4ZZi/+CUYP/gk13/4ZNd/+Kba//iq4f/5cKq//Pk2v/9+ff/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////7//v38//r4
+ 9f/y6+T/7NPB/+i3lv/koHH/45Zi/+KTXP/gkVv/35Fc/9+SXP/fklz/35Fb/+CSW//hk13/4Zxt/+Gu
+ jP/lxrH/8+bd//36+P//////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////+/v3//Pv5//fz7//w3c7/6cCi/+Slev/jmWb/4pNd/+CR
+ Wv/fkFr/35Ba/9+QWv/fkFr/4JJb/+GTXf/inW//4rKR/+XLuf/z6eH//fv5////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /v/+/fz/+/n2//Pk2P/pxaz/4qmB/+Kbaf/hk17/4JBa/96PWf/fkFr/35Ba/+CQWv/gkVz/4ZNe/+Kg
+ c//jtpj/5tDB//Pr5f/9+/n/////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////79/f/8+/r/9Off/+nKtP/grYn/4Zxt/+KU
+ X//gkFr/349Z/9+PWf/fkFn/4JBb/+GSXv/jl2T/5KZ7/+a9ov/p18v/9e7q//37+v//////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v7+//38/P/16uP/6c68/+Cykv/hnnH/4pRg/+GRW//gkFr/349Z/96PWf/fkVv/4ZRg/+Sc
+ a//mrYX/6cat/+3f1f/38u///fz7////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v39//bt5//q08T/4bic/+Gh
+ dP/ilWH/4pJc/+GRW//fkFr/35Ba/+CRXP/ilmL/5aBw/+i0j//tz7n/8ujh//n29f/+/f3/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////+/v/+/f3/9/Dr/+zazf/kwKf/46V6/+OWYv/jk1z/4pJc/+GRW//hkVv/4pNd/+OY
+ ZP/lonP/6rmW//HXxf/58+///fz7//7+/v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////79/v/48/H/8OLY/+jL
+ tv/mrYb/5Jtp/+OVX//jk1z/4pJc/+KSXP/jlF7/45ll/+Wjdv/qu5v/89zM//z49f/+////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////v7+//r39f/06uT/7tbG/+i2lP/lonP/5Jhj/+OTXf/jk1z/45Nc/+OU
+ Xv/jmWb/46V6/+m+oP/z39D//fr4////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/v///Pv5//jx
+ 7f/y4NT/6b+h/+WnfP/jm2j/45Rd/+OTXP/jk1z/45Vf/+OaaP/ip3//58Cm//Pg1P/9+/r/////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////+/fz/+/fz//Xn3v/oxav/4quF/+KcbP/jlF3/45Nc/+OT
+ XP/jlV//4ptp/+CqhP/mw6z/8uLX//37+v//////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////////////+
+ /v/8+ff/9uvj/+jKtf/hsI3/4Z5w/+OUXv/jk1v/45Nc/+OVYP/inGv/4K2K/+bHsv/y5Nr//fz6////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////7+//36+f/27ef/6M++/+G0lf/hoXX/45Re/+OT
+ W//jk1z/45Vh/+Kdbv/hsZH/5su5//Lm3v/9/Pv/////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////v7//fv6//fw6//p1cf/4rqf/+Kkev/jlF//45Nb/+OTXP/jlmH/455w/+K1l//o0MD/8+nj//38
+ +///////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////v/9/Pr/+PPv/+zc0f/lwqn/46h//+OV
+ X//jk1v/45Nc/+OWYf/joHL/47ue/+nWyP/07ef//v38////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////79/P/69vP/8OXe/+rMuP/msIv/5Jpn/+OVXv/jlV//5Jpm/+Wme//mwqn/7NzR//Xw
+ 7P/+/f3/////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////39//z59//27ur/79jI/+m6
+ mv/loHL/45dj/+OXY//ln27/566G/+rLtf/v49v/9/Pw//7+/f//////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//vz7//r39P/z4dX/68On/+SnfP/jmmj/45pn/+Skdf/otZH/7dTC//Tr
+ 5f/69/X//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////+/fz//Pr5//Xn
+ 3f/qyLH/4auG/+KcbP/im2r/46d9/+a7nP/w3M7/+fPv//38+///////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////+/f/9/Pv/9u3m/+zTw//jup7/4qqE/+Kogf/js5L/58au//Pl
+ 2v/7+PX//v7+////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////////////7+//7+
+ /f/58+//8OLY/+nPvv/kwKb/472i/+XFr//q1cX/9uzm//37+f//////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////v////v59//27+r/8OTb/+vYyv/p1cb/69rO/+/k
+ 3P/48/D//v38////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////v38//v59v/59PD/9u7o//Xt5v/27+r/+PTw//z6+f/+/v7/////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////////////////////////v7//v38//38+v/8+vj//Pn3//z6
+ +P/9+/r//v39////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////v7//v7+//7+/v///v3//v79//7+/v//////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////8/////v//
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////+/////f////P////6////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////v////0////4P//
+ //P/////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////8////+D///+8////5P//////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////l////vf//
+ /4n////R////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////////9H///+K////S////7X/////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////tf//
+ /0z///8P////jf////P/////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////T///+O////D////wH///9L////tP//////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////tP//
+ /0v///8B////AP///xX///9m////1v////z/////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ /////////////////////////////P///9b///9m////Ff///wD///8A////AP///yT///9/////2v//
+ //z/////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////////////////////////////////////z////a////f///
+ /yT///8A////AP///wD///8A////A////yD///9/////1v/////////+////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////7/////////1v///3////8g////A////wD///8AAAAAAP///wD///8A////A///
+ /yT///9l////sP///+7/////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////7v///7H///9l////JP//
+ /wP///8A////AAAAAAAAAAAA////AP///wD///8A////AP///xT///9I////iP///7L////P////4///
+ //L////7/////v//////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ///////////////////////////////////////////////////////////////////////9////+P//
+ /+/////i////z////7L///+I////SP///xT///8A////AP///wD///8AAAAAAAAAAAAAAAAAAAAAAP//
+ /wD///8A////AP///wH///8O////R////4P///+4////3/////T////9////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ ////////////////////////////////////////////////////////////////////////////////
+ //////////////////////////////////r////t////1////7b///+D////Rv///w7///8B////AP//
+ /wD///8AAAAAAAAAAAAAAAAA4AAAAAAAAAAAAAAAAAAAB4AAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAAAA
+ AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+ AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAABgAAAAAAA
+ AAAAAAAAAAAAAeAAAAAAAAAAAAAAAAAAAAc=
+
+
+
\ No newline at end of file
diff --git a/DrawGraphManagement/MyPanel.Designer.cs b/DrawGraphManagement/MyPanel.Designer.cs
deleted file mode 100644
index 1f5468e..0000000
--- a/DrawGraphManagement/MyPanel.Designer.cs
+++ /dev/null
@@ -1,42 +0,0 @@
-namespace DrawGraphManagement
-{
- partial class MyPanel
- {
- ///
- /// 必需的设计器变量。
- ///
- private System.ComponentModel.IContainer components = null;
-
- ///
- /// 清理所有正在使用的资源。
- ///
- /// 如果应释放托管资源,为 true;否则为 false。
- protected override void Dispose(bool disposing)
- {
- if (disposing && (components != null))
- {
- components.Dispose();
- }
- base.Dispose(disposing);
- }
-
- #region 组件设计器生成的代码
-
- ///
- /// 设计器支持所需的方法 - 不要
- /// 使用代码编辑器修改此方法的内容。
- ///
- private void InitializeComponent()
- {
- this.SuspendLayout();
- //
- // MyPanel
- //
- this.Name = "MyPanel";
- this.ResumeLayout(false);
-
- }
-
- #endregion
- }
-}
diff --git a/DrawGraphManagement/MyPanel.cs b/DrawGraphManagement/MyPanel.cs
deleted file mode 100644
index 463ed88..0000000
--- a/DrawGraphManagement/MyPanel.cs
+++ /dev/null
@@ -1,24 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ComponentModel;
-using System.Drawing;
-using System.Data;
-using System.Linq;
-using System.Text;
-using System.Windows.Forms;
-
-namespace DrawGraphManagement
-{
- public partial class MyPanel : Panel
- {
- public MyPanel()
- {
- InitializeComponent();
- }
-
- protected override Point ScrollToControl(Control activeControl)
- {
- return this.AutoScrollPosition;
- }
- }
-}
diff --git a/DrawGraphManagement/MyPanel.resx b/DrawGraphManagement/MyPanel.resx
deleted file mode 100644
index 1af7de1..0000000
--- a/DrawGraphManagement/MyPanel.resx
+++ /dev/null
@@ -1,120 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
\ No newline at end of file
diff --git a/DrawGraphManagement/PdfFilePrinter.cs b/DrawGraphManagement/PdfFilePrinter.cs
new file mode 100644
index 0000000..997a436
--- /dev/null
+++ b/DrawGraphManagement/PdfFilePrinter.cs
@@ -0,0 +1,180 @@
+using System;
+using System.IO;
+using System.Linq;
+using System.Printing;
+using System.Runtime.InteropServices;
+
+namespace DrawGraphManagement
+{
+ public class PdfFilePrinter
+ {
+ private const string PdfPrinterDriveName = "Microsoft Print To PDF";
+
+ [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
+ private class DOCINFOA
+ {
+ [MarshalAs(UnmanagedType.LPStr)]
+ public string pDocName;
+ [MarshalAs(UnmanagedType.LPStr)]
+ public string pOutputFile;
+ [MarshalAs(UnmanagedType.LPStr)]
+ public string pDataType;
+ }
+
+ [DllImport("winspool.drv", EntryPoint = "OpenPrinterA", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
+ private static extern bool OpenPrinter([MarshalAs(UnmanagedType.LPStr)] string szPrinter, out IntPtr hPrinter, IntPtr pd);
+
+ [DllImport("winspool.drv", EntryPoint = "ClosePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
+ private static extern bool ClosePrinter(IntPtr hPrinter);
+
+ [DllImport("winspool.drv", EntryPoint = "StartDocPrinterA", SetLastError = true, CharSet = CharSet.Ansi, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
+ private static extern int StartDocPrinter(IntPtr hPrinter, int level, [In, MarshalAs(UnmanagedType.LPStruct)] DOCINFOA di);
+
+ [DllImport("winspool.drv", EntryPoint = "EndDocPrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
+ private static extern bool EndDocPrinter(IntPtr hPrinter);
+
+ [DllImport("winspool.drv", EntryPoint = "StartPagePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
+ private static extern bool StartPagePrinter(IntPtr hPrinter);
+
+ [DllImport("winspool.drv", EntryPoint = "EndPagePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
+ private static extern bool EndPagePrinter(IntPtr hPrinter);
+
+ [DllImport("winspool.drv", EntryPoint = "WritePrinter", SetLastError = true, ExactSpelling = true, CallingConvention = CallingConvention.StdCall)]
+ private static extern bool WritePrinter(IntPtr hPrinter, IntPtr pBytes, int dwCount, out int dwWritten);
+
+ public static void PrintXpsToPdf(byte[] bytes, string outputFilePath, string documentTitle)
+ {
+ // Get Microsoft Print to PDF print queue
+ var pdfPrintQueue = GetMicrosoftPdfPrintQueue();
+
+ // Copy byte array to unmanaged pointer
+ var ptrUnmanagedBytes = Marshal.AllocCoTaskMem(bytes.Length);
+ Marshal.Copy(bytes, 0, ptrUnmanagedBytes, bytes.Length);
+
+ // Prepare document info
+ var di = new DOCINFOA
+ {
+ pDocName = documentTitle,
+ pOutputFile = outputFilePath,
+ pDataType = "RAW"
+ };
+
+ // Print to PDF
+ var errorCode = SendBytesToPrinter(pdfPrintQueue.Name, ptrUnmanagedBytes, bytes.Length, di, out var jobId);
+
+ // Free unmanaged memory
+ Marshal.FreeCoTaskMem(ptrUnmanagedBytes);
+
+ // Check if job in error state (for example not enough disk space)
+ var jobFailed = false;
+ try
+ {
+ var pdfPrintJob = pdfPrintQueue.GetJob(jobId);
+ if (pdfPrintJob.IsInError)
+ {
+ jobFailed = true;
+ pdfPrintJob.Cancel();
+ }
+ }
+ catch
+ {
+ // If job succeeds, GetJob will throw an exception. Ignore it.
+ }
+ finally
+ {
+ pdfPrintQueue.Dispose();
+ }
+
+ if (errorCode > 0 || jobFailed)
+ {
+ try
+ {
+ if (File.Exists(outputFilePath))
+ {
+ File.Delete(outputFilePath);
+ }
+ }
+ catch
+ {
+ // ignored
+ }
+ }
+
+ if (errorCode > 0)
+ {
+ throw new Exception($"Printing to PDF failed. Error code: {errorCode}.");
+ }
+
+ if (jobFailed)
+ {
+ throw new Exception("PDF Print job failed.");
+ }
+ }
+
+ private static int SendBytesToPrinter(string szPrinterName, IntPtr pBytes, int dwCount, DOCINFOA documentInfo, out int jobId)
+ {
+ jobId = 0;
+ var dwWritten = 0;
+ var success = false;
+
+ if (OpenPrinter(szPrinterName.Normalize(), out var hPrinter, IntPtr.Zero))
+ {
+ jobId = StartDocPrinter(hPrinter, 1, documentInfo);
+ if (jobId > 0)
+ {
+ if (StartPagePrinter(hPrinter))
+ {
+ success = WritePrinter(hPrinter, pBytes, dwCount, out dwWritten);
+ EndPagePrinter(hPrinter);
+ }
+
+ EndDocPrinter(hPrinter);
+ }
+
+ ClosePrinter(hPrinter);
+ }
+
+ // TODO: The other methods such as OpenPrinter also have return values. Check those?
+
+ if (success == false)
+ {
+ return Marshal.GetLastWin32Error();
+ }
+
+ return 0;
+ }
+
+ private static PrintQueue GetMicrosoftPdfPrintQueue()
+ {
+ PrintQueue pdfPrintQueue = null;
+
+ try
+ {
+ using (var printServer = new PrintServer())
+ {
+ var flags = new[] { EnumeratedPrintQueueTypes.Local };
+ // FirstOrDefault because it's possible for there to be multiple PDF printers with the same driver name (though unusual)
+ // To get a specific printer, search by FullName property instead (note that in Windows, queue name can be changed)
+ pdfPrintQueue = printServer.GetPrintQueues(flags).FirstOrDefault(lq => lq.QueueDriver.Name == PdfPrinterDriveName);
+ }
+
+ if (pdfPrintQueue == null)
+ {
+ throw new Exception($"Could not find printer with driver name: {PdfPrinterDriveName}");
+ }
+
+ if (!pdfPrintQueue.IsXpsDevice)
+ {
+ throw new Exception($"PrintQueue '{pdfPrintQueue.Name}' does not understand XPS page description language.");
+ }
+
+ return pdfPrintQueue;
+ }
+ catch
+ {
+ pdfPrintQueue?.Dispose();
+ throw;
+ }
+ }
+ }
+}
diff --git a/DrawGraphManagement/PdfiumViewer.dll b/DrawGraphManagement/PdfiumViewer.dll
new file mode 100644
index 0000000..9fa37fd
Binary files /dev/null and b/DrawGraphManagement/PdfiumViewer.dll differ
diff --git a/DrawGraphManagement/Program.cs b/DrawGraphManagement/Program.cs
index 3cf8281..bcd948d 100644
--- a/DrawGraphManagement/Program.cs
+++ b/DrawGraphManagement/Program.cs
@@ -15,7 +15,7 @@ namespace DrawGraphManagement
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
PreLoad();
- Application.Run(new Main());
+ Application.Run(new MainUp());
}
static void PreLoad()
{
diff --git a/DrawGraphManagement/packages.config b/DrawGraphManagement/packages.config
new file mode 100644
index 0000000..2a819a7
--- /dev/null
+++ b/DrawGraphManagement/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file