Recientemente me han hecho una consulta, de cómo se puede validar dos columnas de tipo numéricas en una pantalla tabular en el cual si se ingresa un valor en una columna, ese valor sea menor que otra columna de la pantalla tabular.
Por ejemplo tenemos dos columnas, Valor A y Valor B, necesitamos validar que cuando el usuario ingrese el valor B, dicho valor no sea más grande que el valor A.
Para este ejemplo vamos a crear una tabla desde el Taller de SQL:
CREATE TABLE «DEMO_VALIDACION»
( «CLI_ID» NUMBER(8,0) NOT NULL ENABLE,
«CLI_NOMBRE» VARCHAR2(100) NOT NULL ENABLE,
«CLI_CAMPO_A» NUMBER(8,0) NOT NULL ENABLE,
«CLI_CAMPO_B» NUMBER(8,0) NOT NULL ENABLE,
CONSTRAINT «DEMO_VALIDACION_PK» PRIMARY KEY («CLI_ID») ENABLE
)
/
Seguir leyendo aquí >>
Hola Clarisa,
Te tengo una pequeña sugerencia. En la Validación, al especificar la opción de Pantalla Tabular (Validación Numérica), Apex te permite hacer referencia a las columnas de tu Pantalla Tabular usando la sintaxis ":CLI_CAMPO_A" y ":CLI_CAMPO_B". Por lo que puedes utilizar una validación de tipo Expresión PL/SQL:
:CLI_CAMPO_A > :CLI_CAMPO_B
La ventaja de utilizar esta solución es que no tienes que preocuparte de que tus columnas cambien de posición en un futuro y las referencias a las columnas apex_application.g_fXX se invaliden.
Gracias,
Erick Diaz
Si asi es Erik, gracias por comentar. La idea de este post era poder explicar el uso de la matriz g_fXX y cómo pueden encontrar el valor usando el inspector de Firefox. Claro que para este ejemplo en particular el uso del nombre de columna es más facil de usar e implementar. Saludos 🙂