Files
lserp_cs_6.0/其他程序/CsHospital/UserControls/UserSsCzmz.cs
T
cyf ab56a9bcf7 基线 SVN r240
SVN-Revision: r240
2025-02-06 06:46:06 +00:00

107 lines
4.1 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 UserSsCzmz : UserControl
{
public UserSsCzmz()
{
InitializeComponent();
DBConfig.Instance.CreateConnection();
string sql = string.Format("SELECT lcssbm.bm ,lcssbm.mc ,lcssbm.jp FROM lcssbm where version='国标版2018'");
DataTable SsCzmz = SqlHelper.ExecuteDataTable(sql);
this.GridLookUpEdit1.Properties.DataSource = SsCzmz;
}
public string gid = "";
public delegate void BindText(string data, bool flag,string kname);
public event BindText bindText;
private void gridLookUpEdit1_Popup(object sender, EventArgs e)
{
GridLookUpEdit edit = sender as GridLookUpEdit;
FilterLookup(sender, new string[] { "mc", "bm", "jp" });//中文,全拼英,简拼
}
/// <summary>
/// 下拉框对象
/// </summary>
public DevExpress.XtraEditors.GridLookUpEdit GridLookUpEditObj { get { return GridLookUpEdit1; } }
private void gridLEdit1_EditValueChanging(object sender, ChangingEventArgs e)
{
this.BeginInvoke(new System.Windows.Forms.MethodInvoker(delegate
{
FilterLookup(sender, new string[] { "mc", "bm", "jp" });
}));
}
private void gridLUpEdit1_TextChanged(object sender, EventArgs e)
{
GridLookUpEdit edit = sender as GridLookUpEdit;
edit.SelectionStart = edit.Text.Length;
string gname = edit.Text;
string sql = string.Format("SELECT lcssbm.bm FROM lcssbm where version='国标版2018' and mc='{0}'", gname);
DataTable gTable = SqlHelper.ExecuteDataTable(sql);
if (gTable.Rows.Count == 0)
{
bindText("", false,"");
return;
}
gid = gTable.Rows[0]["bm"].ToString();
bindText(gid, false, gname);
}
/// <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);
}
private void UserSsCzmz_KeyPress(object sender, KeyPressEventArgs e)
{
bool isnull = false;
GridLookUpEdit gu = sender as GridLookUpEdit;
string kname = gu.Text;
if (e.KeyChar == (char)Keys.Enter)
{
if (string.IsNullOrWhiteSpace(gu.Text))
{
isnull = true;
bindText(gid, isnull, kname);
}
else {
SendKeys.Send("{tab}");
}
}
}
}
}