May 26 2009

Uso del Control DropDownListBox, ListBox, ListView de Power Builder

Veamos la utilidad de los control Listbox y DropDownListBox en el desarrollo de nuestras aplicaciones, sabemos que estos controles son contenedores de elementos, estos elementos pueden ser el contenido de una tabla por ejemplo el listado de Clientes, los ejemplos que acontinuación veremos no estan orientados a la utilización de una base de datos, esta caracteristica lo veremos en posteriores entradas; antes debemos saber las funciones y propiedades de los controles ya que serán muy importante a la hora de programar utilizando una base de datos.  A continuación veamos el ejemplo:

Código fuente de la aplicación


Script Open de la ventana

/*Agregamos los elementos al control DropDownListBox*/
ddlb_producto.additem("Mouse")
ddlb_producto.additem("Teclado")
ddlb_producto.additem("Monitor")
ddlb_producto.additem("Impresora")
ddlb_producto.additem("Scanner")
ddlb_producto.additem("WebCam")

Script Clicked del boton Agregar

lb_producto.additem(ddlb_producto.text)
st_registro.text=string(lb_producto.totalitems())

Script Clicked del boton >

If lb_producto.selectedindex() < 0 Then
	Messagebox("Error","Seleccione un Registro")
Else
	lb_tienda.additem(lb_producto.selecteditem())
	lb_producto.deleteitem(lb_producto.selectedindex())
End If

Script Clicked del boton >>

Integer i
For i=1 To lb_producto.totalitems()
	lb_producto.selectitem(i)
	lb_tienda.additem(lb_producto.selecteditem())
Next
lb_producto.reset()

Script para el boton <

If lb_producto.selectedindex() > 0 Then
	lb_producto.deleteitem(lb_producto.selectedindex())
ElseIf lb_tienda.selectedindex() > 0 Then
	lb_tienda.deleteitem(lb_tienda.selectedindex())
ElseIf lb_producto.selectedindex() < 0 Or lb_tienda.selectedindex() < 0 Then
	Messagebox("Error","Seleccione un Registro")
End If

Script para el boton <<

If lb_producto.selectedindex()= -1 And lb_tienda.selectedindex()= -1 Then
	Messagebox("Error","seleccione La lista a eliminar")
Else
	If lb_producto.selectedindex() >= 1 Then
		lb_producto.reset()
	End If
	If lb_tienda.selectedindex() >= 1 Then
		lb_tienda.Reset()
	End If
End If

En el siguiente ejemplo veremos el control ListView este es mas usados para la vizualización de registros de una tabla, por ejemplo el listado de los productos (CodProducto, Descripcion, PrecioUnitario,Stock, etc ) como he mencionado al inicio de este post, es conocer las  funciones y propiedades de estos controles. Veamos los siguientes ejemplos del control listview:

Código Fuente de la aplicación

Script Open de la Ventana

/*Conf del control Listview*/
lv_Productos.addcolumn( "Codigo",left!,250)
lv_Productos.addcolumn( "Descripción",left!,950)
lv_Productos.addcolumn( "Precio",left!,400)
lv_Productos.view=ListViewReport!
lv_Productos.fullrowselect=true
/*fullrowselect selecciona toda la fila*/

Script Clicked para el Boton Agregar

lv_Productos.additem( sle_codigo.text,1)
/*Utilizamos la funcion additem para agregar Item a la PRIMERA COLUMNA */
lv_Productos.setitem( lv_Productos.totalitems( ),2,sle_descripcion.text)
lv_Productos.setitem( lv_Productos.totalitems( ),3,sle_precio.text)
/*setitem para agregar elementos apartir de la SEGUNDA columna */
st_totalElementos.text=String(lv_productos.totalitems( ))
/*totalitems nos devuelve el total de filas en el control lv_productos*/

Script Clicked para el boton Eliminar

lv_Productos.deleteitem( lv_Productos.selectedindex( ))
st_totalElementos.text=String(lv_productos.totalitems( ))

Código Fuente de la aplicación

Script Clicked para el boton Ejecutar

int ic /*Indice de la columna*/
lv_elementos.deletecolumns( )
lv_elementos.deleteitems( )
integer columna,nummax
columna=integer(em_columna.text)
nummax=integer(em_numero.text)
//agregamos numero de columnas
For ic=1 To columna
	lv_elementos.addcolumn( "C" + string(ic), center!,200)
Next
/*Agregamos los elementos a cada fila*/
int nume,i,j
Do While nume < nummax
	nume +=1
	lv_elementos.additem( string(nume),1)/*Agregamos los elementos*/
	If nume < nummax Then
		For j=2 To columna/**/
			nume +=1
			If Not nume > nummax Then
				lv_elementos.setitem( lv_elementos.totalitems( ),j,string(nume))
			End If
		Next
	End If
Loop
Responses are currently closed, but you can trackback from your own site.

8 Responses to “Uso del Control DropDownListBox, ListBox, ListView de Power Builder”

  1. Harold says:

    como agregaria columnnas y filas dentro de un listview utilizando em_1 para columans y em_2 para las filas

  2. danielalcon says:

    HOLA, TENGO UN LISTVIEW EN POWER BUILDER, CON 3 COLUMNAS, COMO PUEDO SUMAR LOS VALORES DE UNA D ESAS COLUMNAS Y OBTENER EL TOTAL DE ESA SUMA EN UNA CAJA D TEXTO?

  3. admin says:
    int i,totalFilas
    decimal  sumatoria
    string Valor
    totalFilas=lv.totalitems()
    for i=1 to totalFilas
    	lv.getitem( i, 5, valor)
    	sumatoria=sumatoria+dec(valor)
    next
    sle_1.Text= string(sumatoria)
  4. danielalcon says:

    Muchas Gracias por tu respuesta, pero tengo otra pregunta, es posible hacer la busqueda en una datawindows entre horas, m explico, yo se hacer busquedas especificas en un datawindows, pero por ejemplo,
    se hizo una compra a la 1:00pm otra a las 3:00pm
    y yo quiero que el datawindows solo muestre la compra que se realizo en un intervalo de tiempo es decir, que si el intervalo esta entre las 2pm y 4pm debe mostrar solo la compra de las 3:00pm.
    intente con un if entre los intevalos vs la hora pero cuando pido q cumpla las condiciones mayor igual o menor igual no retorna nada,
    gracias de antemano

  5. admin says:

    Hola, personalmente no he provado ese tipo de consulta, te sugiero que hagas uso de la opción Retrieval Arguments de DateTime o Time cuando generes tu DataWindow, Saludos.

  6. Gustavo says:

    man plz puedes poner un manual

    llenar un DropDownListBox desde SQL server
    saludos.

  7. elit says:

    hola gracias por esta pagina…. mi consulta es .. mipregunta es como se hace una busqueda en lv y utilizando obdc … codigo de proveedor,razon social y ruc y quisera pasarlo a un sle_ que esta en otro formulario ..
    gracias por la respuesta….
    ESTOY UTILIZANDO POWER BUILDER 11
    GRACIAS

  8. admin says:

    Hola elit, antes visita esta otra página ejemplos, te sugiero que hagues tus preguntas en el foro scf