Files
lserp_cs_6.0/插件库/Lskj.Control/AutoSelectControlUp/AutoSelectControl.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

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();
}
}
}
}