May 24 2009

Estructuras condicionales y bucles en Power Builder

En este post veremos las estructuras condicionales If…Then… EndIf asi como la estructura Choose Case y sus posibles usos en nuestra aplicación, tambien los diferentes bucles que maneja power builder. A continuación crearemos un conjunto de aplicaciones que muestran la importancia de estas estructuras.

Código fuente de la aplicación

Script Clicked para el botón Evaluar

string nombre,turno,categoria
/*Asignamos los valores a las variables*/
turno=ddlb_turno.text
categoria=ddlb_categoria.text
If nombre<>"" or turno<>"" or categoria<>"" Then
	if turno="D" then
		if categoria="A" then
			st_sueldo.text=string(1100,"#,###.00")
		ElseIf categoria="B" then
			st_sueldo.text=string(1000,"#,###.00")
		else
			st_sueldo.text=string(800,"#,###.00")
		end if
	else
		if categoria="A" then
			st_sueldo.text=string(1600,"#,###.00")
		ElseIf categoria="B" then
			st_sueldo.text=string(1200,"#,###.00")
		else
			st_sueldo.text=string(1000,"#,###.00")
		end if
	end if
Else
	Messagebox("Mensaje","Ingrese los datos correctamente")
	sle_nombre.setfocus( )
End if

Script Clicked para el botón Nuevo

sle_nombre.text=""
ddlb_turno.text=""
ddlb_categoria.text=""
sle_nombre.setfocus( )
Script Clicked para el botón Salir
int respuesta
respuesta= MessageBox("Sistema","¿Está seguro de salir del Sistema?",Question!, YESNO!, 1)
If respuesta=1 then
close(w_estructuras)
Else
sle_nombre.setfocus( )
End if

Código fuente de la Aplicación

Script Clicked para el boton Aceptar

string nombre,turno,categoria
/*Asignamos los valores a las variables*/
turno=ddlb_turno.text
categoria=ddlb_categoria.text
If nombre<>"" or turno<>"" or categoria<>"" Then
	if turno="D" then
		if categoria="A" then
			st_sueldo.text=string(1100,"#,###.00")
		ElseIf categoria="B" then
			st_sueldo.text=string(1000,"#,###.00")
		else
			st_sueldo.text=string(800,"#,###.00")
		end if
	else
		if categoria="A" then
			st_sueldo.text=string(1600,"#,###.00")
		ElseIf categoria="B" then
			st_sueldo.text=string(1200,"#,###.00")
		else
			st_sueldo.text=string(1000,"#,###.00")
		end if
	end if
Else
	Messagebox("Mensaje","Ingrese los datos correctamente")
	sle_nombre.setfocus( )
End if

Código fuente de la aplicación

Script Clicked para el boton Calcular

integer mes
string msg
mes=integer(sle_mes.text)
choose case mes
case 1 to 3
msg="Verano"
case 4 to 6
msg="Otoño"
case 7 to 9
msg="Invierno"
case 10 to 12
msg="Primavera"
case else
messagebox("Error","El mes No existe")
st_estacion.text=""
sle_mes.text=""
end choose
st_estacion.text=string(msg)

Código fuente de la aplicación

Bucle For

Boton Llenar Numeros(For)

/*Llenar numeros con For al control ListBox*/
lb_lista.reset()
If sle_numero.text <> "" Then
int numero, index
numero=integer(sle_numero.text)
For index=0 To Numero
	lb_lista.additem(String(index))
Next
Else
	Messagebox("Error","Debe ingresar un número")
End If

Boton Sumar(For)

/*Obtener la suma de los n primeros numeros con el Bucle For*/
Int numero,suma, index
numero=integer(sle_numero.text)
For index=1 To numero
suma+=index
Next
String Msg
Msg="La suma de los " + string(numero) + " primeros numeros es: " + string(suma)
Messagebox("Suma con Bucle For",Msg)

Bucle Do While
Boton Llenar Numeros (Do While)

/*Llenar numeros con Do While al control ListBox*/
lb_lista.reset()
int numero, limite
 numero=integer(sle_numero.text)
do while limite<numero
	limite+=1 /*Equilavencia: limite=limite+1*/
	lb_lista.additem(String(limite))
loop

Boton Sumar(Do While)

/*Obtener la suma de los n primeros numeros*/
lb_lista.reset()
int numero, limite, suma
 numero=integer(sle_numero.text)
do while limite<numero
	limite+=1 /*Equilavencia: limite=limite+1*/
	suma+=limite
loop
Messagebox("Suma con Bucle Do While","La suma de los " + string(numero) + " primeros numeros es: " + string(suma))
sle_numero.setfocus()

Bucle Do Until Boton Llenar Numeros(Do Until)
/*Llenar numeros con Do Until al control ListBox*/

/*Llenar numeros con Do Until al control ListBox*/
lb_lista.reset()
int numero, limite
 numero=integer(sle_numero.text)
do
	limite+=1
	lb_lista.additem(String(limite))
loop until limite > (numero - 1)

Boton Sumar(Do Until)/*Obtener la suma de los n primeros numeros*/

/*Obtener la suma de los n primeros numeros*/
lb_lista.reset()
int numero, limite, suma
 numero=integer(sle_numero.text)
do
	limite+=1
	suma+=limite
loop while limite<numero
Messagebox("Suma con Bucle Do Until","La suma de los " + string(numero) + " primeros numeros es: " + string(suma))
sle_numero.setfocus()

Boton Limpiar

lb_lista.reset()
sle_numero.text=""
sle_numero.setfocus()

Código fuente de la aplicación
Boton Llenar

n=integer(sle_numero.text)
integer i,n
lb_lista.reset()
if rb_par.checked=true then
for i=2 to n step 2
lb_lista.additem(string(i))
next
elseif rb_impar.checked=true then
for i=1 to n step 2
lb_lista.additem(string(i))
next
end if

Boton N° Primo

integer i,n,cn=integer(sle_numero.text)
lb_lista.reset()
c=0
for i=1 to n
if mod(n,i)=0 then
c=c+1
lb_lista.additem(string(i) + '   ' + " " + string(mod(n,i)))
end if
next
if c=2 or c=1 then
st_primo.text=" Es Primo"
else
st_primo.text="No Es Primo"
end if

Para ejecutar nuestras aplicaciones debemos utilizar la instrucción open(Nombre_de_la_Aplicacion)

Responses are currently closed, but you can trackback from your own site.

5 Responses to “Estructuras condicionales y bucles en Power Builder”

  1. freddy says:

    muchas gracias , me sirvio muchooo

  2. paola says:

    hola me gustaria saber que codigo debo implementar para sumar datos de un listbox io trate de implementar estas lineas por favor me gustaria que me ayudes a modificarlo ya que no funciona

    integer i,j
    j= integer(st_12.text)-1

    string msg
    For i = 0 To j
    total+= double(lb_1.text(i))
    Next

    st_4.text=string (total)

  3. admin says:
    1
    2
    3
    4
    5
    6
    7
    8
    
    //comandbutton agregar
    lb_1.additem(sle_numero.text)
    //comandbutton sumar
    integer i, suma
    for i=1 to lb_1.totalitems( )
    	suma += integer(lb_1.text( i) )
    next
    st_suma.text=string(suma)
  4. cristian says:

    buenisimo el tema gracias

  5. anonimo says:

    chevere