如何编写when-checkbox-changed触发器

时间:2016-02-08 06:24:23

标签: oracle oracleforms

在同一个块中有两个不同的复选框,名为CHKBOX_REMOVE_BILL,CHKBOX_PRINT_BILL。 用户一次只能选择一个复选框。当一个人检查另一个时,应该取消选中。在Oracle Forms 6i中触发。

我在CHKBOX_REMOVE_BILL上写了这个,当时复选框改变了触发器

DECLARE

val number;

BEGIN

IF CHECKBOX_CHECKED(:BLK_REMOVE.CHKBOX_REMOVE_BILL) THEN
 val := 0 ; -- replace with your real unchecked value
 --:BLK_REMOVE.CHKBOX_PRINT_BILL := 1 ; 

ELSE      val:= 1; - 替换为您的实际检查值       - :BLK_REMOVE.CHKBOX_PRINT_BILL:= 0;   结束如果;

BEGIN

    IF CHECKBOX_CHECKED(:BLK_REMOVE.CHKBOX_REMOVE_BILL) <> false  THEN
        :BLK_REMOVE.CHKBOX_PRINT_BILL := 0 ;
    ELSE
        :BLK_REMOVE.CHKBOX_PRINT_BILL := 1 ;
    END IF ;

END;

EXCEPTION
    WHEN OTHERS THEN
        call_note_alert('Error');

END;

我在CHKBOX_PRINT_BILL上写了这个,当时复选框改变了触发器 DECLARE

val number;

BEGIN

IF CHECKBOX_CHECKED(:BLK_REMOVE.CHKBOX_PRINT_BILL) THEN
 val := 1 ; -- replace with your real unchecked value
 :BLK_REMOVE.CHKBOX_REMOVE_BILL := 0 ; 

ELSE      val:= 0; - 替换为您的实际检查值      :BLK_REMOVE.CHKBOX_REMOVE_BILL:= 1;   结束如果;

BEGIN

    IF CHECKBOX_CHECKED(:BLK_REMOVE.CHKBOX_PRINT_BILL) <> false  THEN
        :BLK_REMOVE.CHKBOX_REMOVE_BILL := 0 ;
    ELSE
        :BLK_REMOVE.CHKBOX_REMOVE_BILL := 1 ;
    END IF ;

END;

EXCEPTION
    WHEN OTHERS THEN
        call_note_alert('Error');

END;

/////// 当我选中一个复选框时,两者都被选中

在我的表单中,在名为BLK_REMOVE的同一个块中有两个名为CHKBOX_REMOVE_BILL,CHKBOX_PRINT_BILL的复选框。 当表单运行时,用户想要一次只检查一个(如单选按钮)。 如何在when-checkbox-changed上写入触发器?

我已经更改了我的代码,现在它正常运行

我在CHKBOX_REMOVE_BILL上写了这段代码,当时复选框改变了触发器。 其中CHKBOX_REMOVE_BILL选中值= 1,未选中的值= 0。

DECLARE

val number;

BEGIN

if(:BLK_REMOVE.CHKBOX_REMOVE_BILL = 0)then
    :BLK_REMOVE.CHKBOX_PRINT_BILL := 2;
else
    :BLK_REMOVE.CHKBOX_PRINT_BILL := 3;
end if;

EXCEPTION
    WHEN OTHERS THEN
        call_note_alert('Error');

END;

我在CHKBOX_PRINT_BILL上写了这个,当时复选框改变了触发器。 其中CHKBOX_PRINT_BILL选中值= 2,未选中值= 3.

DECLARE

val number;

BEGIN

if(:BLK_REMOVE.CHKBOX_PRINT_BILL = 2)then
    :BLK_REMOVE.CHKBOX_REMOVE_BILL := 0 ; 
else
        :BLK_REMOVE.CHKBOX_REMOVE_BILL := 1 ;
end if;

EXCEPTION
    WHEN OTHERS THEN
        call_note_alert('Error');

END;

1 个答案:

答案 0 :(得分:2)

使用单选按钮代替复选框