/****************************** * 说明:多选界面 * 创建人:龚宇超 * 创建日期:2018-03-20 * 修改人: * 修改日期: * 修改备注: * 版本:1.0.0.0 ******************************/ using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Lskj.Control.Model; using DevExpress.XtraGrid.Columns; using DevExpress.XtraEditors.Repository; using DevExpress.Data; using DevExpress.XtraGrid.Views.Grid; using DevExpress.XtraGrid.Menu; using DevExpress.Utils.Menu; using Lskj.Business.Impl; using Lskj.Data; using System.Data.SqlClient; using Lskj.Util; using Lskj.Business; using Lskj.Model; using System.Text.RegularExpressions; using System.Reflection; using DevExpress.Data.Filtering; using Lskj.Core; namespace Lskj.Control.AutoSelectControlUp { public partial class AutoSelectControl : BaseForm { /// /// 隐藏值 /// /// The edit value. public string EditValue { get; set; } /// /// 显示值 /// /// The edit text. public string EditText { get; set; } /// /// 绑定ValueMember /// public string ValueMember { get; set; } /// /// 隐藏值字段 /// public string ValueField { get; set; } /// /// 显示值字段 /// public string TextField { get; set; } /// /// 查询sql /// public string SourceSQL { get; set; } /// /// 显示值字段 /// public DataTable DataSource { get; set; } /// /// 备注字段 /// public string RemarkField = "remark"; public AutoSelectControl() { InitializeComponent(); } /// /// 说明:窗口加载 /// 创建人:龚宇超 /// 创建日期:2018-03-20 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// /// The instance containing the event data. protected override void OnLoad(EventArgs e) { base.OnLoad(e); this.SetReadOnlyColumns(); labObscure.TextEdit.KeyDown += new KeyEventHandler(OnTextEditKeyDown); this.gcMain.DoubleClick += new EventHandler(OnRowDoubleClick); } /// /// 双击选中值 /// /// /// private void OnRowDoubleClick(object sender, EventArgs e) { DataRow dataRow= this.gcMain.GetFocusedDataRow(); this.EditValue = dataRow[ValueField]+""; this.EditText = dataRow[TextField]+""; this.DialogResult = DialogResult.OK; this.Close(); } /// /// 绑定回车搜索事件 /// /// /// private void OnTextEditKeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { string expand = "and ("; foreach (GridColumn gridColumn in DataSource.Columns) { expand += gridColumn.FieldName + " like '%{0}%' or "; } expand += ")"; expand = string.Format(expand, labObscure.TextEdit.Text); this.gcMain.GridControl.DataSource = BaseImpl.GetDataTableResult(SourceSQL + expand); } } /// /// 说明:设置只读列 /// 创建人:龚宇超 /// 创建日期:2018-03-20 /// 修改人: /// 修改日期: /// 修改备注: /// 版本:1.0 /// private void SetReadOnlyColumns() { this.gcMain.Columns.Clear(); if (this.DataSource != null) { GridColumn valueColumn = new GridColumn(); valueColumn.FieldName = valueColumn.Name = ValueField; valueColumn.Caption = "编码"; valueColumn.Width = 200; //valueColumn.Visible = true; valueColumn.Visible = ValueMember.Substring(0, 1) != "_"; valueColumn.OptionsColumn.AllowEdit = false; valueColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; GridColumn textColumn = new GridColumn(); textColumn.FieldName = textColumn.Name = TextField; textColumn.Caption = "名称"; textColumn.Width = 350; //textColumn.Visible = true; textColumn.Visible = TextField.Substring(0, 1) != "_"; textColumn.OptionsColumn.AllowEdit = false; textColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; this.gcMain.Columns.AddRange(new GridColumn[] { valueColumn, textColumn }); if (DataSource.Columns.IndexOf("remark") != -1) { DataColumn column = DataSource.Columns.Cast().FirstOrDefault(x => x.ColumnName.ToLower() == RemarkField); if (column != null) RemarkField = column.ColumnName; GridColumn remarkColumn = new GridColumn(); remarkColumn.Name = remarkColumn.FieldName = RemarkField; remarkColumn.Caption = "备注"; remarkColumn.Visible = true; remarkColumn.Width = 120; //字段第一个字符为下划线代表不显示 if (RemarkField.Substring(0, 1) == "_") remarkColumn.Visible = false; remarkColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; this.gcMain.Columns.Add(remarkColumn); } foreach (DataColumn dcol in DataSource.Columns) { if ((dcol.ColumnName.Substring(0, 1) != "_") && (dcol.ColumnName.ToLower() != ValueField.ToLower()) && (dcol.ColumnName.ToLower() != TextField.ToLower()) && ((int)dcol.ColumnName[0] > 127)) { GridColumn otherColumn = new GridColumn(); otherColumn.Name = otherColumn.FieldName = otherColumn.Caption = dcol.ColumnName; otherColumn.Visible = true; otherColumn.Width = 150; otherColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList; this.gcMain.Columns.Add(otherColumn); } } // this.gcDetail.GridControl.DataSource = this.gridControl1.DataSourceTable().Clone(); // //this.gcDetail.SelectAll(); // //this.gcDetail.DeleteSelectedRows(); } } } }