300 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			300 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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
 | ||
|     {
 | ||
|         /// <summary>
 | ||
|         /// 病历号
 | ||
|         /// </summary>
 | ||
|         public string patCaseNO = "";
 | ||
|         /// <summary>
 | ||
|         /// 患者姓名
 | ||
|         /// </summary>
 | ||
|         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<int> GetSelectIds()
 | ||
|         {
 | ||
|             List<int> opas = new List<int>();
 | ||
|             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<int> 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<int> 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(); 
 | ||
|         }
 | ||
| 
 | ||
|         /// <summary>
 | ||
|         /// 返回指定格式的日期
 | ||
|         /// </summary>
 | ||
|         /// <param name="dt">传入的日期</param>
 | ||
|         /// <param name="flag">标记,begin,end,其它任务标记全返回输入的日期</param>
 | ||
|         /// <returns></returns>
 | ||
|         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);
 | ||
|         }
 | ||
|     }
 | ||
| }
 |