Report APEX 4.2-交互式报告中的动态值列表

Report APEX 4.2-交互式报告中的动态值列表,report,oracle-apex,interactive,lov,Report,Oracle Apex,Interactive,Lov,我有一份有两栏的互动报告。 报告来源 SELECT APEX_ITEM.CHECKBOX2(1,a.USR_CODIGO,DECODE(NVL((SELECT 1 FROM PROYECTOS_ROLES_USUARIOS pru WHERE pru.USR_CODIGO = a.USR_CODIGO AND pru.PRY_ID = :P92_PRY_ID),0),0,'UNCHECKED',1,'CHECKED')) as Incluir, a.USR_CODIGO as Usuar

我有一份有两栏的互动报告。 报告来源

SELECT APEX_ITEM.CHECKBOX2(1,a.USR_CODIGO,DECODE(NVL((SELECT 1 FROM   PROYECTOS_ROLES_USUARIOS pru WHERE  pru.USR_CODIGO = a.USR_CODIGO AND pru.PRY_ID = :P92_PRY_ID),0),0,'UNCHECKED',1,'CHECKED')) as Incluir,
 a.USR_CODIGO as Usuario FROM USUARIOS a;
我想添加第三列,这是一个动态的值列表,应该由这段代码填充

SELECT ROL_DESCRIPCION AS display_value, ROL_CODIGO as return_value FROM ROLES WHERE EXISTS (SELECT 1
           FROM ROLES_USUARIOS
           WHERE ROL_CODIGO = ROLES.ROL_CODIGO
           AND USR_CODIGO = a.USR_CODIGO)) as Rol
a、 USR_CODIGO应为报告每行的主键


有什么方法可以做到这一点吗?

有,你必须使用软件包,特别是 从_lov函数中选择_list _,要使其起作用,您需要先在第二个查询中创建一个应用程序值列表(lov),然后将apex _项调用添加到第一个查询中。注意,您已经在第一次查询中使用了APEX_ITEM包,添加此函数应该不会有任何问题:

APEX_ITEM.SELECT_LIST_FROM_LOV(
    p_idx           IN   NUMBER,
    p_value         IN   VARCHAR2 DEFAULT NULL,
    p_lov           IN   VARCHAR2,
    p_attributes    IN   VARCHAR2 DEFAULT NULL,
    p_show_null     IN   VARCHAR2 DEFAULT 'YES',
    p_null_value    IN   VARCHAR2 DEFAULT '%NULL%',
    p_null_text     IN   VARCHAR2 DEFAULT '%',
    p_item_id       IN   VARCHAR2 DEFAULT NULL,
    p_item_label    IN   VARCHAR2 DEFAULT NULL,
    p_show_extra    IN   VARCHAR2 DEFAULT 'YES')
APEX_ITEM.SELECT_LIST_FROM_QUERY(
    p_idx           IN    NUMBER,
    p_value         IN    VARCHAR2 DEFAULT NULL,
    p_query         IN    VARCHAR2,
    p_attributes    IN    VARCHAR2 DEFAULT NULL,
    p_show_null     IN    VARCHAR2 DEFAULT 'YES',
    p_null_value    IN    VARCHAR2 DEFAULT '%NULL%',
    p_null_text     IN    VARCHAR2 DEFAULT '%',
    p_item_id       IN    VARCHAR2 DEFAULT NULL,
    p_item_label    IN    VARCHAR2 DEFAULT NULL,
    p_show_extra    IN    VARCHAR2 DEFAULT 'YES')
这里p_lov参数将是您先前生成的值的应用程序列表的名称

但如果您不想生成LOV,可以使用select_list_from_查询功能:

APEX_ITEM.SELECT_LIST_FROM_LOV(
    p_idx           IN   NUMBER,
    p_value         IN   VARCHAR2 DEFAULT NULL,
    p_lov           IN   VARCHAR2,
    p_attributes    IN   VARCHAR2 DEFAULT NULL,
    p_show_null     IN   VARCHAR2 DEFAULT 'YES',
    p_null_value    IN   VARCHAR2 DEFAULT '%NULL%',
    p_null_text     IN   VARCHAR2 DEFAULT '%',
    p_item_id       IN   VARCHAR2 DEFAULT NULL,
    p_item_label    IN   VARCHAR2 DEFAULT NULL,
    p_show_extra    IN   VARCHAR2 DEFAULT 'YES')
APEX_ITEM.SELECT_LIST_FROM_QUERY(
    p_idx           IN    NUMBER,
    p_value         IN    VARCHAR2 DEFAULT NULL,
    p_query         IN    VARCHAR2,
    p_attributes    IN    VARCHAR2 DEFAULT NULL,
    p_show_null     IN    VARCHAR2 DEFAULT 'YES',
    p_null_value    IN    VARCHAR2 DEFAULT '%NULL%',
    p_null_text     IN    VARCHAR2 DEFAULT '%',
    p_item_id       IN    VARCHAR2 DEFAULT NULL,
    p_item_label    IN    VARCHAR2 DEFAULT NULL,
    p_show_extra    IN    VARCHAR2 DEFAULT 'YES')
其中p_query将是您发布的第二个查询