Visual foxpro 获取vfp中复选框的值
标题说明了一切,我想获取复选框的值,无论它是数字还是字符,以便将其保存到表中 如果您不知道这是逻辑还是数字,那么一个简单的方法是将值转换为整数并检查结果。如果是数字或逻辑,则.T..F的强制转换值为1\0:Visual foxpro 获取vfp中复选框的值,visual-foxpro,foxpro,Visual Foxpro,Foxpro,标题说明了一切,我想获取复选框的值,无论它是数字还是字符,以便将其保存到表中 如果您不知道这是逻辑还是数字,那么一个简单的方法是将值转换为整数并检查结果。如果是数字或逻辑,则.T..F的强制转换值为1\0: local llChecked llChecked = ( cast(thisform.myCheckBox.Value as int) = 1 ) Dhugalmac声称,虽然我不同意,但复选框值可以是一个字符。我假设这是一个输入错误,意味着逻辑值的显示格式可以用作字符(如“Y”、“N”
local llChecked
llChecked = ( cast(thisform.myCheckBox.Value as int) = 1 )
Dhugalmac声称,虽然我不同意,但复选框值可以是一个字符。我假设这是一个输入错误,意味着逻辑值的显示格式可以用作字符(如“Y”、“N”、“T”、“F”、“true”…)。那么我所说的仍然有效,只是有一点变化:
local llChecked
llChecked = cast(m.SomeValue as logical)
- 如果它是字符和logical的可转换格式之一,那么它将是true,否则为false
- 如果它是数字,那么0将为false,而任何其他值都为true
- 如果它已经是逻辑的,那么不管它已经有什么值
如果您正在检查检查本身,则这是正确的,但如果用户只是将检查用作网格中一个或多个值的选择器,则所选的值可能不同。
Arnold-将该值读入内存变量,然后检查该值的TYPE()
DO CASE
CASE TYPE('readvalue') = "C" && Character
<do whatever>
CASE TYPE('readvalue') $ "I,N" && Integer or Numeric
<do whatever>
ENDCASE
DO CASE
大小写类型('readvalue')=“C”&字符
大小写类型('readvalue')$“I,N”&&整数或数字
尾声
祝您好运您可以在属性窗口中设置要在检查值属性中存储的值的类型,如果要存储数值,请执行此操作,请参见图: 然后您可以得到如下值:
local nCheckVal as int
nCheckVal=thisform.check.value
local lCheckVal as logical
lCheckVal=thisform.check1.value
如果要存储逻辑值,请执行以下操作:
然后您可以得到如下值:
local nCheckVal as int
nCheckVal=thisform.check.value
local lCheckVal as logical
lCheckVal=thisform.check1.value
希望对您有所帮助。复选框值可以是数字的,也可以是逻辑的。您的意思是什么?你能告诉我这怎么不是“真的”并且复选框值可以是代码中的字符吗。我说过,如果支票用作网格中的行选择器,那么网格的其他字段(不是支票)可能是任何类型的字段。因此,如果用户在网格中扫描以查找选中的行,那么他们可能希望读取其其他关联字段的值。@Dhugalmac,那么我认为您没有阅读OP的问题或我的答案。OP清楚地说“复选框”,我说“复选框…”。在网格中,敏感类型也是逻辑的。