372s en visual basic 2005.doc) - docentes.uni.edu.ni de datos/menus_en... · para que funcione lo...
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:
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:
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):
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:
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).
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:
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:
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.