Ejemplo n.º 1
0
        /// <summary>
        /// 模板内容赋值
        /// </summary>
        /// <param name="p_objTemplateSetContent">模板内容</param>
        /// <param name="p_intIndex">常用值插入点</param>
        /// <param name="p_intHash">需要从中间插入内容的RichTextBox的hashCode</param>
        public void m_mthLoadTemplateset(clsTemplatesetContentValue [] p_objTemplateSetContent, int p_intIndex, int p_intHash)
        {
            if (p_objTemplateSetContent == null || p_objTemplateSetContent.Length <= 0)
            {
                return;
            }

            #region 替换数据复用内容
            ArrayList arlTemp = new ArrayList();
            for (int i = 0; i < p_objTemplateSetContent.Length; i++)
            {
                arlTemp.Add(p_objTemplateSetContent[i].m_strContent);
            }
            string[] strContentArr = (string[])arlTemp.ToArray(typeof(string));
            com.digitalwave.Emr.Utility.DataShare.clsDataShareReplace.s_mthReplaceDataShareValue(MDIParent.s_ObjCurrentPatient, ref strContentArr);
            #endregion

            for (int i = 0; i < p_objTemplateSetContent.Length; i++)
            {
                for (int j = 0; j < m_intTemplateNumber; j++)
                {
                    Control txtBox     = m_objControlCollection[j];
                    string  strContent = strContentArr[i];
                    if (txtBox != null && p_objTemplateSetContent[i].m_strControl_ID == m_strControlIDCollection[j])
                    {
                        switch (txtBox.GetType().FullName)
                        {
                        case "System.Windows.Forms.RichTextBox":
                        case "iCare.CustomForm.ctlRichTextBox":
                            if (p_intIndex == -1)
                            {
                                txtBox.Text = strContent;
                            }
                            else
                            {
                                txtBox.Text = txtBox.Text.Replace("mb.", "");
                                if (txtBox.GetHashCode() == p_intHash)
                                {
                                    txtBox.Text = txtBox.Text.Insert(p_intIndex, strContent);
                                }
                                else
                                {
                                    txtBox.Text += strContent;
                                }
                            }
                            break;

                        case "com.digitalwave.Utility.Controls.ctlRichTextBox":
                            com.digitalwave.Utility.Controls.ctlRichTextBox ctlTxt = (com.digitalwave.Utility.Controls.ctlRichTextBox)txtBox;

                            int intMaxLength = ctlTxt.MaxLength;
                            if (strContent != null && strContent.Length > intMaxLength)
                            {
                                strContent = strContent.Substring(0, intMaxLength);
                            }
                            if (p_intIndex == -1)
                            {
                                //如果手术记录单的手术名称有内容,保持其内容不变
                                if (txtBox.FindForm().Name == "frmOperationRecordDoctor" && txtBox.Name == "m_txtOperationName" && txtBox.Text.Trim() != "")
                                {
                                    break;
                                }

                                //int intLength = ctlTxt.Text.Length;
                                ctlTxt.m_mthClearText();
                                ctlTxt.m_mthInsertText(strContent, 0);
                            }
                            else
                            {
                                ctlTxt.m_mthReplace("mb.", "");

                                if (txtBox.GetHashCode() == p_intHash)
                                {
                                    ctlTxt.m_mthInsertText(strContent, p_intIndex);
                                }
                                else
                                {
                                    int intLength = ctlTxt.Text.Length;
                                    ctlTxt.m_mthInsertText(strContent, intLength);
                                }
                            }
                            break;

                        case "com.digitalwave.controls.ctlRichTextBox":
                            com.digitalwave.controls.ctlRichTextBox ctlTxt2 = (com.digitalwave.controls.ctlRichTextBox)txtBox;

                            int intMaxLength2 = ctlTxt2.MaxLength;
                            if (strContent != null && strContent.Length > intMaxLength2)
                            {
                                strContent = strContent.Substring(0, intMaxLength2);
                            }
                            if (p_intIndex == -1)
                            {
                                //如果手术记录单的手术名称有内容,保持其内容不变
                                if (txtBox.FindForm().Name == "frmOperationRecordDoctor" && txtBox.Name == "m_txtOperationName" && txtBox.Text.Trim() != "")
                                {
                                    break;
                                }

                                //int intLength1 = ctlTxt2.Text.Length;
                                ctlTxt2.m_mthClearText();
                                ctlTxt2.m_mthInsertText(strContent, 0);
                            }
                            else
                            {
                                ctlTxt2.m_mthReplace("mb.", "");

                                if (txtBox.GetHashCode() == p_intHash)
                                {
                                    ctlTxt2.m_mthInsertText(strContent, p_intIndex);
                                }
                                else
                                {
                                    int intLength1 = ctlTxt2.Text.Length;
                                    ctlTxt2.m_mthInsertText(strContent, intLength1);
                                }
                            }
                            break;

                        case "com.digitalwave.Utility.Controls.ctlComboBox":
                            com.digitalwave.Utility.Controls.ctlComboBox ctlBox = txtBox as com.digitalwave.Utility.Controls.ctlComboBox;
                            ctlBox.Text = strContent;
                            break;

                        default:
                            txtBox.Text = strContent;
                            break;
                        }
                        break;
                    }
                }
            }

//			clsDataShareTool.s_mthSetDataShare(MDIParent.s_ObjCurrentPatient,m_objControlCollection);
        }