Reportes VB Visual Studio 2005

55
Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005 Departamento de Arquitectura y Sistemas de Aplicaciones 1 Curso de SQL Server 2005 Curso de SQL Server 2005 Curso de SQL Server 2005 Curso de SQL Server 2005 Developer Developer Developer Developer y .N .N .N .Net et et et 2005. 2005. 2005. 2005. Práctica No. Práctica No. Práctica No. Práctica No.1. Escribiendo y Programando Instrucciones para Crystal Reports. E E L L L A A A B B B O O O R R R A A A D D D O O O P P O O O R R R : : Ing. Giovanni Sáenz. F F E E E C C C H H H A A A D D D E E E E E L L L A A A B B B O O O R R R A A A C C C I I I Ó Ó Ó N N N : 5 de Julio del 2008. C C O O L L L A A A B B B O O O R R R A A A C C I I I Ó Ó Ó N N Y Y Y V V E E R R S S S I I I Ó Ó N N N O OR R I I I G G I I I N N N A A A L L L : : Ing. Marvin Lira Chamorro y Ing. Glenda Barrios O OB B B J J J E E E T T T I I I V V V O O O D D D E E E L L L A A A P P R R Á Á C C T T I I C C A A : : 1.- Desarrollar habilidades para la Programación de Reportes en Visual Studio .NET 2005. 2.- Analizar y especificar los pasos necesarios para el Desarrollo de Aplicaciones .NET donde se debe utiliza Crystal Reports. 3.- Definir los pasos a seguir y las reglas que se establecen para el llamado de todos los objetos y controles que se requieren para trabajar con Cristal Reports. Tabla de Contenido: Tabla de Contenido:_______________________________________________________ 1 Para Trabajar con Reportes ________________________________________________ 2 Primera Práctica _________________________________________________________ 2 Segunda Parte __________________________________________________________ 36 Utilizando Parámetros (ahora con la tabla Territorio) _____________________________36 Tareas a Realizar: _______________________________________________________ 55 Bibliografía: ____________________________________________________________ 55

Transcript of Reportes VB Visual Studio 2005

Page 1: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 1

Curso de SQL Server 2005Curso de SQL Server 2005Curso de SQL Server 2005Curso de SQL Server 2005 Developer Developer Developer Developer yyyy .N.N.N.Netetetet 2005. 2005. 2005. 2005.

Práctica No.Práctica No.Práctica No.Práctica No.1111. Escribiendo y Programando Instrucciones para Crystal Reports.

EEELLLAAABBBOOORRRAAADDDOOO PPPOOORRR::: Ing. Giovanni Sáenz.

FFFEEECCCHHHAAA DDDEEE EEELLLAAABBBOOORRRAAACCCIIIÓÓÓNNN : 5 de Julio del 2008.

CCCOOOLLLAAABBBOOORRRAAACCCIIIÓÓÓNNN YYY VVVEEERRRSSSIIIÓÓÓNNN OOORRRIIIGGGIIINNNAAALLL ::: Ing. Marvin Lira Chamorro y Ing. Glenda Barrios

OOOBBBJJJEEETTTIIIVVVOOO DDDEEE LLLAAA PPPRRRÁÁÁCCCTTTIIICCCAAA:::

1.- Desarrollar habilidades para la Programación de Reportes en Visual Studio .NET 2005.

2.- Analizar y especificar los pasos necesarios para el Desarrollo de Aplicaciones .NET donde se debe utiliza Crystal Reports.

3.- Definir los pasos a seguir y las reglas que se establecen para el llamado de todos los objetos y controles que se requieren para trabajar con Cristal Reports.

Tabla de Contenido:

Tabla de Contenido:_______________________________________________________ 1

Para Trabajar con Reportes ________________________________________________ 2

Primera Práctica _________________________________________________________ 2

Segunda Parte __________________________________________________________ 36

Utilizando Parámetros (ahora con la tabla Territorio) _____________________________36

Tareas a Realizar: _______________________________________________________ 55

Bibliografía: ____________________________________________________________ 55

Page 2: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 2

Para Trabajar con Reportes

Primera Práctica

1.- Trabajando al Modo Clásico (el cual ya no se recomienda) o Rustico en .NET 2005, abra un nuevo proyecto, el cual incorporara los siguientes elementos:

Fijar el Directorio C:\Curso .NET 2005\Crystal Reports\Reportes.

Nombrar desde el inicio al formulario en la propiedad Name: FrmPrincipal que aparecerá, esto hacerlo desde el arranque.

Page 3: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 3

Es decir, que usted vera lo siguiente:

Page 4: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 4

2.- Ahora debe agregar varios objetos los cuales son:

Objeto Propiedades Observaciones Panel Name: PanelReportes Un único y al centro del

Formulario. Buscar en

Contenedores.

Formulario Name: FrmPrincipal

Text: Formulario de

Reportes:

Recuerde siempre poner nombre a

los Objetos, esta es una buena

práctica, y más cuando esta

programando la capa de negocios.

Name: CmdCategoria. Boton1

Text: Reporte de

Categoria.

Name: CmdTerritorios. Boton2

Text: Reporte de

Territorio.

Name:CmdCerrar Boton3

Text: Cerrar.

De tal forma que se pueda Observar lo siguiente:

Page 5: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 5

3.- Hay que agregarle funcionalidad a los Botones, en tal caso inicie con el Botón Cerrar:

Public Class FrmPrincipal Private Sub CmdCerrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdCerrar.Click Try 'Cerrar el Formulario Me.Close() Catch ex As Exception 'En caso de existir Error, presentar el porque se genero. MsgBox("Ocurrio un Error en CmdCerrar_Click" & ex.Message,

MsgBoxStyle.Critical, "Ejemplo1") End Try End Sub End Class

En el recuadro interno, se puede observar, que se ha considerado los posibles errores,

mediante la utilización de Try… Catch.

4.- Se inicia con la programación del Reporte, en este caso, es recomendable para el reporte, definir que es lo que se ira a traer y se presentara en el reporte. En el primer

botón traeremos la Tabla Cateries de la base de datos NorthWind. Para lograr esto, es

necesario traer los datos, los pasos son los siguientes:

I.- Crystal Reports por si solo no puede trabajar con Datos, para lograr que tenga o recupere datos en la versión Studio .NET 2005 se necesita de la creación del

DataSet, en este caso tiene que ser tipados conectados, es decir, que tiene que ser mediante una DataSet la conexión a la base de datos.

II.- Crear el reporte y asociarle el DataSet creado, basado en el DataSet se debe crear el Reporte.

III.- Desde el evento Click del Botón, que al hacer click debe llamar al reporte señalado, el cual enviara la información a pantalla. Es aquí donde entra en acción

el visor de tipo Crystal Reports (se debe generar la salida).

IV.- Debe existir un extremo cuidado, Crystal Reports necesita de un visor para mandar el resultado, en este sentido, se debe agregar código para el resultado

presentado en pantalla (esto es lo que se conoce, como agregar código para

mandar a pintar los datos).

Page 6: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 6

En base a los detalles antes expuesto, proceda a crear un DataSet con el nombre de

DataSetCategoria:

4.1.- Seleccione el proyecto, hacer click derecho y agregar nuevo elemento, ver grafica siguiente:

Seleccione el Conjunto de Datos, recuerde que este es de extensión XSD.

Page 7: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 7

Recuerde poner el nombre que se ha especificado.

4.2.- Habilitar el Server Explorar, o sea, el servidor de Exploradores:

Page 8: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 8

Agregar una Conexión:

Debe colocarse sobre la conexión de datos, y sobre este hacer click derecho, en este

instante le presentara la siguiente ventana:

Se abre una ventana donde usted tiene que seleccionar la Base de Datos, es aquí donde

seleccionara NorthWind, como lo puede ver en este gráfico.

Page 9: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 9

Una Vez que este correcto todo, presionar el Botón Aceptar.

Page 10: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 10

Si la Conexión es satisfactoria, usted podrá observar en el explorador de servidores, la

conexión con la Base de Datos, es aquí donde debe seleccionar la Tabla Categories.

4.3.- Arrastre la tabla Categories al Explorador de Servidores, para que este pueda generar el DataSet de esa tabla, ver gráfico:

Page 11: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 11

Si tiene dudas sobre la información que se ha generado, entonces haga Click derecho sobre

el Table y se presentara la opción de una vista Previa:

Page 12: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 12

Hacer Click en Vista Previa de Datos, se generara la siguiente ventana:

Le presenta la ventana con los datos llenados en el TableAdapter:

Page 13: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 13

Presione el Botón Vista Previa, y simplemente vea los resultados:

Observe con detalle la información con la cual esta llenada en el Table y que esta manejando el TableAdapter.

Page 14: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 14

Este Objeto es conocido como el Table

en el DataSet.

Esta parte es la encargada de la Conexión, conocido como el TableAdapter

en el DataSet.

Page 15: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 15

En este momento ya tiene el Punto I, ahora debe realizar el Punto II:

DataSet Lleno, punto I cumplido.

Page 16: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 16

4.4.- Ha llegado el Momento de Agregar el Reporte de Crystal Reports, para esto es necesario realizar los siguientes pasos:

a.- Debe hacer Click derecho sobre el Proyecto Reportes, nuevamente se generara una ventana donde usted debe agregar un nuevo elemento:

Ahora debe seleccionar un Objeto de tipo Plantilla de Crystal Reports, como el que se

muestra a continuación:

Page 17: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 17

Usted debe de cambiar de nombre a esa Plantilla, en este caso será con el nombre de

rptCategorias.rpt:

De tal forma que ya se incluya el nombre correcto y este sea visible desde el inicio.

Page 18: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 18

4.5.- A usted le aparecerá la siguiente ventana:

Seleccione de tipo Estándar, y siga los siguientes pasos:

Page 19: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 19

Abrir la opción de tipo de datos del proyecto, entonces le aparece la ventana de la siguiente

manera:

Podrá ver el detalle del DataSet que puede conectar al Reporte, ver siguiente página:

Page 20: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 20

Seleccione la tabla e incorpore al lado derecho (únicamente):

Page 21: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 21

Presione siguiente, para poder tener acceso a los campos:

Page 22: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 22

Asegúrese de elegir todos los campos que desea mostrar en pantalla, al final seleccione

siguiente.

Page 23: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 23

Le aparecerá el agrupamiento, en este caso no seleccione nada, solo presione el botón

siguiente:

Page 24: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 24

Tampoco seleccione Filtro, simplemente solo presione el botón siguiente:

Page 25: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 25

Seleccione el Cuadro Marrón / Verde Azulado, y presionar Finalizar.

Page 26: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 26

En este instante, podrá observar tanto el diseño del reporte, así como detalles de los

campos. Se recomienda, que para ir interactuando, agregar un texto al formulario, tal como

Incluir de encabezado el Listado de Categorías. Esto lo puedo realizar incluyendo o arrastrando un objeto de tipo texto, al igual como trabaja el Label en Visual Studio .NET

2005.

Page 27: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 27

4.6.- Ahora debe Agregar el Visor, esto es posible si se incluye un nuevo formulario y sobre el agregar el visor para presentar el Reporte. Entonces, proceda a agregar un nuevo formulario, a este le pondrá el nombre de FrmVisorReporte.

Ver siguiente página.

Page 28: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 28

De tal forma, que ahora su proyecto esta constituido de la siguiente manera:

Para incluir el Visor, tiene que buscar en el cuadro de herramientas los Objetos que son de tipo Crystal Reports, el objeto CrystalReportViewer tiene que incorporarlo y arrastrarlo dentro del formulario antes definido como FrmVisorReporte.

Page 29: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 29

Al arrastrar el CrystalReportViewer se presenta el siguiente cambio en el Formulario:

Ahora bien, para que el reporte tenga un orden y sea clara la información que se presentara,

se recomienda hacer ajuste a las siguientes propiedades tanto del Visor como del

Formulario:

Page 30: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 30

Objeto Propiedades Observaciones

Name: FrmVisorReporte. Un único y al centro del

Formulario. Buscar en

Contenedores.

Text: Reporte de

Categorías.

Formulario

StarPosicion:

CenterScreen.

Recuerde siempre poner nombre a

los Objetos, esta es una buena

práctica, y más cuando esta

programando la capa de negocios.

Name: CR.

Dock: Fill, lleno.

CrystalReportViewer

DisplayGruopTree: False.

DisplayGruopTree: False. Es

utilizado para no mostrar la parte

izquierda del reporte.

4.7.- Este visor debe recibir como parámetro el Reporte, en este sentido se debe importar la librería (recuerde que este debe ser escrito en el espacio de nombre, el cual al final

permite acortar la escritura). Este código se hace en el FrmVisorReporte:

'Librerias que se utilizaran en el Reporte Imports CrystalDecisions.CrystalReports.Engine Public Class FrmVisorReporte 'Parametro que permite recibir el reporte a mostrar en el Visor. 'Tiene que haber una propiedad Pública de tipo ReportDocument ‘correspondiente a Crystal Reports, además de ahorrar código, podemos ‘importar librerias facilmente. Public ObjReporte As ReportDocument Private Sub FrmVisorReporte_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'Se necesita llamar al Reporte Try CR.ReportSource = ObjReporte CR.Show() Catch ex As Exception 'En caso de existir Error, presentar el porque se genero. MsgBox("Ocurrio un Error en FrmVisorReporte_Load" & ex.Message, MsgBoxStyle.Critical, "Ejemplo1") End Try End Sub End Class

Page 31: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 31

En caso de no declarar la librería, otra opción es realizar lo siguiente:

Public ObjReporte1 As CrystalDecisions.CrystalReports.Engine.ReportDocument

El cual luego tiene que ser utilizado a lo largo del formulario. Usted ahora tiene dos

opciones, y en ambas obtendrá el mismo resultado.

4.8.- Ahora se tiene que retornar al Formulario FrmPrincipal y ahí debe agregar el código correspondiente al llamado del Formulario y el Visor del Reporte, para lograr

esto, agregue el siguiente código:

a.- debe incluir las librerías antes de la clase FrmPrincipal:

'Librerias que se utilizaran en el Reporte Imports CrystalDecisions.CrystalReports.Engine Imports System.Data.SqlClient

b.- Tiene que declarar las variables que manejaran la conexión y el DataAdapter, los cuales deben ser de manera global al formulario (dentro del formulario – pruebe

usted que sucede si lo declara en un modulo o una clase):

'Parametro que permite recibir el reporte a mostrar en el Visor. Dim ObjCnn As SqlConnection Dim ObjAdapterGral As SqlDataAdapter 'Hay que inicializar las Varibles en FrmPrincipal_Load()

c.- Al momento que se cargue el formulario, debe considerar las siguientes instrucciones:

Private Sub FrmPrincipal_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Try

'Crear un procedimiento que inicialice los valores y objetos de la conexión. Me.InicializaVariables()

Catch ex As Exception 'En caso de existir Error, presentar el porque se genero. MsgBox("Ocurrio un Error en FrmPrincipal_Load" & ex.Message, MsgBoxStyle.Critical, "Ejemplo1")

End Try End Sub

Page 32: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 32

d.- El procedimiento de IniciazaVariables() entonces tendrá la siguientes instrucciones:

'Inicializacion de Variables para manejo de Datos Private Sub InicializaVariables() '----Declaracion de Variables Dim StrConexion As String Try ObjCnn = New SqlConnection ObjAdapterGral = New SqlDataAdapter '-- Objeto de Conexion StrConexion = "" ObjCnn.ConnectionString = "Data Source=LOCAL;Initial

Catalog=Northwin;User ID=sa" Catch ex As Exception 'En caso de existir Error, presentar el porque se genero.

MsgBox("Ocurrio un Error en InicializacionVariables" & ex.Message, MsgBoxStyle.Critical, "Ejemplo1")

End Try End Sub

4.9.- Se le debe agregar la funcionalidad al Botón para llamar al Reporte, entonces ese código es el siguiente:

Page 33: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 33

Private Sub CmdCategoria_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdCategoria.Click 'Se necesita llamar al Reporte Try ' llamar el reporte categoria Me.LlamarReporteCategorias() Catch ex As Exception 'En caso de existir Error, presentar el porque se genero.

MsgBox("Ocurrio un Error en FrmVisorReporte_Load" & ex.Message, MsgBoxStyle.Critical, "Ejemplo1")

End Try End Sub Como se puede observar, también se debe crear un procedimiento para presentar el

Reporte, el cual es el siguiente:

'Llamar al Reporte Categorias Private Sub LlamarReporteCategorias() Dim ObjFrmVisorRpt As FrmVisorReporte Dim ObjRepCategorias As rptCategorias Dim ObjCategorias As DataTable Dim StrSql As String

Page 34: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 34

Try ObjCategorias = New DataTable ObjFrmVisorRpt = New FrmVisorReporte ObjRepCategorias = New rptCategorias '------------- StrSql = " Select CategoryID, " & _ " CategoryName, " & _ " Description " & _ " From Categories " & _ " Order By CategoryName ASC " '------------- ObjCnn.Open() ObjAdapterGral.SelectCommand = New SqlCommand ObjAdapterGral.SelectCommand.Connection = ObjCnn ObjAdapterGral.SelectCommand.CommandText = StrSql ObjAdapterGral.Fill(ObjCategorias) '------ ObjRepCategorias.SetDataSource(ObjCategorias) ObjFrmVisorRpt.ObjReporte = ObjRepCategorias ObjFrmVisorRpt.ShowDialog() ObjCnn.Close() Catch ex As Exception 'En caso de existir Error, presentar el porque se genero. MsgBox("Ocurrio un Error en LlamarReporteCategorias" & ex.Message, MsgBoxStyle.Critical, "Ejemplo1") Finally 'ObjFrmVisorRpt.Dispose() 'ObjRepCategorias.Dispose() ObjFrmVisorRpt = Nothing ObjRepCategorias = Nothing End Try End Sub Si usted ejecuta las instrucciones entonces obtendrá el siguiente resultado:

Page 35: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 35

Le aparecera el Formulario Principal:

Al hacer click en el Botón Reporte Categoría:

Page 36: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 36

Segunda Parte

Utilizando Parámetros (ahora con la tabla Territorio)

En este instante se desea presentar los territorios de una determinada región, ya que estos están divididos en básicamente cuatro partes, las cuales son:

Hay que crear un DataSet de Territorios, esto es lo primero a realizar, y se tiene que recordar que en este se pegara la Tabla de Regiones (entonces, se puede deducir, que será con el nombre de DataSetRegiones). Se requiere Filtrar por el parámetro especificado, y los pasos son los siguientes: 1.- Agregar un nuevo formulario, el cual será: FrmRepTerritorios.Vb.

Page 37: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 37

El formulario tiene que presentar la siguiente estructura:

Los detalles son los siguientes:

Page 38: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 38

Objeto Propiedades Observaciones

Name: GroupParametros GroupBox

Text: Parámetros.

Este brinda una mejor aparecía al

formulario.

Name:

frmParamRepTerritorio Formulario

Text: Formulario Con

Parámetros.

Recuerde siempre poner nombre a

los Objetos, esta es una buena

práctica, y más cuando esta

programando la capa de negocios.

Name: CmdAceptar. Boton1

Text: Aceptar.

Name: CmdCancelar. Boton2

Text: Cancelar.

Name:CboRegion. ComboBox

DropDownStyle:

DropDownList.

En el caso del valor

DropDownList, este se utiliza

para no permitir que exista

Edición y que los únicos valores

validos, los tenga la lista.

Para encontrar al Objeto GroupBox, buscar en contenedores:

Y para el resto de controles, puede ser localizados en:

Objetos Comunes, los

cuales deben ser incluidos

en el Formulario.

Page 39: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 39

2.- Ahora se creara el nuevo Reporte, este será el de los Territorios. Recordar, que debe estar diseñado en base a un DataSet Tipado.

Que el DataSet sea tipado, esto indica que ya existe una estructura, se puede conocer los campos y datos que existen. En comparación con los datos que no están de esta manera, no tienen estructura definida, y en el momento que se ejecuta, es que .NET se da cuenta de la información que puede cargar dentro del DataSet, y en dependencia de la instrucción SQL que se ejecute en el momento de la corrida. Desde el momento en que se diseña el DataSet, ya se conoce la estructura.

Nuevamente agregar un Conjunto de Datos al Proyecto, en este caso el nombre será DataSetTerritorios.xsd:

Repita los pasos del ejemplo anterior para poder crear el DataSet con datos: a.- Tiene que ir al Explorar de Servidores. b.- Arrastre la Tabla Territories al DataSet. c.- Verifique si se logro crear el DataSet, para lograr esto, visualice el contenido o

dar vista previa (click Derecho sobre el DataSet y buscar esa opción, ejecutar y comprobar los datos).

Page 40: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 40

Después de los pasos anteriores, este es el resultado:

Si logra presentarse esta ventana en la Pantalla al seleccionar la vista previa, entonces, lo ha logrado, este es el contenido del DataSet:

Page 41: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 41

3.- A continuación se procede a Crear el Reporte, en este caso, se llamara

rptTerritorios.rpt. Cada vez que se hace este pasó, .NET pide la fuente de datos para el Reporte.

Para este ejemplo, no se hará:

a.- Ningún Filtrado. b.- Ninguna Asociación. c.- Se agregara un Titulo al Reporte: Listado de Territorios.

Page 42: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 42

Page 43: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 43

Para este caso, no es necesario pasar el RegionID de Territorio:

Como se definió, no se utilizara el agrupamiento:

Page 44: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 44

Tampoco se seleccionara ningún registro de subconjunto, así que puede proceder a

presionar siguiente sin temor:

Para presentar el Reporte, seleccionar la penúltima opción (Borde Rojo/Azul), presione

Finalizar:

Page 45: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 45

Nuevamente en pantalla, se le presentara el Reporte, el cual en este momento puede

perfectamente iniciar con los ajustes:

4.- Como el Reporte recibirá un parámetro, es necesario crear ese parámetro. Para hacer

posible esto, Crystal Reports trabajo con lo que se conoce como Parámetros Fiedls (Campos de parámetros, el cual se puede observar en la grafica de arriba en la ventana de Explorador de Campos).

Sobre el Campo de la Formula dar Click Derecho:

Estos campos se

utilizaran

Page 46: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 46

Al Dar Click Derecho, aparecerá una Ventana, la cual es:

Usted Agregara la palabra Región:

Tiene que usar el Asistente, el Crystal Reports le antepone a los parámetros @, para indicar que es un campo que no proviene del DataSet de la Base de Datos, sabe que es un

campo de tipo parámetro.

Posteriormente, se encuentra con el parámetro creado:

Page 47: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 47

Usted solo presionara Guardar y cerrar, puede observar que en el campo de la Formula se

ha creado Región.

Con esto Finaliza la parte del reporte, ahora regrese al formulario Principal, en este caso es

el FrmPrincipal.

Page 48: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 48

5.- En este preciso momento, el proyecto tiene los siguientes Objetos:

Ahora se tiene que programar la funcionalidad del Botón de Territorios:

5.1.- Entonces debe agregar el siguiente código:

Page 49: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 49

Private Sub cmdTerritorios_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdTerritorios.Click Try LlamaTerritorios() Catch ex As Exception MsgBox("Ocurrio un error en cmdOrdenes_Click " & ex.Message,

MsgBoxStyle.Critical, "EJ2") End Try End Sub

5.2.- Debe Crear el Procedimiento LlamaTerritorios:

Private Sub LlamaTerritorios() '-- Declaracion de Variables Dim ObjFrmParamTerritorio As frmParamRepTerritorio Try ObjFrmParamTerritorio = New frmParamRepTerritorio ObjFrmParamTerritorio.ShowDialog() Catch ex As Exception MsgBox("Ocurrio un error en LlamaTerritorios " & ex.Message, MsgBoxStyle.Critical, "EJ2") Finally ObjFrmParamTerritorio.Dispose() ObjFrmParamTerritorio = Nothing End Try End Sub 5.3.- Puede notar que se ha Creado la funcionalidad para llamar al Reporte, en

este momento debe proceder a crear ese formulario con el nombre de frmParamRepTerritorio:

5.3.1.- Debe Agregar las librerías antes del nombre de la Clase FrmParameRepTerritorio, igual que el ejemplo1:

Imports System.Data.SqlClient Imports CrystalDecisions.CrystalReports.Engine

Page 50: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 50

5.3.2.- Debe incluir las variables y Objetos que manejaran las conexiones de la Base de Datos:

'-- Declaracion de Variables Dim ObjConexion As SqlConnection Dim ObjAdapterGral As SqlDataAdapter Dim ObjRegion As DataTable Dim ObjTerritorio As DataTable

5.3.3.- Funcionalidad al cerrar el Formulario:

Private Sub CmdCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdCancelar.Click Try Me.Close() Catch ex As Exception MsgBox("Ocurrio un error en cmdCancelar_Click " &

ex.Message, MsgBoxStyle.Critical, "E2") End Try

End Sub

5.3.4.- La Funcionalidad en Caso de Presionar el Botón Aceptar:

Private Sub CmdAceptar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdCancelar.Click

Try Me. LLamaReporteTerritorio() Catch ex As Exception

MsgBox("Ocurrio un error en cmdCancelar_Click " & ex.Message, MsgBoxStyle.Critical, "E2")

End Try

End Sub

5.3.5.- Programar al Momento que se cargue el Formulario

frmParamRepTerritorio_Load:

Page 51: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 51

Private Sub frmParamRepTerritorio_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try InicializaVariables() LlenaRegion() Catch ex As Exception

MsgBox("Ocurrio un error en frmParamRepTerritorio_Load " & ex.Message, MsgBoxStyle.Critical, "E2")

End Try End Sub

5.3.5.- La funcionalidad del procedimiento de InicializaVariables:

Private Sub InicializaVariables() '-- Declaracion de Variables Dim StrConn As String Try '------- ObjConexion = New SqlConnection ObjAdapterGral = New SqlDataAdapter ObjRegion = New DataTable ObjTerritorio = New DataTable '------- StrConn = "Data Source=LOCAL;Initial

Catalog=Northwin;User ID=sa" ObjConexion.ConnectionString = StrConn Catch ex As Exception MsgBox("Ocurrio un error en InicializaVariables " &

ex.Message, MsgBoxStyle.Critical, "EJ2") End Try End Sub

5.3.6.- El Procedimiento Llenar Región:

Private Sub LlenaRegion() '-- Declaracion de Variables Dim StrSql As String Try '-- Abrir la conexion ObjConexion.Open()

Page 52: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 52

StrSql = " Select RegionID, RegionDescription " & _ " From Region " & _ " Order By RegionDescription ASC " '------ ObjAdapterGral.SelectCommand = New

SqlClient.SqlCommand ObjAdapterGral.SelectCommand.Connection = ObjConexion ObjAdapterGral.SelectCommand.CommandText = StrSql ObjAdapterGral.Fill(ObjRegion) '-- Asignar los datos al Combo Me.cboRegion.DataSource = ObjRegion Me.cboRegion.DisplayMember = "RegionDescription" Me.cboRegion.ValueMember = "RegionID" '-- Cerrar la conexion ObjConexion.Close() Catch ex As Exception MsgBox("Ocurrio un error en LlenaRegion " & ex.Message,

MsgBoxStyle.Critical, "E2") End Try

End Sub

5.3.7.- Falta completar el Visor de Reportes, esto se hace con el Procedimiento LLamaReporteTerritorio:

Private Sub LLamaReporteTerritorio() '-- Declaracion de Variables Dim ObjFrmVisorRpt As frmVisorReportes Dim objRepTerritorios As rptTerritorios Dim StrSql As String Try ObjFrmVisorRpt = New frmVisorReportes objRepTerritorios = New rptTerritorios '------------ StrSql = " Select TerritoryID, " & _ " TerritoryDescription " & _ " From Territories " & _ " Where RegionID = " &

Me.cboRegion.SelectedValue() & _ " Order By TerritoryDescription ASC " '------------

Page 53: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 53

ObjConexion.Open() ObjAdapterGral.SelectCommand = New SqlCommand ObjAdapterGral.SelectCommand.Connection = ObjConexion ObjAdapterGral.SelectCommand.CommandText = StrSql '--- Limpiar la fuente de datos ObjTerritorio.Clear() ObjAdapterGral.Fill(ObjTerritorio) '------------ objRepTerritorios.DataDefinition.FormulaFields("Region").Text = "' Parametros del Reporte: " & Me.cboRegion.Text & " '" objRepTerritorios.SetDataSource(ObjTerritorio) ObjFrmVisorRpt.ObjReporte = objRepTerritorios ObjFrmVisorRpt.ShowDialog() ObjConexion.Close() Catch ex As Exception MsgBox("Ocurrio un error en LlamaReporteCategorias " &

ex.Message, MsgBoxStyle.Critical, "EJ1") Finally ObjFrmVisorRpt.Dispose() objRepTerritorios.Dispose() ObjFrmVisorRpt = Nothing objRepTerritorios = Nothing End Try End Sub

6.- Si todo es correcto, entonces en pantalla aparece el siguiente resultado:

Page 54: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 54

Y si presiona el Botón de Reporte de Territorio:

Si presiona el Botón Aceptar le mostrar el Reporte en base al parámetro:

Como puede observar, la misión se ha cumplido, bienvenido a Crystal Reports.

Page 55: Reportes VB Visual Studio 2005

Administradores de Bases de Datos Studio .NET 2005 Y SQL Server 2005

Departamento de Arquitectura y Sistemas de Aplicaciones 55

Tareas a Realizar:

1.- Ahora que tiene dos posibles formas de presentar Reportes, haga los ajustes a sus proyectos y presente estas opciones a su proyecto, es decir, que en base a los

procedimientos almacenados y tablas diseñadas, ir viendo como será presentado en

Menú de Opciones la parte de Reportes.

2.- Presentar una propuesta de estructura de Reportes, así como el detalle del orden en que estas serán vista, es decir, que tipo de presentación utilizara y las pantallas de captación

que tendrá su sistema.

3.- A partir de este momento, inicia la segunda ronda de presentaciones de proyectos, es decir, ahora se deben incluir:

a.- Procedimientos Almacenados (para fines prácticos y crear habilidades se definen diez procedimientos con Parámetros y cinco sin parámetros).

b.- Funciones recordar que estas pueden ser escalares o retornen tabla (Al igual que el caso anterior, es valido la cantidad, así mismo la distribución).

c.- Deben presentar cada estudiantes ocho Triggers (esto se deben programar en cada tabla, la definición y como se implemente, eso depende del grupo).

d.- Se deben Cumplir todos los incisos anteriores, al igual de la cantidad de registros y todo lo que se refiere a la Información que se debe Administrar en las Tablas.

Bibliografía:

En este momento queda pendiente, y en la semana se brindara los detalles (son

Ocho textos los que se utilizaron para esta información, más los datos de los

profesores). Mi agradecimiento, tanto a los Señores Representantes en Nicaragua de MC Graw Hill: Engel Hurtado y de la Prentice Hall Francisco Mayorquín, quienes siempre muy gustosamente me han facilitado toda la información en Libros y textos frescos, no me he olvidado de cada uno de

los títulos, sin falta el lunes los incluiré a esta lista. A todos Gracias.