很多成熟的商业软件都有万能查询的功能,如查询供应商时选择字段、条件、值,然后选择or、and,下一个条件。但Delphi自带的TDBGrid、TStringGrid、ListView1好像都无法实现这样的效果,即表格中的每一行都是一个下拉框,可以选择不同的值,在这方面的确没有PB的DataWindow方便。
请问有没有什么方法可以做到,或者现成的第三方控件,谢谢。

解决方案 »

  1.   

    我们实现用的是第三方的控件infopower3000中的TwwDBGrid组件,实现起来非常方便
      

  2.   

    自己做,这个不难!!!关键是怎样保证SQL语句的语法正确!!
      

  3.   

    TDBGrid可以为每一行、每一列都提供下拉框的。
      

  4.   

    我个人认为做万能查询给用户使用是种不符责任和偷懒的行为,你想想看一般的用户有多少计算机知识?有多少个人知道,AND,OR,NOT 之间的关系?用户要求的是快速地查询并且不用动脑。如果一个不太懂计算机知识的用户看到一大堆字段和条件的窗体,还要做出条件组合选择的操作才能查询到他想要的话,他该如何做想?
    除非用户要求我们才会做万能查询给他。
      

  5.   

    同意木头人的观点,我的做法是列出一些常用的条件再加上自定义的排序,点击标题栏类似windows的资源管理器那样。当客户觉得可以通过眼睛来查找的话(移动鼠标和滚动条)所谓的自定义查询条件就失去意义了,模糊查询的效率要高,可操作性也好,更符合人性化原则。
    自定义字段显示倒是有必要的!
      

  6.   

    话不是这样说了,一套成熟的系统大大小小的查询多的很,供应商查询、商品资料查询、员工查询、结算方式查询、订单查询、进单查询、盘点单查询,如果不用万能查询的话,很难做到风格统一,而且代码量非常大,冗余太多。另:TDBGrid中每一列设为下拉框是没用的,它一定要有数据集,并且有数据。
      

  7.   

    自己写代码,注意不要将字段列出来,而应该用中文列表让用户选择
    也不要出现AND、OR之类的专业术语,而要用“并且”“或者”这样通俗易懂的词
    关键是SQL语句的正确是否。
      

  8.   

    QuantumGrid倒是基本上可以满足要求
      

  9.   

    可以结合tlist,来给定条件,用户只需选择相映的条件,即可完成查询。你们认为呢