372s en visual basic 2005.doc) - docentes.uni.edu.ni de datos/menus_en... · para que funcione lo...

44
1 Universidad Nacional de Ingeniería UNI - RUSB Curso de Studio .NET 2005 Uso de Menú en Visual Basic Studio .NET 2005. Implementación de Menú con Crystal Report en Studio .Net 2005. Prof. Giovanni Francisco Sáenz Araica.

Upload: lebao

Post on 29-Oct-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

1

Universidad Nacional de Ingeniería UNI - RUSB

Curso de Studio .NET 2005

Uso de Menú en Visual Basic Studio .NET 2005.

Implementación de Menú con Crystal Report en Studio .Net 2005.

Prof. Giovanni Francisco Sáenz Araica.

2

Tabla de Contenido:

Tabla de Contenido:_______________________________________________________ 2

Creación de Menús en .NET 2005 _______________________________________________4

Paso UNO ___________________________________________________________________4

Paso DOS____________________________________________________________________4

Paso TRES __________________________________________________________________5

Paso Cuatro__________________________________________________________________6

Paso Cinco___________________________________________________________________6

Reporte de Tipo Maestro Detalle – Primer Reporte_________________________________9

Paso UNO ___________________________________________________________________9

Paso DOS___________________________________________________________________10

Paso TRES _________________________________________________________________11

Paso CUATRO ______________________________________________________________13

Paso Cinco__________________________________________________________________14

Paso Seis ___________________________________________________________________16

Paso Siete___________________________________________________________________16

Paso Ocho __________________________________________________________________17

Paso Nueve _________________________________________________________________19

Paso Diez ___________________________________________________________________19

Paso Once __________________________________________________________________21

Paso Doce __________________________________________________________________21

Paso Trece__________________________________________________________________22

Paso Catorce ________________________________________________________________23

Paso Quince_________________________________________________________________23

Paso Dieciséis _______________________________________________________________24

Paso Diecisiete_______________________________________________________________25

Paso Dieciocho ______________________________________________________________26

Paso Diecinueve _____________________________________________________________27

Paso Veinte _________________________________________________________________29

Paso Veintiuno ______________________________________________________________30

3

Paso Veintidós_______________________________________________________________31

Paso Veintitrés ______________________________________________________________32

Ahora Proceda a la Programación en el Menú ____________________________________35

El primer paso ______________________________________________________________35

Paso Dos ___________________________________________________________________36

Paso Tres___________________________________________________________________37

Presentar el Reporte de Ordenes _______________________________________________38

El primer paso ______________________________________________________________38

Paso Dos ___________________________________________________________________38

Paso Tres___________________________________________________________________39

Paso Cuatro: ________________________________________________________________40

Tareas:_____________________________________________________________________43

Bibliografía: ________________________________________________________________44

4

Creación de Menús en .NET 2005

Paso UNO: Crear un nuevo proyecto en Visual Basic .NET 2005:

En este caso, seguirá sobre el proyecto desarrollado en Crystal Reports, el cual esta en la

dirección C:\Curso .NET 2005\Crystal Reports\Reportes\Reportes.

Paso DOS: Buscar en el cuadro de Herramientas el objeto

5

Paso TRES: Arrastre el MenuStrip y péguelo al Formulario que ha definido donde estará el Menú:

En la Opción de menú y barras de herramientas, busque el MenuStrip, este pegarlo al formulario que presentara el Menú.

Notara dos Detalles: a.- En la parte superior le

indicara un texto que debe ir agregando las opciones que desea presentar a lo horizontal y vertical.

b.- Contenedores de control mostrara el objeto incorporado.

6

Paso Cuatro: Asumiendo que usted a desarrollado las prácticas de Crystal Reports, y tiene este proyecto disponible, se procede a desarrollar esta práctica, encima de ese

proyecto, el cual usted lo tiene ubicado en C:\Curso .NET 2005\Crystal

Reports\Reportes\Reportes.

Ver siguiente página.

Si es correcto, entonces invoque a esa solución y proceda a realizar los siguientes pasos

para presentar el reporte de forma más adecuada:

Los detalles del Formulario

Clase u Objeto Propiedades Valor Formulario Name: FrmMenu

Text: Formulario Menú.

Windowstate: Maximizado.

MenuStrip Name: MenuNorthWind

Paso Cinco: Una vez claro el formulario de fondo, debe colocarse sobre este e ir agregando los siguientes detalles como se muestran en la figura:

5.1.- Proceda a agregar entonces la primera opción, donde se visualizaran las Tablas:

7

a.- Categorías. b.- Territorios. c.- Regiones.

5.2.- Ahora incluya la opción de Reportes, los cuales serán:

a.- Reporte de Categorías. b.- Reportes de Regiones.

Para lograr esto, primero colocarse sobre el Titulo de la Columna, y luego escribir

en la parte inferir los sub opciones del menú.

Opción Principal Tablas

SubOpciones de la opción Tablas

8

De tal forma, que usted podrá ver al final del diseño de esta opción:

Usted Continué, de tal forma que al final se le presente el formulario de la siguiente

manera:

Reportes con Crystal Reports

9

Reporte de Tipo Maestro Detalle – Primer Reporte

Para Trabajar con un Reporte de Tipo Maestro Detalle siga los siguientes pasos:

Paso UNO: Debe Incluir al proyecto un nuevo DataSet, el cual tendrá como nombre DataSetOrdenes:

Ayuda, puede usar programas adicionales o simplemente formularios

10

Paso DOS: Arrastre la Vista vwDetalleOrdenes, la cual tiene el siguiente contenido, en caso de que no tenga el archivo original (o sea el Scripts):

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[vwDetalleOrdenes]') and OBJECTPROPERTY(id, N'IsView') = 1)

drop view [dbo].[vwDetalleOrdenes] GO SET QUOTED_IDENTIFIER ON

GO SET ANSI_NULLS ON GO

CREATE VIEW dbo.vwDetalleOrdenes AS SELECT TOP 100 PERCENT dbo.[Order Details].OrderID,

dbo.Customers.CustomerID, dbo.Employees.FirstName + dbo.Employees.LastName AS Empleado, dbo.Customers.CompanyName AS NombreCompania, dbo.Orders.OrderDate, dbo.[Order

Details].ProductID, dbo.Products.ProductName, dbo.Categories.CategoryName, dbo.[Order Details].Quantity, dbo.[Order Details].UnitPrice, dbo.[Order Details].Quantity * dbo.[Order Details].UnitPrice AS CostoTotal

11

FROM dbo.[Order Details] INNER JOIN dbo.Products ON dbo.[Order Details].ProductID = dbo.Products.ProductID INNER JOIN dbo.Categories ON dbo.Products.CategoryID =

dbo.Categories.CategoryID INNER JOIN dbo.Orders ON dbo.[Order Details].OrderID = dbo.Orders.OrderID INNER JOIN dbo.Customers ON dbo.Orders.CustomerID =

dbo.Customers.CustomerID INNER JOIN dbo.Employees ON dbo.Orders.EmployeeID = dbo.Employees.EmployeeID ORDER BY dbo.[Order Details].OrderID, dbo.[Order Details].ProductID

GO SET QUOTED_IDENTIFIER OFF GO

SET ANSI_NULLS ON GO

Paso TRES: Debe de Arrastrar la vista para crear tanto el Table y el TableAdaptar del DataSetOrdenes:

Si siente inseguridad en la Conexión de los Datos, vea la vista previa, colóquese sobre el

DataSetOrdenes, click Derecho y buscar la opción:

12

Si todo es correcto, la ventana se mostrara de la siguiente forma:

13

Esto asegura que los datos se pudieron conectar de manera correcta.

Paso CUATRO: Ahora proceda a crear el Reporte, entonces a este le pondrá de nombre rptOrdenes.rpt:

14

Paso Cinco: Presione agregar, y ahora seleccione Estándar y aceptar:

15

Continúa en la siguiente página:

16

Paso Seis: Identifique el DataSet que utilizara:

Paso Siete: Defina los Datos a Presentar en el Reporte:

17

Paso Ocho: Seleccione los campos que se visualizaran en el reporte, observe con detalle, que para este caso, se han omitido algunos valores, ya que en el reporte no son

necesarios (es decir, por ejemplo el ProductID):

18

Continúa en la siguiente página:

19

Paso Nueve: para este ejemplo, se utilizara el agrupamiento, en este sentido, se utilizara el OrderID, observar los detalles en las imágenes:

Paso Diez: la sumatoria que se utilizara es la del CostoTotal, el resto se debe eliminar:

20

De tal forma que solo quede el CostoTotal, observar la gráfica:

21

Paso Once: Para este caso, no de ninguna clasificación, si usted lo desea, utilícelo después de esta configuración (es tarea asignada):

Paso Doce: No se establece para este ejemplo, el uso de diagrama, pero usted lo debe practicar posteriormente (es otra tarea asignada).

22

Paso Trece: No seleccione ningún subconjunto.

23

Paso Catorce: Muestre el estilo de Reporte Estándar (a usted le queda como tercera

tarea el probar las otras opciones):

Paso Quince: Observar el Reporte rptOrdenes, este es el formato que le presentara, el

cual debe ser ajustado y ordenado.

24

Paso Dieciséis: Muestre una vista previa del reporte, para que observe y tenga una visión de cómo se mostrara en pantalla los datos.

25

Paso Diecisiete: Recuerde el orden en que se presentaran los reporte, es momento de realizar el ajuste y la programación del primer reporte, en este caso, Reporte de Ordenes.

26

Paso Dieciocho: Ajustar el OrderID, la fecha y el Total General:

La recomendación, es hacer ajustes, para que no se vea de forma desordenada:

a.- Mandar el Campo Total que corresponde a la sumatoria total a la derecha. b.- Mandar el Campo Total que corresponde a la sumatoria de cada orden a la derecha. c.- La etiqueta que dice Total general, cambiarla por una etiqueta que exprese Total X

Orden, donde la letra sea de tipo Arial (la Fuente) y de tamaño 10.

Compra total de todas las Órdenes de Compras

Pie del Orden del ID, Total por Orden

27

Paso Diecinueve: Ajustar la suma total parcial y la suma total de todas las órdenes:

Si se observa, las líneas indican hacia adonde debe de moverse las celdas de los Totales.

Se debe de cambiar la etiqueta, fíjese en los pasos que debe realizar:

28

De tal forma, que ahora se pueda ver de la siguiente manera:

29

Paso Veinte: Incluir un separador de Secciones, en este caso se utilizara una línea:

Ahora agregue una línea, la cual se pueda utilizar para separar los datos de cada orden:

De tal forma, que ahora pueda ver todos los detalles:

30

Paso Veintiuno: Como se desea establecer un poco de más orden en el reporte se procederán ha hacer los siguientes ajustes:

De tal forma que ahora existirá un mejor orden en la información:

Eliminara

Se pasaran al encabezado

31

Paso Veintidós: Ahora al nombre de la sección de encabezado cambie a texto que

represente la información que se mostrara:

En este caso, los cambios se realizaron a las etiquetas que estaban en la sección del

encabezado de la página:

Cambios

32

Incluya el titulo del reporte, en este caso, Lista de Ordenes (tamaño 14):

Paso Veintitrés: Ahora cambie el formato de la OrderDate, fecha de la orden, siga los pasos que se muestran a continuación:

Cambios

33

Se coloca sobre el dato que desea dar formato:

Dar click derecho y sobre el buscar el tipo de dato dd/mm/año:

En este caso, asegúrese que sea el formato que se muestra en pantalla:

34

Simplemente solo presione el botón aceptar.

35

Ahora Proceda a la Programación en el Menú

Para Programar el Menú y que en este se pueda cargar las Bases de Datos, junto con los

Reportes:

El primer paso es programar las variables y objetos que controlan la conexión y muestran el visor:

Estas deben de ser declaradas a nivel de la clase FrmMenu:

Public Class FrmMenu 'Aqui deben ir las declaraciones de los Objetos. Private Sub FrmMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub End Class

Visto con el código que debe incorporarse a la clase FrmMenu: Public Class FrmMenu 'Aqui deben ir las declaraciones de los Objetos. '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() Private Sub FrmMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ‘El siguiente código que se presenta, debe incluirse aquí. End Sub End Class

36

Paso Dos: Cuando se cargue el Menú, se deben incluir el siguiente código:

Private Sub FrmMenu_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Try 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 Incluya el Método o Procedimiento de InicializaVariables, el cual se detalla a continuación: '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

37

Paso Tres: Recuerde Incluir las librerías en la parte superior de la Clase:

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

38

Presentar el Reporte de Ordenes

Para que funcione lo anterior, es necesario incluir la funcionalidad del formularios Menú,

para esto, siga la secuencia de pasos a desarrollar:

El primer paso para presentar los reportes, es colocarse sobre la opción, y hacer doble click o click sobre ella:

Paso Dos: Se procede a programar el evento al Hacer Click en la opción presentar Reporte de Ordenes (usted debe agregar el código que se muestra a continuación):

Private Sub ReporteDeCategoriasToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ReporteDeCategoriasToolStripMenuItem.Click

Try LlamaReporteOrdenes() Catch ex As Exception MsgBox("Ocurrio un error en cmdOrdenes_Click " & ex.Message, MsgBoxStyle.Critical, "EJ1") End Try

End Sub

Hacer Click en Reporte de Ordenes

39

Paso Tres: Debe incluir adicionalmente el procedimiento o método

LlamaReporteOrdenes:

Private Sub LlamaReporteOrdenes() '-- Declaracion de Variables Dim ObjFrmVisorRpt As frmVisorReportes Dim ObjRepOrdenes As rptOrdenes Dim StrSql As String Dim ObjOrdenes As DataTable Try ObjOrdenes = New DataTable ObjFrmVisorRpt = New frmVisorReportes ObjRepOrdenes = New rptOrdenes '------------

‘------------- Observe que esta instruccion es el llamado a una vista: ‘--------------

StrSql = " Select * From vwDetalleOrdenes " & _ " Order By OrderID ASC " '------------ ObjCnn.Open() ObjAdapterGral.SelectCommand = New SqlCommand ObjAdapterGral.SelectCommand.Connection = ObjCnn ObjAdapterGral.SelectCommand.CommandText = StrSql ObjAdapterGral.Fill(ObjOrdenes) '------------ ObjRepOrdenes.SetDataSource(ObjOrdenes) ObjFrmVisorRpt.ObjReporte = ObjRepOrdenes ObjFrmVisorRpt.ShowDialog() ObjCnn.Close() Catch ex As Exception MsgBox("Ocurrio un error en LlamaReporteOrdenes " & ex.Message,

MsgBoxStyle.Critical, "EJ1") Finally ObjFrmVisorRpt.Dispose() ObjRepOrdenes.Dispose() ObjOrdenes.Dispose() ObjRepOrdenes = Nothing ObjFrmVisorRpt = Nothing ObjOrdenes = Nothing

40

End Try End Sub

Paso Cuatro: Antes de Correr el programa, asegúrese de tener conexión con el servidor, en caso de no estar habilitada esta, se le presentaran problemas, y quizás no serán

las salidas que espera ver:

En este sentido, actualice la conexión, en caso de no existir ninguna habilitada. Recuerde

colocarse sobre la conexión que desea utilizar, luego click derecho y actualizar, listo:

41

Notara la diferencia, ya que podrá observar detalles, como la conexión directa u otros:

Una Vez ajustado todos los detalles, se presentara la ventana del menú de la siguiente

manera:

42

Si usted hace click sobre el Reporte de Ordenes, la cual es una suborden de Reportes, se

presentara el reporte, observe las siguiente imágenes:

Esta es la figura de la solicitud del Reporte Ordenes.

En la pantalla completa vera lo el reporte:

En la parte final, podrá observar el detalle del desglose global de todas las órdenes:

43

Observe el final de la ultima pagina en su reporte, vera estos detalles.

Tareas:

Puede observar que los otros dos reportes son de la primera actividad que se realizo con

Crystal Reports, su misión para este momento es:

a.- Incluir estos dos reportes a este menú, los cuales están el archivo de Crystal Reports parte 1, ver en la WEB.

b.- Crear dos Formularios adicionales, los cuales debe responder a las dos opciones de ayuda, tanto para el Acerca de… y Ayuda del Sistema (se puede auxiliar de cualquier

programa que diseñe el sistema de ayuda).

c.- Debe Incluir tres formularios para hacer el llamado a las tablas que se señalan en la Opción “Tablas”, en este sentido, busque en la WEB del Profesor Giovanni Sáenz, los

archivos que se utilizaron para pintar las tablas en formularios y objetos DataSet

conectados y desconectados.

Para todo lo anterior, existe mucha información en esta página, no puede existir pretexto

para no avanzar en el proyecto, hay bastantes insumos, en tal caso, proceda a realizar las

indagaciones (investigaciones, como se le llamaba antes, pero este termino es únicamente

valido cuando van a crear algo que no existe, en este caso, ya existe y en los libros de

44

cualquier autor se puede encontrar – tomen el ejemplos de los otros grupos, tal como el

4T1_Co y el 4T3_Co, ellos están programados todo sin esperar que el profesor suba la

información adicional).

Bibliografía:

I.- Departamento de Arquitectura y Sistemas de Aplicaciones, Ingeniería en Computación,

Curso .NET 2003 y SQL Server 2000 – Administradores de Bases de Datos, año 2007. Impartido por Ing. Glenda Barrios e Ing. Marvin Lira.

II.- Michael Halvorson, Aprenda ya Visual Basic .NET 2005, Mc Graw Hill – Profesional, ISBN: 970-10-5897-6.

III.- Harvey M. Deitel y Paul J. Deitel, Como Programar en C#, Pearson – Prentice Hall, segunda edicion, ISBN: 970-26-1056-7.

IV.- Forrest Houlette, Fundamentos de SQL, Mc Graw Hill, ISBN: 970-10-3895-9.

Existe información adicional, en este momento no se ha incluido, pero ustedes la conocen,

en clases les he mostrado cada uno de los libros, así como se, que ya los compraron.