2015-04-17 2 views
0

У меня есть интерактивный отчет с 2 столбцами. Report источникAPEX 4.2 - Динамический список значений в интерактивном отчете

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 должен быть рк каждой строки отчета ,

Есть ли способ сделать это?

ответ

2

Да есть, вы должны использовать APEX_ITEM пакет, в частности функции select_list_from_lov, Чтобы это работало, необходимо предварительно создать список приложений значений (LOV) с вашим вторым запросом, а затем добавить apex_item вызовите свой первый запрос. Заметив, что вы уже использовали пакет 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') 

здесь параметр p_lov будет именем списка приложений значений, которые вы создали ранее ,

Но если вы не хотите, чтобы создать LOV вы могли бы использовать функцию select_list_from_query:

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 будет второй запрос, который вы вывесили.

+0

Спасибо, человек. select_list_from_query работает отлично. – Benzil

Смежные вопросы