Professional Documents
Culture Documents
Power Builder 7.0 Cap05
Power Builder 7.0 Cap05
INFOMAKER
PowerBuilder provee el objeto data Windows el cual usted puede usar para desarrollar sus reportes. Sin
embargo , también le proporciona InfoMaker que le ayudará al usuario final a diseñar sus propios reportes.
Sybase diseñó infomaker para que el usuario final pueda crear reportes. El usuario de Infomaker que pueda crear
reportes y gráficos que el desarrollador de powerbuilder pueda usar en el diseño de una aplicación
Además , sybase simplifica la documentación de infomaker para que los que no son desarrolladores
pudiesen crear reportes fácilmente punto el entorno de desarrollo de infomaker y powerbuilder tienen las mismas
características.
Ambos pintores le permiten al desarrollador crear reportes para una aplicación punto la funcionalidad del
reporte dentro de estas herramientas crean un datawindow, pero no le deja al desarrollador insertar y manipular
data desde el pintor del reporte.
La diferencia principal entre crear un datawindow que le permite al usuario añadir y editar data ,y un
datawindow que muestra un reporte es que el orden de tabulación de todos los controles dentro de un
datawindow para un reporte Empieza de cero. Para especificar los argumentos de recuperación para un reporte
coma debe ir la pantalla de origen de datos del datawindow y seleccionar la opción retrieval arguments del menú
de Design. El cuadro de diálogo de argumentos donde usted puede especificar los argumentos y sus respectivos
tipos aparecerá . si usted especifica los argumentos de recuperación dentro de un evento retrieved de un control
datawindow powerbuilder mostrará el cuadro para ingresar los valores de argumentos.
Si la sentencia SQL para su reporte incluyen cláusulas joins, deberá considerar el escribir un procedimiento
almacenado Como origen de datos para su reporte.
ESTILOS DE PRESENTACION
El pintor de reporte de powerbuilder e infomaker habilite el desarrollador para reforzar los datos usando
los formatos composite ,tabular ,grid, free form, crosstab,N.Up, Group ,label, graph,ole 2.0 and rich tex .estos
formatos son los mismos que los data Windows.
APLICA 17
Solución:
1. Iniciar una nueva sesión con Infomaker 7.0 para esto hacer clic en el menú inicio /programas/Sybase\
Infomaker7.0 /infomaker
2. Crear un nuevo DSN conectado a la base de datos de Microsoft sql server Norwich llamado Nwind
utilizando la interfaz de conexión ODBC
POWER BUILDE NIVEL II_______________________________________________________________________
3. Luego deberá crear una nueva librería haciendo clic en File new en la siguiente ventana elegir el objeto
library.
4. Asignarle el nombre de aplica_ 17, guardar en c:\ powerbuilder \prácticas \cap 05\ aplica 17 \aplica 17.
pbl luego dar clic en el botón finish.
5. Luego proceda a crear un nuevo reporte coma para esto dar clic en el menú file new caso contrario clic en
el botón y elegir de la ficha object el tipo Group
6. Luego elija el origen de datos para la creación nuevo reporte punto para este caso utilizaremos el tipo SQL
select
8. Luego seleccione los campos categoryId, categoryname de la tabla categories y producId, productname,
categoryId, unitPrice, unitsInStock y discontinued de la tabla products :
Luego haga los cambios de formato en el nuevo reporte de manera que aparezca de la siguiente manera:
Luego inserte un campo calculado haciendo clic en el menú insert /control /computed field o de la caja de
herramientas.
___________________________________________________________CAPITULO 5-Reportes -InforMaker
Luego haga clic en un espacio de la sección categories_categoryIdy escriba el siguiente código en la ventana de
expresión:
Este campo nos mostrara el precio de venta de cada artículo. Ahora seleccione el campo agregado y haciendo un
clic en el menú insert/ Control /sum se agregara un nuevo campo calculado en la sección detail.
Por ultimo agregamos un contador de paginas al reporte. Para esto hacer clic en el menú insert / control /page nof
n.
Este se agregará automáticamente en la sección Summary. Peo usted deberá modificar la formula , ya que
esta se muestra en inglés:
APLICA 18
Dessarollar un reporte que permita visualizar a todos los clientes de un determinado país. El nombre del
país debe ser enviado como argumento de recuperación.
Solución:
Este campo nos mostrar el precio de venta de cada artículo punto ahora selecciona el campo agregado y haciendo
clic en el menú insert/ control / sum se agregará un nuevo campo calculado en la sección Detail.
Por último agregamos un contador de páginas al reporte punto para esto hacer clic en menú insert /control /page
n of n .
Este se agregará automáticamente en la sección summary. Pero usted deberá modificar la fórmula ya que
está se muestra en inglés.
APLICA 18
Desarrollar un reporte que permita visualizar a todos los clientes de un determinado país. El nombre del
país debe ser enviado como argumento de recuperación.
Solución:
3. Luego elija el origen de datos para la creación nuevo reporte. Para este caso utilizaremos el tipo SQL Select
4. Luego seleccione la tabla customers y elija los campos customerId, companyname contacname,countre y
pone de la tabla customers:
___________________________________________________________CAPITULO 5-Reportes -InforMaker
7. Por ultimo debe agregar en la selección Where del reporte en la siguiente forma:
8. Luego, en el pintor del reporte, cambie las etiquetas que aparecen en la sección Header de la siguiente
manera:
Luego inserte un control Text en la sección Header, elimine su contenido y mostrar su ventana de expresión:
Finalmente inserte un control Picture en la sección Header con la imagen que se encuentra en la siguiente ruta:
C:/sys_facturacion/imágenes/bd07082_.wmf
Se le presentará entonces la ventana de argumentos en la deberá escribir un nombre de país cualquiera. Para este
ejemplo digitaremos Germany:
APLICACIÓN 19
Desarrollar un reporte que permita conectarse a la tabla categorías de la base de datos Northwind
y muestra el campo nombre de categoría.
Solución:
2.Crear un nuevo reporte, para esto dar clic en el menú caso contrario clic en el botón y elegir de la ficha object el
tipo Grid
3.Luego elija el origen de datos para la creación nuevo reporte . para este caso utilizaremos el tipo SQL select
Luego elimine el campo categoryID y elimine las etiquetas de encabezado, de manera que solamente quede el
campo de la sección Detail.
APLICA20
Desarrollar un reporte que permita ver el detalle de una determinada factura de un cliente. Para esto,
deberá enviar el numero de la factura requerida.
Solución:
c:/powerbuilder/practicas/capo05/aplica_20/aplica_20.pbl
2. Crear un nuevo reporte, para esto dar un clic en el menú File New caso contrario clic en el botón y elegir
de la ficha Object el tipo Gruop.
3. Luego elija el origen de datos para la creación para la creación nuevo reporte. Para este caso utilizaremos el
tipo SQL Select
4. Luego seleccione las tablas customers, orders, orderd, products y shippers, Posteriormente selecciones los
siguientes campos:
customers.companyname
customers.address
orders.orderid
orders.orderdate
orders.shippedate
orderd.quantity
shippers.companyname
products.productname
5. luego cree 1 argumento de recuperación xpedido tal como se muestra en el siguiente grafico:
6. En la sección where deberá igualar el campo orders.orderid igualarlo al argumento :expedido, tal como se
muestra en el grafico:
POWER BUILDE NIVEL II_______________________________________________________________________
7. Luego deberá elegir los campos por los que el reporte se agrupara:
Luego, en el pintor del deporte usted tendrá que cambiar las etiquetas y los campos que aparezcan de manera que
el reporte sea similar a la pantalla que se muestra a continuación:
APLICA 21
Desarrrollar un reporte que muestre mediante un grafico las ventanas de todas las categorías.
Solución:
c:/powerbuilder/practicas/capo05/aplica_21/aplica_21.pbl
2. Crear un nuevo reporte, para esto dar un clic en el menú File New. Caso contrario clic en el botón y elegir
de la ficha Object del tipo Graph.
3. Luego elija el origen de datos para la creación nuevo reporte. Para este caso utilizaremos el tipo SQL Select.
4. Luego seleccione las tablas orders, products y categories, Posteriormente selecciones los siguientes
campos:
orderd.orderid
orderd.productid
orderd.unitprice
orderd.quantity
products.productname
products.productname
products.categoryid
categories.categoryid
___________________________________________________________CAPITULO 5-Reportes -InforMaker
categories.categoryname
5. Cierre la ventana, y a continuación se mostrará el dialogo para definir la data del gráfico. Alli deberá
cambiar las opciones de la siguiente forma:
ORIGEN VALOR
Category Categories_categoryname
Values Sum(orderid_unitprice for graph)
Series Categories_categoryname
6. Al definir el estilo de grafico elegir el tipo Solid Column. Para el titulo digite “Categorías”:
Luego, en el pintor del reporte usted tendrá que cambiar las etiquetas y los campos que aparezcan de manera que
el reporte sea similar al grafico que se muestra a continuación:
Para ver un ejemplo, haga clic en el botón Preview. El reporte mostrara los siguientes datos:
APLICA 22
Desarrollar un reporte que muestre las cantidades de ventas por categorías. El origen de datos para este
reporte debe ser un procedimiento almacenado.
Solución:
c:/powerbuilder/practicas/capo05/aplica_22/aplica_22.pbl
3. Crear un nuevo reporte, para esto dar un clic en el menú File New caso contrario clic en el botón y elegir la
ficha Object del tipo tabular.
4. Luego elija el origen de datos para la creación nuevo reporte. Para este caso utilizaremos el tipo Stored
Procedure
5. Luego seleccione el procedimiento almacenado ventas_categoria, luego clic en el botón Next hasta Finalizar:
Para ver un ejemplo, haga clic en el botón Preview. El reporte mostrar los siguientes datos:
Un archivo PSR contiene una definición del reporte (origen y objeto( así como la data contenida en el
reporte cuando el archivo PSR fue creado porque su data se guarda con él un archivo PSR no requiere una conexión
database pero su data es estática y no se puede refrescar.
A continuación, se mostrará el cuadro de diálogo para guardar. Para el ejemplo ,digite el mismo nombre del
reporte.
___________________________________________________________CAPITULO 5-Reportes -InforMaker
Cuando usted elija esta opción de menú ,usted podrá dirigir powerbuilder para guardarlo( origen y objeto)
y la data dentro de la extensión PSR antes de que pueda utilizar un archivo PSR desde el explorador u otra
aplicación debe registrar el archivo con los reportes powersoft dentro de la base de registros de Windows red
punto data localizado en el directorio de Windows.
Para abrir el deporte desde Explorer, primero ascie si el archivo PSR con el powersoft
(PM050.EXE)seleccionando ver ,opciones del menú del Explorador y la ficha tipos de archivo
Otra manera de mandar los datos que se muestran a un archivo de texto , es haciendo clic en el menú
select file > save row as localizado debajo de la opción Print Preview en el pintor del reporte.
Luego se le mostrará el cuadro de diálogo guardar en donde usted quiera almacenarlo. Asígnele un nombre
y haga clic en el botón guardar
APLICA 23
Crear una aplicación que permita usar los reportes anteriormente creados punto para la conexión utilizar la
interfaz OLE DB.
Nota: debe añadir las libretas aplica_17 aplica_18 aplica_19 aplica_20 aplica_21 aplica_22 para hacer referencia
a los data Windows creados en ello.
Solución:
c:/powerbuilder/practicas/capo05/aplica_23/aplica_23.pbl
MENÚ REPORTES
Items:
Menú nombre
- m_-
&categorías m_categorias
POWER BUILDE NIVEL II_______________________________________________________________________
- m_-1
&Salir m_salir
MENU VENTANA
Items_:
Menú nombre
&layer m_layer
&cascade m_cascade
Guarde el menú con el nombre de m_principal. Al terminar de crear el menú debe tener una apariencia
similar a esta:
3. Luego deberá crear la ventana principal de la aplicación que se mostrará como mdi. A esta ventana
guardara con el nombre de w_main
4. Posteriormente deberá crear un datawindow del tipo Grid con los campos customerID, companyname
country y Phone de la tabla customers de la base de datos Northwind grave el objeto como d_clientes.
5. Cree un datawindow del tipo grid con el campo country de la tabla costumers de la base de datos NortWind
grave el objeto como d_países
6. Cree un datawindow del tipo grid con los campos orderid, requiredate y shippedate de la tabla bordes de
la base de datos northwind luego cree un argumento de recuperación llamado xcliente e igualalo al campo
orders.costumerid en la cláusula where, tal y como se muestra a continuación
10. Crear la ventana principal. A este objeto, deberá cambiar las siguientes propiedad:
Propiedad Valor
MenuName m_principal
Title Reportes
WindowType mdi!
WindowState maximized!
POWER BUILDE NIVEL II_______________________________________________________________________
Aplicación.
SQLCA.Logir = “sa”
SQLCA.AutoCommit = False
Coneect;
Messagebox(‘’Erroe’,’Error de Conexion’+&String(SQLca.SQLCode)+SQLca.SQLErrText)
Return
Else
Open(w_main)
END IF
Ahora proceda abrir el objeto m_principal e ingrese el siguiente código en los respectivos ítems de
menú.
Opensheet(w_visualizar,w_main,2,original!)
w_visualizar.dw_reporte.dataObject : "d_categorias"
w_visualizar.dw_reporte.SetTransObject(SQLca)
w_visualizar.dw_reporte.Retrieve()
w_visualizar.dw_reporte.object.datawindow.print.preview : "Yes"
w_main.arrangesheets(Cascade!)
W_main.arrangesheets(lconsl)
Ahora proceda abrir la ventana w_paises e ingrese el siguiente código en los respectivos eventos y objetos:
dw_paises.Retrieve
Title : "Clientes por país"
w_visualizar ventana_clientes
opensheetwithparm(ventana_clientes,dw_paises.getitemstring &
(dw_paises.GetRow(), "Country"),w_main,2,original!)
ventana_clientes.dw_reporte.dataObject : "clientes_pais"
ventana_clientes.dw_reporte.settransobject(SQLca)
ventana_clientes.dw_reporte.retrieve(dw_paises.getitemstring(
dw_paises.GetRow(), "Country"))
ventana_clientes.title "Clientes por país &
+ dw_paises.getítemstring( dw_paises.GetRow(), "Country")
ventana _ clientes.dw_reporte.object.datawindow.print.preview = "Yes'
Ahora proceda abrir la ventana w_pedidos e ingrese el siguiente código en los respectivos eventos y objetos:
Else
Enf if
Dw_pedidos.Retrieve(Codigo)
ventana.dw_reporte.Setttransobject(sqlca)
ventana.dw_reporte.retrieve &(dw_pedidos.gettitemnumber(dw_pedidos.getrow(),”orderid”))
ventana.dw_reporte.object.datawindow.print.preview : "Yes"
Ahora proceda abrir la ventana w_visualizar e ingrese el siguiente código en los respectivos eventos y objetos:
cb_siguiente.Enabled : True
dw_reporte.X : O
dw_reporte.Y : O
int I
long job
job : PrintOpen( )
PrintDataWindow(job. dw_reporte)
PrintClose(job)
POWER BUILDE NIVEL II_______________________________________________________________________
cb_anterior.Enabled = True
Al ejecutar la aplicación, pruebe cualquiera de las opciones de menú. Este es un ejemplo de la opción
Clientes por país:
Este es un ejemplo de la opción Detalles de pedidos. Aquí seleccione un cliente y la mostrara todas sus ordenes.
Para ver sus detalles, haga click en el botón ver detalles de pedidos:
Nota: Para construir los datawindow utilizando la tabla Order details contiene un espacio en blanco la solución
planteada fue crear una tabla llamada Orderd. De otra forma en el Painter del datawindow seleccionar la tabla
order details, seleccionar los campos, Ejecute la secuencia Design, Convert To Sintax y modificque de la siguiente
manera: remplace order details con [order details]