AIMS/AIMSControls/OperationAfter/frmNotesRecordExport.cs
2023-08-16 22:32:16 +08:00

405 lines
19 KiB
C#

using AIMSBLL;
using AIMSExtension;
using AIMSModel;
using System;
using System.Collections.Generic;
using System.Windows.Forms;
namespace AIMS
{
public partial class frmNotesRecordExport : Form
{
public SysConfig exportConfig;
public string DataGridViewPath = "";
public DataGridView selectdgv;
public frmNotesRecordExport()
{
InitializeComponent();
dgvtReport.AutoGenerateColumns = false;
dgvtReport2.AutoGenerateColumns = false;
dgvtReport3.AutoGenerateColumns = false;
dgvtReport4.AutoGenerateColumns = false;
}
private void frmOperationDruggCheck_Load(object sender, EventArgs e)
{
try
{
DateTime today = DateTime.Today;
DateTime firstDayOfMonth = new DateTime(today.Year, today.Month, 1);
dtpOpeTime.Value = firstDayOfMonth;
dtpOpeTime2.Value = firstDayOfMonth;
dtpOpeTime3.Value = firstDayOfMonth;
dtpOpeTime4.Value = firstDayOfMonth;
dtpEnd2.Value = DateTime.Now;
dtpEnd3.Value = DateTime.Now;
dtpEnd.Value = DateTime.Now;
dtpEnd4.Value = DateTime.Now;
btn手术例数按月统计_Click(null, null);
}
catch (Exception exp)
{
PublicMethod.WriteLog(exp);
}
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
PrintORVirew(false);
}
private void LoadNoteData(string beginTime, string endTime, string notename)
{
System.Data.DataTable dataResult = BNotesRecords.GetMonthDayTable(beginTime, endTime);
List<NotesRecord> nrecords = BNotesRecord.Select(" NoteName = '" + notename + "' and RecordTime>='" + beginTime + "' and RecordTime<'" + endTime + "' ", null);
List<NotesRecord> records = new List<NotesRecord>();
for (int i = 0; i < dataResult.Rows.Count; i++)
{
DateTime RecordTime = Convert.ToDateTime(dataResult.Rows[i][0]);
NotesRecord record = new NotesRecord();
record.RecordTime = RecordTime;
foreach (var item in nrecords)
{
if (item.RecordTime == RecordTime)
{
record = item;
continue;
}
}
records.Add(record);
}
selectdgv.DataSource = records;
}
private void NewMethod(string notename)
{
for (int i = 0; i < selectdgv.Rows.Count; i++)
{
DataGridViewRow dr = selectdgv.Rows[i];
NotesRecord record = new NotesRecord();
record.NoteName = notename;
record.RecordTime = Convert.ToDateTime(dr.Cells[1].EditedFormattedValue.ToString());
record.Content1 = dr.Cells[2].EditedFormattedValue.ToString();
record.Content2 = dr.Cells[3].EditedFormattedValue.ToString();
record.Content3 = dr.Cells[4].EditedFormattedValue.ToString();
record.Content4 = dr.Cells[5].EditedFormattedValue.ToString();
record.Content5 = dr.Cells[6].EditedFormattedValue.ToString();
if (selectdgv.Columns.Count == 11)
{
record.Content6 = dr.Cells[7].EditedFormattedValue.ToString();
record.Content7 = dr.Cells[8].EditedFormattedValue.ToString();
record.Content8 = dr.Cells[9].EditedFormattedValue.ToString();
record.ExecWork = dr.Cells[10].EditedFormattedValue.ToString();
}
else if (selectdgv.Columns.Count == 9)
{
record.Content6 = dr.Cells[7].EditedFormattedValue.ToString();
record.ExecWork = dr.Cells[8].EditedFormattedValue.ToString();
}
else
record.ExecWork = dr.Cells[7].EditedFormattedValue.ToString();
record.OperatorId = PublicMethod.OperatorId;
record.OperatorTime = DateTime.Now;
record.Remark = "";
BNotesRecord.Delete(" NoteName = '" + notename + "' and RecordTime='" + record.RecordTime + "'", null);
BNotesRecord.Insert(record);
}
MessageBox.Show("保存成功!");
}
private void btn冰箱监测_Click(object sender, EventArgs e)
{
selectdgv = dgvtReport2;
string beginTime = Convert.ToDateTime(dtpOpeTime2.Value).ToString("yyyy-MM-dd 00:00:00");
string endTime = Convert.ToDateTime(dtpEnd2.Value).AddDays(1).ToString("yyyy-MM-dd 00:00:00");
LoadNoteData(beginTime, endTime, "冰箱监测");
}
private void btn冰箱监测Save_Click(object sender, EventArgs e)
{
NewMethod("冰箱监测");
}
private void dgvtReport2_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
DialogResult dialog = MessageBox.Show("是否批量填写数据?", "系统提示", MessageBoxButtons.YesNo);
if (dialog == DialogResult.Yes)
{
string batchNo = dgvtReport2.Rows[e.RowIndex].Cells[e.ColumnIndex].EditedFormattedValue.ToString();
for (int i = 0; i < dgvtReport2.Rows.Count; i++)
{
dgvtReport2.Rows[i].Cells[e.ColumnIndex].Value = batchNo;
}
}
}
private void dgvtReport2_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
//隔行换色
this.dgvtReport2.RowsDefaultCellStyle.BackColor = System.Drawing.Color.White;//设置背景为白色
this.dgvtReport2.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(242)))), (((int)(((byte)242)))));//青色
}
private void btn麻醉贵重物品清点本_Click(object sender, EventArgs e)
{
selectdgv = dgvtReport3;
string beginTime = Convert.ToDateTime(dtpOpeTime3.Value).ToString("yyyy-MM-dd 00:00:00");
string endTime = Convert.ToDateTime(dtpEnd3.Value).AddDays(1).ToString("yyyy-MM-dd 00:00:00");
LoadNoteData(beginTime, endTime, "麻醉贵重物品清点本");
}
private void btn麻醉贵重物品清点本Save_Click(object sender, EventArgs e)
{
NewMethod("麻醉贵重物品清点本");
}
private void dgvtReport3_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
DialogResult dialog = MessageBox.Show("是否批量填写数据?", "系统提示", MessageBoxButtons.YesNo);
if (dialog == DialogResult.Yes)
{
string batchNo = dgvtReport3.Rows[e.RowIndex].Cells[e.ColumnIndex].EditedFormattedValue.ToString();
for (int i = 0; i < dgvtReport3.Rows.Count; i++)
{
dgvtReport3.Rows[i].Cells[e.ColumnIndex].Value = batchNo;
}
}
}
private void dgvtReport3_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
//隔行换色
this.dgvtReport3.RowsDefaultCellStyle.BackColor = System.Drawing.Color.White;//设置背景为白色
this.dgvtReport3.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(242)))), (((int)(((byte)242)))));//青色
}
private void btn手术例数按月统计_Click(object sender, EventArgs e)
{
selectdgv = dgvtReport;
string beginTime = Convert.ToDateTime(dtpOpeTime.Value).ToString("yyyy-MM-dd 00:00:00");
string endTime = Convert.ToDateTime(dtpEnd.Value).AddDays(1).ToString("yyyy-MM-dd 00:00:00");
System.Data.DataTable dataResult = BNotesRecords.GetMonthDayTable2(beginTime, endTime);
System.Data.DataTable dataResult2 = BNotesRecords.GetMonthDayTable3(beginTime, endTime);
List<NotesRecord> nrecords = BNotesRecord.Select(" NoteName = '麻醉机及心电监护仪使用消毒记录' and RecordTime>='" + beginTime + "' and RecordTime<'" + endTime + "' ", null);
List<NotesRecord> records = new List<NotesRecord>();
for (int i = 0; i < dataResult.Rows.Count; i++)
{
DateTime RecordTime = Convert.ToDateTime(dataResult.Rows[i][0]);
string ExecWork = Convert.ToString(dataResult.Rows[i][1]);
NotesRecord record = new NotesRecord();
record.RecordTime = RecordTime;
record.ExecWork = ExecWork;
for (int j = 0; j < dataResult2.Rows.Count; j++)
{
DateTime RecordTime2 = Convert.ToDateTime(dataResult2.Rows[j][0]);
string ExecWork2 = Convert.ToString(dataResult2.Rows[j][1]);
string room = Convert.ToString(dataResult2.Rows[j][2]);
if (RecordTime2 == RecordTime && ExecWork2 == ExecWork)
{
switch (room)
{
case "1间":
record.Content1 = "√";
break;
case "2间":
record.Content2 = "√";
break;
case "3间":
record.Content3 = "√";
break;
case "4间":
record.Content4 = "√";
break;
case "5间":
record.Content5 = "√";
break;
case "6间":
record.Content6 = "√";
break;
default:
break;
}
}
}
foreach (var item in nrecords)
{
if (item.RecordTime == RecordTime && item.ExecWork == ExecWork)
{
record = item;
continue;
}
}
records.Add(record);
}
selectdgv.DataSource = records;
}
private void buttonX1_Click(object sender, EventArgs e)
{
NewMethod("麻醉机及心电监护仪使用消毒记录");
}
private void dgvtReport_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
DialogResult dialog = MessageBox.Show("是否批量填写数据?", "系统提示", MessageBoxButtons.YesNo);
if (dialog == DialogResult.Yes)
{
string batchNo = dgvtReport.Rows[e.RowIndex].Cells[e.ColumnIndex].EditedFormattedValue.ToString();
for (int i = 0; i < dgvtReport.Rows.Count; i++)
{
dgvtReport.Rows[i].Cells[e.ColumnIndex].Value = batchNo;
}
}
}
private void dgvtReport_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
//隔行换色
this.dgvtReport.RowsDefaultCellStyle.BackColor = System.Drawing.Color.White;//设置背景为白色
this.dgvtReport.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(242)))), (((int)(((byte)242)))));//青色
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
PrintORVirew(true);
}
private void PrintORVirew(bool isprintview)
{
if (selectdgv.Rows.Count <= 0) return;
List<NotesRecord> records = new List<NotesRecord>();
for (int i = 0; i < selectdgv.Rows.Count; i++)
{
DataGridViewRow dr = selectdgv.Rows[i];
NotesRecord record = new NotesRecord();
record.RecordTime = Convert.ToDateTime(dr.Cells[1].EditedFormattedValue.ToString());
record.Content1 = dr.Cells[2].EditedFormattedValue.ToString();
record.Content2 = dr.Cells[3].EditedFormattedValue.ToString();
record.Content3 = dr.Cells[4].EditedFormattedValue.ToString();
record.Content4 = dr.Cells[5].EditedFormattedValue.ToString();
record.Content5 = dr.Cells[6].EditedFormattedValue.ToString();
if (selectdgv.Columns.Count == 11)
{
record.Content6 = dr.Cells[7].EditedFormattedValue.ToString();
record.Content7 = dr.Cells[8].EditedFormattedValue.ToString();
record.Content8 = dr.Cells[9].EditedFormattedValue.ToString();
record.ExecWork = dr.Cells[10].EditedFormattedValue.ToString();
}
else if (selectdgv.Columns.Count == 9)
{
record.Content6 = dr.Cells[7].EditedFormattedValue.ToString();
record.ExecWork = dr.Cells[8].EditedFormattedValue.ToString();
}
else
record.ExecWork = dr.Cells[7].EditedFormattedValue.ToString();
records.Add(record);
}
int n = 31;
if (selectdgv.Columns.Count == 11)
n = 26;
List<List<NotesRecord>> groupedLists = new List<List<NotesRecord>>();
for (int i = 0; i < records.Count; i += n)
{
List<NotesRecord> group = records.GetRange(i, Math.Min(n, records.Count - i));
groupedLists.Add(group);
}
foreach (var item in groupedLists)
{
string fileName = superTabControl1.SelectedTab.Text;
GoldPrinter.ExcelAccess excel = new GoldPrinter.ExcelAccess();
string strFileName = fileName + ".xlt"; //模板文件名
string strExcelTemplateFile = System.Windows.Forms.Application.StartupPath;
strExcelTemplateFile += @"\Template\" + strFileName;
excel.Open(strExcelTemplateFile); //用模板文件
int rowNum = 6;
if (selectdgv.Columns.Count == 11)
{
rowNum = 8;
foreach (var record in item)
{
excel.GetRange(rowNum, "A", rowNum, "J").Value = new string[]
{
record.RecordTime.Value.ToString("yyyy-MM-dd"),
record.Content1,
record.Content2,
record.Content3,
record.Content4,
record.Content5,
record.Content6,
record.Content7,
record.Content8,
record.ExecWork
};
rowNum++;
}
}
else if (selectdgv.Columns.Count == 8)
{
foreach (var record in item)
{
excel.GetRange(rowNum, "A", rowNum, "G").Value = new string[]
{
record.RecordTime.Value.ToString("yyyy-MM-dd"),
record.Content1,
record.Content2,
record.Content3,
record.Content4,
record.Content5,
record.ExecWork
};
rowNum++;
}
}
else
{
rowNum = 7;
foreach (var record in item)
{
excel.GetRange(rowNum, "A", rowNum, "H").Value = new string[]
{
record.RecordTime.Value.ToString("yyyy-MM-dd"),
record.Content1,
record.Content2,
record.Content3,
record.Content4,
record.Content5,
record.Content6,
record.ExecWork
};
rowNum++;
}
}
if (isprintview == true)
excel.PrintPreview();
else
excel.Print();
excel.Close();
if (isprintview == true)
break;
}
}
private void btn手术间保养维修记录_Click(object sender, EventArgs e)
{
selectdgv = dgvtReport4;
string beginTime = Convert.ToDateTime(dtpOpeTime4.Value).ToString("yyyy-MM-dd 00:00:00");
string endTime = Convert.ToDateTime(dtpEnd4.Value).AddDays(1).ToString("yyyy-MM-dd 00:00:00");
LoadNoteData(beginTime, endTime, "手术间保养维修记录");
}
private void btn手术间保养维修记录Save_Click(object sender, EventArgs e)
{
NewMethod("手术间保养维修记录");
}
private void dgvtReport4_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
DialogResult dialog = MessageBox.Show("是否批量填写数据?", "系统提示", MessageBoxButtons.YesNo);
if (dialog == DialogResult.Yes)
{
string batchNo = dgvtReport4.Rows[e.RowIndex].Cells[e.ColumnIndex].EditedFormattedValue.ToString();
for (int i = 0; i < dgvtReport4.Rows.Count; i++)
{
dgvtReport4.Rows[i].Cells[e.ColumnIndex].Value = batchNo;
}
}
}
private void dgvtReport4_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
//隔行换色
this.dgvtReport4.RowsDefaultCellStyle.BackColor = System.Drawing.Color.White;//设置背景为白色
this.dgvtReport4.AlternatingRowsDefaultCellStyle.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(212)))), ((int)(((byte)(242)))), (((int)(((byte)242)))));//青色
}
}
}