Пример #1
0
        /// <summary>
        /// 剂量控件数据修改前判断数据合法性
        /// 验证剂量控件输入或复制到控件的数据是否合法,如果不合法不改变剂量值
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void ctrl_ValueTextChanging(object sender, ChangingEventArgs e)
        {
            XComboBoxUnit comboBoxUnit = sender as XComboBoxUnit;

            if (comboBoxUnit == null)
            {
                return;
            }

            // 验证剂量只能是数字,保留4为小数
            string regextext = @"^(\d+)(\.)?(\d{1,4})?$";
            Regex  regex     = new Regex(regextext, RegexOptions.None);

            if (e.NewValue == null || string.IsNullOrEmpty(e.NewValue.ToString()))
            {
                return;
            }

            bool isMatch = regex.IsMatch(e.NewValue.ToString());

            if (!isMatch)
            {
                e.Cancel = true;
            }
        }
Пример #2
0
        protected override void editorWillAppear(object rowDataSource, XBaseUserRender ctrl)
        {
            EmsOrDrug drug = rowDataSource as EmsOrDrug;

            if (null != drug)
            {
                XComboBoxUnit xComboBoxUnit = ctrl as XComboBoxUnit;
                string        sd_mmbind_op  = drug.Sd_mmbind_op;
                //开立绑定可以编辑
                xComboBoxUnit.UnitIsEnable = (!string.IsNullOrEmpty(sd_mmbind_op) && sd_mmbind_op.Equals("0")) ? true : false;
                //if (xComboBoxUnit.ValueUnit.Length > 0)
                //{
                Dictionary <object, string> items = new Dictionary <object, string>();
                items.Add(drug.Id_unit_med + "," + "1", drug.Name_unit_med);
                if (drug.Id_unit_base != null && !drug.Id_unit_base.Equals(drug.Id_unit_med))
                {
                    items.Add(drug.Id_unit_base + "," + drug.Factor_mb, drug.Name_unit_base);
                }

                xComboBoxUnit.DataSource = items;
                //}
                xComboBoxUnit.ValueText = (drug.Quan_medu_virtual == null ? null : drug.Quan_medu_virtual.ToString());
                xComboBoxUnit.ValueUnit = (drug.Name_unit_medu_virtual == null ? "" : drug.Name_unit_medu_virtual);
                // 自定义控件需要传递编辑完成后该列的错误信息
                setColumnForeColor(drug, ctrl);
            }
        }
Пример #3
0
        /// <summary>
        /// 剂量单位和数值发生变化时重新设置quan_medu的值
        /// </summary>
        /// <param name="xComboBoxUnit"></param>
        /// <param name="drug"></param>
        protected void setQuanMedu(XComboBoxUnit xComboBoxUnit, EmsOrDrug drug)
        {
            int selectIndex = xComboBoxUnit.SelectIndex;

            /* if (selectIndex==0)//*/
            //控件的 xComboBoxUnit.SelectIndex的值有问题 改为xComboBoxUnit.ValueUnit来判断
            if (xComboBoxUnit.ValueUnit == drug.Name_unit_med)
            {
                if (drug.Quan_medu_virtual != null)
                {
                    drug.Quan_med = drug.Quan_medu_virtual;
                }
                else
                {
                    drug.Quan_med = null;
                }
            }
            else /* if (selectIndex == 1)//*/ //if (xComboBoxUnit.ValueUnit == drug.Name_unit_med)
            {
                if (drug.Quan_medu_virtual != null && drug.Factor_mb != null)
                {
                    drug.Quan_med = drug.Quan_medu_virtual * drug.Factor_mb;
                }
                else
                {
                    drug.Quan_med = null;
                }
            }
        }
Пример #4
0
        protected override void initCellControlFormat(XBaseUserRender ctrl)
        {
            base.initCellControlFormat(ctrl);
            XComboBoxUnit xComboBoxUnit = ctrl as XComboBoxUnit;

            xComboBoxUnit.MaxInputNumber = 99999999.9999; // 最大长度8位整型
        }
Пример #5
0
        protected override void initCellControlFormat(XBaseUserRender ctrl)
        {
            XComboBoxUnit xComboBoxUnit = ctrl as XComboBoxUnit;

            xComboBoxUnit.ComboboxWidthPercent = 0.38;
            xComboBoxUnit.TextAlignment        = System.Windows.Forms.HorizontalAlignment.Right;
            xComboBoxUnit.UnitIsEnable         = false; // 禁用单位编辑
        }
Пример #6
0
        protected override void editorWillDisappear(object rowDataSource, XBaseUserRender ctrl)
        {
            XComboBoxUnit xComboBoxUnit = ctrl as XComboBoxUnit;
            CiordubDTO    btitemdo      = rowDataSource as CiordubDTO;

            if (null != btitemdo)
            {
                btitemdo.Quan_medu = ((xComboBoxUnit.ValueText == null || xComboBoxUnit.ValueText.Length == 0) ? 0 : Double.Parse(xComboBoxUnit.ValueText));
                btitemdo.Name_unit = xComboBoxUnit.ValueUnit;
            }
        }
Пример #7
0
        protected override void editorWillAppear(object rowDataSource, XBaseUserRender ctrl)
        {
            CiordubDTO btitemdo = rowDataSource as CiordubDTO;

            if (null != btitemdo)
            {
                XComboBoxUnit xComboBoxUnit = ctrl as XComboBoxUnit;
                xComboBoxUnit.ValueText = btitemdo.Quan_medu == null ? "" : btitemdo.Quan_medu.ToString();
                xComboBoxUnit.ValueUnit = btitemdo.Name_unit;
            }
        }
        protected override void editorWillDisappear(object rowDataSource, XBaseUserRender ctrl)
        {
            XComboBoxUnit  xComboBoxUnit = ctrl as XComboBoxUnit;
            CiOrdFeeSrvDTO drug          = rowDataSource as CiOrdFeeSrvDTO;

            if (null != drug)
            {
                double quan_med = ((xComboBoxUnit.ValueText == null || xComboBoxUnit.ValueText.Length == 0) ? 0 : Double.Parse(xComboBoxUnit.ValueText));
                drug.Quan_med      = quan_med == 0 ? 0.001 : quan_med;
                drug.Name_unit_med = xComboBoxUnit.ValueUnit;
            }
        }
Пример #9
0
        protected override void editorWillDisappear(object rowDataSource, XBaseUserRender ctrl)
        {
            XComboBoxUnit  xComboBoxUnit = ctrl as XComboBoxUnit;
            CiOrdFeeSrvDTO drug          = rowDataSource as CiOrdFeeSrvDTO;

            if (null != drug)
            {
                drug.Quan_total_medu = ((xComboBoxUnit.ValueText == null || xComboBoxUnit.ValueText.Length == 0) ? 0 : Double.Parse(xComboBoxUnit.ValueText));
                drug.Name_unit_sale  = xComboBoxUnit.ValueUnit;
                drug.Id_unit_sale    = xComboBoxUnit.SelectKey.ToString();
            }
        }
Пример #10
0
        protected override void initCellControlFormat(XBaseUserRender ctrl)
        {
            XComboBoxUnit xComboBoxUnit = ctrl as XComboBoxUnit;

            //xComboBoxUnit.ComboboxWidthPercent = 0.38;
            xComboBoxUnit.TextAlignment = System.Windows.Forms.HorizontalAlignment.Right;

            //xComboBoxUnit.MinInputNumber = 0.001;
            xComboBoxUnit.MaxInputNumber = 99999999.9999;
            xComboBoxUnit.NullFlag       = false;
            xComboBoxUnit.HasError       = false;
        }
Пример #11
0
        /// <summary>
        /// 总量单位
        /// </summary>
        /// <param name="rowDataSource"></param>
        /// <param name="ctrl"></param>
        protected override void editorWillAppear(Object rowDataSource, XBaseUserRender ctrl)
        {
            XComboBoxUnit xComboBoxUnit = ctrl as XComboBoxUnit;
            EmsOrDrug     drug          = rowDataSource as EmsOrDrug;

            if (null != drug)
            {
                //if (xComboBoxUnit.ValueUnit.Length > 0)
                //{
                Dictionary <object, string> items = new Dictionary <object, string>();
                //items.Add(drug.Id_unit_sale, drug.Name_unit_sale);
                FMap fmap = drug.Relativefieldmap;
                if (fmap == null)
                {
                    if (drug.Id_unit_sale != null)
                    {
                        items.Add(drug.Id_unit_sale, drug.Name_unit_sale);
                    }
                    else
                    {
                        items.Add("", drug.Name_unit_sale);
                    }
                }
                else
                {
                    string idstr     = (string)fmap[CiDictCodeConst.EMSORDRUG_RELATIVE_FIELD_ID_MEASDOC];
                    string namestr   = (string)fmap[CiDictCodeConst.EMSORDRUG_RELATIVE_FIELD_MEASDOC_NAME];
                    string factorstr = (string)fmap["factor"];
                    if (!string.IsNullOrEmpty(idstr) && !string.IsNullOrEmpty(namestr) && !string.IsNullOrEmpty(factorstr))
                    {
                        string[] ids     = idstr.Split(new char[] { ',' });
                        string[] names   = namestr.Split(new char[] { ',' });
                        string[] factors = factorstr.Split(',');
                        for (int i = 0; i < ids.Length; i++)
                        {
                            if (!items.ContainsKey(ids[i] + "," + factors[i]))
                            {
                                items.Add(ids[i] + "," + factors[i], names[i]);
                            }
                        }
                    }
                }

                xComboBoxUnit.DataSource = items;
                //}
                xComboBoxUnit.ValueText = (drug.Quan_cur == null ? "0" : drug.Quan_cur.ToString());
                xComboBoxUnit.ValueUnit = (drug.Name_unit_sale == null ? "" : drug.Name_unit_sale);
            }
        }
Пример #12
0
        protected override void onTextValueChanged(object sender, object ds)
        {
            if (null != ds)
            {
                EmsOrDrug drug = ds as EmsOrDrug;
                if (this.emsView is EmsDrugSrvGridView)
                {
                    XComboBoxUnit ctrl = sender as XComboBoxUnit;
                    //Debug.WriteLine(DateTime.Now + " ValueText:" + ctrl.ValueText);

                    drug.Quan_cur = double.Parse(ctrl.ValueText);
                    this.emsView.GetViewModel().OnDataChanged(drug, "customercolumn_sale_unit_Quan_cur", drug.Quan_cur.ToString());
                }
            }
        }
Пример #13
0
        protected override void editorWillAppear(object rowDataSource, XBaseUserRender ctrl)
        {
            EmsOrDrug drug = rowDataSource as EmsOrDrug;

            if (null != drug)
            {
                XComboBoxUnit xComboBoxUnit = ctrl as XComboBoxUnit;
                xComboBoxUnit.ValueText = (drug.Quan_med == null ? "0" : drug.Quan_med.ToString());
                xComboBoxUnit.ValueUnit = (drug.Name_unit_med == null ? "" : drug.Name_unit_med);
                if (xComboBoxUnit.ValueUnit.Length > 0)
                {
                    Dictionary <object, string> items = new Dictionary <object, string>();
                    items.Add(drug.Id_unit_med, drug.Name_unit_med);

                    xComboBoxUnit.DataSource = items;
                }
            }
        }
Пример #14
0
        protected override void onUnitSelectChanged(object sender, object ds)
        {
            XComboBoxUnit xComboBoxUnit = sender as XComboBoxUnit;
            EmsOrDrug     drug          = ds as EmsOrDrug;
            int           selectIndex   = xComboBoxUnit.SelectIndex;

            // 选择没有变化
            if (String.IsNullOrEmpty(drug.Name_unit_medu_virtual) == String.IsNullOrEmpty(xComboBoxUnit.ValueUnit) || xComboBoxUnit.ValueUnit.Equals(drug.Name_unit_medu_virtual))
            {
                return;
            }
            if (selectIndex == 0)
            {
                if (drug.Quan_medu_virtual != null)
                {
                    drug.Quan_medu_virtual      = drug.Quan_medu_virtual.DoubleValue() * drug.Factor_mb.DoubleValue();
                    drug.Name_unit_medu_virtual = xComboBoxUnit.ValueUnit;
                }
                else
                {
                    drug.Quan_medu_virtual = null;
                    drug.Quan_med          = null;
                }
            }
            else if (selectIndex == 1)
            {
                if (drug.Quan_medu_virtual != null)
                {
                    //判断能否整除,如果能整除直接取整除的值,不能整除设置为空,让医生重新录入
                    if (LogicEx.GetInstance().divided(drug.Quan_medu_virtual, drug.Factor_mb))
                    {
                        drug.Quan_medu_virtual      = drug.Quan_medu_virtual.DoubleValue() / drug.Factor_mb.DoubleValue();
                        drug.Name_unit_medu_virtual = xComboBoxUnit.ValueUnit;
                    }
                    else
                    {
                        drug.Quan_medu_virtual = null;
                        drug.Quan_med          = null;
                    }
                }
            }
            xComboBoxUnit.ValueText = drug.Quan_medu_virtual == null ? "" : drug.Quan_medu_virtual + "";
        }
Пример #15
0
 protected override void onUnitSelectChanged(object sender, object ds)
 {
     if (null != ds)
     {
         EmsOrDrug drug = ds as EmsOrDrug;
         if (this.emsView is EmsDrugSrvGridView)
         {
             XComboBoxUnit ctrl = sender as XComboBoxUnit;
             drug.Name_unit_sale = ctrl.ValueUnit;
             string selectKey    = ctrl.SelectKey.ToString();
             string id_unit_sale = selectKey.Split(',')[0];
             string factor       = selectKey.Split(',')[1];
             drug.Id_unit_sale = id_unit_sale;
             drug.Factor_cb    = string.IsNullOrEmpty(factor) ? 0 : Convert.ToDouble(factor);
             this.emsView.GetViewModel().OnDataChanged(drug, "customercolumn_sale_unit_Name_unit_sale", drug.Name_unit_sale);
             ctrl.ValueText = drug.Quan_cur.ToString();
         }
     }
 }
Пример #16
0
        /// <summary>
        /// 频次单位双下拉框控件(频次下拉单位文本框组合控件)
        /// </summary>
        /// <param name="parent"></param>
        /// <param name="isDoubleDrop">是否是双下拉形式</param>
        public XOrderUnitFreqGroup(Control parent, bool isDoubleDrop)
        {
            this.Size         = new System.Drawing.Size(205, 24);
            this.isDoubleDrop = isDoubleDrop;
            if (isDoubleDrop)
            {
                unitReUnder                     = new XComboBoxUnit(parent);
                unitReUnder.Size                = new System.Drawing.Size(102, 24);
                unitReUnder.Location            = new Point(this.Bound.X, this.Bound.Y);
                unitReUnder.RightTophorn        = false;
                unitReUnder.RightBottmhorn      = false;
                unitReUnder.SelectValueChanged += new EventHandler(UnitReUnder_SelectValueChanged);
                unitReUnder.ValueTextChanged   += new EventHandler(UnitReUnder_ValueTextChanged);
                this.AddRender(unitReUnder);

                freqncRender                   = new XComboBox(parent);
                freqncRender.Size              = new Size(102, 24);
                freqncRender.Location          = new Point(unitReUnder.Bound.Right - 1, unitReUnder.Bound.Top);
                freqncRender.ValueTextChanged += new EventHandler(FreqncRender_ValueTextChanged);
                freqncRender.LeftTophorn       = false;
                freqncRender.LeftBottmhorn     = false;
                this.AddRender(freqncRender);
            }
            else
            {
                unitTextBox                   = new XUnitTextBoxMul();
                unitTextBox.Size              = new System.Drawing.Size(100, 24);
                unitTextBox.IsNumber          = true;
                unitTextBox.NullFlag          = false;
                unitTextBox.MinValue          = 0;
                unitTextBox.MaxLength         = 4;
                unitTextBox.Location          = new Point(this.Bound.X, this.Bound.Y);
                unitTextBox.ValueTextChanged += new EventHandler(UnitTextBox_ValueTextChanged);
                this.AddRender(unitTextBox);

                freqncRender                   = new XComboBox(parent);
                freqncRender.Size              = new Size(100, 24);
                freqncRender.ValueTextChanged += new EventHandler(FreqncRender_ValueTextChanged);
                freqncRender.Location          = new Point(unitTextBox.Bound.Right + 4, unitTextBox.Bound.Top);
                this.AddRender(freqncRender);
            }
        }
Пример #17
0
        protected override void onTextValueChanged(object sender, object ds)
        {
            XComboBoxUnit xComboBoxUnit = sender as XComboBoxUnit;
            EmsOrDrug     drug          = ds as EmsOrDrug;

            //if (String.IsNullOrEmpty(drug.Quan_medu_virtual==null?"": drug.Quan_medu_virtual.ToString()) == String.IsNullOrEmpty(xComboBoxUnit.ValueText) || xComboBoxUnit.ValueText.Equals(drug.Quan_medu_virtual.ToString()))
            //{
            //    return;
            //}
            if (drug != null && xComboBoxUnit != null)
            {
                double?quan_med = null;
                if (xComboBoxUnit.ValueText != null && xComboBoxUnit.ValueText != "")
                {
                    quan_med = Double.Parse(xComboBoxUnit.ValueText);
                }
                drug.Quan_medu_virtual = quan_med;
                setQuanMedu(xComboBoxUnit, drug);
            }
        }
Пример #18
0
        protected override XBaseUserRender createCustomCtrl()
        {
            // 计量单位控件
            XComboBoxUnit ctrl = new XComboBoxUnit();

            // 单位下拉事件
            ctrl.OnClickedDropDownForm += new EventHandler(OnClickedDropDown);
            // 单位选择事件
            ctrl.SelectValueChanged += new EventHandler(ctrl_SelectValueChanged);
            // 计量值改变事件
            ctrl.ValueTextChanged  += new EventHandler(ctrl_ValueTextChanged);
            ctrl.ValueTextChanging += new ChangingEventHandler(ctrl_ValueTextChanging);
            // ctrl.MaxInputNumber = 100000000;
            // ctrl.MaxLength = 4;
            // 剂量与单位水平位置占比
            ctrl.ComboboxWidthPercent = 0.5;
            // 是否允许单位为空
            AllowUnitNull = false;
            return(ctrl);
        }
Пример #19
0
        protected override void editorWillDisappear(object rowDataSource, XBaseUserRender ctrl)
        {
            XComboBoxUnit xComboBoxUnit = ctrl as XComboBoxUnit;
            EmsOrDrug     drug          = rowDataSource as EmsOrDrug;

            if (null != drug)
            {
                drug.Quan_cur       = ((xComboBoxUnit.ValueText == null || xComboBoxUnit.ValueText.Length == 0) ? 0 : Double.Parse(xComboBoxUnit.ValueText));
                drug.Name_unit_sale = xComboBoxUnit.ValueUnit;
                string selectKey    = xComboBoxUnit.SelectKey.ToString();
                string id_unit_sale = selectKey.Split(',')[0];
                string factor       = "";
                if (selectKey.IndexOf(",") != -1)
                {
                    factor = selectKey.Split(',')[1];
                }
                drug.Id_unit_sale = id_unit_sale;
                drug.Factor_cb    = string.IsNullOrEmpty(factor) ? 0 : Convert.ToDouble(factor);
            }
        }
Пример #20
0
        protected override void editorWillDisappear(object rowDataSource, XBaseUserRender ctrl)
        {
            XComboBoxUnit xComboBoxUnit = ctrl as XComboBoxUnit;
            EmsOrDrug     drug          = rowDataSource as EmsOrDrug;

            if (null != drug)
            {
                double?quan_med = null;
                if (xComboBoxUnit.ValueText != null && xComboBoxUnit.ValueText != "")
                {
                    quan_med = Double.Parse(xComboBoxUnit.ValueText);
                }
                drug.Quan_medu_virtual      = quan_med;//quan_med == null ? 0:
                drug.Name_unit_medu_virtual = xComboBoxUnit.ValueUnit;
                if (String.IsNullOrEmpty(xComboBoxUnit.ValueUnit))
                {
                    drug.Name_unit_med = xComboBoxUnit.ValueUnit;
                }
                setQuanMedu(xComboBoxUnit, drug);
            }
        }
        protected override void editorWillAppear(object rowDataSource, XBaseUserRender ctrl)
        {
            CiOrdFeeSrvDTO drug = rowDataSource as CiOrdFeeSrvDTO;

            if (null != drug)
            {
                XComboBoxUnit xComboBoxUnit = ctrl as XComboBoxUnit;
                xComboBoxUnit.ValueText = (drug.Quan_med == null ? "0" : drug.Quan_med.ToString());
                xComboBoxUnit.ValueUnit = (drug.Name_unit_med == null ? "" : drug.Name_unit_med);
                if (xComboBoxUnit.ValueUnit.Length > 0)
                {
                    Dictionary <object, string> items = new Dictionary <object, string>();
                    items.Add(drug.Id_unit_med, drug.Name_unit_med);
                    if (drug.Id_unit_base != null && !drug.Id_unit_base.Equals(drug.Id_unit_med))
                    {
                        items.Add(drug.Id_unit_base, drug.Name_unit_base);
                    }

                    xComboBoxUnit.DataSource = items;
                }
            }
        }
Пример #22
0
        /// <summary>
        /// 总量单位
        /// </summary>
        /// <param name="rowDataSource"></param>
        /// <param name="ctrl"></param>
        protected override void editorWillAppear(Object rowDataSource, XBaseUserRender ctrl)
        {
            XComboBoxUnit  xComboBoxUnit = ctrl as XComboBoxUnit;
            CiOrdFeeSrvDTO drug          = rowDataSource as CiOrdFeeSrvDTO;

            if (null != drug)
            {
                Dictionary <object, string> items = new Dictionary <object, string>();

                FMap fmap = null;// drug.Relativefieldmap;
                if (fmap == null)
                {
                    if (!string.IsNullOrEmpty(drug.Id_unit_sale))
                    {
                        items.Add(drug.Id_unit_sale, drug.Name_unit_sale);
                    }
                }
                else
                {
                    string idstr   = (string)fmap[CiDictCodeConst.EMSORDRUG_RELATIVE_FIELD_ID_MEASDOC];
                    string namestr = (string)fmap[CiDictCodeConst.EMSORDRUG_RELATIVE_FIELD_MEASDOC_NAME];
                    if (!string.IsNullOrEmpty(idstr))
                    {
                        string[] ids   = idstr.Split(new char[] { ',' });
                        string[] names = namestr.Split(new char[] { ',' });
                        for (int i = 0; i < ids.Length; i++)
                        {
                            items.Add(ids[i], names[i]);
                        }
                    }
                }

                xComboBoxUnit.DataSource = items;
                xComboBoxUnit.ValueText  = (drug.Quan_total_medu == null ? "0" : drug.Quan_total_medu.ToString());
                xComboBoxUnit.ValueUnit  = (drug.Name_unit_sale == null ? "" : drug.Name_unit_sale);
            }
        }