问一个组合框的问题
有两个表A,B.A表只有一个字段,简称A1,无重复值,B 表有两个字段,B1,B2.其中B1字段和A表中A1完全一样,有重复值。
设置二个组合框,K1,K2
K1 值的来源为A表,在K1的INTERACTIVECHANGE 中,写入如下代码
SELE B表
SET FILTER TO B1=THIS.K1.VALUE
此时表B过滤,只有在字段B1=K1值的时候才显示。
但是,在点击组合框时,却直显示符合K1值的第一条记录。
问题出在什么地方?
FORM1= NEWOBJECT("C_FORM") FORM1.SHOW READ EVENTS RETURN DEFINE CLASS C_FORM AS FORM AUTOCENTER=.T. CAPTION="组合框查询示例一" SHOWTIPS=.T. ADD OBJECT LABEL1 AS LABEL WITH AUTOSIZE=.T.,CAPTION="部门",TOP=16,LEFT=10,HEIGHT=28,WIDTH=40 ADD OBJECT COMBO1 AS COMBOBOX WITH TOP=6,LEFT=40,HEIGHT=24 ADD OBJECT LABEL2 AS LABEL WITH AUTOSIZE=.T.,CAPTION="部门代码",TOP=16,LEFT=152,HEIGHT=28,WIDTH=40 ADD OBJECT COMBO2 AS COMBOBOX WITH TOP=6,LEFT=205,HEIGHT=24 ADD OBJECT GRID1 AS GRID WITH TOP=((THISFORM.HEIGHT-THISFORM.GRID1.HEIGHT)/2)+20,LEFT=(THISFORM.WIDTH-THISFORM.GRID1.WIDTH)/2 PROCEDURE INIT *---部门 CREATE CURSOR 部门 (部门名称 C(10)) INSERT INTO 部门 VALUES ("参谋处") INSERT INTO 部门 VALUES ("作战处") INSERT INTO 部门 VALUES ("通讯处") *---部门代码 CREATE CURSOR 部门代码 (部门名称 C(10),班组名称 C(10)) INSERT INTO 部门代码 VALUES ("参谋处","参谋一处") INSERT INTO 部门代码 VALUES ("参谋处","参谋二处") INSERT INTO 部门代码 VALUES ("作战处","作战一处") INSERT INTO 部门代码 VALUES ("作战处","作战二处") INSERT INTO 部门代码 VALUES ("通讯处","通讯一处") INSERT INTO 部门代码 VALUES ("通讯处","通讯二处") *---人员资料 CREATE CURSOR 人员资料 (班组名称 C(10),姓名 C(8)) INSERT INTO 人员资料 VALUES ("通讯二处","AAAAAA") INSERT INTO 人员资料 VALUES ("作战一处","BBBBBB") INSERT INTO 人员资料 VALUES ("参谋一处","CCCCCC") INSERT INTO 人员资料 VALUES ("作战二处","DDDDDD") INSERT INTO 人员资料 VALUES ("通讯一处","EEEEEE") INSERT INTO 人员资料 VALUES ("参谋二处","FFFFFF") GO TOP IN 部门代码 THISFORM.CX("部门代码") WITH ="部门.部门名称" .ROWSOURCETYPE=6 ENDWITH ENDPROC PROCEDURE COMBO1.INTERACTIVECHANGE SELECT 部门名称,班组名称 FROM 部门代码 WHERE ALLTRIM(部门名称)==ALLTRIM() INTO CURSOR TABNAME WITH =2 .COLUMNWIDTHS="40,60" .ROWSOURCE="TABNAME" .ROWSOURCETYPE=2 .DISPLAYVALUE=ALLTRIM(.LIST(1,2)) && 显示COMBO2的值 .REQUERY ENDWITH THISFORM.CX("TABNAME") ENDPROC PROCEDURE COMBO2.INTERACTIVECHANGE THIS.DISPLAYVALUE=THIS.LIST(THIS.LISTITEMID,2) && 修改COMBO2的值 SELECT 人员资料 SET FILTER TO INLIST(ALLTRIM(班组名称),ALLTRIM()) GO TOP IN 人员资料 THISFORM.CX("人员资料") THISFORM.GRID1.REFRESH ENDPROC PROCEDURE CX PARAMETERS CALIAS WITH THISFORM.GRID1 .COLUMNCOUNT=FCOUNT(CALIAS) .RECORDSOURCE=CALIAS .RECORDSOURCETYPE=1 FOR I=1 TO .COLUMNCOUNT .COLUMNS(I).HEADER1.CAPTION=FIELD(I,CALIAS) .COLUMNS(I).HEADER1.ALIGNMENT=2 .COLUMNS(I).WIDTH=62 ENDFOR ENDWITH ENDPROC *!* PROCEDURE DESTROY *!* CLEAR EVENTS *!* ENDPROC PROCEDURE UNLOAD CLEAR EVENTS ON SHUTDOWN QUIT ENDPROC ENDDEFINE可能是组合框K2的数据源没被刷新(REQUERY)的原因吧