2013-02-14 143 views
1

嗨我想添加一個後場邏輯,我有4個複選框(check1,check2,check3和check4)。當我在check2,check3和check4上打勾時,我想自動在check1上打勾。任何想法。謝謝。Informix 4GL字段後

回答

0
AFTER FIELD check2 
    LET rec.check1 = 'Y' 
    DISPLAY rec.check1 TO check1 

沖洗並重復。我假設輸入變量的記錄爲rec,名稱check1check4。關鍵是分配和顯示的雙重操作;你需要兩個AFAICR或者它不工作。我可以在這裏使用DISPLAY BY NAME rec.check1,但我通常不使用DISPLAY BY NAME;我可能會在屏幕上記錄DISPLAY。但是,在合理的假設下,我寫的東西可能會起作用。

1

AFTER的弱點在於它需要您在觸發前離開該字段。

使用Genero,當我們在多年前添加ON CHANGE語法時,它的實現使得如果這個小部件是一個GUI小部件,例如CHECKBOX,RADIOGROUP,COMBOBOX,那麼在更改時會觸發ON CHANGE,而不是當焦點離開現場時。

我們還添加了UNBUFFERED輸入模式,以便您的代碼不需要所有這些DISPLAY分散在整個。

你沒有說明你是使用Informix 4GL的版本,但是如果你使用的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"