我有这个报告,每列都是由APEX_ITEM包生成的。
APEX_ITEM.CHECKBOX2, APEX_ITEM.DATE_POPUP2
选中该复选框后,我想启用该行的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 :(得分: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应用于元素。你也可以沿着动态行动路线走下去,也许会触发一个由动态动作解释的自定义事件?