Capitulo1 PDF
Capitulo1 PDF
Capitulo1 PDF
INSTITUTO DE EXCELENCIA
PROGRAMA DE ESTUDIO DE
COMPUTACIÓN E INFORMÁTICA
MODULO PROFESIONAL
DESARROLLO DE
SOFTWARE Y
GESTION DE BASE DE
DATOS
UNIDAD DIDACTICA
HERRAMIENTA DE DESARROLLO DE SOFTWARE
Docentes: Ing. Ysmael Rivas Uriol
Ing. Jose Plasencia Latour
Nuevo Chimbote
2019
Características Generales:
El lenguaje de programación Power Builder para dar inicio a una aplicación debes
generar tres archivos:
a) Uno es el área de trabajo (workspace) necesario para tener el espacio de
memoria para el diseño y desarrollo de la aplicación.
b) El segundo archivo es el target para el manejo de la librería.
c) El tercer archivo es la librería o biblioteca que contiene los objetos que
conforman una aplicación.
Se entiende como objetos que conforman una aplicación a todo aquello que te
permitirá desarrollar o construir una aplicación.
En la figura observas que una librería puede contener varios tipos de objetos como:
a) Objeto aplicación: permite dar inicio a la ejecución de una aplicación.
b) El objeto menú: permite diseñar un menú con su barra de herramientas
c) El objeto ventana: permite diseñar el formulario o interfaz de la aplicación.
d) El objeto función: necesario para hacer programación modular.
e) El objeto estructura: permite el diseño de consulta de datos.
f) El objeto datawindow: para aplicaciones con base de datos.
Una aplicación de Power Builder no solo está hecho de objetos, también de eventos
y scripts.
Objeto
• Un objeto es una forma de comunicación con el usuario (por ejemplo, una
ventana o un menu).
Eventos
• Cuando un usuario selecciona un objeto o ingresa o modifica en un objeto,
ocurre un evento. Los eventos pueden sucederle a muchos objetos
(aplicaciones, ventanas, controles , etc)
• Un evento ocurre cuando el usuario realiza un acción con el mouse o el
teclado. Los eventos pueden también ser causados por sentencias Power
Script y por el sistema mismo.
• Los eventos comunes incluyen:
• Clicked
• DoubleClicked
• Modified
• Open
• Close
• GetFocus
• LoseFocus
• SelectionChanged
Scripts
PRACTICA:
Solución:
Seleccionar New
dar click
Estando en la ficha Workspace dar click en el botón OK.
Te muestra una ventana de diálogo para dar el nombre del workspace, pero te
recomiendo que crees una carpeta TRANSPORTE en la unidad C o unidad D.
Selecciona New
En esta ficha Target debe estar seleccionado e ícono Application y luego da clic en
el botón OK.
Aquí termina nuestra primera sesión, espero que hayas aprendido todo lo indicado.
AUTOEVALUACION
1. Se quiere hacer un sistema de gestión Hospitalaria, por tanto crea los archivos
de workspace, target y library, utilizando como nombre hospital para los tres
archivos y para el objeto aplicación.
OBJETO MENU
Utilización del pintor de Menú
Un pintor es un entorno para diseñar un objeto, en este caso será el objeto menú.
Aquí podrás construir un menú con su barra de herramientas y además podrás
programar para cada opción de menú.
Selecciona New
Tree Menu View WYSIWYG Menu View Script View Properties View
En la vista WYSIWYG Menu View haces clic con el botón derecho del Mouse, lo cual ocasiona
que muestre un menú flotante.
Selecciona Mantenimiento y
luego dar clic botón derecho
del mouse
Después de dar clic en el botón derecho del mouse se muestra el menú flotante con
más opciones habilitadas.
Menú flotante
Ahora quieres agregar una opción que pertenezca a la opción Mantenimiento, para
ello seleccionas Mantenimiento, haces clic botón derecho y se muestra el menú
flotante, donde seleccionaras la opción Insert Submenu Item.
Menú flotante
Ahora si invocas el menú flotante desde la opción Ciudad entonces para añadir
una opción más perteneciente a la opción Mantenimiento, entonces usa la opción
Insert Menu Item At End. Analiza bien esto, se está invocando ésta opción desde
Ciudad por lo que creará el cuadro de texto de la nueva opción debajo de la opción
Ciudad.
Una vez que tenemos las opciones Ciudad y Ruta en Mantenimiento, podemos
invocar al menú flotante desde la opción Ciudad o Ruta, seleccionando la opción
Insert Menu Item At End. Recuerda esta opción inserta un item (opción) al final
(at End) del item desde donde se invocó el menú flotante.
Mantenimiento Viajes
Ciudad CTRL+C Programación CTRL+O
Ruta CTRL+R Reservación
--------- Postergación
Servicio CTRL+S -----------------
Tarifa CTRL+T Venta de Pasajes CTRL+V
---------
Personal
Para las teclas calientes como es el caso por ejemplo de Ciudad que es CTRL+C se
procede a indicar en la vista de propiedades en la ficha General, lo siguiente (debes
haber seleccionado antes la opción Ciudad):
Ahora te pondrás a crear o diseñar una barra de herramientas, para ello selecciona
la opción Ciudad y selecciona la ficha ToolBar de la vista de propiedades.
Texto para describir la opción en la barra de herramientas Aquí se selecciona la figura en la barra
Ahora por ti mismo coloca figura a las opciones de Ruta, Servicio, Tarifa,
Programación y Venta de Pasajes. Por lo tanto debe quedar 6 figuras en la barra de
herramientas. Luego graba el objeto como m_principal.
Selecciona Inherit
Objeto
listwiew
En esta ventana observas en Objects of Type los tipos de objetos que se pueden
usar herencia (Menus, User Objects y Windows)
En object Name se debe mostrar el nombre del objeto del cual quieres heredar.
Esto lo logras seleccionando el objeto en el objeto listwiew. Para el ejemplo de
transporte seleccionas el objeto m_principal.
Luego das clic en el botón de comando OK y se muestra el pintor del objeto menú
heredado de m_principal.
Barra de título
Observando la barra de título dice: Untitled (porque no tiene nombre todavía el
objeto menú), la expresión transporte porque pertenece a la librería transporte y la
expresión inherited from m_principal significa heredado del menú m_principal.
El objeto menú debe ser vinculado a un objeto ventana (objeto window) para ser
visto en tiempo de ejecución. Para ello abre un pintor de ventana, para lo cual
selecciona la opción New de la barra de herramientas y en la ficha PB Object eliges
la opción window.
Aquí la vista de script se muestra transporte (nombre del objeto aplicación) y open
(nombre del evento). A continuación coloca la línea de programación:
Open(w_auxiliar)
AUTOEVALUACION
1. Diseña un objeto menú referente a un colegio, usando las siguientes
opciones:
OBJETO VENTANA
El objeto ventana permite diseñar el interfaz que el usuario utiliza para interactuar
con el sistema. Un objeto ventana tiene propiedades, eventos y objetos de
controles.
Main
Suelen estar solitarias, se las emplea mucho. Son totalmente independientes
Popup (ventanas emergentes)
Son secundarias, y se abren desde otra, cuando se cierra o minimiza una ventana
principal, la ventana emergente también se cierra o minimiza
Child
También se abren desde otros, no se pueden mostrar nunca fuera de la ventana
principal, no están nunca activas (la ventan principal retiene la atención). No
pueden tener menús
Response
Son del tipo ventana emergente, se caracterizan por ser modales, es decir, no se
puede activar ninguna otra ventana en la aplicación hasta que se cierra la ventana
respuesta
MDI
Son aquellas que contienen al menú y la barra de herramientas. En ellas se abre las
ventanas de tipo child.
Selecciona New
Selecciona Window
Para diseñar un objeto ventana es necesario al menos tener abiertas las vistas:
Layout View, Script View y Properties View.
CommandButton
RadioButton PictureButton
CheckBox StaticText
Line Picture
GroupBox SingleLineEdit
EditMask RichTextEdit
DropDownListBox ListBox
PictureListBox TreeView
Tab
ListView
DataWindow Graph
Ole UserObject
StaticText
Se utiliza para mostrar títulos y mensajes.
SingleLineEdit
Es una caja que el usuario puede utilizar para ingresar una línea de texto.
CommandButton
Es utilizado para ejecutar una acción cuando el usuario de un clic sobre él.
CheckBox
Utilizado para afirmar o negar una expresión.
RadioButton
Utilizado para seleccionar una opción
Picture
Muestra un mapa de bits.
GroupBox
Para agrupar un grupo de objetos de control
Tab
Contiene una serie de páginas, donde cada página puede contener controles.
ListBox
Contiene items (datos) para su posterior selección.
DropDownListBox
Combina las características de un ListBox y una caja de edición. El usuario puede
seleccionar un item o ingresar un dato en la caja de texto.
Por ejemplo:
Sentencia de Asignación
Ejemplo:
Propiedades y Eventos
Aplicación 1:
Veamos a continuación una aplicación con el objeto ventana y con los objetos de
control básicos: StaticText, SingleLineEdit y CommandButton. Puedes definir un
área de trabajo (workspace) llamado ejercicios, el target llamado ejercicios y la
librería ejercicios.
Se desea construir una aplicación que permita ingresar una cantidad de camisas a
comprar a una distribuidora indicando el costo unitario y la tasa de descuento, para
luego mostrar el costo total, el igv (19% del costo total) y monto a pagar (costo
total mas el igv).
Solución:
Caja de
herramientas
Para colocar un objeto de control dentro del objeto ventana debes seleccionar un
objeto de la caja de herramientas como por ejemplo un StaticText y luego debes
dar clic en el lugar que desees dibujarlo.
CommandButton
SingleLineEdit
StaticText
Los objetos de control tienen un nombre por defecto, así por ejemplo el objeto
número 1 se llama st_1, el objeto número 4 se llama sle_1, el objeto número 5 se
llama sle_2, el objeto número 7 se llama cb_1, el objeto número 8 se llama cb_2,
etc.
A continuación vamos a usar las propiedades de los objetos de control para ello
usaras Properties View (la vista de propiedades) en la ficha o página General.
Menú
flotante
Vista de
Script
Objeto evento
ingresado. Este dato es de tipo cadena (String) y para asignarlo a la variable cant
de tipo entero es necesario usar una conversión de tipo de dato.
En la línea de programación:
Cant=Integer(sle_cant.text)
Se toma el valor de la propiedad Text del objeto de control sle_cant y como es dato
de tipo cadena se usa la función Integer para convertir dicho dato en entero. Toda
función va acompañado de paréntesis. En la función Integer se coloca el dato de
tipo cadena entre los paréntesis y este lo convertirá en un dato numérico.
Así como para declarar una variable usamos los tipos de datos: Integer, Double,
String, Bolean, etc., las mismas expresiones se usan para la conversión de datos
teniendo en cuenta que son funciones.
sle_tasa.text=""
st_costo.text=""
st_igv.text=""
st_monto.text=""
sle_cant.setfocus() la función setfocus() es para darle el cursor al objeto sle_cant
c) If (n<10) c) if (n<10)
{ a=5; a=5
b=a+7; b=a+7
c=a+b; c=a+b
} end if
{ c=a+10
C=a+10; x=x+1
X=x+1; loop
}
b) Do b) do
{ a=c+15
a=c+15; b=a+18
b=a+18; c=a+b
c=a+b; loop while b<38
} while (b<38);
Aplicación 2:
Veamos a continuación una aplicación con el objeto ventana y con los objetos de
control básicos: StaticText, SingleLineEdit y CommandButton haciendo uso de las
sentencias selectivas y/o repetitivas.
Se desea construir una aplicación que permita el ingreso del costo de una
computadora. si el costo del artefacto vale menos de 500 soles se aplica un
descuento del 4% sobre dicho costo, si el costo es mayor e igual a 500 y menor e
igual a 1200 la tasa de descuento es de 6% sobre el costo y si supera a 1200 el
descuento es del 8%. Calcular el descuento, el impuesto del igv (19%) y el precio a
pagar por la computadora.
Sle_costo
Cb_calcular
Cb_borrar
Cb_cerrar
St_desc
St_igv
St_precio
Aquí observas que se usa un cuadro de texto para el ingreso del costo de la
computadora el cual tiene como nombre sle_costo. Los botones de comando se
llaman cb_calcular, cb_borrar y cb_cerrar y los textos estáticos se denominan
integer costo
double dcto, igv, precio
costo=integer(sle_costo.text)
if costo<500 then
dcto=costo*0.04 se aplica el descuento cuando el costo es menor a 500 soles
else
if costo<=1200 then se aplica el descuento cuando el costo esta entre 500 y 1200
dcto=costo*0.06
else
dcto=costo*0.08
end if
end if
igv=(costo - dcto) * 0.19 cuando se resta se debe tener un espacio antes y después del signo -
precio=costo - dcto + igv
st_desc.text=string(dcto)
st_igv.text=string(igv)
st_precio.text=string(precio)
sle_costo.text=""
st_desc.text=""
st_igv.text=""
st_precio.text=""
sle_costo.setfocus()
Aplicación 3:
Desarrollar una aplicación que permita actualizar el saldo de una cuenta del cliente
de un banco. Se debe de ingresar el saldo anterior y el tipo de movimiento que
puede ser 1 o 2. Si el tipo de movimiento es 1 representa un deposito, si es 2
representa un retiro. En ambos casos se debe pedir el monto de la transacción.
Aquí observas que se usa un cuadro de texto para el ingreso de los Nombres y
Apellidos el cual tiene como nombre sle_na, para el ingreso Número de cuenta el
cual tiene como nombre sle_cuenta, para el ingreso del saldo anterior el cual tiene
como nombre sle_sa, para el ingreso del tipo de movimiento el cual tiene como
nombre sle_tm, para el ingreso del monto de la transacción el cual tiene como
nombre sle_mt y un texto estático que se denomina st_sc para mostrar el resultado
del saldo de la cuenta. Los botones de comando se llaman cb_calcular, cb_nuevo y
cb_cerrar.
Colocamos el siguiente script (programa) en el objeto cb_calcular, evento clicked:
double sa,mt,sc
integer tm
sa=double(sle_sa.text)
tm=integer(sle_tm.text)
mt=double(sle_mt.text)
sc=sa
choose case tm
case 1
sc=sa+ mt
case 2
if mt > sa then
messagebox("Error","No se puede retira más dinero")
else
sc=sa -mt
end if
end choose
st_sc.text=string(sc)
sle_na.text=""
sle_cuenta.text=""
sle_sa.text=""
sle_tm.text=""
sle_mt.text=""
st_sc.text=""
sle_nombres.setfocus()
AUTOEVALUACION
Desarrolla las siguientes aplicaciones construyendo primero un menú cuya opción
principal debe llamarse ejercicios y dentro de esta opción consideras una opción
ejemplo1 para el ejercicio 1, otra opción ejemplo2 para el ejercicio 2 y así
sucesivamente hasta el ejercicio 5.
1. Elabora una aplicación que dado el ingreso de tres números se muestre el
número medio (es el número que no es el mayor ni el menor de los tres).
2. En una librería se vende al por mayor cuadernos de 100 hojas y de 50 hojas. Se
desea saber el costo total dado el ingreso del número de cuadernos de 100
hojas y el número de cuadernos de 50 hojas. Considera el costo por cuaderno
de 100 hojas S/.0.90 y de 50 hojas S/.0.60. Además se desea saber el
descuento y el precio a pagar. La tasa de descuento es de 5% cuyo costo total
no supere los 200 soles, caso contrario del 7%. El precio a pagar es igual al
costo total menos el descuento.
3. Elabora una aplicación que permita el ingreso de 6 números y muestre la suma
y el promedio de los números pares y la suma y el promedio de los números
impares.
4. Construye una aplicación que permita calcular el área del triángulo en función
de sus lados, sabiendo que la formula es:
Raizcuadrada(p*(p-a)*(p-b)*(p-c))
Donde:
p: es el semiperimetro (a+b+c)/2
5. Diseña una aplicación que permita calcular las raíces de una ecuación
cuadrática. La fórmula general es Ax^2+Bx+C=0. Realiza verificaciones en la
programación como por ejemplo que A debe ser un valor distinto a 0 para que
exista las dos raíces.
Objeto contenedor
Formulario para los cursos
Objeto contenedor
GroupBox para la forma de
pago
Propiedades
Propiedades
Aplicación 1:
Ing. Ysmael Rivas Uriol Paá gina 44
Herramientas de Desarrolllo de Software
Veamos a continuación una aplicación con el objeto ventana y con los objetos de
control básicos: StaticText, SingleLineEdit, CommandButton, RadioButton y
CheckBox. Puedes definir un área de trabajo (workspace) llamado ejemplos, el
target llamado ejemplos y la librería ejemplos.
Se desea construir una aplicación que permita el ingreso del costo de una
computadora, seleccionando los accesorios adicionales. La computadora se puede
adquirir al contado o al crédito. Si es al contado se hace un descuento del 6% del
costo de la computadora (no incluye los costos de los accesorios de la
computadora) y si es al crédito se aplicará un incremento de 5% si se paga a 6
cuotas, 6% de incremento si se paga en 12 cuotas y 7% de incremento si se paga a
18 cuotas. El incremento se aplica al costo de la computadora y al costo de los
accesorios.
Los accesorios de la computadora son: Impresora a 240 soles, estabilizador a 80
soles, scanner a 150 soles.
Calcula el costo total del equipo (incluyendo los accesorios, el descuento o el
incremento), el impuesto del IGV (19%), el precio a pagar y el monto de la cuota.
Solución:
SingleLineEdit
ChecBox
GroupBox
RadioButton
CommandButton
StaticText
Luego de aplicar las propiedades text y name de los objetos de control de datos, el
diseño del objeto ventana queda así (los nombres de los objetos se indica a través
de las flechas):
Sle_costo
Cbx_imp
Cbx_sca
Cbx_est
rb_12c
rb_18c
rb_6c
rb_cre
rb_con
cb_cerrar
cb_limpiar
cb_calcular
St_ctotal
St_igv
St_precio
St_cuota
integer costo
costo=integer(sle_costo.text)
if costo=0 then
messagebox("Error","Ingresa el costo de la computadora")
return
end if
boolean verificar
verificar=rb_con.checked or rb_cre.checked
if not verificar then
messagebox("Error","Selecciona una forma de pago")
return
end if
if rb_cre.checked then
verificar=rb_6c.checked or rb_12c.checked or rb_18c.checked
if not verificar then
messagebox("Error","Selecciona el número de cuotas")
return
end if
end if
double cos_acce,dcto,incre,ctotal,igv,precio,cuota
if cbx_imp.checked then cos_acce=240
if cbx_est.checked then cos_acce=cos_acce+80
if cbx_sca.checked then cos_acce=cos_acce+150
if rb_con.checked then
dcto=costo*0.06
else
if rb_6c.checked then
incre=(costo+cos_acce)*0.05
cuota=(costo+cos_acce+incre)/6
end if
if rb_12c.checked then
incre=(costo+cos_acce)*0.06
cuota=(costo+cos_acce+incre)/12
end if
if rb_18c.checked then
incre=(costo+cos_acce)*0.07
cuota=(costo+cos_acce+incre)/18
end if
end if
ctotal=costo+cos_acce - dcto+incre
igv=ctotal*0.19
precio=ctotal+igv
st_ctotal.text=string(ctotal,"0.00")
st_igv.text=string(igv,"0.00")
st_precio.text=string(precio,"0.00")
st_cuota.text=string(cuota,"0.00")
Close(parent)
integer nResp
nResp=MessageBox("Venta de Computadoras","Desea Salir de la aplicación",
Question!,YesNo!)
If nResp=2 Then
Return
End If
Item
Propiedades
Ítems, usado solo en tiempo de diseño. Permite el llenado de una caja de lista.
La lista por defecto se ordena alfabéticamente
Funciones
lb_cursos.AddItem(“Internet”)
pos=lb_cursos.SelectedIndex()
1
2 La variable pos debe contener el valor 2
3
4
5
6
String cur
cur=lb_cursos.SelectedItem()
lb_cursos.SelectItem(3)
lb_cursos.Deleteitem(4)
total=lb_cursos.TotalItems()
Text(), Permite obtener un item de la caja de lista dado el valor del índice. No
se necesita que el item esté seleccionado.
Por ejemplo:
cur=lb_cursos.Text(5)
Aplicación 2:
Se quiere llevar a cabo la matricula de los cursos que el alumno indique teniendo en
cuenta que cada curso básico cuesta 80 soles y cada curso especializado cuesta 110
soles. Muestra el monto total de los cursos solicitados.
Solución:
rb_curbas
rb_curesp
lb_cursos
cb_agregar
cb_quitar
lb_cursosmat
lb_tipo
cb_calcular
st_monto
lb_cursos.reset()
lb_cursos.addItem("Matematica")
lb_cursos.addItem("Administracion")
lb_cursos.addItem("Economía")
lb_cursos.addItem("Marketing")
lb_cursos.addItem("Redaccion")
lb_cursos.addItem("Fisica")
lb_cursos.reset()
lb_cursos.addItem("Windows 2003")
lb_cursos.addItem("Visual Basic Net")
lb_cursos.addItem("Visual Java")
lb_cursos.addItem("Power Builder")
lb_cursos.addItem("ASP Net")
lb_cursos.addItem("Redes")
lb_cursos.addItem("Proyectos Informáticos")
lb_cursosmat.additem(lb_cursos.selecteditem())
if rb_curbas.checked then
lb_tipo.additem("B")
else
lb_tipo.additem("E")
end if
lb_cursos.Selectitem(0)
cb_agregar.enabled=false
integer a, monto
for a=1 to lb_tipo.TotalItems()
if lb_tipo.Text(a)="B" then
monto=monto+80
else
monto=monto+110
end if
next
st_monto.text=String(monto)
Propiedades
Funciones:
Aplicación 3
sle_cli
ddlb_tipo
cb_eliminar
cb_agregar
lb_arte
lb_cos
lb_artsel
lb_costo
st_ctotal
rb_cre
rb_con
cb_salir
cb_nuevo
cb_calcular
st_igv
st_dcto
st_pmen
st_precio
De acuerdo a lo seleccionado por el usuario en una de las opciones de la caja de
lista desplegable se llenará las listas list1 y list2 (en base a los ejemplos a citar
Ing. Ysmael Rivas Uriol Paá gina 55
Herramientas de Desarrolllo de Software
llena las listas con 8 artefactos con su respectivo costo, debes tener en cuenta que
son 8 artefactos por Audio, 8 artefactos por Video y 8 artefactos por línea blanca,
pero sólo se visualizan 6 artefactos de acuerdo a lo seleccionado en el tipo de
artefacto). Así por ejemplo:
Si es Audio: Minicomponente AIWA de 1500 watts 850.00
Minicomponente SONY de 1800 watts 920.00
Si es Video: Tv Color de 14" SAMSUNG 450.00
DVD multizona SAMSUNG 310.00
Si es Línea Blanca: Cocina de 4 hornillas FAEDA 725.00
Licuadora de 2 velocidades OSTER 240.00
Con el botón de comando Agregar se encargará de agregar a las listas list3 y list4
calculándose automáticamente el costo total y con el botón de eliminar en borrar el
artefacto previamente seleccionado de las listas list3 y list4.
El pago si es al contado se hará un descuento del 8% si el costo tal supera los 1200
soles, caso contrario se hará un descuento del 6%. El impuesto es del 18% sobre el
costo total menos el descuento, siendo el precio total el costo total menos el
descuento más el impuesto.
Si el pago es al crédito. No hay descuento en este caso, siendo el precio total al
costo total incrementado en un 10%. El pago mensual es igual al precio total
dividido entre 12 cuotas. El impuesto es del 18% sobre el costo total (incluyendo el
incremento).
Solución:
Hay que agregar los items (Audio Video y Linea Blanca) en la caja de lista
desplegable ddlb_tipo en la ficha Ítems de la vista de propiedades.
lb_arte.reset()
lb_cos.reset()
if ddlb_tipo.text="Audio" then
lb_arte.additem("Minicomponente AIWA 1500 watts")
lb_cos.additem("850")
lb_arte.additem("Minicomponente SONY 1800 watts")
lb_cos.additem("920")
lb_arte.additem("RadioGrabadora AIWA 500 watts")
lb_cos.additem("250")
lb_arte.additem("Radio/CD 400 watts")
lb_cos.additem("280")
lb_arte.additem("Equipo de sonido SONY 3000 watts")
lb_cos.additem("1200")
lb_arte.selectitem(0)
lb_cos.selectitem(0)
cb_agregar.enabled=false
integer ctotal
ctotal=integer(st_ctotal.text)
if ctotal=0 then
messagebox("Error","Selecciona un artefacto artefacto")
return
end if
boolean verifica
verifica=rb_con.checked or rb_cre.checked
if not verifica then
messagebox("Error","Selecciona una forma de pago")
return
end if
double dcto, incre, precio, igv, pmen
if rb_con.checked then
if ctotal>1200 then
dcto=ctotal*0.08
else
dcto=ctotal*0.06
end if
else
incre=ctotal*0.1
end if
igv=(ctotal - dcto + incre)*0.19
precio= ctotal - dcto + incre + igv
if rb_cre.checked then pmen=precio/12
Ing. Ysmael Rivas Uriol Paá gina 58
Herramientas de Desarrolllo de Software
st_dcto.text=string(dcto,"0.00")
st_igv.text=string(igv,"0.00")
st_precio.text=string(precio,"0.00")
st_pmen.text=string(pmen,"0.00")
sle_cli.text=""
lb_arte.reset()
lb_cos.reset()
lb_artsel.reset()
lb_costo.reset()
st_ctotal.text=""
rb_con.checked=false
rb_cre.checked=false
st_dcto.text=""
st_igv.text=""
st_precio.text=""
st_pmen.text=""
sle_cli.setfocus()
integer nResp
nResp=MessageBox("Proforma de Artefactos","Desea Salir de la aplicación",
Question!,YesNo!)
If nResp=2 Then
Return
End If
AUTOEVALUACION
Desarrolla las siguientes aplicaciones construyendo primero un menú cuya opción
principal debe llamarse Aplicaciones y dentro de esta opción consideras una opción
ejemplo1 para el ejercicio 1, otra opción ejemplo2 para el ejercicio 2 y así
sucesivamente hasta el ejercicio 3.
1. En los objetos de control listbox (list1 y list2), las listas debe llenarse con lo
siguiente: (los costos unitarios van a la lista list2).
Marca y tipo de Pintura Costo unitario
Vencedor Latex de 1 galón 42.00
Vencedor SuperLatex de 1 galón 52.50
Vencedor Latex de 1/4 galón 15.60
Tekno Latex de 1 galón 26.00
Tekno Superlatex 1 galón 32.30
CPP Latex de 1 galón 28.50
CPP Latex de 1/4 galón 11.20
CPP Latex Pato de 1 galón 28.90
Al seleccionar la marca y tipo de pintura en el objeto listbox (list1), en el objeto
textbox referido a la cantidad de producto se ingresa dicha cantidad. Este objeto
debe activarse su uso cuando se seleccione en la lista list1
Al usar el botón de comando AGREGAR (se activa cuando se ingresa la
cantidad) se adicionará en la lista list3 el producto seleccionado previamente y
en la lista list4 el costo que resulta de la operación de multiplicar la cantidad por
el costo unitario. El costo total es la suma de los costos visualizados en la lista
list4. El botón de ELIMINAR (se activa cuando se selecciona en el list3) permite
eliminar algún producto a comprar de la lista list3 con su respectivo costo de la
lista list4, siendo previamente seleccionado el producto a eliminar de la lista
list3. El costo total debe autocalcularse cuando suceda la eliminación.
Si el pago es al contado se hará un descuento del 10% del costo total. El monto
a pagar es igual al costo menos el descuento
Si el pago es al crédito se pagará en 6 cuotas o pagos mensuales iguales del
monto a pagar. El monto a pagar es igual al costo total incrementado en 8%.
2. En los objetos de control listbox (list1 y list2), las listas debe llenarse con lo
siguiente: (los costos unitarios en dólares van a la lista list2)
Impresora Costo unitario Impresora Costo unitario
Citizen 120D 156.00 Epson LX 400 196.00
Citizen 124D 185.00 Epson LX 810 215.00
Citizen 200EX 215.00 Canon Bubble JetBJ20 234.60
Citizen GSX-230 189.00 Canon Bubble JetBJ30 286.30
Epson ActionLAser 1000 650.60 HP DeskJet 500 485.00
Epson ActionLAser II 869.50 HP DeskJet 520 Printer 523.40
Epson LX 300 175.90 HP DeskJet 680C 752.80
Al seleccionar la marca y tipo de impresora en el objeto listbox (list1), en el
objeto textbox referido a la cantidad de producto se ingresa dicha cantidad. Este
objeto debe activarse su uso cuando se seleccione en la lista list1
Al usar el botón de comando AGREGAR (se activa cuando se ingresa la
cantidad) se adicionará en la lista list3 el producto seleccionado previamente y
en la lista list4 el costo que resulta de la operación de multiplicar la cantidad por
el costo unitario. El costo total es la suma de los costos visualizados en la lista
list4. El botón de ELIMINAR (se activa cuando se selecciona en el list3) permite
eliminar algún producto a comprar de la lista list3 con su respectivo costo de la
lista list4, siendo previamente seleccionado el producto a eliminar de la lista
list3. E costo total debe autocalcularse cuando suceda la eliminación. Por cada
impresora se paga un flete de 10 dólares. El total por flete se visualiza en el
costo por flete
Si el pago es al contado se hará un descuento del 10% del costo total de los
equipos. El monto a pagar es igual al costo menos el descuento, más el flete
Si el pago es al crédito se pagará en 6 cuotas o pagos mensuales iguales del
monto a pagar. El monto a pagar es igual al costo total más el flete
incrementado todo esto en 8%
Aspectos Generales
En la primera parte se estudiará a los objetos de control básicos como son JLabel,
JTextField, JButton, JRadioButton, JCheckBox, JList, JComboBox y Jtable; en la
segunda parte se tendrá en cuenta el diseño de aplicaciones a partir de casos, lo cual
implica el uso de los objetos de control básicos estudiados en la primera parte como
también la construcción o diseño de menús; y en la tercera se abarcará la construcción
¿Qué es Programación
Visual?
La programación visual brinda los conocimientos necesarios para diseñar y desarrollar
aplicaciones con un entorno visual amigable y fáciles de utilizar por el usuario.
Los lenguajes de programación visual, como Visual Java, hacen sencilla la tarea de
los programadores porque antes constituía una gran demora tiempo en el diseño de
ventanas o formularios.
Observa la
siguiente figura:
Para dar inicio a una aplicación de Java bajo el entorno de Netbeans se debe definir un
proyecto, para ello, seleccionas la opción del menú denominada File. Se muestra
inmediatamente un menú flotante cuya primera opción indica New Proyect, está
opción la seleccionas.
Dado que nuestras aplicaciones van ser desarrolladas en entorno visual en Categories
seleccionas la carpeta Java y en Proyects seleccionas Java Application. Luego hacer
click en el botón de comando Next que mostrará la siguiente ventana:
Es conveniente que uno mismo cree su carpeta de destino de los archivos que
se generan para la construcción de una aplicación. Supongamos que la carpetas que
necesitamos crear se llama Ejercicios y la creamos en la unidad E, para ello es
necesario dar click en el botón de comando Browse.
Una vez indicada la nueva carpeta Ejercicios, procede a dar click en el botón de
comando
Abrir quedando la ventana New Java Application de la siguiente forma:
Propiedades
más usadas:
● Text: Contiene el valor que se visualizará en el formulario.
● Font: Permite establecer el tipo de letra de la expresión a mostrar en el
formulario.
● Border: Para establecer el tipo de borde de la etiqueta.
● Enabled: Para habilitar o inhabilitar el uso del objeto de control.
Objeto de control
JTextField
Un objeto de control JTextField permite dibujar en el formulario un cuadro de
texto, es decir, una caja que permite la introducción de un dato o valor. Este objeto es
utilizado para el ingreso de datos.
Propiedades
más usadas:
● Text: Contiene el valor o dato introducido en el cuadro de texto.
● Font: Permite establecer el tipo de letra del texto en la caja.
Solución:
JButton2 btnLimpiar
JButton3 btnCerrar
de la aplicación.
● Procedemos a ejecutar la aplicación seleccionado frmAreaTriangulo y al
dar clic botón derecho eligimos Run File.
● Podemos observar que el formulario sale con los objetos de control cercano a
los bordes del formulario y el mismo formulario se visualiza pegado en la parte
superior izquierda de la pantalla del computador. Vamos a proceder a
corregir estos defectos agregando dos líneas de código en el método
constructor de la clase frmAreaTriangulo. (escribe lo que está en azul)
public class frmAreaTriangulo extends javax.swing.JFrame
{
/** Creates new form frmAreaTriangulo */
public frmAreaTriangulo()
{
initComponents();
setSize(400,250);
setLocation(250,250);
}
Le ponemos nombres a las objetos de control y sobre todo a aquello que intervienen
en la lógica de la programación.
Se limpian los cuadros de textos a través del método setText() y con el método
requestFocus() se pasa el cursor al objeto de control txtNotaParcial.
TAREA Nº 1
1. Se desea construir una aplicación que permita ingresar una cantidad de camisas
a comprar a una distribuidora indicando el costo unitario y la tasa de descuento,
para luego mostrar el costo total, el igv(18% del costo total) y el mosto a pagar
(costo total más el igv). El diseño del formulario es el siguiente:
2. Se desea construir una aplicación que permita el ingreso del costo de una
computadora. si el costo del artefacto vale menos de 500 soles se aplica un
descuento del 4% sobre dicho costo, si el costo es mayor e igual a 500 y menor e
igual a 1200 la tasa de descuento es de 6% sobre el costo y si supera a 1200 el
descuento es del 8%. Calcular el descuento, el impuesto del igv (19%) y el
precio a pagar por la computadora. El diseño del formulario es el siguiente:
4. Elabora una aplicación que permita el ingreso de dos números y muestre el doble
del número mayor y el cuadrado del número menor. Propone tú mismo el
diseño del formulario.
5. Implementar una aplicación que permita acumular las ventas de los pasajes
Vendidos a los clientes de una determinada empresa.
7. Implementar una aplicación que permita Calcular el sub total y contar el número de
ventas de una determinada empresa.
JOptionPane
Introducción
Un diálogo es una ventana independiente también llamada subventana que
pretende mostrar un aviso temporal al margen de la ventana de la aplicación
principal de Swing. Los Diálogos más comunes son mostrar un mensaje de error
o de advertencia a un usuario.
Libreria
JOptionPane facilita el mostrar una ventana emergente en Java o también se usa
para pedir un valor a los usuarios o informarles de algo.
javax.swing.JOptionPane;
showOptionDialog();
showInputDialog();
showMessageDialog();
showConfirmDialog();
showOptionDialog
Tenemos un método JOptionPane.showOptionDialog() que nos muestra la
ventana más configurable de todas, en ella debemos definir todos los botones
que lleva. De hecho, las demás ventanas disponibles con JOptionPane se
construyen a partir de esta. Por ello, al método debemos pasarle muchos
parámetros:
conviene pasar, por ejemplo, el botón desde el cual se lanza la acción que
provoca que se visualice el JOptionPane. De esta manera, la ventana de aviso se
visualizará sobre el botón y no se podrá ir detrás del mismo si hacemos click en
otro sitio.
icon: Un icono para mostrar. Si ponemos null, saldrá el icono adecuado según el
parámetro messageType.
initialValue: Selección por defecto. Debe ser uno de los Object que hayamos
pasado en el parámetro options. Se puede pasar null.
Ejemplo
int seleccion = JOptionPane.showOptionDialog( unComponentePadre,
"Seleccione opcion", "Selector de opciones",
JOptionPane.QUESTION_MESSAGE, null, new Object[] { "opcion 1", "opcion
2", "opcion 3" }, opcion 1");
showInputDialog();
Tenemos varios métodos JOptionPane.showInputDialog() y la diferencia entre
ellos es que tienen más o menos parámetros, según queramos aceptar o no las
opciones por defecto. Los parámetros y sus significados son muy similares a los
del método showOptionDialog(),
Ejemplo
String seleccion = JOptionPane.showInputDialog( null, "Input dialog",
JOptionPane.QUESTION_MESSAGE);
showMessageDialog();
Esta es la más sencilla de todas, sólo muestra una ventana de aviso al usuario. La
ejecución se detiene hasta que el usuario cierra la ventana. Hay varios métodos
con el mismo nombre y más o menos parámetros, en función de si aceptamos las
opciones por defecto (icono, por ejemplo) o queremos cambiar alguna cosa.
Los iconos usados del JOptionPane son los siguientes y son los que recibe como
parametro la mayoria de los metodos que necesitan un icono de mensaje
Ejemplo
JOptionPane.showMessageDialog(null, "Hola Mundo", "Lo de siempre",
JOptionPane.INFORMATION_MESSAGE);
showConfirmDialog();
Este método muestra una ventana pidiendo una confirmación al usuario y da al usuario
opción de aceptar o cancelar.El método devuelve un entero indicando la respuesta del
usuario. Los valores de ese entero puede ser alguna de las constantes definidas en
JOptionPane: YES_OPTION, NO_OPTION, CANCEL_OPTION, OK_OPTION,
CLOSED_OPTION
Ejemplo
int confirmado = JOptionPane.showConfirmDialog( null, "¿Lo
confirmas?“,JOptionPane.QUESTION_MESSAGE);
Objeto de Control
JCheckBox
Un objeto de control JCheckBox permite dibujar en el formulario una opción que
Ing. Ysmael Rivas Uriol Paá gina 93
Herramientas de Desarrolllo de Software
puede ser seleccionada, es decir, es un objeto que define una opción o alternativa para
ser elegida. La diferencia con respecto al objeto de control JRadioButton es que si se
tienen dos o más objetos JCheckBox se puede seleccionar más de una opción o
simplemente no seleccionar ninguna, por lo que no son mutuamente excluyentes. Se
tiene la siguiente figura:
Propiedades
más usadas:
● Text: Permite establecer la expresión de la opción.
● Font: Permite establecer el tipo de letra en el objeto de control.
● Enabled: Para habilitar o inhabilitar el uso del objeto de control.
Método
más
usado:
Aplicación 1
Vamos a construir una aplicación en entorno visual que permita ingresar del costo
de un artefacto, del tipo de artefacto y la forma de pago, para calcular lo siguiente:
a. Si el pago es al contado hay un descuento del 6% del costo del artefacto si el
tipo de artefacto es Audio, 8% si es Video y 5% si es Línea Blanca.
b. Si el pago es al crédito hay un incremento del 7% sobre el costo del artefacto
si es el tipo de artefacto es Audio, 9% si es Video y 10% si es Línea Blanca.
c. El monto del IGV es del 19% sobre el costo del artefacto luego de aplicar
el descuento o el incremento.
d. El monto a pagar que es el costo del artefacto (descontado o incrementado)
más el monto del IGV.
Solución:
● Procedamos a crear un proyecto denominado Aplicaciones dentro de una
carpeta llamada Practicas y como clase Aplicación1 que pertenece al paquete
de ejemplos. Luego damos click en el botón de comando Finish.
Lo mismo hacemos para los tipos de artefactos Video y Línea Blanca. Por lo
tanto, los tres objetos JRadioButton deben pertenecer a buttongroup1. Si
pretendemos en estos momentos ejecutar el formulario podremos
seleccionar uno de los tres tipos de artefactos.
Ing. Ysmael Rivas Uriol Paá gina 98
Herramientas de Desarrolllo de Software
}
else
{
if (rbAudio.isSelected())
incre=costo*0.07;
if (rbVideo.isSelected())
incre=costo*0.09;
if (rbLinea.isSelected())
incre=costo*0.1;
}
igv=(costo-dcto+incre)*0.19;
mpagar=(costo-dcto+incre)+igv;
txtDcto.setText(String.valueOf(dcto));
txtIncre.setText(String.valueOf(incre));
txtIgv.setText(String.valueOf(igv));
txtMPagar.setText(String.valueOf(mpagar));
}
Una vez declaradas las variables de memoria, en la variable costo se asigna el
valor introducido en el cuadro de texto txtCosto gracias al método getText()
que logra obtener el dato colocado en el objeto de control. Con la sentencia if
se evalúa si está seleccionada la opción al contado y, si es así, se procede a
evaluar cuál de los tipos de artefactos está seleccionado para aplicar el cálculo
del descuento que será asignando a la variable de memoria dcto. En caso que
no esté seleccionada la opción al Contado entonces se asume que la forma de
pago es al crédito y se procede a evaluar cuál de los tipos de artefactos está
seleccionado para aplicar el cálculo del incremento que será asignado a la
variable incre. A continuación, se calcula el IGV y el monto a pagar. Luego,
los objetos de control txtDcto, txtIncre, txtIgv y txtMPagar reciben valores a
través de las variables de memoria dcto, incre, igv y mpagar en sus cuadros
de textos gracias al método setText(), por supuesto previamente se tiene que
convertir a cadena de texto los valores numéricos de las variables usando el
método valueOf() de la clase String.
{
txtCosto.setText(“”);
txtDcto.setText(“”);
txtIncre.setText(“”);
txtIgv.setText(“”);
txtMPagar.setText(“”)
;
rbAudio.setSelected(fa
lse);
rbVideo.setSelected(fa
lse);
rbLinea.setSelected(fal
se);
chkContado.setSelecte
d(false);
txtCosto.requestFocus(
);
}
Tarea N° 2
1. Diseñar e implementar el siguiente formulario que permite calcular el descuento de
afiliación, utilizando controles RadioButton
Objeto de Control
JList
Un objeto de control Jlist permite dibujar en el formulario una caja de lista de
opciones (ítems). Cuando el formulario se encuentra en la etapa de ejecución se
pueden seleccionar sus ítems. Pero para trabajar con este objeto es necesario usar un
objeto de la categoría de Swing Containers denominado JScrollPane. El objeto
JScrollPane permite hacer que el objeto JList tenga barra de desplazamiento que es
necesaria cuando el número de ítems es grande y no puede ser visto a simple vista
en el objeto de control JList. Cabe señalar que los objetos que pertenecen a Swing
Containers serán estudiados con mayor detalle en la segunda unidad de aprendizaje
del curso, pero el uso de Jlist nos obliga utilizar el objeto contenedor JScrollPane.
Aplicación:
Construir una aplicación que permita el ingreso del nombre del alumno y
poder seleccionar uno o varios cursos que éste quisiera llevar. El pago por los cursos
seleccionados podrá ser pagado al contado o al crédito. Si el pago es al contado hay
un descuento del 5% del costo total de los cursos a llevar y si el pago es al crédito se
pagará un incremento del 7% del costo total. La aplicación debe mostrar el descuento,
el incremento y el monto a pagar por los seleccionados.
Solucion:
● Iniciamos con la creación de un proyecto denominado Aplicaciones.
Seleccionamos del menú, la opción File y luego New Proyect. Aparece la
ventana de New Proyect y damos clic en el botón de comando Next. En la
ventana New Java Application indicamos como nombre de proyecto
Aplicaciones creando como paquete aplicaciones. Al dar click en el botón de
comando Finish nos encontramos con el entorno de desarrollo.
● A continuación se muestra la ventana New Jframe Form que debe quedar así:
tiene una propiedad llamada model que permite colocar los ítems dentro de
la caja de lista Jlist1.
Ingresamos los nombres de los cursos tal como se muestra en la siguiente ventana:
● Luego vamos a colocar en el diseño del formulario otro objeto JScrollPane junto a
JList1 para luego poner un objeto JList. En esta lista colocaremos los costos de
cada curso.
● Posteriormente agregamos las formas de pago con dos objetos JRadioButton, los
botones de comando Calcular, Limpiar y Cerrar. Finalmente, los objetos que
mostrarán el descuento, el incremento y el monto a pagar por los cursos
seleccionados. El diseño del formulario debe quedar así:
● Bien, ahora debemos programar sobre el objeto lsrCursos, para que el usuario
al momento de seleccionar un curso se marque simultáneamente el costo
y se habilite el botón de comando Agregar. Para esto se debe seleccionar un
evento de la caja de lista lstCursos llamado ValueChanged perteneciente a
ListSelection.
En esta programación, la novedad está en que para limpiar totalmente una caja
de lista se hace con el método clear() perteneciente a las variables objeto
modelo1 y modelo2, con lo cual también se hace la limpieza a los objetos
lstCursel y lstCos. También, hacemos el uso del método setSelectedIndex()
dando el valor de 5, ya que dicho índice no existe en la caja de lista, lo que
hace que se pierda lo seleccionado.
● Finalmente programamos en el botón de comando Cerrar:
Objeto de Control
JComboBox
Un objeto de control JComboBox permite dibujar en el formulario una lista
desplegadle, la cual contiene opciones (ítems). ComboBox significa “cuadro
combinado” porque combina un cuadro de texto con una caja de lista, es como si
fuera un JtextField mezclado o combinado con un Jlist. Tiene la particularidad de que
se debe seleccionar un botón de comando de despliegue y luego seleccionar la opción
o ítem.
Una vez dado clic en el botón de despliegue se muestra las opciones o ítems del
objeto
● Existe un pago por matrícula del 80% del costo total (suma de los costos de los
cursos escogidos) siempre y cuando quiera el alumno llevar un solo curso,
60% del costo total si lleva dos cursos y 50% del costo total si lleva 3 o más
cursos.
● El costo total tiene un descuento del 10% si la forma de pago es al contado y
un incremento del 10% si es al crédito.
● Existe un pago mensual cuando la forma de pago es al crédito y es equivalente
al costo total incrementado dividido en 4 cuotas.
Solucion:
● Ahora bien, si observamos en el diseño del formulario, los cuatros objetos JList
no tienen ítems. Los objetos JList referidos a Cursos Ofertados y Costo
(objetos ubicados al lado izquierdo del diseño del formulario) se llenarán
de ítems de acuerdo a lo seleccionado en la lista desplegadle referido a la
Categoría de Cursos. Los objetos Jlist referidos a Cursos Escogidos y Costos
se llenarán en la medida que se seleccione un curso ofertado y se agregue
con el botón de comando Agregar. Los 4 objetos JList deben tener un
modelo (model) cada uno, para ello debes definir 4 variables: modelo1,
modelo2, modelo3 y modelo4 del tipo DefaultListModel(). Para poder hacer
uso de la clase DefaultListModel se debe hacer uso del paquete javax.swing.*;
y debe ser escrito después del paquete Aplicaciones.
directa con los objetos lstCurOfer y lstCostos. De igual forma se trabaja para
los demás ítems del objeto JComboBox llamado cboCategorias.
En esta programación se hace uso del método remove() que elimina un ítem de
la lista a través de la variable objeto modelo3 ó modelo4 dado el valor del
índice. Al final de la programación se inhabilita el botón de comando
Eliminar.
TAREA
OBJETO JTABLE
DefaultTableModel
Esta clase permite construir el modelo para el objeto Table. Los métodos más
utilizados son:
● addColumn(): Añade una columna al modelo.
Aplicación
Construir una aplicación que permita calcular el promedio de las notas obtenidas en el
curso de Programación Visual. La aplicación debe permitir el ingreso del nombre del
alumno, la nota de la I Unidad, la nota de la II Unidad y la nota de la III Unidad.
Además debe permitir la selección del turno a la que pertenece el alumno. A través de
un botón de comando debe agregar los datos en un objeto Jtable, calculando el
promedio de las notas; y a través de otro botón de comando debe eliminar la fila
seleccionada en el objeto JTable. También se debe mostrar el total de filas agregadas
en el objeto JTable.
Solucion:
● Usaremos el mismo proyecto utilizado en la sesión anterior y sólo
agregarás un formulario (Jframe).
TAREA
Se desea ingresar la descripción del artefacto, seleccionar la marca que puede ser
SONY, PANASONIC, SAMSUMG, LG, etc., seleccionar el tipo de artefacto que puede
ser AUDIO, VIDEO y LINEA BLANCA y el ingreso del costo del artefacto. El objeto
JTable se debe definir 5 columnas referido a los datos antes mencionados y la
quinta colmuna debe titularse “PRECIO” donde se mostrará el costo del artefacto
incrementado en 19% (IGV). Al momento de usar el botón de comado Agregar se
genera una fila en el Objeto JTable y se mostrará la descripción del artefacto de
mayor costo (cuando haya 2 o mas artefactos expresados en el JTable) y el total de
artefactos visualizados. Al usar usar el botón de comando eliminar, aparte de
eliminar la fila seleccionada en el Objeto JTable, se debe buscar la descripción del
artefacto de mayor costo.