Пример #1
0
        /// <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);
        }
Пример #2
0
        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;
        }