怎样实现VFP的下个表单里的查询打印等功能

已经做了一些工作,只是中间过渡表的使用不大会,思路,先借助于总数据表bdxx,按照check有选择地组合查询,这期间需要一个过渡表,存入并过渡显示,思路想的挺好,只是实现... 已经做了一些工作,只是中间过渡表的使用不大会,思路,先借助于总数据表bdxx,按照check有选择地组合查询,这期间需要一个过渡表,存入并过渡显示,思路想的挺好,只是实现不大容易,感觉。
use bdxx
if thisform.check0.value=1
a=thisform.combo1.value
*select 变电站,电压等级,时间,设备类型,缺陷,类别;from bdxx where 变电站=a
thisform.grid1.recordsourcetype=0
thisform.grid1.recordsource="tim.dbf"
endif
if thisform.check1.value=1
b=thisform.combo2.value
*select 变电站,电压等级,时间,设备类型,缺陷,类别;from bdxx where 设备类型=b
thisform.grid1.recordsourcetype=0
thisform.grid1.recordsource="tim.dbf"
endif
if thisform.check2.value=1
c=thisform.combo3.value
*select 变电站,电压等级,时间,设备类型,缺陷,类别;from bdxx where 电压等级=c
thisform.grid1.recordsourcetype=0
thisform.grid1.recordsource="tim.dbf"
endif
if thisform.check3.value=1
s=thisform.text1.value
e=thisform.text2.value
*select * from a where 时间 between s and e into tim.dbf
thisform.grid1.recordsourcetype=0
thisform.grid1.recordsource="tim.dbf"
endif
查询功能我修改了下:
1.use bdxx
copy structure to tim.dbf
use tim
2.类似的:select "变电站,电压等级,时间,设备类型,缺陷,类别" from bdxx where 变电站=a into dbf tim
select "变电站,电压等级,时间,设备类型,缺陷,类别" from bdxx where 设备类型=b into dbf tim
select "变电站,电压等级,时间,设备类型,缺陷,类别" from bdxx where 电压等级=c into dbf tim
select * from a where 时间 between s and e into dbf tim
这次能运行了,但是还是有问题,查不出结果,且显示:操作符/操作类型不匹配
展开
 我来答
sax6310
2009-11-26 · TA获得超过1153个赞
知道小有建树答主
回答量:639
采纳率:0%
帮助的人:649万
展开全部
看了半天知道你程序有问题,先说说吧
1.TIM.DBF表在变电站选项为1时是否存在啊,从你这个程序上看是不存在的,除非在别处打开了,如果不存在,下面的GRID.RECORDSOURCE一行一定出错,如果存在,那也没有新内容显示,所以你的程序在查询时就不会有你想要的结果.
2.多项选择都打勾,从程序上一定是显示最后一个项目的结果,所以前面的勾没用处.
应该如何改
将多个CHECK改成OPTIONGROUP控件,进行单项选择,只放一个COMBO1控件,在查询CLICK里的代码如下
thisform.grid1.recordsource=""
use bdxx
DO CASE
CASE THISFORM.OPTIONGROUP1.VALUE=1
select 变电站,电压等级,时间,设备类型,缺陷,类别 from bdxx INTO CURSOR TIM where 变电站=THISFORM.COMBO1.VALUE
CASE THISFORM.OPTIONGROUP1.VALUE=2
select 变电站,电压等级,时间,设备类型,缺陷,类别 from bdxx INTO CURSOR TIM where 设备类型=THISFORM.COMBO1.VALUE
CASE THISFORM.OPTIONGROUP1.VALUE=3
select 变电站,电压等级,时间,设备类型,缺陷,类别 from bdxx INTO CURSOR TIM where 电压等级=THISFORM.COMBO1.VALUE

OTHER

ENDCASE
thisform.grid1.recordsource="tim.dbf"
THISFORM.GRID1.REFRESH
过程是这样的,先把GRID1的绑定表解除下来,不然GRID1控件将变成白框,不能用了.
打开总表,再看用户选了哪个项目作为查询条件,再按不同的选项进行不同命令的查询,在查询时输出给TIM临时表,最后将表与GRID1绑定.
这里要注意,如果不同选择中的值不同时,可以将OPTIONGROUP1的CLICK下加代码:
THISFORM.COMBO1.CLEAR
DO CASE
CASE THISFORM.OPTIONGROUP1.VALUE=1
THISFORM.COMBO1.ADDITEM("变电站1")

THISFORM.COMBO1.ADDITEM("变电站2")
THISFORM.COMBO1.ADDITEM("变电站3")
....

CASE THISFORM.OPTIONGROUP1.VALUE=2
THISFORM.COMBO1.ADDITEM("设备1")

THISFORM.COMBO1.ADDITEM("设备2")
THISFORM.COMBO1.ADDITEM("设备3")

CASE THISFORM.OPTIONGROUP1.VALUE=3
THISFORM.COMBO1.ADDITEM("电压1")

THISFORM.COMBO1.ADDITEM("电压2")
THISFORM.COMBO1.ADDITEM("电压3")
OTHER
ENDCASE
这样COMBO1的值就成了变化的了,值的内容你自己填写吧,我这里只给你举例了.
打印时可以用报表设计器进行设计,不难的,只在与TIM绑定就行了.
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式