AIMS/AIMS/OperationFront/frmSelectiveOperationsPrint.cs
2023-03-26 01:54:34 +08:00

289 lines
12 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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)
{
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 (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;
}
}
}
}
}