Validar registros repetidos en bloque de detalle
FILTRAR EL LOV CON VALORES QUE NO HAYAN SIDO INGRESADOS EN UN BLOQUE DE DETALLE
Para hacer el filtrado del LOV tendras que programar el KEY-LIST-VAL:
1. Si el item que quieres validar que no se repita es Requerido sera necesario que quites el Requerido (SET_ITEM_PROPERTY...) solo por el momento, porque necesitaras moverte a traves de todos los registros, al finalizar el proceso lo habilitas de nuevo.
2. Te ubicas en el primer registro y concatenas todos los que ya han sido ingresados. La finalidad sera modificar el Record group al que hace referencia ese LOV con la misma sentencia que usa el Record group pero añadiendo un where codigo not in (234,456,677,344) por ejemplo.
3. Despues de concatenar los que ya fueron ingresados usas la siguente sentencia para redefinir el select del record group para hacer que las filas del lov se filtren en base a la informacion que ya ha sido ingresada en el bloque:
var_result := POPULATE_GROUP_WITH_QUERY(recordgroup_empleados, 'Select name, cod from emp where cod not in ('||var_ingresados||')');
La variable var_result es number almacena el error si hubo un error en el query, si no hubo error retorna 0.
4. No olvides de volver a setear la propiedad required si en caso lo deshabilitaste.
5. Muestras el lov. var_result2 := show_lov('lov_empleados');
Donde var_result2 es boolean retorna true si el usuario escogio un valor y false si cancelo.
Mas o menos basandote en esto puedes validar tambien que el usuario ingrese manualmente la informacion sin hacer uso del lov.
Espero te sirva.