dbgrid如何实现录入动态模糊查询

今晚打老虎2010 2012-07-26 02:40:52
很久不用delphi,没想到做dbgrid的下拉模糊查询这么麻烦,一直没找到满意的答案,特来这里求助。





借他人的图来描述一下,如上图所示,收费项目名称保存的是对应代码,显示的是名称。
我想在dbgrid的收费项目名称里录入的时候,根据录入内容,动态改变sql查询条件进行模糊查询,该如何实现?


另:dbgrideh和cxgrid都试过,并不能实现我想要的功能。希望大家提供简单有的方法或思路。
...全文
385 14 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]
我觉得我应该正确理解你的意思了,我上图中就是数据库搜索的结果。

关注。
[/Quote]

改cxgrid,最初也想过,就是嫌麻烦。
我原想在grid的cell里录入时查询,却碰到lookup不能编辑,真是吐血。
现在只是作为兴趣去研究,没有心力再折腾它了。




kaikai_kk 2012-08-08
  • 打赏
  • 举报
回复
单独写一个查询的窗口,显示在对应的Cell上
kanbor 2012-08-08
  • 打赏
  • 举报
回复
我觉得我应该正确理解你的意思了,我上图中就是数据库搜索的结果。

关注。
  • 打赏
  • 举报
回复
我都说了,cxGrid是过滤,非数据库搜索,我想要的是数据库动态查询,这在很多语言里都简单,怎么到了delphi那么麻烦。

本来想自己写方法,但是lookup居然不能编辑,晕死。
kanbor 2012-08-02
  • 打赏
  • 举报
回复
to:chjb2007
如果cxGrid可以实现,能不能介绍方法,谢谢!

我朋友做直接修改cxGrid实现了这个功能的,下面是实现的图片,我也正在想这个办法:


希望有方法的大方共享,谢谢!
火龙岛主 2012-07-31
  • 打赏
  • 举报
回复
cxGrid是可以的
尽可能不要每次都从数据库查询,这样缺点是:
1. 效率不高
2. 反复检索数据库,数据库负担重。

使用内存直接过滤就好了。

colum的properties属性设置为ExtLookupComboBox,就可以实现你的效果了。
具体设置方法与lookup类似。
看看demo,就都ok了。
chjb2007 2012-07-31
  • 打赏
  • 举报
回复
这个也是我想要解决 差不多的方式 帮你顶
http://topic.csdn.net/u/20120731/10/73a9672b-a269-4909-b90c-a08bb70d3fcf.html?2304
THQWS 2012-07-30
  • 打赏
  • 举报
回复
你输入一个值就去数据库中查一下呀,不过太慢了,还是一次性查出来再对数据集进行处理的好!
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
根据输入的实时查询,如果这样慢。把所有值一次都放内存里,再重复匹配。
[/Quote]

这位兄弟,我问的是如何实现
  • 打赏
  • 举报
回复
弹出列没有问题,问题是如何实现动态查询

cxgrid根本就不是真正意义上的查询,只不过在结果集里定位或过虑罢了
bdmh 2012-07-27
  • 打赏
  • 举报
回复
dx,cx的grid都支持弹出列,可以指定弹出什么组件,你还是用他们吧,模糊查询,就是在你输入的时候,动态去select,不过就是慢,你可以想前面同学说的,在内存中遍历数据,动态添加到列表
广州佬 2012-07-26
  • 打赏
  • 举报
回复
在cxGrid里设置该列为TcxLookupComboBox属性并设置好它里面的相关属性。
没用过dbgrideh,不知它的方法。
chu_czx444 2012-07-26
  • 打赏
  • 举报
回复
根据输入的实时查询,如果这样慢。把所有值一次都放内存里,再重复匹配。

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧