13
UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas 1 Proyecto final de curso Proyecto: alquiler de videos- generación de reportes 1. Iniciamos instalando la herramienta Crystal Reports de SAP. 2. Abrimos la aplicación y agregamos una nueva carpeta “DataSetpara almacenar en ella los conjuntos de datos que nos permitirán realizar los reportes 3. Agregamos en nuestra carpeta DataSet un archivo de tipo DataSet En el bloque de Datos Conjunto de Datos (DataSet) y darle un nombre: dsGeneral

2. Alquiler de Videos - Reportes

Embed Size (px)

DESCRIPTION

reporte de programacion en visual basic correspondiente al cuerso de taller de programcion 2

Citation preview

Page 1: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

1

Proyecto final de curso

Proyecto: alquiler de videos-

generación de reportes

1. Iniciamos instalando la herramienta Crystal Reports de SAP.

2. Abrimos la aplicación y agregamos una nueva carpeta “DataSet”para almacenar en ella los

conjuntos de datos que nos permitirán realizar los reportes

3. Agregamos en nuestra carpeta DataSet un archivo de tipo DataSet

En el bloque de Datos Conjunto de Datos (DataSet) y darle un nombre: dsGeneral

Page 2: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

2

4. En el archivo del DataSet agregamos un DataTable o Tabla de Datos

5. En esta tabla de datos iniciamos creando columnas, tantas como deseemos, lo cual

dependerá de la cantidad de campos que uno desea existan en el reporte

Page 3: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

3

6. Debemos crear dos tablas de datos, una para Etiquetas. Finalmente, el diseño debe quedar

como sigue: (en este ejemplo se agregaron 10 columnas)

Al seleccionar cualquier columna, en la figura anterior se seleccionó DataColumn1 en la parte

derecha en sus propiedades observamos el tipo de dato que tiene la columna, para este valor,

DataType: System.String, es decir, que la columna soporta valores String.

7. Ahora en la carpeta Formulario, agregamos un formulario que nos servirá como base para

cualquier formulario de reportes que deseemos crear, con la finalidad de no crear objetos

para cada reporte, este se llamará frmReportes

Page 4: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

4

Arrastrar el control CrystalReportViewer al formulario. Para ello haz un clic derecho en

herramientas Elegir elementos …

Page 5: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

5

Y seleccionar el componente CrystalReportViewer

Arrastrar el control CrystalReportViewer al formulario, el cual debe verse así:

Si el control CrystalReportViewer no aparece en la ficha Creación de informes,

probablemente se deba configurar la versión de Framework con la que trabaja el proyecto,

para ello, ve a Proyecto Propiedades de PyVideo (en tu caso el nombre de tu proyecto)

Debes cambiar la versión de .NET Framework de destino a .NET Framework 4 y no la que

viene por defecto.

Page 6: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

6

8. El reporte elemento CrystalReportViewer tiene diversas propiedades, entre ellas

configuraremos Modifiers: public, puesto que será usado por diversos objetos

Además al formulario darle la propiedad: WindowsState: Maximized

Configura también que la vista para el panel de herramientas, no sea por medio del

GroupTree, sino en None, esto es haciendo clic en la flecha superior del control

CrystalReportViewer

Page 7: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

7

9. Agregamos un nuevo elemento dentro de la carpeta DataSet, este elemento está dentro de

Reporting Crystal Reports.

10. Esto nos muestra la galería de Crystal Reports, podemos usar el asistente pero esto no nos

permitirá realizar reportes más flexibles, así que elegimos Como informe en blanco.

Page 8: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

8

11. Crystal Reports tiene las siguientes secciones

Report Header – Los campos de esta sección se imprimen solo una vez y están ubicados al inicio del reporte.

Page Header – encabezado de página, los datos de esta sección se imprimen cada vez por cada nueva página.

Details – los campos de esta sección son impresos de acuerdo a la cantidad de detalle de filas existents.

Report Footer - fields placed in this section are printed once, at the end of the report, se imprimen una sola vez al pie del reporte

Page Footer - fields placed in this section are printed at the bottom of each new

page, se imprime cada vez por cada página en la parte inferior.

Page 9: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

9

12. Elegir la opción Campos de base de datos Asistente de base de datos

Debe figurar nuestro DataSet creado previamente, lo seleccionamos

Page 10: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

10

13. Realizamos el siguiente diseño. Observa que en el encabezado de página usamos los campos

de dtEtiqueta, y para la sección de detalles dtDatos DataColumn

1. Campos de la base de datos

Son los campos del DataSet que creamos, como vemos solo tenemos 10 columnas las

cuales todas son de tipo String

2. Campos especiales

1

2

3

3

4

5

6

Page 11: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

11

En esta sección se incluyen diversos datos estáticos, los más usuales son los de fecha y

hora, número de página, página N de M, etc.

Las secciones de campos dinámicos incluyen : Campos de fórmula, campos de parámetro,

de totales acumulados, los cuales se revisarán en los siguientes ejemplos.

3. Encabezado de informe

Solo se muestra una vez, incluimos una columna (DataColumn1) un gráfico, que suele ser

el logo de la empresa, puedes incluir el nombre, etc.

4. Encabezado de página

En esta sección se indican los datos de encabezado que se repiten por cada página

5. Detalles

6. Pie de página

Se han incluido los datos de fecha, número de página y el nombre del software.

14. En el formulario frmPrincipal agregamos la lista de reportes, codificamos

Crear un método que realiza la impresión del informe

private void listaSocios() { //Crear un objeto de tipo DataSet, haciendo referencia al dataSet creado DataSet.dsGeneral filaDS = new DataSet.dsGeneral(); System.Data.DataRow filaDR; //crear una variable de tipo DataRow o Fila de Dato filaDR = filaDS.dtEtiqueta.NewRow(); //Añadir una nueva fila al DataSet //Enviar los títulos a las columnas de etiqueta, en este caso para datos de Socios var item0 = filaDR["dtEtiqueta1"] = "REPORTE DE SOCIOS"; var item1 = filaDR["dtEtiqueta2"] = "DNI"; var item2 = filaDR["dtEtiqueta3"] = "Nombres y apellidos"; var item3 = filaDR["dtEtiqueta4"] = "Dirección"; var item4 = filaDR["dtEtiqueta5"] = "Teléfono"; var item5 = filaDR["dtEtiqueta6"] = "E-mail"; filaDS.dtEtiqueta.Rows.Add(filaDR); DAO.clsSocio socio = new DAO.clsSocio();

Page 12: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

12

for (int m = 0; m < socio.listarSocio().Rows.Count-1; m++) { filaDR = filaDS.dtDatos.NewRow(); var item6 = filaDR["DataColumn1"] = socio.listarSocio().Rows[m][1].ToString(); //DNI var item7 = filaDR["DataColumn2"] = socio.listarSocio().Rows[m][2].ToString() + " " + socio.listarSocio().Rows[m][3].ToString() + " " + socio.listarSocio().Rows[m][4].ToString(); //Nombres y apellidos var item8 = filaDR["DataColumn3"] = socio.listarSocio().Rows[m][5].ToString(); //dirección var item9 = filaDR["DataColumn4"] = socio.listarSocio().Rows[m][6].ToString(); //telefono filaDS.dtDatos.Rows.Add(filaDR); } //Crear un objeto de tipo crystalReport DataSet.crGeneral reporteSocio = new DataSet.crGeneral (); reporteSocio.SetDataSource(filaDS); //Enviar el DataSet lleno al crystalReport Formularios.frmReportes rep = new Formularios.frmReportes(); //Crear un objeto de tipo formulario frmReportes rep.crystalReportViewer1.ReportSource = reporteSocio; //en el formulario enviar al crystalReportViewer la consulta rep.MdiParent = this; rep.Show(); }

Finalmente ejecutar el método

private void reporteDeSociosToolStripMenuItem_Click_1(object sender, EventArgs e) { listaSocios(); }

Si es que sucede el error: “No se puede cargar el archivo o ensamblado

'file:///C:\Program Files\SAP BusinessObjects\Crystal Reports for .NET Framework

4.0\Common\SAP BusinessObjects Enterprise XI

4.0\win32_x86\dotnet1\crdb_adoplus.dll' ni una de sus dependencias. El sistema no

puede encontrar el archivo especificado.”

Puede ser que las librerías no estén siendo reconocidas, agregar las líneas de código

<?xml version="1.0" encoding="utf-8" ?> <configuration> <connectionStrings> <add name="cadenaConexion" connectionString="Data Source=ADMIN-443B3235B; database=BDVideo;Integrated Security=True;" providerName="System.Data.SqlClient"/> </connectionStrings>

<startup useLegacyV2RuntimeActivationPolicy="true"> <supportedRuntime version="v4.0"/> </startup>

</configuration>

El diseño del formulario es:

Código agregado

Page 13: 2. Alquiler de Videos - Reportes

UNIVERSIDAD NACIONAL MICAELA BASTIDAS DE APURÍMAC Escuela Académico Profesional de Ingeniería Informática y Sistemas

13

Crea un reporte de la lista de películas existentes.