vfp 下拉组合框初始值设置问题
想把vfp下拉组合框初始值做成自然数1,2,3,4,5,直到59为止,按降序排,用代码如何写,(不用表格字段,不用生成器),请赐教?...
想把vfp下拉组合框初始值做成自然数1,2,3,4,5,直到59为止,按降序排 ,用代码如何写,(不用表格字段,不用生成器),请赐教?
展开
展开全部
有2种方法
第一种用数组,不过如果数组填充数字的话, 列表里的选项会多了空格,因此建议数组的内容是字符
PUBLIC arrcombo
DIMENSION arrcombo(59)
FOR i=1 TO 59
arrcombo(i)=ALLTRIM(STR(60-i))
ENDFOR
thisform.combo1.RowSourceType= 5
thisform.combo1.RowSource='arrcombo'
第二种直接用值,生成一个字符串('59,58,57,56.....')
ccombo=''
FOR i=59 TO 1 STEP -1
ccombo=ccombo+IIF(EMPTY(ccombo),'',',')+ALLTRIM(STR(i))
ENDFOR
thisform.combo1.RowSourceType= 1
thisform.combo1.RowSource=ccombo
要注意的是
为防止用户自己输入,设置 style属性为1
读取的值(thisform.combo1.value) 是字符类型, 如果需要数字还要用val()转换一下
更多追问追答
追问
老师,第二种方法,我读懂了,循环时从高数位依次递减1,这是降序。如果是升序,则为每次从1递加1进行循环
FOR i=1 TO 59 STEP 1
……
ENDFOR
读懂心情真舒服,谢谢老师!
对于第一种方法,我没有弄懂,特别是这一句
arrcombo(i)=ALLTRIM(STR(60-i))
能进一步给讲一下吗?为何用60-i (教师,别笑我哈,我是菜鸟)
追答
在列表框显示数组的值, 第一个值是arrconbo(1),第二个是arrcombo(2).........
用循环命令赋值时,
我是从1到59的, 这和第二种方法是反着的
for i= 1 to 59
这里i首先是给数组元素用的, arrcombo(i)
当i=1是, 数组是第一个元素 arrcombo(1), 而他的值是59, 不就是60-i(60-1)吗?
同理当i=2时
数组是第二个,arrcombo(2), 他的值是58,不就是60-i(60-2)吗?
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询