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