Exemplo n.º 1
0
        /// <summary>
        /// 保存CI, 并切换到下一个CI
        /// </summary>
        public void ClearCurrentEms()
        {
            bool deleateflag  = false;
            int  deleateindex = -1;

            //emsDO = null;// 不能在这里面,因为会影响草药
            if (currentEmsControl != null)
            {
                splitContainer1.RemoveRender(currentEmsControl);
                for (int index = 0; index < emsIndexAndButtonArea.IndexRenderList.Count; index++)
                {
                    if (deleateflag)
                    {
                        if (index == deleateindex)
                        {
                            emsIndexAndButtonArea.IndexRenderList[index].Crossflag = false;
                            emsIndexAndButtonArea.IndexRenderList[index].Editflag  = true;
                            this.emsDO = emsIndexAndButtonArea.IndexRenderList[index].Ci.EmsHeadDO;
                            this.dto   = emsIndexAndButtonArea.IndexRenderList[index].Ci.CiEmsDTO;
                            //this.splitContainer1.Panel1.Controls.Add(render.Ci);
                            emsIndexAndButtonArea.IndexRenderList[index].Ci.Dock  = DockStyle.None;
                            emsIndexAndButtonArea.IndexRenderList[index].Location = TMPrender.Location;
                            TMPrender         = emsIndexAndButtonArea.IndexRenderList[index];
                            currentEmsControl = emsIndexAndButtonArea.IndexRenderList[index].Ci;
                            this.splitContainer1.AddControl(emsIndexAndButtonArea.IndexRenderList[index].Ci, xap.cli.sdk.controls.ControlPosition.Center);
                        }
                        else
                        {
                            emsIndexAndButtonArea.IndexRenderList[index].Location = new Point(emsIndexAndButtonArea.IndexRenderList[index - 1].Location.X + 40, emsIndexAndButtonArea.IndexRenderList[index - 1].Location.Y);
                        }
                        emsIndexAndButtonArea.IndexRenderList[index].Invalidate();
                    }
                    else if (emsIndexAndButtonArea.IndexRenderList[index].Editflag)
                    {
                        this.emsList.Remove(emsIndexAndButtonArea.IndexRenderList[index].ID);
                        emsIndexAndButtonArea.xapScrollBarPanel1.RemoveRender(emsIndexAndButtonArea.IndexRenderList[index]);
                        TMPrender = emsIndexAndButtonArea.IndexRenderList[index];
                        emsIndexAndButtonArea.IndexRenderList.Remove(emsIndexAndButtonArea.IndexRenderList[index]);
                        deleateflag  = true;
                        deleateindex = index--;
                    }
                }
                emsIndexAndButtonArea.xapScrollBarPanel1.Invalidate();
            }
            GC.Collect();
        }
Exemplo n.º 2
0
        /// <summary>
        /// 关闭某个医疗单
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void orCom_deleteevent(object sender, EventArgs e)
        {
            //处理
            List <XRoundRender> list         = new List <XRoundRender>();
            XRoundRender        activeRender = null;

            foreach (XRoundRender render in  emsIndexAndButtonArea.IndexRenderList)
            {
                if (!render.Editflag)
                {
                    list.Add(render);
                }
                else
                {
                    activeRender = render;
                    emsIndexAndButtonArea.xapScrollBarPanel1.RemoveRender(render); //只有处于编辑状态的是激活的,删除的也是这个
                }
            }
            //按钮区已删除,处理上边对应的view区域
            if (activeRender != null)
            {
                XRoundRender nextRender = GetNextActiveRender(activeRender);
                if (nextRender == null)
                {
                    emsDO = null;
                    this.splitContainer1.RemoveRender(this.EmsIndexAndButtonArea); //清除“确认”、“取消”按钮
                    this.tabNaviControl.CanShowForm = false;
                    this.ClearEmsList();                                           //清空数据
                    this.tabNaviControl.TabNavigationForm.Close();                 //关闭右缩面板
                }
                else
                {
                    nextRender.Editflag = true;
                    this.emsDO          = nextRender.Ci.EmsHeadDO;
                    this.dto            = nextRender.Ci.CiEmsDTO;
                    nextRender.Ci.Dock  = DockStyle.None;
                    TMPrender           = nextRender;
                    currentEmsControl   = nextRender.Ci;
                    orderItemView.SetTabText(currentEmsControl.SheetName);
                    this.splitContainer1.AddControl(nextRender.Ci, xap.cli.sdk.controls.ControlPosition.Center);
                }
            }
            emsIndexAndButtonArea.IndexRenderList = list; //zzj,最好能直接删除,不要这样直接替换,能够节约内存
            emsIndexAndButtonArea.xapScrollBarPanel1.Invalidate();
        }
Exemplo n.º 3
0
        /// <summary>
        /// 获取下一个医疗单
        /// </summary>
        /// <param name="render"></param>
        /// <returns></returns>
        private XRoundRender GetNextActiveRender(XRoundRender render)
        {
            //获取当前关闭对像的索引
            int index = emsIndexAndButtonArea.IndexRenderList.IndexOf(render);

            XRoundRender nextRender;

            if (index < 0)
            {
                return(null);
            }
            else if (index == 0)
            {
                if (emsIndexAndButtonArea.IndexRenderList.Count > 1)
                {
                    nextRender = emsIndexAndButtonArea.IndexRenderList[1];
                }
                else
                {
                    return(null);
                }
            }
            else
            {
                if (index + 1 < emsIndexAndButtonArea.IndexRenderList.Count)
                {
                    //先往后寻找,找到了直接是后面的
                    nextRender = emsIndexAndButtonArea.IndexRenderList[index + 1];
                }
                else
                {
                    //后面没有了,往前定位
                    if (index - 1 == 0)
                    {
                        //没有前面的直接定位到0
                        nextRender = emsIndexAndButtonArea.IndexRenderList[0];
                    }
                    else
                    {
                        nextRender = emsIndexAndButtonArea.IndexRenderList[index - 1];
                    }
                }
            }
            return(nextRender);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 单击多医疗单情况下的底下的索引序号
        /// </summary>
        /// <param name="sender">点的是哪个序号的控件</param>
        /// <param name="e"></param>
        private void orCom_MouseClick(object sender, MouseEventArgs e)
        {
            if (TMPrender != null)
            {
                TMPrender.Invalidate();
            }
            //splitContainer1.Panel1.Controls.Clear();

            XRoundRender render = sender as XRoundRender;

            //做校验的地方
            foreach (XRoundRender Pastrender in emsIndexAndButtonArea.IndexRenderList)
            {
                if (Pastrender.Equals(render))
                {
                    Pastrender.Crossflag = false;
                    Pastrender.Editflag  = true;
                    //currentEmsControl.OnRefreshData(this.UiEmsDict[Pastrender.ID] as EmsUIDTO, this.UiEmsDict[Pastrender.ID] as CiEmsDTO);
                    Pastrender.Ci.EmsHeadDO = this.UiEmsDict[Pastrender.ID] as EmsUIDTO;
                    Pastrender.Ci.CiEmsDTO  = this.CiEmsDict[Pastrender.ID] as CiEmsDTO;

                    this.emsDO = Pastrender.Ci.EmsHeadDO;
                    this.dto   = Pastrender.Ci.CiEmsDTO;
                    //this.splitContainer1.Panel1.Controls.Add(render.Ci);
                    render.Ci.Dock    = DockStyle.None;
                    currentEmsControl = Pastrender.Ci;
                    //界面更换完毕后要刷新界面,否则数据无法显示
                    currentEmsControl.OnRefreshData(this.UiEmsDict[Pastrender.ID] as EmsUIDTO, this.CiEmsDict[Pastrender.ID] as CiEmsDTO);
                    orderItemView.SetTabText(currentEmsControl.SheetName);
                    this.splitContainer1.AddControl(Pastrender.Ci, xap.cli.sdk.controls.ControlPosition.Center);
                }
                else
                {
                    if (Pastrender.Editflag)
                    {
                        Pastrender.Editflag = false;
                    }
                }
                // TMPrender = render; //zzj:这句没必要放循环里,因为每次都是一样的
            }
            TMPrender = render; //zzj:这句没必要放循环里,因为每次都是一样的
        }
Exemplo n.º 5
0
        /// <summary>
        /// 多医疗单处理,医疗单入口
        /// </summary>
        /// <param name="dataList">医嘱对象集合(第一个不是医嘱,是医嘱的数据来源)</param>
        /// <param name="patientsDto">患者信息DTO</param>
        /// <param name="tabNaviControl">右缩面板对象</param>
        public void ManyRecordSheet(List <Object> dataList, Ent4BannerDTO patientsDto, TabNavigatorControl tabNaviControl)
        {
            this.emsList.Clear();
            this.ciControlNameDict.Clear();
            this.UiEmsDict.Clear();
            this.CiEmsDict.Clear();
            this.ctls.Clear();
            this.emsIndexAndButtonArea.DataSource.Clear();
            if (this.emsDO != null)
            {
                this.emsDO.Emsdrugs.EmsOrDrugList.Clear();
            }

            this.tabNaviControl = tabNaviControl;
            if (dataList != null && dataList.Count > 0 && patientsDto != null)
            {
                ParseOrderDataFrom(dataList);

                for (int i = 1; i < dataList.Count; ++i)
                {
                    // 默认医疗单
                    this.SetEmsFromOrdOrSrv(dataList[i], patientsDto);
                    emsList.Add(i + "", ciControl);
                    this.UiEmsDict.Add(i + "", this.emsDO);
                    this.CiEmsDict.Add(i + "", this.dto);
                    ciControlNameDict.Add(i + "", SheetName);
                }

                // 处理多医疗单显示
                emsIndexAndButtonArea.RenderVisable = true;
                emsIndexAndButtonArea.Dock          = DockStyle.None;
                if (emsList.Count > 1)
                {
                    emsIndexAndButtonArea.DataSource = emsList;
                    emsIndexAndButtonArea.NameDict   = ciControlNameDict;
                    emsIndexAndButtonArea.IndexRenderList[emsIndexAndButtonArea.IndexRenderList.Count - 1].Crossflag = false;
                    TMPrender = emsIndexAndButtonArea.IndexRenderList[emsIndexAndButtonArea.IndexRenderList.Count - 1];
                    emsIndexAndButtonArea.IndexRenderList[emsIndexAndButtonArea.IndexRenderList.Count - 1].Editflag = true;
                    this.emsDO = emsIndexAndButtonArea.IndexRenderList[emsIndexAndButtonArea.IndexRenderList.Count - 1].Ci.EmsHeadDO;
                    //this.splitContainer1.SplitterDistance = 427;
                    //splitContainer1.BottomWidth = 75;
                    emsIndexAndButtonArea.xapScrollBarPanel1.Invalidate();
                    this.splitContainer1.AddControl(emsIndexAndButtonArea, xap.cli.sdk.controls.ControlPosition.Bottom, 71);
                }
                else
                {
                    foreach (XRoundRender Pastrender in emsIndexAndButtonArea.IndexRenderList)
                    {
                        emsIndexAndButtonArea.xapScrollBarPanel1.RemoveRender(Pastrender);
                    }
                    emsIndexAndButtonArea.IndexRenderList.Clear();
                    emsIndexAndButtonArea.RenderVisable = false;
                    //this.splitContainer1.SplitterDistance = 460;
                    splitContainer1.BottomWidth = 40;
                    emsIndexAndButtonArea.xapScrollBarPanel1.Invalidate();
                    this.splitContainer1.AddControl(emsIndexAndButtonArea, xap.cli.sdk.controls.ControlPosition.Bottom, 40);
                }
                //this.splitContainer1.Panel2.Controls.Add(orCom);
                //不要在这里注册,每次注册都会累加(位置调整到创建emsIndexAndButtonArea的位置,确保只创建一次 wzz)
                //emsIndexAndButtonArea.RounderClick += new MouseEventHandler(orCom_MouseClick);
                //emsIndexAndButtonArea.DeleteEvent += new EventHandler(orCom_deleteevent);
            }
        }