看了半天知道你程序有问题,先说说吧
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绑定就行了.