2

我正在使用 Orace Apex,特别是:

SELECT
    APEX_ITEM.radiogroup(1,EMP_ACTIVE,'Y',NULL,'disabled'),
    APEX_ITEM.radiogroup(2,CUST_ACTIVE,'Y',NULL,'disabled'),
    APEX_ITEM.radiogroup(3,USER_ACTIVE,'Y',NULL,'disabled')
FROM table A;

问题是,这条语句运行良好,但在屏幕上难以阅读。

是否有另一种方法可以使这个无线电组看起来像一个普通的无线电组,没有禁用的外观,以使用户更容易阅读,但同时不允许用户实际更改无线电组?

4

2 回答 2

2

另一种方法是创建自己的图标,看起来像单选按钮,并像这样使用它们:

SELECT
    '<img src="' || case EMP_ACTIVE when 'Y' then 'myrg_selected.png' 
                                    else 'myrg_notselected.png' end || '"/>',
    '<img src="' || case CUST_ACTIVE when 'Y' then 'myrg_selected.png' 
                                    else 'myrg_notselected.png' end || '"/>',
    '<img src="' || case USER_ACTIVE when 'Y' then 'myrg_selected.png' 
                                    else 'myrg_notselected.png' end || '"/>'
FROM table A;

您可以将逻辑移动到函数中以使报告更简单:

SELECT
    mypkg.radio_img(EMP_ACTIVE),
    mypkg.radio_img(CUST_ACTIVE),
    mypkg.radio_img(USER_ACTIVE)
FROM table A;
于 2012-07-18T09:24:36.143 回答
2

您可以有选择地禁用单选按钮。禁用未选中的,并保持选中的“活动”

with d as (
select 'N' emp_active, 'N' cust_active, 'Y' user_active
from dual
union all
select 'N', 'Y', 'N'
from dual
union all
select 'Y', 'N', 'N'
from dual
)
SELECT
   APEX_ITEM.radiogroup(1,EMP_ACTIVE,'Y',NULL, CASE EMP_ACTIVE WHEN 'N' THEN 'disabled' END) EMP_ACTIVE,
   APEX_ITEM.radiogroup(2,CUST_ACTIVE,'Y',NULL, CASE CUST_ACTIVE WHEN 'N' THEN 'disabled' END) CUST_ACTIVE,
   APEX_ITEM.radiogroup(3,USER_ACTIVE,'Y',NULL, CASE USER_ACTIVE WHEN 'N' THEN 'disabled' END) USER_ACTIVE
FROM d;

禁用和启用的无线电

(如果我认为这是正确的:您的无线电组是垂直的;在一列中只选择了一个?)

(想法取自为什么单选按钮不能是“只读的”?

于 2012-07-17T13:27:06.653 回答