Dev中GridView、RepositoryItemGridLookUpEdit、LookUpEdit等扩展方法

4 篇文章 0 订阅
2 篇文章 0 订阅

    /// <summary>
    /// GridView列属性设置类
    /// </summary>
    public class BaseColumnSet
    {
        /// <summary>
        /// 列名(可不设置)
        /// </summary>
        public string Name { get; set; }
        /// <summary>
        /// 绑定字段
        /// </summary>
        public string FieldName { get; set; }
        /// <summary>
        /// 列名(显示)
        /// </summary>
        public string Caption { get; set; }
        /// <summary>
        /// 列宽(默认100)
        /// </summary>
        public int Width { get; set; } = 100;
        /// <summary>
        /// 是否显示(默认显示)
        /// </summary>
        public bool Visible { get; set; } = true;
        /// <summary>
        /// 显示位置(默认按照列表添加顺序)
        /// </summary>
        public int? VisibleIndex { get; set; }
        /// <summary>
        /// 设置列是否可编辑(默认可编辑)
        /// </summary>
        public bool AllowEdit { get; set; } = true;
        /// <summary>
        /// 格式化类型
        /// </summary>
        public FormatType formatType { get; set; } = FormatType.None;
        /// <summary>
        /// 格式化类型名称 
        /// </summary>
        public string FormatString { get; set; }
        /// <summary>
        /// 分组
        /// </summary>
        public int GroupIndex { get; set; } = -1;
        /// <summary>
        /// 排序
        /// </summary>
        public ColumnSortOrder sortOrder { get; set; } = ColumnSortOrder.None;
        /// <summary>
        /// 设置可编辑列
        /// 例:RepositoryItemCheckEdit RepositoryItemImageEdit RepositoryItemGridLookUpEdit RepositoryItemComboBox
        /// </summary>
        public RepositoryItem ColumnEdit { get; set; }

        /// <summary>
        /// 设置列内容是否可合并
        /// </summary>
        public DefaultBoolean AllowMerge { get; set; } = DefaultBoolean.Default;
    }

    /// <summary>
    /// 控件设置公共类
    /// </summary>
    public static class CtrlSetCommon
    {
        /// <summary>
        /// 设置GridView显示列属性
        /// </summary>
        /// <param name="gv">GridView</param>
        /// <param name="list">列属性集合</param>
        /// <param name="indicatorShow">显示行号:默认True</param>
        public static void SetColumns(this GridView gv, List<BaseColumnSet> list, bool indicatorShow = true, int indicatorWidth = 30)
        {
            string fieldName = string.Empty;
            for (int i = 0; i < list.Count; i++)
            {
                fieldName = list[i].FieldName;
                gv.Columns.AddField(fieldName);

                if (!string.IsNullOrWhiteSpace(list[i].Name))
                    gv.Columns[fieldName].Name = list[i].Name;

                gv.Columns[fieldName].Caption = list[i].Caption;
                gv.Columns[fieldName].Width = list[i].Width;
                gv.Columns[fieldName].VisibleIndex = list[i].VisibleIndex ?? i;
                gv.Columns[fieldName].Visible = list[i].Visible;
                gv.Columns[fieldName].OptionsColumn.AllowEdit = list[i].AllowEdit;

                if (list[i].formatType != FormatType.None)
                {
                    gv.Columns[fieldName].DisplayFormat.FormatType = list[i].formatType;
                    gv.Columns[fieldName].DisplayFormat.FormatString = list[i].FormatString;
                }

                gv.Columns[fieldName].GroupIndex = list[i].GroupIndex;
                gv.Columns[fieldName].SortOrder = list[i].sortOrder;

                if (list[i].ColumnEdit != null)
                    gv.Columns[fieldName].ColumnEdit = list[i].ColumnEdit;//可编辑列

                if (list[i].AllowMerge != DefaultBoolean.Default)
                    gv.Columns[fieldName].OptionsColumn.AllowMerge = list[i].AllowMerge;//设置合并列
                else
                    gv.Columns[fieldName].OptionsColumn.AllowMerge = DefaultBoolean.False;//设置合并列
            }

            if (indicatorShow)
            {
                gv.IndicatorWidth = indicatorWidth;

                gv.CustomDrawRowIndicator += Gv_CustomDrawRowIndicator;
            }
        }

        /// <summary>
        /// 显示行号
        /// </summary>
        private static void Gv_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
        {
            if (e.Info.IsRowIndicator && e.RowHandle >= 0)
            {
                e.Info.DisplayText = (e.RowHandle + 1).ToString().PadLeft(3, ' ');
            }
        }

        #region RepositoryItemGridLookUpEdit

        //private static System.Windows.Forms.UserControl userCtrl = null;
        //private static List<string> strList = null;

        /// <summary>
        /// 行内编辑(弹出RepositoryItemGridLookUpEdit)
        /// 设置GridView显示列属性
        /// </summary>
        /// <param name="gridLookUpEdit">行内编辑弹出控件</param>
        /// <param name="list">列属性集合</param>
        /// <param name="dt">数据源</param>
        /// <param name="valueMember">绑定值成员</param>
        /// <param name="displayMember">绑定显示成员</param>
        /// <param name="nullText">空值显示:默认为空字符串</param>
        public static void SetColumns(this RepositoryItemGridLookUpEdit gridLookUpEdit, List<BaseColumnSet> list, DataTable dt = null, string valueMember = "", string displayMember = "", string nullText = "")
        {
            GridView gv = gridLookUpEdit.View;//获取当前控件的GridView
            //DevExpress.XtraGrid.GridControl gridCtrl = gridLookUpEdit.View.GridControl;

            string fieldName = string.Empty;
            for (int i = 0; i < list.Count; i++)
            {
                fieldName = list[i].FieldName;
                gv.Columns.AddField(fieldName);

                if (!string.IsNullOrWhiteSpace(list[i].Name))
                    gv.Columns[fieldName].Name = list[i].Name;

                gv.Columns[fieldName].Caption = list[i].Caption;
                gv.Columns[fieldName].Width = list[i].Width;
                gv.Columns[fieldName].VisibleIndex = list[i].VisibleIndex ?? i;
                gv.Columns[fieldName].Visible = list[i].Visible;
                gv.Columns[fieldName].OptionsColumn.AllowEdit = list[i].AllowEdit;

                if (list[i].formatType != FormatType.None)
                {
                    gv.Columns[fieldName].DisplayFormat.FormatType = list[i].formatType;
                    gv.Columns[fieldName].DisplayFormat.FormatString = list[i].FormatString;
                }

                gv.Columns[fieldName].GroupIndex = list[i].GroupIndex;
                gv.Columns[fieldName].SortOrder = list[i].sortOrder;

                if (list[i].ColumnEdit != null)
                    gv.Columns[fieldName].ColumnEdit = list[i].ColumnEdit;//可编辑列

                if (list[i].AllowMerge != DefaultBoolean.Default)
                    gv.Columns[fieldName].OptionsColumn.AllowMerge = list[i].AllowMerge;//设置合并列
                else
                    gv.Columns[fieldName].OptionsColumn.AllowMerge = DefaultBoolean.False;//设置合并列
            }

            gridLookUpEdit.ValueMember = valueMember;//设置值成员
            gridLookUpEdit.DisplayMember = displayMember;//设置显示成员
            gridLookUpEdit.NullText = nullText;//设置空值显示
            gridLookUpEdit.DataSource = dt;//设置数据源
        }

        /// <summary>
        /// 设置匹配的列
        /// </summary>
        /// <param name="sender">sender</param>
        /// <param name="strList">Filter列名</param>
        public static void FilterLookup(object sender, List<string> strList)
        {
            //Text += " ! ";
            GridLookUpEdit edit = sender as GridLookUpEdit;
            GridView gridView = edit.Properties.View as GridView;
            FieldInfo fi = gridView.GetType().GetField("extraFilter", BindingFlags.NonPublic | BindingFlags.Instance);
            //Text = edit.AutoSearchText;

            List<BinaryOperator> operators = new List<BinaryOperator>();
            foreach (string strColumnName in strList)
            {
                operators.Add(new BinaryOperator(strColumnName, "%" + edit.AutoSearchText + "%", BinaryOperatorType.Like));
            }
            string filterCondition = new GroupOperator(GroupOperatorType.Or, operators.ToArray()).ToString();
            fi.SetValue(gridView, filterCondition);

            MethodInfo mi = gridView.GetType().GetMethod("ApplyColumnsFilterEx", BindingFlags.NonPublic | BindingFlags.Instance);
            mi.Invoke(gridView, null);
        }

        /// <summary>
        /// 设置匹配的列
        /// </summary>
        /// <param name="lookupEditYPDM">RepositoryItemGridLookUpEdit控件</param>
        /// <param name="list">Filter列名</param>
        /// <param name="searchText">当前输入值</param>
        public static void FilterLookup(RepositoryItemGridLookUpEdit lookupEditYPDM, List<string> list, string searchText)
        {
            //GridLookUpEdit edit = sender as GridLookUpEdit;
            GridView gridView = lookupEditYPDM.View as GridView;
            FieldInfo fi = gridView.GetType().GetField("extraFilter", BindingFlags.NonPublic | BindingFlags.Instance);

            List<BinaryOperator> operators = new List<BinaryOperator>();
            foreach (string strColumnName in list)
            {
                operators.Add(new BinaryOperator(strColumnName, "%" + searchText + "%", BinaryOperatorType.Like));
            }
            string filterCondition = new GroupOperator(GroupOperatorType.Or, operators.ToArray()).ToString();
            fi.SetValue(gridView, filterCondition);

            MethodInfo mi = gridView.GetType().GetMethod("ApplyColumnsFilterEx", BindingFlags.NonPublic | BindingFlags.Instance);
            mi.Invoke(gridView, null);
        }
        
        #endregion

        /// <summary>
        /// 行内编辑(弹出RepositoryItemSearchLookUpEdit)
        /// 设置GridView显示列属性
        /// </summary>
        /// <param name="searchLookUpEdit">行内编辑弹出控件</param>
        /// <param name="list">列属性集合</param>
        /// <param name="dt">数据源</param>
        /// <param name="valueMember">绑定值成员</param>
        /// <param name="displayMember">绑定显示成员</param>
        /// <param name="nullText">空值显示:默认为空字符串</param>
        public static void SetColumns(this RepositoryItemSearchLookUpEdit searchLookUpEdit, List<BaseColumnSet> list, DataTable dt = null, string valueMember = "", string displayMember = "", string nullText = "")
        {
            GridView gv = searchLookUpEdit.View;//获取当前控件的GridView

            string fieldName = string.Empty;
            for (int i = 0; i < list.Count; i++)
            {
                fieldName = list[i].FieldName;
                gv.Columns.AddField(fieldName);

                if (!string.IsNullOrWhiteSpace(list[i].Name))
                    gv.Columns[fieldName].Name = list[i].Name;

                gv.Columns[fieldName].Caption = list[i].Caption;
                gv.Columns[fieldName].Width = list[i].Width;
                gv.Columns[fieldName].VisibleIndex = list[i].VisibleIndex ?? i;
                gv.Columns[fieldName].Visible = list[i].Visible;
                gv.Columns[fieldName].OptionsColumn.AllowEdit = list[i].AllowEdit;

                if (list[i].formatType != FormatType.None)
                {
                    gv.Columns[fieldName].DisplayFormat.FormatType = list[i].formatType;
                    gv.Columns[fieldName].DisplayFormat.FormatString = list[i].FormatString;
                }

                gv.Columns[fieldName].GroupIndex = list[i].GroupIndex;
                gv.Columns[fieldName].SortOrder = list[i].sortOrder;

                if (list[i].ColumnEdit != null)
                    gv.Columns[fieldName].ColumnEdit = list[i].ColumnEdit;//可编辑列

                if (list[i].AllowMerge != DefaultBoolean.Default)
                    gv.Columns[fieldName].OptionsColumn.AllowMerge = list[i].AllowMerge;//设置合并列
                else
                    gv.Columns[fieldName].OptionsColumn.AllowMerge = DefaultBoolean.False;//设置合并列
            }

            searchLookUpEdit.ValueMember = valueMember;//设置值成员
            searchLookUpEdit.DisplayMember = displayMember;//设置显示成员
            searchLookUpEdit.NullText = nullText;//设置空值显示
            searchLookUpEdit.DataSource = dt;//设置数据源
        }

        /// <summary>
        /// LookUpEdit扩展方法
        /// 设置LookUpEdit数据源、ValueMember、DiaplayMember
        /// </summary>
        /// <param name="cmb">LookUpEdit控件</param>
        /// <param name="dt">数据源</param>
        /// <param name="valueMember">绑定值成员</param>
        /// <param name="displayMember">绑定显示成员</param>
        public static void LookUpEditExtend(this LookUpEdit cmb, DataTable dt, string valueMember, string displayMember, int widthPopup = 100, int heightPopup = 150, bool showHeader = false, bool showFooter = false)
        {
            cmb.Properties.ValueMember = valueMember;
            cmb.Properties.DisplayMember = displayMember;
            cmb.Properties.DataSource = dt;

            cmb.Properties.PopupSizeable = true;
            cmb.Properties.PopupFormMinSize = new Size(widthPopup, heightPopup);
            cmb.Properties.ShowHeader = showHeader;
            cmb.Properties.ShowFooter = showFooter;
        }

        /// <summary>
        /// 设置LookUpEdit显示列属性
        /// </summary>
        /// <param name="lookupEdit">LookUpEdit</param>
        /// <param name="list">列属性集合</param>
        public static void SetColumns(this LookUpEdit lookupEdit, List<BaseColumnSet> list)
        {
            //string fieldName = string.Empty;
            for (int i = 0; i < list.Count; i++)
            {
                //fieldName = list[i].FieldName;

                DevExpress.XtraEditors.Controls.LookUpColumnInfo lookUpColumn = new DevExpress.XtraEditors.Controls.LookUpColumnInfo()
                {
                    FieldName = list[i].FieldName,
                    Caption = list[i].Caption,
                    Width = list[i].Width,
                    Visible = list[i].Visible,
                    SortOrder = list[i].sortOrder
                };
                if (list[i].formatType != FormatType.None)
                {
                    lookUpColumn.FormatType = list[i].formatType;
                    lookUpColumn.FormatString = list[i].FormatString;
                }

                lookupEdit.Properties.Columns.Add(lookUpColumn);
            }
        }

        /// <summary>
        /// 设置GridLookUpEdit显示列属性
        /// </summary>
        /// <param name="lookupEdit">LookUpEdit</param>
        /// <param name="list">列属性集合</param>
        public static void SetColumns(this GridLookUpEdit lookupEdit, List<BaseColumnSet> list)
        {
            for (int i = 0; i < list.Count; i++)
            {
                DevExpress.XtraGrid.Columns.GridColumn lookUpColumn = new DevExpress.XtraGrid.Columns.GridColumn()
                {
                    FieldName = list[i].FieldName,
                    Caption = list[i].Caption,
                    Width = list[i].Width,
                    Visible = list[i].Visible,
                    SortOrder = list[i].sortOrder
                };

                lookupEdit.Properties.View.Columns.Add(lookUpColumn);
            }
        }

        /// <summary>
        /// GridLookUpEdit扩展方法
        /// 设置GridLookUpEdit数据源、ValueMember、DiaplayMember
        /// </summary>
        /// <param name="cmb">LookUpEdit控件</param>
        /// <param name="dt">数据源</param>
        /// <param name="valueMember">绑定值成员</param>
        /// <param name="displayMember">绑定显示成员</param>
        public static void LookUpEditExtend(this GridLookUpEdit cmb, DataTable dt, string valueMember, string displayMember, int widthPopup = 110, int heightPopup = 150, bool showFooter = false)
        {
            cmb.Properties.ValueMember = valueMember;
            cmb.Properties.DisplayMember = displayMember;
            cmb.Properties.DataSource = dt;

            cmb.Properties.PopupSizeable = true;
            cmb.Properties.PopupFormMinSize = new Size(widthPopup, heightPopup);
            cmb.Properties.PopupFormSize = new Size(widthPopup, heightPopup);
            cmb.Properties.ShowFooter = showFooter;
            
            cmb.Properties.NullValuePrompt = "请选择";
            cmb.Properties.NullValuePromptShowForEmptyValue = true;
            cmb.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.Standard;
            cmb.Properties.ImmediatePopup = true;
        }

    }

 

简单调用样例

1、


            DataTable dtQYYF = clientCommon.GetMZYF();

            cmbQYYF.Properties.Columns.Clear();
            List<BaseColumnSet> listQYYF = new List<BaseColumnSet>();
            listQYYF.Add(new BaseColumnSet() { FieldName = "YFDM", Caption = "代码", Visible = false });
            listQYYF.Add(new BaseColumnSet() { FieldName = "YFMC", Caption = "名称", Visible = true });
            cmbQYYF.SetColumns(listQYYF);

            cmbQYYF.LookUpEditExtend(dtQYYF, "YFDM", "YFMC");
            if (dtQYYF.Rows.Count > 0)
                cmbQYYF.EditValue = dtQYYF.Rows[0]["YFDM"];

2、
 


            dtGYFS = clientCommon.GetGYFS();//获取给药方式数据
            RepositoryItemGridLookUpEdit lookupEditGYFS = new RepositoryItemGridLookUpEdit();
            List<BaseColumnSet> listGYFS = new List<BaseColumnSet>();
            listGYFS.Add(new BaseColumnSet() { FieldName = "YPYFMC", Caption = "**方式", Width = 100, AllowEdit = false });

            lookupEditGYFS.SetColumns(listGYFS, dtGYFS, "YPYFDM", "YPYFMC", "请选择");
            lookupEditGYFS.TextEditStyle = TextEditStyles.Standard;
            lookupEditGYFS.PopupFormSize = new Size(100, 200);
            lookupEditGYFS.ImmediatePopup = true;
            //lookupEditGYFS.PopupFilterMode = PopupFilterMode.Contains;
            //lookupEditGYFS.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
            lookupEditGYFS.EditValueChanging += LookupEditGYFS_EditValueChanging;
            listWestPrescription.Add(new BaseColumnSet() { FieldName = "GYFS", Caption = "**方式", Width = 80, ColumnEdit = lookupEditGYFS, VisibleIndex = 7 });

3、
 


            RepositoryItemGridLookUpEdit lookupEditYPDM = new RepositoryItemGridLookUpEdit();
            #region 弹出设置列
            List<BaseColumnSet> listPopup = new List<BaseColumnSet>();
            listPopup.Add(new BaseColumnSet() { FieldName = "YPMC", Caption = "名称", Width = 200, AllowEdit = false });
            listPopup.Add(new BaseColumnSet() { FieldName = "PYDM", Caption = "拼音码", Width = 60, AllowEdit = false });
            listPopup.Add(new BaseColumnSet() { FieldName = "GG", Caption = "规格", Width = 60, AllowEdit = false });
            listPopup.Add(new BaseColumnSet() { FieldName = "LSJ", Caption = "***", Width = 80, AllowEdit = false });
            listPopup.Add(new BaseColumnSet() { FieldName = "SL", Caption = "**", Width = 60, AllowEdit = false });
            listPopup.Add(new BaseColumnSet() { FieldName = "PC", Caption = "**", Width = 60, AllowEdit = false });
            listPopup.Add(new BaseColumnSet() { FieldName = "PH", Caption = "**", Width = 60, AllowEdit = false });
            listPopup.Add(new BaseColumnSet() { FieldName = "CDMC", Caption = "****", Width = 60, AllowEdit = false });
            listPopup.Add(new BaseColumnSet() { FieldName = "YBBZ", Caption = "****", Width = 60, AllowEdit = false });

            listPopup.Add(new BaseColumnSet() { FieldName = "YPLX", Caption = "***", Width = 60, AllowEdit = false });
            listPopup.Add(new BaseColumnSet() { FieldName = "BXBZ", Caption = "****", Width = 60, AllowEdit = false });
            #endregion

            lookupEditYPDM.SetColumns(listPopup, dtYPDM, "YPDM", "YPMC", "");
            lookupEditYPDM.TextEditStyle = TextEditStyles.Standard;
            lookupEditYPDM.PopupFormSize = new Size(500, 200);
            lookupEditYPDM.ImmediatePopup = true;
            //lookupEditYPDM.PopupFilterMode = PopupFilterMode.Contains;
            //lookupEditYPDM.AllowNullInput = DevExpress.Utils.DefaultBoolean.True;
            lookupEditYPDM.CustomDisplayText += LookupEditYPDM_CustomDisplayText;//因为列表中只有部分药品数据,故需修改显示内容
            lookupEditYPDM.EditValueChanging += LookupEditYPDM_EditValueChanging;

            listWestPrescription.Add(new BaseColumnSet() { FieldName = "YPDM", Caption = "名称", Width = 200, ColumnEdit = lookupEditYPDM, VisibleIndex = 3 });

 

事件


            gv_West.OptionsMenu.EnableColumnMenu = false;
            //gv_WestPrescription.OptionsView.AllowCellMerge = false;//合并单元格(AllowCellMerge)和复选框(MultiSelectMode)不能同时用
            gv_West.OptionsSelection.MultiSelect = true;
            gv_West.OptionsSelection.ShowCheckBoxSelectorInColumnHeader = DevExpress.Utils.DefaultBoolean.True;
            gv_West.OptionsSelection.MultiSelectMode = GridMultiSelectMode.CheckBoxRowSelect;
            gv_West.OptionsSelection.CheckBoxSelectorColumnWidth = 45;//设置宽度
            gv_West.CellValueChanging += Gv_West_CellValueChanging;
            gv_West.FocusedRowChanged += Gv_West_FocusedRowChanged;

            gv_West.OptionsCustomization.AllowColumnMoving = false;//设置列不可移动
            gv_West.OptionsView.ColumnAutoWidth = false;//取消列自适应宽度
            gv_West.ShowingEditor += Gv_West_ShowingEditor;

        /// <summary>
        /// 设置LookUpEditYPDM显示内容
        /// </summary>
        private void LookupEditYPDM_CustomDisplayText(object sender, CustomDisplayTextEventArgs e)
        {
            if (string.IsNullOrWhiteSpace(e.DisplayText))
            {
                foreach (DataRow dr in dtWestDataSource.Rows)
                {
                    if (dr["YPDM"].ToString() == e.Value.ToString())
                        e.DisplayText = dr["YPMC"].ToString();
                }
            }
        }

        /// <summary>
        /// 设置行数据,不可修改
        /// </summary>
        private void Gv_West_ShowingEditor(object sender, CancelEventArgs e)
        {
            DataRow dr = gv_West.GetDataRow(gv_West.FocusedRowHandle);

            if (dr != null)
            {
                if (dr["CFZTMC"].ToString() == "提交")
                    e.Cancel = true;
            }
        }

        #region 行内编辑事件及设置数据源
        /// <summary>
        /// 单元格值改变事件
        /// </summary>
        private void Gv_West_CellValueChanging(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            switch (e.Column.FieldName)
            {
                case "YPDM": RepositoryItem_SelectYPXX(e); break;
                //case "GYFS": RepositoryItem_SelectGYFS(e); break;
                //case "GYPL": RepositoryItem_SelectGYPL(e); break;
                //case "YSZT": RepositoryItem_SelectYSZT(e); break;
                case "SL": JudgeKCL("SL", sender, e); break;
                case "TS": JudgeKCL("TS", sender, e); break;
                default: break;
            }
        }

        /// <summary>
        /// 选择**
        /// </summary>
        /// <param name="e"></param>
        private void RepositoryItem_SelectYPXX(DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            RepositoryItemGridLookUpEdit lookupEditYPDM = gv_West.Columns["YPDM"].ColumnEdit as RepositoryItemGridLookUpEdit;

            if (lookupEditYPDM.GetRowByKeyValue(e.Value) != null)//选中项不为空,设置当前行的值;选中项为空,重新根据输入值加载下拉面板的值;
            {
                DataRow dr = ((DataRowView)lookupEditYPDM.GetRowByKeyValue(e.Value)).Row;
                #region 设置当前行数据
                gv_West.SetRowCellValue(e.RowHandle, "YPDM", dr["YPDM"]);
                gv_West.SetRowCellValue(e.RowHandle, "YPMC", dr["YPMC"]);
                gv_West.SetRowCellValue(e.RowHandle, "JL", dr["DEFAULT_JL"]);
                gv_West.SetRowCellValue(e.RowHandle, "JLDW", dr["JLDW"]);
                gv_West.SetRowCellValue(e.RowHandle, "GG", dr["GG"]);
                gv_West.SetRowCellValue(e.RowHandle, "SL", 0);
                string zybzStr = GetZYBZ();
                gv_West.SetRowCellValue(e.RowHandle, "ZYBZ", zybzStr);
                gv_West.SetRowCellValue(e.RowHandle, "SXH", "1");
                gv_West.SetRowCellValue(e.RowHandle, "LSJ", dr["LSJ"]);//***
                gv_West.SetRowCellValue(e.RowHandle, "KCL", dr["SL"]);//***
                gv_West.SetRowCellValue(e.RowHandle, "DW", dr["DW"].ToString());
                gv_West.SetRowCellValue(e.RowHandle, "YPYF", dr["DEFAULT_YF"]);//**

                string ts = txtTS.EditValue.ToString();
                gv_West.SetRowCellValue(e.RowHandle, "TS", ts);

                gv_West.SetRowCellValue(e.RowHandle, "MZDW", dr["MZDW"].ToString());
                gv_West.SetRowCellValue(e.RowHandle, "MZDJ", dr["MZDJ"]);
                gv_West.SetRowCellValue(e.RowHandle, "CDDM", dr["CDDM"]);
                gv_West.SetRowCellValue(e.RowHandle, "PC", dr["PC"]);
                gv_West.SetRowCellValue(e.RowHandle, "PH", dr["PH"]);
                gv_West.SetRowCellValue(e.RowHandle, "PS", dr["SFPS"]);
                gv_West.SetRowCellValue(e.RowHandle, "SYZ", "1");
                gv_West.SetRowCellValue(e.RowHandle, "BXBZ", dr["BXBZ"]);
                gv_West.SetRowCellValue(e.RowHandle, "SFBL", dr["SFBL"]); //****
                gv_West.SetRowCellValue(e.RowHandle, "MZBL", dr["MZBL"]);

                #endregion
            }
            else if (e.Value != null && !string.IsNullOrWhiteSpace(e.Value.ToString()))
            {
                //根据当前输入内容,重新获取药品数据源,需去掉当前控件的查询功能,让当前控件的面板弹出
                //DataTable dtYPXX = GetYPXX(e.Value.ToString());
                //lookupEditYPDM.DataSource = dtYPXX;

                //此处数据源设置完,lookupEditYPDM.View.DataSource依然为空,故显示结果为空
            }
        }

        /// <summary>
        /// 焦点行改变事件
        /// </summary>
        private void Gv_West_FocusedRowChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs e)
        {
            ShowCFInfo();
        }

        /// <summary>
        /// 获取****
        /// </summary>
        /// <returns>1**;0***</returns>
        private string GetZYBZ()
        {
            string result = "1";//1**;0***
            DataTable dt = gridCtrlWest.DataSource as DataTable;

            if (dt == null)
            {
                return result;
            }

            foreach (DataRow dr in dt.Rows)
            {
                if (dr["CFZTMC"].ToString() == "开单")
                {
                    return "0";//1**;0***
                }
                else if (string.IsNullOrWhiteSpace(dr["CFZTMC"].ToString()) && dr["ZYBZ"].ToString() == "1")
                {
                    return "0";//1**;0***
                }
            }

            return result;
        }

        private void LookupEditYPDM_EditValueChanging(object sender, ChangingEventArgs e)
        {
            this.BeginInvoke(new System.Windows.Forms.MethodInvoker(delegate
            {
                CtrlSetCommon.FilterLookup(sender, new List<string>() { "PYDM", "YPMC", "YPDM" });
            }));
        }

        private void LookupEditGYFS_EditValueChanging(object sender, ChangingEventArgs e)
        {
            this.BeginInvoke(new System.Windows.Forms.MethodInvoker(delegate
            {
                CtrlSetCommon.FilterLookup(sender, new List<string>() { "PYDM", "YPYFDM", "YPYFMC" });
            }));
        }

        private void LookupEditGYPL_EditValueChanging(object sender, ChangingEventArgs e)
        {
            this.BeginInvoke(new System.Windows.Forms.MethodInvoker(delegate
            {
                CtrlSetCommon.FilterLookup(sender, new List<string>() { "PYDM", "BDDM", "BDMC" });
            }));
        }

        /// <summary>
        /// 判断***
        /// </summary>
        private void JudgeKCL(string columnName, object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
        {
            DataRow dr = (gv_West.GetRow(e.RowHandle) as DataRowView).Row;
            string strSL = dr["SL"] == null ? "0" : dr["SL"].ToString();//**
            string strTS = dr["TS"] == null ? "0" : dr["TS"].ToString();//**
            string strKCL = dr["KCL"] == null ? "0" : dr["KCL"].ToString();//***
            string currentValue = (e.Value == null || string.IsNullOrEmpty(e.Value.ToString())) ? "0" : e.Value.ToString();

            int slInt = 0, tsInt = 0, kclInt = 0;
            int.TryParse(strSL, out slInt);
            int.TryParse(strTS, out tsInt);
            int.TryParse(strKCL, out kclInt);


            if (columnName == "SL")
                slInt = int.Parse(currentValue);
            else if (columnName == "TS")
                tsInt = int.Parse(currentValue);

            if (slInt * tsInt > kclInt)
            {
                XtraMessageBox.Show("当前**下的****不能大于***" + strKCL + " ,请修改此行" + (columnName == "TS" ? "**" : "**") + "!", "提醒", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }

            ShowCFInfo();
        }

        #endregion

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值