主题:求助,请问如何给组合框赋值
thirdli
[专家分:0] 发布于 2009-09-24 20:44:00
怎样给一个组合框赋值,也就是不用选,就有值?
回复列表 (共4个回复)
沙发
sywzs [专家分:5650] 发布于 2009-09-25 04:51:00
组合框.value=值
前提是这个值必须是下拉列表中的一个成员。
板凳
thirdli [专家分:0] 发布于 2009-09-25 07:27:00
例如根据组合框1选择的单位编号,组合框2单位名称自动赋值,表dwdm有dwbh和dwmc两个字段,combo2的rowsource已经设置为dwdm.dwmc,
LOCATE FOR dwdm.dwbh=ALLTRIM(thisform.combo1.DisplayValue)
b=RECNO()
thisform.combo2.Value=thisform.combo2.list(b)
thisform.Refresh
但是不起作用,请问错在哪?
3 楼
Gleam [专家分:3100] 发布于 2009-09-25 10:35:00
在combo1的interactivechange中加入代码;
LOCAL i,gnunit
LOCAL ARRAY aGrade(1)
*这里假设你的dwbh是字符型的。数字型的你自己改一下。
IF THIS.ListIndex > 2
gnunit=THIS.DisplayValue
SELECT DISTINCT dwmc FROM dwdm INTO ARRAY aGrade ;
WHERE ALLTRIM(dwbh)==ALLTRIM(dwbh) AND !empty(alltrim(dwmc))
ELSE
SELECT DISTINCT dwmc FROM dwdm INTO ARRAY aGrade where !empty(alltrim(dwmc))
ENDIF
ThisForm.combo2.Clear()
ThisForm.combo2.AddItem("全部")
IF _TALLY>0
ThisForm.combo2.AddItem("\-")
FOR i = 1 TO ALEN(aGrade, 1)
ThisForm.combo2.AddItem(ALLTRIM(aGrade(i)))
ENDFOR
ENDIF
ThisForm.combo2.ListIndex=1
ThisForm.combo2.interactivechange() &&这行根据需要,如果不需要,就删了。
这样你的combo1的值变了,combo2的数据就自动更新了。
注意,你的combo2的rowsource设置为空。rowsourcetype设置为 0。
4 楼
thirdli [专家分:0] 发布于 2009-09-25 10:54:00
您的代码需要往combo2里添加选项,我把dwdm表复制到一个临时表里,通过临时表,实现了功能,多谢楼上两位的帮助。
SELECT * FROM dwdm INTO CURSOR tdwdm
LOCATE FOR ALLTRIM(tdwdm.dwbh)=ALLTRIM(thisform.combo1.DisplayValue)
thisform.combo2.Value=thisform.combo2.list(RECNO())
thisform.Refresh
我来回复