Power builder 7.0

Hola como estas, espero que bien.
Tengo un pequeño problema con el dropdownlisbox, tengo ingresado varios items, y necesito ingresar otros, lo hago con el add, pero necesito validar que el usuario no ingrese la misma categoría
i=ddlb_2.additem(sle_8.text)
i=ddlb_2.selectitem(i)
Gracias

1 Respuesta

Respuesta
1
Cada vez que utilizas la función ADDITEM() del control dropdownlistbox
La propiedad item[] tipo array, aumenta, igualmente si utilizas la función DELETEITEM() la longitud del array item[] disminuye, por lo que siempre tendrás en dicha propiedad, todos los items que se encuentran en el propio control. En otras palabras siempre estará actualizado con lo que presenta el control y los items dentro del array.
Por eso el ciclo controlado, FOR, utiliza la función UPPERBOUND() para efectuar dicho ciclo en función del tamaño del array.
Gracias
Encuentro super la aplicación, pero aún hay algo que no puedo hacer, si uso
for li_for = 1 to UPPERBOUND(this.ddlb_2.item[]) cada vez que inicie la busqueda de un attributo ingresado, el largo ´del corresponderá siempre a la cantidad inicial que defini al principio, pero que pasa cuando agrego otros items, no son tomados en cuenta como numero para el vector....
Muchas gracias
Creo entender que lo que necesitas es evitar la duplicidad de categorías dentro de tu dropdownlistbox.
Puedes construir un evento del usuario o una función en su defecto, en la cual verifiques que el valor ingresado no existe dentro del dropdownlistbox, esta función deberá devolver un valor booleano, y por medio de la misma función, permitir el añadir o no el valor ingresado.
La función deberá estar basada en la propiedad item[], la cual es tipo vector y esta contiene todos los items que están integrados en el control.
La cuestión podía ser más o menos así
integer li_for
boolean lb_exit
booolea lb_return = FALSE
for li_for = 1 to UPPERBOUND(this.ddlb_2.item[])
lb_exit = (lower(this.sle_8.text) = lower(this.ddlb_2.item[li_for]))
if lb_exit then
lb_return = TRUE
exit
end if
next
RETURN(lb_return)
Asumiendo en el anterior scripr que esta incluido en una función.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas