/******************************
* 说明:多选界面
* 创建人:龚宇超
* 创建日期: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();
}
}
}
}