Los elementos de informe son elementos de informe independientes que se almacenan en el servidor de informes y se pueden incluir en otros informes.
Enviado por Stella • 20 de Noviembre de 2018 • 1.634 Palabras (7 Páginas) • 538 Visitas
...
Se pueden obtener imágenes de los orígenes siguientes: [pic 7]
- Base de datos
- Recurso compartido de archivos o sitio web externo
- Imagen incrustada localmente en el informe
Los Subinformes
Un subinforme es un informe incluido en otro. Con los subinformes, puede combinar informes no relacionados en uno solo. Puede combinar datos que no se podrían haber enlazado de otro modo o presentar distintas vistas de los mismos datos en un único informe.
Si su informe tiene una sección que maneja un gran número de registros, puede poner dicha sección en un subinforme a la orden. Un subinforme a la orden aparece como hipervínculo del informe principal. Cuando abre el informe principal, no se recupera ningún dato del subinforme a la orden hasta que no se profundiza en el hipervínculo.
[pic 8]
Figura 7. Creación del Subinforme Fuente: Elaboración propia
Existen dos tipos de subinformes:
- Subinformes no vinculados
Subinformes no vinculados son independientes; sus datos no están coordinados de ninguna manera con los datos del informe principal.
En los subinformes no vinculados, no se confrontan los registros de un informe con los del otro. Esto no significa que un subinforme no vinculado tenga que usar los mismos datos que el informe principal; puede utilizar el mismo origen de datos o uno diferente. Además, el subinforme no está limitado a generar informes en una sola tabla. Un subinforme no vinculado puede estar basado en una o en varias tablas. Los informes se tratan como no relacionados, independientemente de los orígenes de datos subyacentes.
- Subinforme vinculado
Sucede lo contrario con los subinformes vinculados. Sus datos sí están coordinados. El programa coteja los registros en el subinforme con los registros del informe principal. Por ejemplo, si crea un informe principal con información de clientes y los vincula a un subinforme con información de pedidos, el programa crea un subinforme para cada cliente e incluye en él todos los pedidos de ese cliente.
Codificación de Informes
Pasos para llevar a cabo la práctica de la elaboración de un subinforme:
- Crear en un Dataset el de Facturas y Ventas
- Crear el form1
Imports System.Data.SqlClient
Dim con As SqlConnection = New SqlConnection("server=mlarapc\newserver;Database=SistemadeVentas;uid=sa;pwd=950926;") Dim comando As SqlCommand = New SqlCommand("select id_factura,nombrecliente, fecha_factura, total from clientes, facturas where
Clientes.id_cliente=Facturas.id_cliente", con)
Dim adaptador As SqlDataAdapter = New SqlDataAdapter con.Open() datos.Clear()
adaptador.SelectCommand = comando adaptador.Fill(datos, "Facturas") Dim rpt As New CrystalReport1
rpt.Load()
rpt.SetDataSource(datos)
rpt.Refresh()
CrystalReportViewer1.ReportSource = rpt rpt.Refresh()
- Crear el 1er CrystalReports
- Crear el form2 y Agregar el reportviwier
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Dim con As SqlConnection = New SqlConnection("server=mlarapc\newserver;Database=SistemadeVentas;uid=sa;pwd=950926;") Dim comando As SqlCommand = New SqlCommand("select id_venta,nombrecliente, fecha_venta, total from clientes, ventas where
Clientes.id_cliente=ventas.id_cliente", con)
Dim adaptador As SqlDataAdapter = New SqlDataAdapter con.Open()
datos.Clear()
adaptador.SelectCommand = comando adaptador.Fill(datos, "Ventas") Dim rpt As New CrystalReport2
rpt.Load() rpt.SetDataSource(datos)
rpt.Refresh()
CrystalReportViewer1.ReportSource = rpt rpt.Refresh()
- Crear el 2do Crystal y Agregar el reportviewer
- Crear un módulo
Public datos As New DataSet
- Agregar al App.config las siguientes líneas de código.
startup useLegacyV2RuntimeActivationPolicy="true">
supportedRuntime version="v4.0"/>
SEGUNDA FORMA DE GENERAR SUBINFORME:
- Crear el tercer formulario Form3
Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles MyBase.Load
dtcierre.Clear()
dtcierre.Tables.Clear()
'==================================== crear y lllenar manualmente un dataset Facturas
Dim dt As New DataTable Dim dr As DataRow dt.Columns.Add(New DataColumn("id_factura", GetType(Integer))) dt.Columns.Add(New DataColumn("nombrecliente", GetType(String))) dt.Columns.Add(New DataColumn("fecha_factura", GetType(Date))) dt.Columns.Add(New DataColumn("total", GetType(Decimal))) dtcierre.Tables.Add(dt)
consultar("select id_factura,nombrecliente, fecha_factura, total from clientes,
facturas where Clientes.id_cliente=Facturas.id_cliente") While reader.Read dr = dt.NewRow dr("id_factura") = reader.GetValue(0) dr("nombrecliente") = reader.GetString(1) dr("fecha_factura") = reader.GetDateTime(2) dr("total")
...