using AIMSBLL; using AxNsoOfficeLib; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Windows.Forms; namespace AIMS.OperationFront.UI { public partial class frmSelectiveOperationsPrint : Form { /// /// 病历号 /// public string patCaseNO = ""; /// /// 患者姓名 /// public string patname = ""; public DateTime beginTime; public DateTime endTime; public DataTable dt; public string funcMenuName = string.Empty; public frmSelectiveOperationsPrint() { InitializeComponent(); } private void QuietOperationRecordSheet_Load(object sender, EventArgs e) { ControlExtension.GetOperationSite(labelSite, CboOperationSite); this.CboOperationSite.SelectedIndexChanged += new System.EventHandler(this.CboOperationSite_SelectedIndexChanged); dtpTime.Value = beginTime; cboOperationRoom.SelectedIndexChanged += new EventHandler(cboOperationRoom_SelectedIndexChanged); } private void FullDgv(DataTable operationApplys) { if (operationApplys != null) { dgvApplyOrDoctor.AutoGenerateColumns = false; dgvApplyOrDoctor.DataSource = null; dgvApplyOrDoctor.Rows.Clear(); int num = 1; foreach (DataRow dr in operationApplys.Rows) { int index = this.dgvApplyOrDoctor.Rows.Add(); this.dgvApplyOrDoctor.Rows[index].Cells["Id"].Value = dr["ApplyId"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["Index"].Value = num; this.dgvApplyOrDoctor.Rows[index].Cells["PlanOperationRoomName"].Value = dr["OperationRoom"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["PlanOrder"].Value = dr["PlanOrder"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["OrderOperationTime"].Value = DateTime.Parse(dr["OrderOperationTime"].ToString() ).ToString("HH:mm"); this.dgvApplyOrDoctor.Rows[index].Cells["DepartmentId"].Value = dr["ApplyDepName"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["SickBed"].Value = dr["SickBed"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["InHospitalNo"].Value = dr["MdrecNo"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["PatientName"].Value = dr["PatientName"].ToString() + "(" + dr["Sex"].ToString() + "," + dr["Age"].ToString() + ")"; this.dgvApplyOrDoctor.Rows[index].Cells["ApplyDiagnoseInfoName"].Value = dr["ApplyDiagnoseInfoName"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["Operation"].Value = dr["ApplyOperationInfoName"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["OperationDoctor"].Value = dr["OperationDoctor"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["Assistant"].Value = dr["Assistant"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["AnaesthesiaMethodId"].Value = dr["AnaesthesiaMethodName"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["AnesthesiaDoctor"].Value = dr["AnesthesiaDoctor"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["InstrumentNurse"].Value = dr["InstrumentNurse"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["TourNurse"].Value = dr["TourNurse"].ToString(); this.dgvApplyOrDoctor.Rows[index].Cells["Remark"].Value = dr["Remark"].ToString(); if (dr["OperationType"].ToString().Equals("急诊")) { this.dgvApplyOrDoctor.Rows[index].DefaultCellStyle.BackColor = Color.Red; } num++; } } } private void btnBeforeDay_Click(object sender, EventArgs e) { dtpTime.Value = dtpTime.Value.AddDays(-1); checkBoxX1.Checked = true; checkBoxX1_CheckedChanged(null, null); } private void btnAfterDay_Click(object sender, EventArgs e) { dtpTime.Value = dtpTime.Value.AddDays(1); checkBoxX1.Checked = true; checkBoxX1_CheckedChanged(null, null); } private void dtpTime_ValueChanged(object sender, EventArgs e) { beginTime = dtpTime.Value.Date; endTime = dtpTime.Value.Date.AddHours(23).AddMinutes(59); cboOperationRoom_SelectedIndexChanged(null, null); } private void cboOperationRoom_SelectedIndexChanged(object sender, EventArgs e) { if (cboOperationRoom.SelectedIndex > 0) { dt = BOperationReview.GetOperationPlanDataTable("OrderOperationTime>='" + dtpTime.Value.ToString("yyyy-MM-dd 00:00:00") + "' and OrderOperationTime<='" + dtpTime.Value.ToString("yyyy-MM-dd 23:59:59") + "' and OperationRoom = '" + cboOperationRoom.Text + "' Order By OperationRoomID ,PlanOrder"); } else if (cboOperationRoom.SelectedIndex <= 0) { dt = BOperationReview.GetOperationPlanDataTable("OrderOperationTime>='" + dtpTime.Value.ToString("yyyy-MM-dd 00:00:00") + "' and OrderOperationTime<='" + dtpTime.Value.ToString("yyyy-MM-dd 23:59:59") + "' Order By OperationRoomID ,PlanOrder"); } if (CboOperationSite.Visible == true && CboOperationSite.SelectedIndex > 0) { dt = AIMSExtension.PublicMethod.GetNewDataTable(dt, " OperationSite ='" + CboOperationSite.SelectedValue + "' ", ""); } if (dt == null) return; FullDgv(dt); checkBoxX1.Checked= true; dgvApplyOrDoctor.ClearSelection(); } private void dgvApplyOrDoctor_MouseUp(object sender, MouseEventArgs e) { if (dgvApplyOrDoctor.SelectedRows == null) return; foreach (DataGridViewRow item in dgvApplyOrDoctor.SelectedRows) { DataGridViewCell senderdgvr = item.Cells[0]; senderdgvr.Value = (senderdgvr.EditedFormattedValue.ToString() == "True") ? false : true; } } private List GetSelectIds() { List opas = new List(); foreach (DataGridViewRow item in dgvApplyOrDoctor.Rows) { bool isChoose = bool.Parse(item.Cells[0].EditedFormattedValue.ToString()); if (isChoose) { string SelectId = item.Cells[1].Value.ToString();// as string; if (SelectId != "") opas.Add(Convert.ToInt32(SelectId)); } } return opas; } private void rboall_CheckedChanged(object sender, EventArgs e) { cboOperationRoom_SelectedIndexChanged(null, null); } private void btnPrint_Click(object sender, EventArgs e) { GoldPrinter.ExcelAccess excel = new GoldPrinter.ExcelAccess(); string strFileName = "手术排程模板.xlt"; //模板文件名 string strExcelTemplateFile = AppDomain.CurrentDomain.BaseDirectory; strExcelTemplateFile += @"\Template\" + strFileName; excel.Open(strExcelTemplateFile); //用模板文件 int rowNum = 4; DateTime dtBegin = reBeginTime(dtpTime.Value, "begin"); DateTime dtEnd = reBeginTime(dtpTime.Value, "end"); DataTable dtt = new DataTable(); List SelectIds = GetSelectIds(); if (SelectIds.Count > 0) { string Ids = string.Join(",", SelectIds); dtt = BOperationReview.GetOperationPlanDataTable(" of1.[ApplyId] in (" + Ids + ") "); } else { dtt = BOperationReview.GetOperationPlanDataTable(beginTime, endTime, ""); } excel.SetCellText(3, "L", dtpTime.Value.ToShortDateString()); for (int j = 0; j < dtt.Rows.Count; j++) { rowNum++; DataRow temp = dtt.Rows[j]; excel.GetRange(rowNum, "A", rowNum, "R").RowHeight = 24.75; excel.GetRange(rowNum, "A", rowNum, "R").Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; excel.GetRange(rowNum, "A", rowNum, "R").Value = new string[]{ temp[1].ToString(), temp[2].ToString(), temp[3].ToString(), temp[4].ToString(), temp[5].ToString(), temp[6].ToString(), temp[7].ToString(), temp[8].ToString(), temp[9].ToString(), temp[10].ToString(), temp[11].ToString(), temp[12].ToString(), temp[13].ToString(), temp[14].ToString(), temp[15].ToString(), temp[16].ToString(), temp[17].ToString(), temp[18].ToString() }; } excel.Print(); this.Focus(); excel.Close(); } private void btnReview_Click(object sender, EventArgs e) { GoldPrinter.ExcelAccess excel = new GoldPrinter.ExcelAccess(); string strFileName = "手术排程模板.xlt"; //模板文件名 string strExcelTemplateFile = AppDomain.CurrentDomain.BaseDirectory; strExcelTemplateFile += @"\Template\" + strFileName; excel.Open(strExcelTemplateFile); //用模板文件 int rowNum = 4; DateTime dtBegin = reBeginTime(dtpTime.Value, "begin"); DateTime dtEnd = reBeginTime(dtpTime.Value, "end"); DataTable dtt = new DataTable(); List SelectIds = GetSelectIds(); if (SelectIds.Count > 0) { string Ids = string.Join(",", SelectIds); dtt = BOperationReview.GetOperationPlanDataTable(" of1.[ApplyId] in (" + Ids + ") "); } else { dtt = BOperationReview.GetOperationPlanDataTable(beginTime, endTime, ""); } excel.SetCellText(3, "L", dtpTime.Value.ToShortDateString()); for (int j = 0; j < dtt.Rows.Count; j++) { rowNum++; DataRow temp = dtt.Rows[j]; excel.GetRange(rowNum, "A", rowNum, "R").RowHeight = 26; excel.GetRange(rowNum, "A", rowNum, "R").WrapText = true; excel.GetRange(rowNum, "A", rowNum, "R").Borders.LineStyle = Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous; excel.GetRange(rowNum, "A", rowNum, "R").Value = new string[]{ temp[1].ToString(), temp[2].ToString(), temp[3].ToString(), temp[4].ToString(), temp[5].ToString(), temp[6].ToString(), temp[7].ToString(), temp[8].ToString(), temp[9].ToString(), temp[10].ToString(), temp[11].ToString(), temp[12].ToString(), temp[13].ToString(), temp[14].ToString(), temp[15].ToString(), temp[16].ToString(), temp[17].ToString(), temp[18].ToString() }; } excel.PrintPreview(); this.Focus(); excel.Close(); } /// /// 返回指定格式的日期 /// /// 传入的日期 /// 标记,begin,end,其它任务标记全返回输入的日期 /// public DateTime reBeginTime(DateTime dt, string flag) { if (flag == "begin") return dt.Date.AddSeconds(1); if (flag == "end") return dt.Date.AddHours(23).AddMinutes(59).AddSeconds(59); return dt; } private void checkBoxX1_CheckedChanged(object sender, EventArgs e) { if (checkBoxX1.Checked==true ) { foreach (DataGridViewRow item in dgvApplyOrDoctor.Rows) { item.Cells[0].Value = true; } } else { foreach (DataGridViewRow item in dgvApplyOrDoctor.Rows) { item.Cells[0].Value = false; } } } private void CboOperationSite_SelectedIndexChanged(object sender, EventArgs e) { //ControlExtension.SetOperationSite(CboOperationSite); cboOperationRoom_SelectedIndexChanged(null, null); } } }