您现在的位置: 无忧电子商务网 >> 信息学院 >> 程序开发 >> asp >> 正文

一个复合查询方法

作者:佚名    信息学院来源:整理    点击数:    更新时间:2008-1-24 我要参与讨论

  有使用show方法,

mainform就只是内存中的一个变量,而不是一个表单不可见的实例!反之,thisform.release语句则从根本

上释放了表单上所有的对象变量,从而在内存中完全清除了表单.

而在prg文件中与scx文件中用addobject()方法建立表单和控件的顺序是不一样的,在prg文件中是先

向表单添加控件再显示表单,表单上的控件继承了表单的visible属性,当表单实例化时控件也实例化;

而在scx文件使用addobject()方法是先显示表单,然后再向表单添加控件的,因此必须手工设置控件的

visible属性为Ture。

当然这样比较麻烦,干脆在mybut类库中手工建立一个Resultform表单类,在该表单类上添加一个命

令按钮cmdReturn和一个Grid1,设置命令按钮cmdReturn的caption属性为"返回",Click事件代码为

thisform.release,设置Grid1的RecordSourceType属性为1-别名,RecordSource属性为Tempview,这样就

不用在代码中手工输入thisformset.form1.cmdReturn1.visible=.t.语句,省事多了。

最终的程序代码如下:

*******************************************************

set database to databasename

 

if used("tempview")

rename view tempview to oldview

delete view oldview

endif

 

Create sql view tempview as &sqlstatement

=requery()

IF _TALLY = 0

#DEFINE MSG_LOC "没有找到符合条件的纪录!"

#DEFINE TITLE_LOC "没有找到纪录"

=MESSAGEBOX(MSG_LOC,64+0+0,TITLE_LOC)

ELSE

set Classlib to mybut additive

thisformset.addobject("form1","Resultform")

thisform.hide

thisformset.form1.show

Endif

********************************************************

运行程序,一切ok!终于实现了动态生成查询条件,动态显示结果。只要再用dbsetprop()语句设置视

图为可更新,就能对查询结果进行修改/更新了!这是我见到过的最完美的复合查询了!

就这么简单?没错,就这么简单!一个困扰数月的问题,研究的时候峰回路转,最终结果却是如此轻

松!这就是编程的艺术吧!

这个问题的解决,虽然走了许多弯路,但是也让我们了解了许多VFP的原理,难道不是很值得吗?!光

凭书本的知识,你永远也无法了解这些东西的。有人说:读三年的书,还不如写一个月的程序,不是吗?!

其他:

我在本文中省略了开头的动态生成sql语句的部分,具体的做法大家可以研究一下VFP自带的示例应用

程序solution中databases目录下的view/queries目录中的Interactively Bulid

上一页  [1] [2] [3] [4] [5] [6] 下一页

在google里搜索更多一个复合查询方法

Google
Web www.51ec.org
【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
我来说两句 对此文章发表了评论
  昵 称: *必填    ·注册用户·
  评 分: 1分 2分 3分 4分 5分     严禁发表危害国家安全、政治、黄色淫秽等内容的评论,用户需对自己在使用本网站服务过程中的行为承担法律责任。本站管理员有权保留或删除评论内容,评论内容只代表机友个人观点,与本网站立场无关。  
评 论
内 容

 
评论列表 (最新 评论仅限网友观点!)

供求信息




| 设为首页 | 加入收藏 | 关于我们 | 广告服务 | 联系方式 | 友情链接 | 版权申明