Power Builder - Valid items detail

 
Vista:

Valid items detail

Publicado por pbadictions (5 intervenciones) el 11/04/2007 18:56:44
Saludos.
estoy haciendo una boleta y me he encontrado con un problemita.
el detalle de mi boleta es un dw tipo grid en la que tiene un dddw de productos. ok!
en este detalle puedo tener uno o muchos productos. ok!
sucede que:
el sistema me permite ingresar por una o mas veces un solo producto como muestro en el siguiente esquema.
producto cantidad
=============================
lavadora 1
planca 2
licuadora 2
lavadora 1

como se darán cuente este caso es inconsistencial ya que un producto(lavadora) no puede estar dos veces especificado en el mismo detalle.

Nota: antes de hacer el update obtengo los productos que se muestran en la grilla pero como verifico que no se repita un mismo item.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Valid items detail

Publicado por Asgard (1957 intervenciones) el 11/04/2007 21:16:23
Validalo desde que ingresas el producto, es decir, una vez ingresado el codigo barre tu dw y compara los codigos, si existe envia un mensaje.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Valid items detail

Publicado por Jorge Escobar (110 intervenciones) el 11/04/2007 22:14:04
Tuve el mismo problema y lo solucioné con el script siguiente.
/////////////////////////////////////////////////////////////////////////////////////
Sintaxis:
1. recorro el codigo del producto en el grid
2. por cada item
envio el codigo y la cantidad de filas del grid a la funcion of_validitemdetail
3. la funcion recorre todo el grid comparando el codigo(argumento) con el código (leido) y si existen items iguales incrementa en una variable y lo retorna.
Si el retorno es mayor de 1 (existen items duplicados)

/////////////////////////////////////////////////////////////////////////////////////
long ll_i, ll_rowcount
string ls_items[1]
ll_rowcount = dw_detail.rowcount()

for ll_i = 1 to ll_rowcount
ls_items[ll_i] = dw_detail.object.cod_producto[ll_i]
if of_validitemdetail(ls_items[ll_i],ll_rowcount) > 1 then
Messagebox("Error","Duplicación de Items",StopSign!)
dw_detail.scrolltorow(ll_i)
dw_detail.setcolumn("cod_producto") ; dw_detail.setfocus()
return -1
end if
next


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Function of_validitemdetail(string as_item,long al_totalitems) return integer
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//script
long ll_i
integer li_items
string ls_item
for ll_i = 1 to al_totalitems
ls_item = dw_detail.object.cod_producto[ll_i]
if ls_item = as_item then
li_items++
end if
next

return li_items

Atte:
===============================
Jorge Escobar
Sistemas - Desarrollo
PRONAA
email: [email protected]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar