Esta sesin abarca el desarrollo de un mantenimiento de datos usando una sola tabla independiente o tabla primaria .Siguiendo la sesin anterior haremos uso de la base de datos Transportes de SQLServer la cual contiene la tabla ciudad.
Estableciendo Conexin en Etapa de Diseo
Teniendo la base de datos de Transportes, hay que establecer la conexin en la etapa de diseo usando el pintor del Database para luego poder crear el objeto datawindow.
Dar clic en DataBase
Se muestra a continuacin el pintor del DataBase
Asumiendo que el ODBC para la base de datos de Transportes es odbcTransportes, vamos a continuacin a crear un ProFile (archivo de proveedor):
Tabla Independiente o Tabla Primaria Aqu iniciamos la creacin del ODBC odbcTransportes para una base de datos MySql desarrollado en la sesin anterior Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 2
a) Seleccionar el componente ODBC y dar clic botn derecho.
b) Una vez seleccionado New Profile se muestra la ventana DataBase ProFile Setup ODBC.
c) Una vez dado clic en el botn de comando OK se muestra el profile en el pintor del DataBase.
Seleccionar New Profile para crear un nuevo Profile 1. Indica como nombre del ProFile: prfTransportes 2. Seleccionar el origen de datos (ODBC) odbcTransportes 3. Luego dar clic con el botn de comando OK Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 3
Ahora procedemos a establecer la conexin en la etapa de diseo. Selecciona el archivo profile pretransportes y dar clic con el botn derecho.
d) El pintor DataBase muestra la conexin donde se pueda observar las tablas de la base de Transportes.
Diseo del Objeto Datawindow
Se observa el archivo profile prfTransportes Dar clic en Connect y se establece la conexin con la base de datos Transportes. Se debe observar la tabla Ciudad en la carpeta Tables. Ya existe la conexin en la etapa de diseo. Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 4
Teniendo la conexin en la etapa de diseo con la base de datos Transportes procedemos a continuacin a disear el objeto datawindow d_ciudad.
a) Cerrar la ventana del pintor del DataBase y estando en el entorno de Power Builder, dar clic en la opcin New de la barra de herramientas.
Selecciona New
Te muestra la siguiente ventana
Selecciona la ficha Datawindow
b) Se muestra los formatos de presentacin de datos. Selecciona el formato Grid y dar clic en OK.
Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 5
c) Se observa la ventana Choose Data Source for Grid Datawindow, donde se selecciona la forma de obtener los datos. Quick Select: usado para seleccionar datos provenientes de una tabla Sql Select: usado para seleccionar datos de varias tablas Query: usado para establecer una consulta External: usado para construir tablas temporales Stored Procedure: usado para obtener datos de procedimientos almacenados. Dado que vamos a trabajar con la tabla de Ciudad seleccionamos Quick Select.
d) Se visualiza la ventana Quick Select
1. Seleccionar 2. Dar clic en OK 1. Seleccionar 2. Dar clic en el botn de comando Next Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 6
Al momento de seleccionar la tabla Ciudad se muestra sus campos, luego procedemos a seleccionar todos los campos que puede ser seleccionando campo por campo o dando clic en el botn de comando Add All.
e) Luego de dar clic en el botn de comando OK se muestra la ventana Select Color and Border Setting, donde se muestra y se puede cambiar los valores de las propiedades de presentacin de datos. Solo procede a dar clic en el botn de comando Next.
Seleccionar ciuadad 1. Seleccionar 2. Dar clic aqu Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 7
f) Posteriormente se muestra un reporte de los valores de las propiedades de presentacin de datos. Daremos clic en el botn de comando Finsh.
g) Ahora se muestra el pintor del Datawindow y procedemos a establecer la tabulacin de las columnas del datawindow necesario para desplazarse en las columnas de un objeto control datawindow.
Clic en Tab Order Cambiar los valores de la tabulacin:
Dar clic en Next Dar clic en el botn de comando Finish Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 8
Cambiar por 10 Cambiar por 20
Luego dar clic en Tab Order nuevamente para desactivar los nmeros 10 y 20.
h) Ahora procedemos a usar la opcin del men Rows y luego la opcin Update Properties
Se muestra la siguiente ventana:
Dar clic aqu Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 9
Se activa el checbox Allow Updates (propiedades de grabacin), luego se selecciona Use Update para establecer que el datawindow es capaz de realizar el proceso de grabacin. Posteriormente se elige las columnas donde se grabaran los datos, es decir, seleccionamos a idciudad y nombre. A continuacin se selecciona la columna que sea clave nica como es idciudad y finalmente seleccionar la tabla ciudad en Table to Update, donde se indica la tabla donde se graba.
Esta ventana debe quedar as:
i) Se procede a grabar con el nombre d_ciudad.
1. Activar el checkbox 2. Seleccionar Use Update 3. Seleccionar idciudad y nombre 4. Seleccionar solo idciudad 5. Seleccionar la tabla Ciudad Dar clic en el botn de comando OK Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 10
Dar clic en Grabar (disquete)
j) Al dar clic en Grabar se muestra la ventana Save Datawindow.
k) Se procede a cerrar la ventana del pintor de datawindow. En el entorno de Power Builder puede verse as:
Objeto datawindow d_ciudad Panel de visualizacin
1. Colocar aqu: d_ciudad 2. Dar clic en el botn de comando OK. Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 11
Diseando la ventana para la Aplicacin
Teniendo el objeto datawindow d_ciudad procedemos a disear el objeto ventana w_mant_ciudad, pero antes vamos a crear objetos ventanas usando herencia.
a) Vamos a crear ventanas segn el diagrama siguiente:
b) Procedemos a disear la ventana w_mantenimiento, la cual esta compuesto por un objeto control datawindow y 7 objetos de tipo botn de comando.
Los objetos de control tendrn los nombres como se indica en el siguiente diseo:
herencia w_mantenimiento w_mant_ciudad
Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 12
cb_agregar cb_buscar cb_modificar cb_grabar cb_eliminar cb_cancelar cb_salir c) Los scripts de cada uno de los objetos de control son:
Objeto: w_mantenimiento Evento: Open dw_mantenimiento.SetTransObject(sqlca) dw_mantenimiento.Retrieve()
cb_agregar.Enabled=True cb_grabar.Enabled=True nRet=dw_mantenimiento.Update() If nRet > 0 then Commit; If sqlca.SQLCode<0 then MessageBox("Error en la base de datos","Error " +String(sqlca.SQLDBCode)+":"+sqlca.SQLErrText) Halt Close End If Else Rollback; If sqlca.SQLCode<0 then MessageBox("Error en la base de datos","Error " +String(sqlca.SQLDBCode)+"."+sqlca.SQLErrText) Halt Close End If End If dw_mantenimiento.TriggerEvent(RowFocusChanged!)
Objeto: cb_eliminar Evento: Clicked int resp resp = MessageBox("Eliminar ","Esta seguro de eliminar fila", StopSign!,YesNo!,2) if resp = 1 then cb_eliminar.Enabled=False dw_mantenimiento.DeleteRow(0) dw_mantenimiento.Update() End if If dw_mantenimiento.rowcount()=0 then cb_agregar.TriggerEvent(clicked!) End if
d) Los botones de comando cb_grabar y cb_eliminar su propiedad enabled debe estar inhabilitado
Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 14
e) Procedemos a grabar este diseo de ventana como w_mantenimiento. Una vez grabado cerramos el pintor de ventana w_mantenimiento para luego iniciar la herencia.
Dar clic en inherit
f) Al dar clic en Inherit se muestra la siguiente ventana:
2. Selecciona el objeto w_mantenimiento 3. Dar clic en OK 1. Selecciona Windows Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 15
g) Vamos a proceder a usar la propiedad DataObject del objeto control datawindow
Dar clic aqu Luego de dar clic se muestra la siguiente ventana:
h) El pintor de ventana queda as:
1. Seleccionar d_ciudad 2. Dar clic en OK Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 16
i) Vamos a agregar un objeto de control statictext en la parte superior del objeto de control datawindow que exprese: MANTENIMIENTO DE CIUDAD.
j) Procedemos a grabar la ventana como w_mant_ciudad. Una vez grabado, cerramos el pintor de ventana. k) Abrimos el pintor del DataBase. Dar clic botn derecho sobre prfTransportes
Seleccionar Properties Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 17
l) Se muestra la ventana DataBase Profile Setup y luego dar clic en la ficha Preview
Dar clic en el botn de comando Copy
m) Despus de dar clic en Copy, luego dar clic en el botn de comando OK, se procede a cerrar el pintor del DataBase. Posteriormente abrir el pintor de Aplicacin transporte y en la vista de script, en el evento Open, colocar la siguiente programacin (pegar lo que se logr con Copy):
Objeto aplicacin Transporte Evento: Open
Luego agregar las lneas de programacin:
Taller de Programacion Distribuida
Ing. Ysmael Rivas Uriol Pgina 18
n) Ahora queda slo ejecutar la primera aplicacin con base de datos. Solo dar cilc en Run.
Dar clic en Run
AUTOEVALUACION
1. Crea la tabla denominada Marca en la base de datos de Transportes con la siguiente estructura:
idmarca char(2) descripcin varchar(20) pas varchar(20)
Construye una aplicacin que permita el mantenimiento de la tabla Marca utilizando el objeto w_mantenimiento y a partir de este objeto heredar y crear el objeto w_mant_marca.