在vfp中获取已选中复选框的值

时间:2018-10-01 11:12:48

标签: visual-foxpro foxpro

标题说明了一切,我想获取一个选中的复选框的值是数字还是字符,以便我可以将其保存到表中。

3 个答案:

答案 0 :(得分:1)

您可以在属性窗口中的 check value属性中设置要存储的值类型,如果要存储数值,请执行此操作,请参见图片:{{3 }} 那么您可以获得这样的值:

local nCheckVal as int
nCheckVal=thisform.check.value

如果您要存储逻辑值,请执行以下操作:put the value in 0 or 1 那么您可以获得这样的值:

local lCheckVal as logical
lCheckVal=thisform.check1.value

希望获得帮助。

答案 1 :(得分:0)

如果您不知道它是逻辑的还是数字的,那么一种简单的方法是将值转换为整数并检查结果。如果是数字或逻辑,则.T..F。的强制转换值为1 \ 0:

local llChecked
llChecked = ( cast(thisform.myCheckBox.Value as int) = 1 )

尽管我不同意,但Dhugalmac声称,复选框值可能是一个字符。我认为这是一个拼写错误,意味着可以将逻辑值的显示格式用作字符(例如“ Y”,“ N”,“。T。”,“。F。”,“ true” ...)。然后我说的话仍然有效,只是稍作更改:

local llChecked
llChecked = cast(m.SomeValue as logical)
  • 如果它是字符,并且是逻辑的可转换格式之一,则它为true,否则为false。
  • 如果是数字,则0将为false,其他任何值为true。
  • 如果已经合乎逻辑,那么无论它具有什么值。

答案 2 :(得分:0)

Cetin-“复选框的值可以是数字或逻辑”
如果您正在检查CHECK本身,那么这是正确的,但是如果用户只是将检查用作可能在网格中一个或多个值的选择器,那么被选择的值可能会不同。
Arnold-将“值”读入一个内存变量,然后检查该值的TYPE()。

DO CASE
   CASE TYPE('readvalue') = "C"  && Character  
      <do whatever>
   CASE TYPE('readvalue') $ "I,N"  && Integer or Numeric
      <do whatever>
ENDCASE

祝你好运