C#实现的 快速查找通用组件 YHSoft.QuickFind

来源:互联网 发布:贝因美积分网络兑换 编辑:程序博客网 时间:2024/05/16 16:03

功能:

在给定的DataTable中筛选出指定的记录,以DataRow形式返回。返回后自己根据需要处理。提供6种重构(ListView显示列的数量不同)。


一、组件界面



组件显示默认界面


二、调用:

添加组件YHSoft.QuickFind.dll引用,并using

调用代码:

DataSet clientDs = new DataSet();string[,] searchFlds = { { "codePy", "拼音助记符" },                          { "codeWb", "五笔助记符" } };//如需要更多的检索字段,请在此定义try{DataTable quickFindTb = clientDs.Tables["staffNav"].Copy();FrmQuickFind quickFind = new FrmQuickFind(quickFindTb, "值班人员",  searchFlds, "id", "name","姓名", 20, false, "");//两列显示参数调用quickFind.ShowDialog();if (quickFind.outDr != null){//你自己的代码}quickFindTb.Dispose();}catch (Exception ex){MessageBox.Show(ex.Message);}//三到七列显示参数调用  //略


三、功能详解

1、总体说明

(1) 数据表(DataTable):建议用数据副本传入,需要有主键,如未建立主键,请先为数据表建立主键,在组件中会对数据表按检索字段重新排序,不恢复传入前排序,不处理使用后的副本DataTable;

(2) 检索字段:所有的检索字段必须在传入数据表(DataTable)中存在,如缺少字段,组件会自行退出。

(3)显示字段:所有的显示字段必须在传入数据表(DataTable)中存在,数据表(DataTable)中必须有enabled字段,bool类型,如无此字段,请自己根据条件在DataTable中添加此字段,如缺少字段,组件会自行退出。

(4)未输入筛选条件时,筛选结果区域默认显示为数据表(DataTable)的前N条记录。

(5)汉字的检索字段为所有有效的显示字段(最多6个,取决于你使用了哪个调用),无论哪个字段包含指定的输入字符(汉字)都视为可能需要的记录

2、查找条件区域 

(1)“TextBox”:检索条件输入区域。筛选字段取决于传参数的筛选字段集合,F4循环切换你的筛选字段集合,F2切换到指定字符(汉字)检索模式,F4切回时记录你切换前的筛选条件,不可输入英文半角”%”字符,其它无限制,输入字符要符合检索字段规则。

(2)“首位顺序匹配”:从检索字段首位开始检索与TextBox内容相同的记录(切换为汉字检索同样适用);

(3)“包含连续匹配”: 在检索字段中查找包含与TextBox内容相同的记录(切换为汉字检索同样适用);

(4)“完全匹配”: 在检索字段中查找与TextBox内容完全相同的记录(切换为汉字检索同样适用);

(5)“显示停用记录”:是否在筛选结果中显示已停用/无效的记录,此值默认值为调用时参数传入值,可在界面调整,不保留记忆功能(切换为汉字检索同样适用);

(6) “显示记录数”:筛选结果区域显示的筛选记录数量,此值默认值为调用时参数传入值,可在界面调整,最小为1,最大为50,不保留记忆功能(切换为汉字检索同样适用);

3、筛选结果区域

图中为最大显示字段数的截图(7个显示字段,本说明以此图说明)

你看到的1-6列为参数传入列,此6列为你调用组件时传入显示列参数的第2-7列参数,第1个为主键列,在组件中不显示,第7列为组件加入的”是否停用”列,列宽度(除第1列,宽度恒定为0,不可调整)为字段内容最大宽度或列标题宽度(在这两个宽度中取大的作为显示时的列宽度,可以运行时调整,不保留记忆功能);


4、操作说明

(1)“TextBox”输入后无需要其它操作,自动筛选出符合条件的记录,查寻中的其它条件改变后自动刷新筛选结果;

(2)“关闭”按钮为FORM的CancelButton,可通过ESC键关闭界面;

(3)在”TextBox”中直接回车,选中首条记录;

(4)在”TextBox” 按方向键↓可直接选中第一条记录,在结果集中可上下键选中想要的记录,回车键选中记录,并退出界面;

(5)筛选结果集中按↑键且是第一条记录时,”TextBox”获得输入焦点,在已输入字符最后;

(6)鼠标可以在任意时候选中需要记录并退出界面;


5、其它说明

(1)组件最少需要2个显示字段,最多支持7个显示字段,其中第一个字段为主键字段,组件中不显示,如果你是2个显示参数的调用,并且将第2个显示参数为“”值,组件界面你看不到结果集(只有第1个,已被隐藏了);

(2)选中结果后,组件将选中结果以Datarow参数传出,传出后自己根据需要处理,但需要注意传出的DataRow与数据源表中的DataRow是数据相同,不是DataRow相同,主要是由于RowState不同而不能判定为同一DataRow,数据源表的RowState为DataRowState.Unchanged,而传出DataRow的RowState为

DataRowState.Added,此属性为只读属性,无法在代码中修改;



下载地址:http://download.csdn.net/detail/meerio/9550742

使用过程 的问题可与我联系!

如果你有更好的见意请与我联系,欢迎指正完善。

邮箱:ZQJia@outlook.com

QQ:18665960


0 0
原创粉丝点击