/// <summary> /// 门诊各科挂号人次统计报表 /// </summary> /// <param name="BeginDate"></param> /// <param name="EndDate"></param> public bool m_mthDeptReg(string BeginDate, string EndDate, ref DataWindowControl DWC) { bool ret = true; clsDomainConrol_Print objPrint = new clsDomainConrol_Print(); DataTable dtDeptRpt; DataTable dtDeptSort; long l = objPrint.m_lngDepIncomerpt(BeginDate, EndDate, out dtDeptRpt, out dtDeptSort); if (l > 0) { try { DWC.Reset(); DataView DV = new DataView(dtDeptRpt); DataView DV2 = new DataView(dtDeptSort); int prow = 0; string pdeptname = ""; string cdeptname = ""; int Normal1Total = 0; int Normal2Total = 0; int ExpertTotal = 0; int EmerTotal = 0; Hashtable hasPDept = new Hashtable(); for (int i = 0; i < dtDeptSort.Rows.Count; i++) { if (dtDeptSort.Rows[i]["code_vchr"].ToString() != "1") { pdeptname = dtDeptSort.Rows[i]["parentname_vchr"].ToString(); if (pdeptname.Trim() != "" && !hasPDept.ContainsKey(pdeptname)) { prow = DWC.InsertRow(0); DWC.SetItemString(prow, "parentflag", "1"); DWC.SetItemString(prow, "deptname", pdeptname); DV2.RowFilter = "parentname_vchr = '" + pdeptname + "'"; foreach (DataRowView drv in DV2) { cdeptname = drv["deptname_vchr"].ToString(); DV.RowFilter = "deptname_vchr = '" + cdeptname + "'"; //总数 int total = DV.Count; //日诊 DV.RowFilter = "deptname_vchr = '" + cdeptname + "' and trim(planperiod_chr) = '上午'"; int day1 = DV.Count; DV.RowFilter = "deptname_vchr = '" + cdeptname + "' and trim(planperiod_chr) = '下午'"; int day2 = DV.Count; //夜诊 DV.RowFilter = "deptname_vchr = '" + cdeptname + "' and trim(planperiod_chr) = '晚上'"; int day3 = DV.Count; } hasPDept.Add(pdeptname, null); } } else { pdeptname = dtDeptSort.Rows[i]["deptname_vchr"].ToString(); if (pdeptname.Trim() != "" && !hasPDept.ContainsKey(pdeptname)) { ArrayList cdeptarr = new ArrayList(); cdeptarr.Add(pdeptname); hasPDept.Add(pdeptname, cdeptarr); } } } //ArrayList PDeptArr = new ArrayList(); //PDeptArr.AddRange(hasPDept.Keys); //for (int i = 0; i < PDeptArr.Count; i++) //{ // pdeptname = PDeptArr[i].ToString(); // ArrayList CDeptArr = hasPDept[pdeptname] as ArrayList; // prow = DWC.InsertRow(0); // DWC.SetItemString(prow, "parentflag", "1"); // DWC.SetItemString(prow, "deptname", pdeptname); // for (int j = 0; j < CDeptArr.Count; j++) // { // } //} } catch { ret = false; } } objPrint = null; dtDeptRpt = null; dtDeptSort = null; return(ret); }
private void m_mthDepIncomrpt() { DataTable p_dtbRpt = new DataTable(); DataTable p_depdt = new DataTable(); long lngRes = clsDomain.m_lngDepIncomerpt(m_objViewer.m_datFirstdate.Value.ToShortDateString(), m_objViewer.m_datLastdate.Value.ToShortDateString(), out p_dtbRpt, out p_depdt); if (lngRes > 0) { int DaySum = 0; int NightSum = 0; int ExpertSum = 0; int QuickSum = 0; int intParentDay = 0, intParentNight = 0, intParentExport = 0, intParentQuick = 0; int intDay = 0, intNight = 0, intExport = 0, intQuick = 0; ((TextObject)m_rptRpt.ReportDefinition.ReportObjects["fDate"]).Text = "统计日期:" + str_firstDate + " 至 " + str_lasttDate; DataTable m_dtbSource = new DataTable(); m_dtbSource.Columns.Add("strComm1"); m_dtbSource.Columns.Add("decComm1", typeof(int)); m_dtbSource.Columns.Add("decComm2", typeof(int)); m_dtbSource.Columns.Add("decComm3", typeof(int)); m_dtbSource.Columns.Add("decComm4", typeof(int)); m_dtbSource.Columns.Add("decComm5", typeof(int)); int intPatienRow = 0; if (p_depdt.Rows.Count > 0) { string tempDep = ""; for (int i1 = 0; i1 < p_depdt.Rows.Count; i1++) { if (p_depdt.Rows[i1]["code_vchr"].ToString().Trim() != "1" || p_depdt.Rows[i1]["code_vchr"].ToString().Trim() == "1") { #region if (p_depdt.Rows[i1]["parentname_vchr"].ToString().Trim() != tempDep.Trim()) { tempDep = p_depdt.Rows[i1]["parentname_vchr"].ToString(); if (i1 != 0) { m_dtbSource.Rows[intPatienRow]["decComm1"] = intParentDay; m_dtbSource.Rows[intPatienRow]["decComm2"] = intParentNight; m_dtbSource.Rows[intPatienRow]["decComm3"] = intParentExport; m_dtbSource.Rows[intPatienRow]["decComm4"] = intParentQuick; } //DaySum += intParentDay; //NightSum += intParentNight; //ExpertSum += intParentExport; //QuickSum += intParentQuick; m_dtbSource.Rows.Add(new object[] { tempDep, intParentExport, intParentQuick, intParentNight, intParentDay, 1 }); intPatienRow = m_dtbSource.Rows.Count - 1; intParentExport = 0; intParentQuick = 0; intParentNight = 0; intParentDay = 0; } DataRow[] ArrRow = p_dtbRpt.Select("deptname_vchr='" + p_depdt.Rows[i1]["deptname_vchr"].ToString() + "'"); intExport = 0; intQuick = 0; intNight = 0; intDay = 0; foreach (DataRow dr in ArrRow) { if (dr["registertypeid_chr"].ToString().Trim() == "0002") //专家号 { #region MyRegion if (dr["flag_int"].ToString().Trim() == "3") //退票 { intExport--; } else //正常 还原 { intExport++; } #endregion } else if (dr["registertypeid_chr"].ToString().Trim() == "0003") //急诊号 { #region MyRegion if (dr["flag_int"].ToString().Trim() == "3") //退票 { intQuick--; } else //正常 还原 { intQuick++; } #endregion } else //普通号 { #region MyRegion if (dr["flag_int"].ToString().Trim() == "3") //退票 { if (dr["planperiod_chr"].ToString().Trim() == "晚上") { intNight--; } else { intDay--; } } else // 正常 还原 { if (dr["planperiod_chr"].ToString().Trim() == "晚上") { intNight++; } else { intDay++; } } #endregion } } m_dtbSource.Rows.Add(new object[] { " " + p_depdt.Rows[i1]["DEPTNAME_VCHR"].ToString(), intDay, intNight, intExport, intQuick, 0 }); intParentExport += intExport; intParentQuick += intQuick; intParentNight += intNight; intParentDay += intDay; DaySum += intDay; NightSum += intNight; ExpertSum += intExport; QuickSum += intQuick; #endregion } else { tempDep = ""; DataRow[] seleRow = p_depdt.Select("PARENTNAME_VCHR='" + p_depdt.Rows[i1]["deptname_vchr"].ToString() + "'"); if (seleRow.Length == 0) { DataRow[] ArrRow = p_dtbRpt.Select("deptname_vchr='" + p_depdt.Rows[i1]["deptname_vchr"].ToString() + "'"); intExport = 0; intQuick = 0; intNight = 0; intDay = 0; foreach (DataRow dr in ArrRow) { if (dr["registertypeid_chr"].ToString().Trim() == "0002") //专家号 { #region MyRegion if (dr["flag_int"].ToString().Trim() == "3") //退票 { intExport--; } else //正常 还原 { intExport++; } #endregion } else if (dr["registertypeid_chr"].ToString().Trim() == "0003") //急诊号 { #region MyRegion if (dr["flag_int"].ToString().Trim() == "3") //退票 { intQuick--; } else //正常 还原 { intQuick++; } #endregion } else //普通号 { #region MyRegion if (dr["flag_int"].ToString().Trim() == "3") //退票 { if (dr["planperiod_chr"].ToString().Trim() == "晚上") { intNight--; } else { intDay--; } } else // 正常 还原 { if (dr["planperiod_chr"].ToString().Trim() == "晚上") { intNight++; } else { intDay++; } } #endregion } } m_dtbSource.Rows.Add(new object[] { p_depdt.Rows[i1]["DEPTNAME_VCHR"].ToString(), intDay, intNight, intExport, intQuick, 0 }); intParentExport += intExport; intParentQuick += intQuick; intParentNight += intNight; intParentDay += intDay; DaySum += intDay; NightSum += intNight; ExpertSum += intExport; QuickSum += intQuick; } } } } m_dtbSource.Rows[intPatienRow]["decComm1"] = intParentDay; m_dtbSource.Rows[intPatienRow]["decComm2"] = intParentNight; m_dtbSource.Rows[intPatienRow]["decComm3"] = intParentExport; m_dtbSource.Rows[intPatienRow]["decComm4"] = intParentQuick; m_rptRpt.SetDataSource(m_dtbSource); ((TextObject)m_rptRpt.ReportDefinition.ReportObjects["txtDaySum"]).Text = DaySum.ToString(); ((TextObject)m_rptRpt.ReportDefinition.ReportObjects["txtNightSum"]).Text = NightSum.ToString(); ((TextObject)m_rptRpt.ReportDefinition.ReportObjects["txtComSum"]).Text = Convert.ToString(DaySum + NightSum); ((TextObject)m_rptRpt.ReportDefinition.ReportObjects["txtExpertSum"]).Text = ExpertSum.ToString(); ((TextObject)m_rptRpt.ReportDefinition.ReportObjects["txtQuickSum"]).Text = QuickSum.ToString(); ((TextObject)m_rptRpt.ReportDefinition.ReportObjects["txtTotal"]).Text = Convert.ToString(DaySum + NightSum + ExpertSum + QuickSum); m_rptRpt.Refresh(); m_objViewer.cryReportViewer.ReportSource = m_rptRpt; m_dtbSource = null; } else { MessageBox.Show("加载数据时出错!!", "iCare", MessageBoxButtons.OK, MessageBoxIcon.Error); } return; }