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 nrecords = BNotesRecord.Select(" NoteName = '" + notename + "' and RecordTime>='" + beginTime + "' and RecordTime<'" + endTime + "' ", null); List records = new List(); 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 nrecords = BNotesRecord.Select(" NoteName = '麻醉机及心电监护仪使用消毒记录' and RecordTime>='" + beginTime + "' and RecordTime<'" + endTime + "' ", null); List records = new List(); 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 records = new List(); 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> groupedLists = new List>(); for (int i = 0; i < records.Count; i += n) { List 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)))));//青色 } } }