CrystalReports Access ASP.net

15
DESARROLLO Y DISEÑO WEB DESARROLLO Y DISEÑO WEB CRYSTAL REPORTS – ASP.NET - ACCESS CRYSTAL REPORTS – ASP.NET - ACCESS Realizar Los Siguientes Pasos Para La Creación y Diseño De Reportes Personalizados En ASP.NET Con El Componente CRYSTAL REPORTS. Para Lograr Nuestros Objetivos De Hoy Necesitaremos Tener Nuestra Base De Datos REGISTROS Creada En Access. 1) Descargar La Base De Datos REGISTROS De Access Luego Abrir El Archivo, Ahora Procederemos A Crear Una Consulta En Vista De Diseño Con Las Siguientes Tablas (Matriculas y Especialidades), Luego Agregar Los Siguientes Campos: 2) Ahora Ejecutarlo y Obtener El Siguiente Resultado: 3) Una Vez Obtenida Los Resultados Guardarlo Con El Siguiente Nombre: Lista_Matriculas 4) Ahora Ingresar A La Aplicación De Visual Studio.Net y Crear Un Nuevo Sitio Web Llamado: CrystalReports–Asp–Access, Que Sera Guardado En La Unidad “D:”. Expositor: Mañuico Flores, Roly Developer of Windows and Web Applications Móvil: 9-8508-4014 1 E-Mail: [email protected]

Transcript of CrystalReports Access ASP.net

Page 1: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

CRYSTAL REPORTS – ASP.NET - ACCESSCRYSTAL REPORTS – ASP.NET - ACCESS

Realizar Los Siguientes Pasos Para La Creación y Diseño De Reportes Personalizados En ASP.NET Con El Componente CRYSTAL REPORTS. Para Lograr Nuestros Objetivos De Hoy Necesitaremos Tener Nuestra Base De Datos REGISTROS Creada En Access.

1) Descargar La Base De Datos REGISTROS De Access Luego Abrir El Archivo, Ahora Procederemos A Crear Una Consulta En Vista De Diseño Con Las Siguientes Tablas (Matriculas y Especialidades), Luego Agregar Los Siguientes Campos:

2) Ahora Ejecutarlo y Obtener El Siguiente Resultado:

3) Una Vez Obtenida Los Resultados Guardarlo Con El Siguiente Nombre: Lista_Matriculas

4) Ahora Ingresar A La Aplicación De Visual Studio.Net y Crear Un Nuevo Sitio Web Llamado: CrystalReports–Asp–Access, Que Sera Guardado En La Unidad “D:”.

5) Cambiar De Nombre a Nuestra Página Web: Consulta_Matriculas.Aspx,Luego Procederemos A Guardar Nuestra Base De Datos REGISTROS Dentro Del Sitio Web Creado.

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 1 E-Mail: [email protected]

Page 2: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

6) Ahora Procederemos A Realizar El Siguiente Diseño:

CONTROL PROPIEDAD VALOR CONTROL PROPIEDAD VALORDropDownList1 Name DDLESPECIALIDAD

Button2Name BTNLISTAR

DropDownList2 Name DDLSEXO Text LISTAR TODOS

Button1 Name BTNCONSULTAR Button3 Name BTNGENERARText CONSULTAR Text GENERAR REPORTE

GridView Name DGVDATOS Label1 Name LBLTOTAL

DISEÑO:

7) Ahora Procederemos A Codificar Nuestra Página De Consultas Múltiples:

Clase A Importar, Para Realizar La Conexión Con La Base De Datos OfficeAccess

Imports System.Data.OleDb

CADENAS DE CONEXIÓN PARA LA BASE DE DATOS OFFICE ACCESS VERSION 2002 - 2003

Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.mappath("Registros.Mdb") &"")

VARIABLE A NIVEL DE FORMULARIO PARA LISTAR DATOS DE ACCESS Y PARA REALIZAR CONSULTAS

Dim Listado AsString = "Select * From Lista_Matriculas"Dim C(3) AsString

PROCEDIMIENTOS A CREAR PARA GENERAR CONSULTAS Y CARGAR CONTROLES COMBOBOX

Sub Crear_Consulta(ByVal Dgv As GridView, ByVal Sql AsString, ByVal LblTo As Label)Try

Dim Da AsNew OleDbDataAdapter(Sql, Cn)Dim Ds AsNew Data.DataSet

Da.Fill(Ds, 0) Dgv.DataSource = Ds.Tables(0) Dgv.DataBind()

If Dgv.Rows.Count > 1 Then LblTo.Text = "Total De Registros Encontrados: "& Ds.Tables(0).Rows.CountElseIf Dgv.Rows.Count = 1 Then

LblTo.Text = "Solo Se Encontro 1 Registro"ElseIf Dgv.Rows.Count = 0 Then LblTo.Text = "Ningun Registro Encontrado...!"End If

Catch ex As ExceptionMsgBox(Err.Description)

End TryEnd Sub

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 2 E-Mail: [email protected]

Page 3: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

Sub CargarComboBox(ByVal Combo As DropDownList, ByVal Tabla As String _ , ByVal Columna As String, ByVal Codigo As String)Try Dim DA AsNew OleDbDataAdapter("SELECT 'E000' AS " + Codigo + ","& _

"'- Seleccione -' AS " + Columna + " "& _ "FROM " + Tabla + " UNION "& _ "(SELECT " + Codigo + "," + Columna + " "& _ "FROM " + Tabla + ")", Cn)

Dim DS AsNew Data.DataSet DA.Fill(DS, 0) Combo.DataSource = DS.Tables(0) Combo.DataTextField = Columna Combo.DataValueField = Codigo Combo.DataBind()Catch ex As Exception

MsgBox(Err.Description)End TryEnd Sub

Sub Cargar_Sexo()Try DDLSexo.Items.Add("- Seleccione -") DDLSexo.Items.Add("M") DDLSexo.Items.Add("F") DDLSexo.SelectedIndex = 0Catch ex As Exception MsgBox(Err.Description)End TryEnd Sub

CODIGO DENTRO DE LA PÁGINA WEB – EVENTO PAGE_LOAD

If Not Page.IsPostBack ThenCall CargarComboBox(DdlEspecialidad, "Especialidades", "Especialidad", "IdEspecialidad")Call Crear_Consulta(DgvDatos, Listado, LblTotal)Call Cargar_Sexo()

End If

CODIGO DENTRO DEL BOTON CONSULTAR

Try C(1) = "Select * From Lista_Matriculas Where "& _

"Especialidad='" + (DdlEspecialidad.SelectedItem.Text) + "'"

C(2) = "Select * From Lista_Matriculas Where "& _ "Sexo='" + (DDLSexo.SelectedItem.Text) + "'"

C(3) = "Select * From Lista_Matriculas Where "& _ "Especialidad='" + (DdlEspecialidad.SelectedItem.Text) + "' And "& _ "Sexo='" + (DDLSexo.SelectedItem.Text) + "'"

If DdlEspecialidad.SelectedIndex <> 0 Then Crear_Consulta(DgvDatos, C(1), LblTotal) Session("Reporte") = C(1)

End If

If DDLSexo.SelectedIndex <> 0 Then Crear_Consulta(DgvDatos, C(2), LblTotal) Session("Reporte") = C(2)

End If

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 3 E-Mail: [email protected]

Page 4: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

If DdlEspecialidad.SelectedIndex <> 0 And DDLSexo.SelectedIndex <> 0 ThenCrear_Consulta(DgvDatos, C(3), LblTotal)Session("Reporte") = C(3)

End If

If DdlEspecialidad.SelectedIndex = 0 And DDLSexo.SelectedIndex = 0 Then Session("Reporte") = ListadoEnd If

Catch ex As ExceptionMsgBox(Err.Description)

EndTry

CODIGO DENTRO DEL BOTON LISTAR TODOS

Crear_Consulta(DgvDatos, Listado, LblTotal)Session("Reporte") = Listado

DdlEspecialidad.SelectedIndex = 0 DDLSexo.SelectedIndex = 0

CODIGO DENTRO DEL BOTON GENERAR REPORTE

Response.Write("<script>window.open('Reporte_Matriculas.Aspx','Titulo',"& _ "'scrollbars=yes','status=yes','height=600', 'width=600')"& _ "</script>")

PONIENDO A PRUEBA NUESTRA PAGINA WEB DE CONSULTA DE MATRICULAS - Ahora Ejecutar (F5)Realizaremos Una Consulta De Los Alumnos Registrados En La Especialidad De Computación E Informática Del Sexo Masculino

Nota:

El Boton Generar Reporte, Por Ahora No Muestra Ningun Reporte Por Consulta Ejecutada, Ahora Es Cuando Nosotros Trabajaremos con El Componente De CrystalReports De Vb.Net.

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 4 E-Mail: [email protected]

El Que Sepas Demasiado No Te Hace El Mejor...

Si No El Compartir Lo Que Sabes Te Hace Ser El Mejor...

Page 5: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

CREANDO LA PAGINA WEB PARA MOSTRAR LOS REPORTES POR CONSULTA

1) Agregar Una Nueva Página Web y Darle De Nombre: Reporte_Matriculas.Aspx

2) Ahora Realizar El Siguiente Diseño En Una Tabla De 2 FilasPor 1 Columna (2 X 1):

CONTROL PROPIEDAD VALORCrystalReportViewer Name CRVMATRICULAS

3) Ahora Agregaremos El Componente CRYSTALREPORTS, Ir AlMenú Sitio Web – Agregar Nuevo Elemento o CTRL + SHIFT + A, Luego Seleccionar: CrystalReports

4) En La Siguiente Ventana Aceptar El Contrato De Licencia Antes De Trabajar Con El CRYSTALREPORT.

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 5 E-Mail: [email protected]

Page 6: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

5) Ahora Elegiremos El Tipo De Reporte A Crear, Nosotros Utilizaremos El Asistente Para Informes y El Tipo De Asistente Estándar.

6) Ahora Desplegaremos La carpeta “Crear Nueva Conexión” Y Luego Desplegar La Carpeta “Access/Excel(DAO)”, El Cual Nos Permitirá Poder Ubicar Nuestra Base De Datos De Access.

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 6 E-Mail: [email protected]

Page 7: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

7) Notaremos Que La Conexión Con La Base De Datos Fue Un Éxito, Ahora Procederemos A Desplegar La Tablas Y Vistas De La Base De Datos Registros.

Seleccionaremos Nuestra Vista (Lista_Matriculas) Creada en Access y Pasarlo A La Otra Lista De Tablas Seleccionadas Por La Cual Se Creara Nuestro Reporte. Luego Presionar Botón Siguiente Para Continuar Con El Asistente.

8) Ahora Desplegar La Vista Lista_Matriculas y Se Mostraran Todos Sus Campos, Ahora Pasar Todos Sus Campos A La Lista De Campos A Mostrar.

Presionar Botón Siguiente Para Continuar Con El Asistente De Creación De Informes.

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 7 E-Mail: [email protected]

Page 8: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

9) En La Siguiente Ventana No Se Realizara Ningún Agrupamiento De Datos Simplemente Clic En El Botón Siguiente.

10) A continuación Nos Pide Un Campo De Filtro Para Realizar Alguna Consulta Interna En El Reporte, En Este Caso Es Opcional, Nosotros No Asignaremos Ningún Campo De Filtro Ya Que Tenemos Una Pagina Web Que Realizara Las Consultas Múltiples. Clic En El Botón Siguiente.

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 8 E-Mail: [email protected]

Page 9: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

11) Finalmente Llegamos A La Ventana Donde Aplicaremos El Estilo Al Reporte Creado, Seleccionaremos El Estilo: Borde Rojo/Azul,Clic En El Botón Finalizar.

12) Ahora Se Mostrara Un Diseño De Informe Muy Parecido A Los Informes En Vista De Diseño De Access, Modificar El Informe De Tal Manera Que Se Muestre De La Siguiente Manera:

CUADRO DE HERRAMIENTAS EXPLORADOR DE CAMPOS

BARRA DE FORMATO:

VISTA DE DISEÑO

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 9 E-Mail: [email protected]

Page 10: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

VISTA PREVIA DEL INFORME PRINCIPAL

Ahora Volver A La Vista De Diseño y Cerrar El CrystalReports Creado.

13) Ahora Procederemos a Enlazar Nuestra Objeto CrystalReports (CrMatriculas.Rpt) Con El Control Que Los Mostrara En La Página Web (CrystalReportViewer)

Ir Al Menú Sitio Web – Agregar Nuevo Elemento o Las Teclas CTRL + SHIFT + A, y Seleccionar El Objeto Clase, Darle De Nombre: CrMatriculas.vb, Luego Botón Agregar.

14) Ahora Aceptar El Mensaje De Confinación, El Cual Nos Informa Que Una Clase No Se Puede Crear Como Un Objeto Cualquiera, Por Que Es Un Tipo De Archivo Especial De Código Fuente.

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 10 E-Mail: [email protected]

Page 11: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

15) Ahora Modificaremos El Archivo De Clase Con Los Siguientes Scripts.

16) Finalmente Pasaremos A La Etapa De Codificación De Nuestra Página Web: Reporte_Matriculas.Aspx.

Clases A Importar, Para Realizar La Conexión Con La Base De Datos OfficeAccess y Para Trabajar Con Un Componente De CrystalReports

Imports SystemImports System.DataImports System.Data.OleDbImports System.ComponentModelImports CrystalDecisions.SharedImports CrystalDecisions.ReportSourceImports CrystalDecisions.CrystalReports.Engine

CADENAS DE CONEXIÓN PARA LA BASE DE DATOS OFFICE ACCESS VERSION 2002 - 2003

Dim Cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& Server.mappath("Registros.Mdb") &"")

VARIABLE A NIVEL DE FORMULARIO PARA RECUPERAR LOS DATOS DEL OBJETO CRYSTALREPORTS

Dim Cr As CrMatriculas = New CrMatriculas

PROCEDIMIENTOA CREAR PARA GENERAR REPORTE

Sub Generar_Reporte()Try

Dim Reporte AsString

If Session("Reporte") <>"" Then Reporte = Session("Reporte")

Else Reporte = "Select * From Lista_Matriculas"

End If

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 11 E-Mail: [email protected]

Page 12: CrystalReports Access ASP.net

DESARROLLO Y DISEÑO WEBDESARROLLO Y DISEÑO WEB

Dim Da AsNew OleDbDataAdapter(Reporte, Cn)Dim DS AsNew Data.DataSetDim commandbuilder = New OleDbCommandBuilder(Da)

Da.MissingSchemaAction = MissingSchemaAction.AddWithKey

Da.Fill(DS, 0) DS.Merge(DS.Tables(0), False, System.Data.MissingSchemaAction.Ignore)

Cr.SetDataSource(DS.Tables(0))

CrvMatriculas.ReportSource = Cr CrvMatriculas.RefreshReport()Catch ex As Exception

MsgBox(Err.Description)End TryEnd Sub

CODIGO DENTRO DE LA PÁGINA WEB – EVENTO PAGE_LOAD

If Not Page.IsPostBack Then CrvMatriculas.DisplayGroupTree = False CrvMatriculas.HasToggleGroupTreeButton = False CrvMatriculas.HasCrystalLogo = False CrvMatriculas.HasSearchButton = False CrvMatriculas.HasGotoPageButton = False CrvMatriculas.PageZoomFactor = 90End If

Call Generar_Reporte()

PONIENDO A PRUEBA NUESTRA PAGINA WEB DE CONSULTA DE MATRICULAS - Ahora Ejecutar (F5)Realizaremos Una Consulta De Los Alumnos Registrados En La Especialidad De Computación E Informática Del Sexo MasculinoY Luego Presionar El Botón Generar Consulta.

Obtendremos El Siguiente Resultado En Una Nueva Ventana De Pagina Web.

Expositor: Mañuico Flores, Roly Developer of Windows and Web ApplicationsMóvil: 9-8508-4014 12 E-Mail: [email protected]