ab56a9bcf7
SVN-Revision: r240
89 lines
3.3 KiB
C#
89 lines
3.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Drawing;
|
|
using System.Data;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using Lskj.Core;
|
|
using DevExpress.XtraEditors;
|
|
using DevExpress.XtraEditors.Controls;
|
|
using DevExpress.XtraGrid.Views.Grid;
|
|
using System.Reflection;
|
|
using DevExpress.Data.Filtering;
|
|
|
|
namespace CsHospital.UserControls
|
|
{
|
|
public partial class Userbfz : UserControl
|
|
{
|
|
public Userbfz()
|
|
{
|
|
InitializeComponent();
|
|
DBConfig.Instance.CreateConnection();
|
|
string sql = string.Format("SELECT dm_ssbfz.dm ,dm_ssbfz.mc ,dm_ssbfz.jp FROM dm_ssbfz");
|
|
DataTable qkgr = SqlHelper.ExecuteDataTable(sql);
|
|
this.GridLookUpEdit1.Properties.DataSource = qkgr;
|
|
}
|
|
|
|
private void gridLookUpEdit1_Popup(object sender, EventArgs e)
|
|
{
|
|
GridLookUpEdit edit = sender as GridLookUpEdit;
|
|
FilterLookup(sender, new string[] { "mc", "dm", "jp" });//中文,全拼英,简拼
|
|
}
|
|
|
|
|
|
private void gridLEdit1_EditValueChanging(object sender, ChangingEventArgs e)
|
|
{
|
|
this.BeginInvoke(new System.Windows.Forms.MethodInvoker(delegate
|
|
{
|
|
FilterLookup(sender, new string[] { "mc", "dm","jp" });
|
|
}));
|
|
}
|
|
private void gridLUpEdit1_TextChanged(object sender, EventArgs e)
|
|
{
|
|
GridLookUpEdit edit = sender as GridLookUpEdit;
|
|
edit.SelectionStart = edit.Text.Length;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 拼英模糊查询的关键方法
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="arrFilterField"></param>
|
|
private void FilterLookup(object sender, string[] arrFilterField)
|
|
{
|
|
GridLookUpEdit edit = sender as GridLookUpEdit;
|
|
GridView gridView = edit.Properties.View as GridView;
|
|
FieldInfo fi = gridView.GetType().GetField("extraFilter", BindingFlags.NonPublic | BindingFlags.Instance);
|
|
CriteriaOperator[] arrCriteriaOperator = new CriteriaOperator[arrFilterField.Length];
|
|
for (int i = 0; i < arrFilterField.Length; i++)
|
|
{
|
|
arrCriteriaOperator[i] = new BinaryOperator(arrFilterField[i], "%" + edit.AutoSearchText + "%", BinaryOperatorType.Like);
|
|
}
|
|
string filterCondition = new GroupOperator(GroupOperatorType.Or, arrCriteriaOperator).ToString();
|
|
fi.SetValue(gridView, filterCondition);
|
|
MethodInfo mi = gridView.GetType().GetMethod("ApplyColumnsFilterEx", BindingFlags.NonPublic | BindingFlags.Instance);
|
|
mi.Invoke(gridView, null);
|
|
}
|
|
/// <summary>
|
|
/// 下拉框对象
|
|
/// </summary>
|
|
public DevExpress.XtraEditors.GridLookUpEdit GridLookUpEditObj { get { return GridLookUpEdit1; } }
|
|
/// <summary>
|
|
/// 回车触发下一个
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
public void textBox_KeyPress(object sender, KeyPressEventArgs e)
|
|
{
|
|
GridLookUpEdit gu = sender as GridLookUpEdit;
|
|
if (e.KeyChar == (char)Keys.Enter)
|
|
{
|
|
SendKeys.Send("{tab}");
|
|
}
|
|
}
|
|
}
|
|
}
|