Hola soy nuevo en el manejo power builder help!

Soy nuevo en el manejo de power builder mi conocimiento en el tema es muy básico, ¿me gustaría saber como hago para validar que los datos que ingreso a un datawindow no estén duplicados? Tengo una base de datos en oracle. Encontré en google que debo hacer un barrido a los campos, pero no se como hacer dicho barrido y tampoco se como compararlos con los datos que estoy ingresando. Actualmente el programa guarda sin problemas los datos que ingreso, me he creado una función para validar campos vacios; es esta:
long ll_fila
dw_datawindow.selectrow( 0,false)
ll_fila = dw_datawindow.find( "isnull(ci_clie) ",1, dw_datawindow.rowcount( ) )
choose case ll_fila
    case is < 0
        messagebox("Aviso","Fallo la función guardar")
        return false
    case is > 0
    messagebox("Aviso","El campo C. I. No puede ser nulo. Por favor ingrese la identificación del cliente.")
    dw_datawindow.selectrow( ll_fila,true)
    return false
end choose
return true
, por favor me dicen si algo de esto me ayudará para verificar los campos duplicados.

1 respuesta

Respuesta
1
Asumiendo que tu ingreso de datos es en un dw tipo FreeForm.
Te recomendaría realizar una consulta a tu tabla usando la clausula where y preguntando por el campo nombre de cliente.
//ejemplo para sql:
//validar nombre repetido
int li_qty=0
string ls_nombre
ls_nombre = dw_1.getitemstring(dw_1.getrow(),'nombre_clie')
Select li_qty = isnull(count(*),0) from clientes where nombre_clie = :ls_nombre;
if li_qty > 0 then
     messagebox("Alerta del sistema","Existe un cliente con el nombre duplicado!")
    return
end if
//En caso de Oracle, no se cuando variara el script sql.. no manejo oracle.
Hola gracias por tu ayuda... te cuento que use un dw tabular y de igual manera hice lo que me dijiste y me funciono a la perfección. Gracias. Me gustaría pedirte ayuda en algo más, en un datawindow tabular tengo un campo precio_unitario, cantidad, precio_total_individual y total_global. Entonces:
precio_total_individual = precio_unitario x cantidad              y el total_global seria la suma de todos los campos precio_total_individual de todas las filas del dw. te paso el codigo que estaba utilizando para que me ayudes porque me calcula correcto pero me asigna valores erroneos. Agradezco tu ayuda y disculpa la molestia.
decimal ll_preciounitario,ll_vtotal
decimal ll_cantidad,ll_codigoproducto
Long i, ll_filas
decimal ll_total
decimal ll_valortotal
ll_total = 0
ll_filas=dw_detalle.rowcount( )
for i=1 to ll_filas
    ll_cantidad=dw_detalle.object.cant_deta_egre[dw_detalle.getrow( ) ]
    ll_codigoproducto=dw_detalle.object.codi_prod[dw_detalle.getrow( ) ]
    select puni_prod into :ll_preciounitario from tbl_producto where codi_prod = :ll_codigoproducto;
    ll_vtotal=ll_preciounitario*ll_cantidad
        dw_detalle.setitem(ll_filas,"tota_deta_egre",ll_vtotal)
    ll_valortotal=dw_detalle.object.tota_deta_egre[dw_detalle.getrow( ) ]
    ll_total = ll_valortotal + ll_total
    sle_total.text=string(ll_total)
next
Esto lo puse en el editchanged de mi datawindow. Agradezco la ayuda que me puedas ofrecer con esto... saludos.
Te sugiero que finalices esta pregunta y formules una nueva.
También seria bueno saber que tipo de mensaje te arroja el pb!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas