哪位大侠有制作任意组合查询的经验(100分)

程大侠:
俺也要一个,呵呵,谢谢先了
mailto:byebey@263.net
 
to liuge、sirra:
已发出,收到了吗?

对不起大家了,我在客户端的程序中所用的HRdxDBGrid.dcu控件是从DevExpressDBGrid控件继承
过来的,如果编译不能通过,可得先装后者。

后者是一个很有名,很不错的控件,你可去湖南信息港找到它。
网址是: http://chat.hn.cninfo.net/soft/
好象是DevExpressDBGrid 1.42吧!
也可以去凌云天地找到它。
网址: http://personal.wol.com.cn/ocloud/

因为它太大了故无法邮寄,如用到的话只得麻繁大伙儿自己去down一下了。


 
jwf (hdx@public.npptt.fj.cn)
于小澜 (dypublic@cmmail.com)
程云 (zzmcy@21cn.com)
dingbaosheng (dingbaosheng@sina.com)
driver (yang_gq@163.net)
naj (E_Mail:pyhjf@163.net)
老Q (qyx@jd.cnpc.com.cn)
knightlzf (knightlzf@163.net)

以上兄弟们真抱歉,我刚换了工作,现在的环境是英文的,家里又老连不上大富翁, 我在这里记下
大家的地址,我整理好后会马上寄给大家。

to 程云,driver:
做MIS难免要做报表、查询,当官的家伙什么都不会,还什么信息都要看,所以出现了动态报表、
动态查询,我为此付出了一年的青春,不知道你们怎样?

to 老Q:
我很乐意与你做个朋友,关于股票与Delphi,mail联系吧,我的mail每5分钟检查一次。
 
我也很抱歉,前帖中谈到的DevExpressDBGrid控件的在湖南信息港中没有,
我也是几天前孔枫问起来时才发现的,
现我已找到它真正的下载地了。

Delphi 地下城
http://pluto.spaceports.com/~delphi/

中的控件精粹,中的界面增强中的Express Quantum Suite for Delphi

其中包括:

Express Forum Lib for Delphi 5
Express Grid for Delphi 5
Express Bar for Delphi 5
Express Memory Data for Delphi 5

共17张盘。

当然用不了这么多,只用到Express Grid for Delphi 5
就可以了。
 
Jinghui大侠:
你的组合查询整理好了吗?俺等了好多天了!
 
Jinghui大侠:
你的组合查询整理好了吗?俺等了好多天了!
 
耐心等待Jinghui大侠!
 
程大侠:
也给我来一份,万分感谢!
willis_chen@163.net

 
在这里程大侠可谓出尽风头,小生也来凑凑热闹,
我认为这样的组合查询其实难度是没有什么的,只不过过程很烦(如果查询条件太多的话)
其实现的原理就是根据选择的条件不断向SQL中ADD条件字符串就行了。
对于多表查询的话,如果想图简单,就用建视图的方法。
主要的难点是在条件之间的连接字串的处理
例如在一个查询中可能有三个条件,例程如下:
var
notfirst:Boolean;
with query1 do
begin
close;
with sql do
begin
clear;
add('select * from table1');
notfirst:=false;
if 条件一 then
begin
add('where');
add(条件字串一)
notfirst:=true;
end
if 条件二 then
begin
if notfirst then
add('and')
else
add('where');
add(条件字串二)
notfirst:=true;
end
if 条件三 then
begin
if notfirst then
add('and')
else
add('where');
add(条件字串三)
notfirst:=true;
end
end;
open;
end;
其中布尔型变量notfirst的作用是做第一个条件标志,当有了第一个条件后要给它赋true;
以后每一次有条件满足时,均监测notfirst的值,以决定用什么连接字串。
 
组合查询说简单很简单说复杂也很复杂. 主要看设计思路. 其实主要考虑应该是各种
条件之间的关系(主要是and和or的组合). 我 觉得最傻的就是那种一排按钮, 其中还
包括"(", ")"来让用户选. 您太高估用户的水平了. 用这种任意查询的一般是领导, 要求
领导们有很好的逻辑思维能力能够很清楚地了解那些条件该加括号(加几层?)显然超
出了现实情况(就是稍微具备点知识但没有编程经验的用户也得学好一阵才能明白是
怎么回事).

个人认为, 提供这种所谓的万能查询还不如不提供的好, 这明明是让用户帮你编一半
程序嘛. 如果让我使用这种东西, 我的第一反映将是"这程序员真能偷懒".

我认为: 优秀的万能查询是智能识别, 也就是说, 用户输入一段普通文字, 由程序
全自动分析出其中的条件并进行查询. 不过看来不现实.

另外一种我觉得比较好的查询是建立查询条件知识库, 将常用查询条件事先录入, 这
时, 用户选择的将是非常直观的一段日常文字描述, 然后填入需要的数据. 缺陷是不能
做到万能, 不过我们可以通过由专业人员不断添加知识库中的内容来逐步达到"万能"
(针对某行业)查询

所以, 我认为目前并不存在什么万能查询.
 
程大侠:
也给我来一份,谢谢!
jlxbz@sohu.net
 
赞同Another_eYes!
依我看,目前最万能的查询就是SQL Select !
 
终于进来了,一直都连不上大富翁。
放假期间终于完成了,整理后发现不一定能满足老Q的要求,仅供参考吧。
兄弟们如果没有收到我的mail,过几天请到
http://tomkitty.home.chinaren.com去找一下。
 
多人接受答案了。
 
程云,也给我一个!
ZhouPeiPei@0733.com
 
哪位大哥给我一点组合查询或自定义报表方面的资料,万分感激!
ZhouPeiPei@0733.com
 
to houPeiPei:
那是一年多以前的程序了,
我最近又新作了一个这类的好玩的小程序,
这两天整理一下,我发上来。
 
to 程云:

可否再给我一份?xxz007@yeah.net
 
不好意思,最近忙了点了,
今天才整理了一下,
上传到了《Delphi开发者资源社区》了
http://delphi.mychangshu.com/

可直接从以下地直下载
http://delphi.mychangshu.com/dispdoc.asp?id=698

这个例子比较简单,真正的这种程序还要复杂的多。
仅供参考。
 

Similar threads

S
回复
0
查看
973
SUNSTONE的Delphi笔记
S
S
回复
0
查看
791
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
945
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
顶部