Esempio n. 1
0
        /// <summary>
        /// 打开新窗体前询问是否保存原有窗体
        /// </summary>
        /// <returns></returns>
        public bool m_blnIsSaveBeforeNewForm()
        {
            bool blnIsCancle = false;

            frmHRPBaseForm hrpForm = clsEMRLogin.s_FrmMDI.ActiveMdiChild as frmHRPBaseForm;

            if (hrpForm == null)
            {
                return(false);
            }

            hrpForm.m_blnNotClickWindows = true;

            if (!hrpForm.m_blnHasClosing && !hrpForm.TopLevel)
            {
                DialogResult dlgResult = DialogResult.None;
                if (!MDIParent.s_ObjSaveCue.m_blnCheckStatusSame(hrpForm))
                {
                    if (MDIParent.s_ObjCurrentPatient != null && MDIParent.s_ObjCurrentPatient.m_IntCharacter == 1)
                    {
                        dlgResult = DialogResult.No;
                    }
                    else
                    {
                        dlgResult = clsPublicFunction.ShowQuestionMessageBox("[" + hrpForm.Text + "]做了改动,是否保存?", MessageBoxButtons.YesNoCancel);

                        //dlgResult = DialogResult.Yes;
                    }

                    if (dlgResult == DialogResult.Yes)
                    {
                        long lngRes = hrpForm.m_lngSave();
                        //保存完成后将该窗体关闭
                        if (lngRes > 0)
                        {
                            hrpForm.Close();
                        }
                    }
                    else if (dlgResult == DialogResult.Cancel)
                    {
                        blnIsCancle = true;
                        hrpForm.m_blnNotClickWindows = false;
                        return(blnIsCancle);
                    }
                }
            }
            return(blnIsCancle);
        }
Esempio n. 2
0
        /// <summary>
        /// 保存窗体记录
        /// </summary>
        /// <param name="p_frmNeedSaveCue">需要保存的窗体</param>
        private void m_mthHandleSaveCue(Form p_frmNeedSaveCue, CancelEventArgs e)
        {
            try
            {
                //取窗体名称+当前住院号,已实现一个病人只能打开同样一个窗体功能
                string strHash = p_frmNeedSaveCue.Name + com.digitalwave.emr.BEDExplorer.frmHRPExplorer.objpCurrentPatient.m_strINPATIENTID_CHR;

                Hashtable hasStatus = (Hashtable)m_hasFormInfo[strHash.GetHashCode()];

                if (hasStatus == null)
                {
                    return;
                }



                //检查窗体状态是否改变
                bool blnIsSame = m_blnCheckStatusSame(p_frmNeedSaveCue, hasStatus);


                //窗体状态改变,提示保存,如需要保存,调用保存功能
                if (!blnIsSame && p_frmNeedSaveCue.DialogResult != DialogResult.Yes)
                {
                    frmHRPBaseForm frmBase = p_frmNeedSaveCue as frmHRPBaseForm;
                    if (frmBase != null)
                    {
                        frmBase.m_blnHasClosing = true;
                    }
                    //if (p_frmNeedSaveCue is frmHRPBaseForm)
                    //{
                    //    ((frmHRPBaseForm)p_frmNeedSaveCue).m_blnHasClosing = true;
                    //}

                    DialogResult dlgResult = DialogResult.None;

                    if (MDIParent.s_ObjCurrentPatient != null && MDIParent.s_ObjCurrentPatient.m_IntCharacter == 1)
                    {
                        dlgResult = DialogResult.No;
                    }
                    else
                    {
                        dlgResult = clsPublicFunction.ShowQuestionMessageBox("[" + p_frmNeedSaveCue.Text + "]做了改动,是否保存?", MessageBoxButtons.YesNoCancel);
                    }

                    if (dlgResult == DialogResult.Yes)
                    {
                        #region yes
                        if (p_frmNeedSaveCue is frmPatientInfoManage)
                        {
                            ((frmPatientInfoManage)p_frmNeedSaveCue).m_mthSave();
                        }
                        else if (p_frmNeedSaveCue is iCareBaseForm.frmPatientRecordForm)
                        {
                            ((iCareBaseForm.frmPatientRecordForm)p_frmNeedSaveCue).m_mthSave();
                        }
                        else if (p_frmNeedSaveCue is frmRecordsBase)
                        {
                            ((frmRecordsBase)p_frmNeedSaveCue).Save();
                        }
                        else
                        {
                            //frmHRPBaseForm frmBase = p_frmNeedSaveCue as frmHRPBaseForm;

                            if (frmBase != null)
                            {
                                if (frmBase.m_lngSave() > 0)
                                {
                                    frmBase.DialogResult = DialogResult.Yes;
                                }
                            }
                            else
                            {
                                PublicFunction objPF = p_frmNeedSaveCue as PublicFunction;

                                if (objPF != null)
                                {
                                    objPF.Save();
                                    if (frmBase != null)
                                    {
                                        frmBase.DialogResult = DialogResult.Yes;
                                    }
                                }
                            }
                        }

                        m_hasFormInfo.Remove(strHash.GetHashCode());
                        #endregion
                    }
                    else if (dlgResult == DialogResult.No)
                    {
                        #region no
                        m_hasFormInfo.Remove(strHash.GetHashCode());
                        #endregion
                    }
                    else if (dlgResult == DialogResult.Cancel)
                    {
                        #region cancel
                        e.Cancel = true;

                        if (frmBase != null)
                        {
                            frmBase.m_blnHasClosing = false;
                        }
                        //if (p_frmNeedSaveCue is frmHRPBaseForm)
                        //{
                        //    ((frmHRPBaseForm)p_frmNeedSaveCue).m_blnHasClosing = false;
                        //}
                        #endregion
                    }
                }
                else
                {
                    m_hasFormInfo.Remove(strHash.GetHashCode());
                }
            }
            catch
            {
                //若没有设置当前病人抛出
                return;
            }
        }