visual-foxpro - 了解 Foxpro IF 语句
问题描述
我不确定我的标题应该是什么,如果你能想出更好的东西,请随时编辑我的帖子并更改它。
使用 Foxpro 的可用资源并不多,我想做的是了解正在发生的事情。
lldisdead=.t.
Select .f. as chkbox, * from a_counties ;
order by cn_area, cn_desc ;
into dbf (StrTmpFile1)
scan while !EOF()
IF ChkBox
selected_some_cnty = .t
endif
endscan
以下是我的理解:
- 只要您不在表格的最后一条记录中,请执行以下操作:
- 中频检查框
- 设置 selected_some_cnty 等于 .t
- 停止检查下一条记录
- 继续这样做,直到没有记录为止。
是什么IF CHKBOX
意思?
是说如果 CHKBOX 列不为空,请执行以下操作,否则,什么也不做。
编辑:添加了附加代码
解决方案
从 SQL 查询中,数据将根据名称“StrTmpFile1”变量指向的任何内容进入物理表。另请注意,此选择语句中的第一列是“.f. as ChkBox”。因此,这是在查询中使用始终为 False 的前导列准备每条记录(因此 .f.)
Select .f. as chkbox, * from a_counties ;
order by cn_area, cn_desc ;
into dbf (StrTmpFile1)
现在,我怀疑还有其他一些用户界面操作正在使用此结果表,例如在表格中的网格中显示并允许列上的复选框让用户选择一个或多个条目以进一步执行某些操作。
在所述选择之后(再次推测意图),它通过循环仅找到那些将“ChkBox”列在表中设置为true并将标志设置为.t的记录。选择了一些东西。
总的来说,这是一种非常新手的方法,但这是一个不同的问题。如果标记的记录是获得答案的捷径
select (the table)
Locate for ChkBox
selected_some_cnty = found()
希望这会有所帮助,如果您需要更多说明,请发表评论。