【发布时间】:2013-02-14 16:41:58
【问题描述】:
您好,我想添加一个后字段逻辑,我有 4 个复选框(check1、check2、check3 和 check4)。当我在 check2、check3 和 check4 上打上复选标记时,我想自动在 check1 上打上复选标记。任何想法。谢谢。
【问题讨论】:
您好,我想添加一个后字段逻辑,我有 4 个复选框(check1、check2、check3 和 check4)。当我在 check2、check3 和 check4 上打上复选标记时,我想自动在 check1 上打上复选标记。任何想法。谢谢。
【问题讨论】:
AFTER FIELD 的弱点在于它需要你在触发前离开该区域。
使用 Genero,当我们多年前添加 ON CHANGE 语法时,它的实现方式是,如果小部件是 GUI 小部件,例如 CHECKBOX、RADIOGROUP、COMBOBOX,则在进行更改时将触发 ON CHANGE,而不是当焦点离开字段时。
我们还添加了 UNBUFFERED 输入模式,这样您的代码就不需要那些分散在各处的 DISPLAY。
您没有说明您使用的 Informix 4gl 版本,但如果您使用的是 Four Js Genero 或 IBM Informix Genero(正如您所说的复选框,那么您可能是),那么答案可能是......
INPUT ... ATTRIBUTES(UNBUFFERED)
...
ON CHANGE check2
LET rec.check1 = "Y"
ON CHANGE check3
LET rec.check1 = "Y"
ON CHANGE check4
LET rec.check1 = "Y"
【讨论】:
AFTER FIELD check2
LET rec.check1 = 'Y'
DISPLAY rec.check1 TO check1
冲洗并重复。我假设输入变量位于记录rec 中,名称为check1 到check4。关键是赋值和显示的双重操作;你需要两个 AFAICR 或者它不“工作”。我可以在这里使用DISPLAY BY NAME rec.check1,但我通常不使用DISPLAY BY NAME;我可能也会在DISPLAY 中包含屏幕记录。不过,在合理的假设下,我写的内容可能会奏效。
【讨论】: