2015-04-21 162 views
1

我有這個報告,每一列都是由APEX_ITEM包生成的。複選框在選中時啓用/禁用其他項目

APEX_ITEM.CHECKBOX2, APEX_ITEM.DATE_POPUP2 

enter image description here

當複選框被選中,我想,以使該行的DATE_POPUP2。當複選框未選中時禁用它。

有沒有辦法做到這一點?

報告查詢:

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, APEX_ITEM.SELECT_LIST_FROM_QUERY(2, NVL((SELECT pru.ROL_CODIGO 
              FROM PROYECTOS_ROLES_USUARIOS pru 
              WHERE pru.USR_CODIGO = a.USR_CODIGO 
              AND pru.PRY_ID = :P92_PRY_ID),null), 'SELECT r.ROL_DESCRIPCION, r.ROL_CODIGO 
FROM ROLES r WHERE EXISTS (SELECT 1 FROM ROLES_USUARIOS ru 
     WHERE ru.ROL_CODIGO = r.ROL_CODIGO 
     AND ru.USR_CODIGO = ''' || a.USR_CODIGO || ''') and r.ROL_CODIGO not in(''MNI_RRHH'',''CAJ_COMPRAS'',''CAJ_VENTAS'',''CTA_CTE_CLIENTES'' 
     ,''CTA_CTE_PROVEEDORES'',''TCM_ALQUILERES'',''TCM_COMPRAS'') order by 1', null, 'YES', '%NULL%', '--') as Rol, 
     NVL((SELECT APEX_ITEM.DATE_POPUP2(3, prus.PRU_FECHA_INICIO, 'dd/mm/yyyy') 
       from PROYECTOS_ROLES_USUARIOS prus where prus.PRY_ID = :P92_PRY_ID and prus.USR_CODIGO = a.USR_CODIGO), 
        APEX_ITEM.DATE_POPUP2(3, TO_CHAR(SYSDATE, 'dd/mm/yyyy'), 'dd/mm/yyyy')) as Fecha_Inicio FROM USUARIOS a WHERE a.USR_FECHA_BAJA IS NULL AND exists (SELECT 1 
       FROM WWV_FLOW_FND_USER 
       WHERE USER_NAME = a.USR_CODIGO) order by 1; 
+0

您是否在每行上爲DATE_POPUP2設置了一些不同的ID? – Typo

+1

1)提供使用的查詢2)你對javascript的熟練程度如何?複製提供的代碼後,你能維護它嗎? 3)更好的是,apex.oracle.com上的工作區會很好。 – Tom

+0

1)添加查詢。 2)我用Javascript不太好,但我想學習,這就是爲什麼我問。 – Benzil

回答

0

當湯姆暗示在他的評論中,有多種方法可以做到這一點使用JavaScript。您可以將CSS類應用到您的複選框和日期項目,然後使用一些jQuery執行操作。

在'頁面加載時執行'部分中定義此頁面首選項中的事件綁定可以做到這一點。

$('input.myCheckBox').click(function() { 
    var enabled = $(this).prop('checked'); 
    var myDate = $(this).closest('tr').find('input.myDate'); 
    myDate.prop('disabled', !enabled);  
    if(enabled) { 
     myDate.next('img').show(); 
    } else { 
     myDate.next('img').hide(); 
    }   
    }); 

使用此方法,您不需要將ID應用於元素。您也可以沿着動態行動路線走下去,也許會觸發一個由動態行爲解釋的自定義事件?

相關問題