ab56a9bcf7
SVN-Revision: r240
206 lines
7.4 KiB
C#
206 lines
7.4 KiB
C#
/******************************
|
|
* 说明:多选界面
|
|
* 创建人:龚宇超
|
|
* 创建日期: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
|
|
{
|
|
/// <summary>
|
|
/// 隐藏值
|
|
/// </summary>
|
|
/// <value>The edit value.</value>
|
|
public string EditValue { get; set; }
|
|
/// <summary>
|
|
/// 显示值
|
|
/// </summary>
|
|
/// <value>The edit text.</value>
|
|
public string EditText { get; set; }
|
|
/// <summary>
|
|
/// 绑定ValueMember
|
|
/// </summary>
|
|
public string ValueMember { get; set; }
|
|
/// <summary>
|
|
/// 隐藏值字段
|
|
/// </summary>
|
|
public string ValueField { get; set; }
|
|
/// <summary>
|
|
/// 显示值字段
|
|
/// </summary>
|
|
public string TextField { get; set; }
|
|
/// <summary>
|
|
/// 查询sql
|
|
/// </summary>
|
|
public string SourceSQL { get; set; }
|
|
/// <summary>
|
|
/// 显示值字段
|
|
/// </summary>
|
|
public DataTable DataSource { get; set; }
|
|
/// <summary>
|
|
/// 备注字段
|
|
/// </summary>
|
|
public string RemarkField = "remark";
|
|
public AutoSelectControl()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
/// <para>说明:窗口加载</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-03-20 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="e">The <see cref="EventArgs"/> instance containing the event data.</param>
|
|
protected override void OnLoad(EventArgs e)
|
|
{
|
|
|
|
base.OnLoad(e);
|
|
this.SetReadOnlyColumns();
|
|
labObscure.TextEdit.KeyDown += new KeyEventHandler(OnTextEditKeyDown);
|
|
this.gcMain.DoubleClick += new EventHandler(OnRowDoubleClick);
|
|
}
|
|
/// <summary>
|
|
/// 双击选中值
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
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();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 绑定回车搜索事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
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);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// <para>说明:设置只读列</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-03-20 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
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<DataColumn>().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();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
}
|
|
}
|