Principales respuestas
rdlc Muestra filas en blanco

Pregunta
-
Tengo un report viewer en C# que usa un rdlc este ejecuta un stored procedure de sql y solo muestra los datos de algunas filas, las filas que muestra con datos en blanco son las que uso en un inner join en sql
este es el stored procedure
SELECT I.Usuario, U.Nombre, U.Puesto, U.Nivel, I.Modelo, I.Service_Tag, I.Monitor_1, I.Monitor_2, I.Garantia, I.Numero_Celular, I.Serie_Celular, I.IMEI, I.Equipo_Celular, I.Plan_Celular, I.Fecha_Inicio, I.Fecha_Renovacion FROM Inventario AS I INNER JOIN Users AS U ON I.Usuario = U.Usuario where U.Activo =1
al ejecutarlo en sql si muestra los datos pero ya en el report viewer muestra las columnas vacias
Marco
Respuestas
-
Bien, ese DataSet1 es el conjunto de datos del informe, es la colección que se llena de datos y le sirve para generarse el informe, eso como te decía estaba bien, el tema es como lo llenas? necesito que me muestres el código del evento imprimir ya sea botón o lo que estés usando, en este evento deberías mostrar el formulario imprimir, cargar el .rdlc y llenar los datasets para que se genere el informe. Esto está en VB pero algo así:
Dim CSL01DataSet As SistContable.CSL01DataSet = CType(Me.FindResource("CSL01DataSet"), SistContable.CSL01DataSet) Dim idempresa As Integer = CSL01DataSetTEmpresasTableAdapter.cons_id_por_razonsocial(RazonSocialEmisorComboBox.Text) CSL01DataSetTSaldosProveedoresTableAdapter.FillbyProveedores(CSL01DataSet.TSaldosProveedores, idempresa) Dim di As New List(Of datos_para_informe) Dim mm As New HostReportes() mm.Activate() mm.Show() mm._reportViewer.ProcessingMode = ProcessingMode.Local mm._reportViewer.LocalReport.DataSources.Add(New ReportDataSource("DataSet1", CSL01DataSet.TSaldosProveedores.DefaultView)) mm._reportViewer.LocalReport.ReportEmbeddedResource = "SistContable.SaldosProveedores.rdlc" mm._reportViewer.RefreshReport()
- Propuesto como respuesta Pablo RubioModerator jueves, 30 de noviembre de 2017 23:18
- Marcado como respuesta Pablo RubioModerator martes, 5 de diciembre de 2017 15:50
Todas las respuestas
-
Hola Marco, como le pasas los datos a report viewer? usas clases? datasets? podrías mostrar el método.
A simple vista no veo nada mal, la consulta está bien, si decís que sql muestra información, rdlc debería mostrar lo mismo a menos que no estés asignando bien algo, no hay otra, pero necesito ver mas del código.
Comentá, saludos.-
- Marcado como respuesta Pablo RubioModerator martes, 5 de diciembre de 2017 15:50
- Desmarcado como respuesta Markdirtyboy martes, 5 de diciembre de 2017 19:26
-
Hola estoy usando un dataset
Marco
- Propuesto como respuesta Pablo RubioModerator viernes, 1 de diciembre de 2017 15:58
- Votado como útil Pablo RubioModerator viernes, 1 de diciembre de 2017 15:58
-
Bien, ese DataSet1 es el conjunto de datos del informe, es la colección que se llena de datos y le sirve para generarse el informe, eso como te decía estaba bien, el tema es como lo llenas? necesito que me muestres el código del evento imprimir ya sea botón o lo que estés usando, en este evento deberías mostrar el formulario imprimir, cargar el .rdlc y llenar los datasets para que se genere el informe. Esto está en VB pero algo así:
Dim CSL01DataSet As SistContable.CSL01DataSet = CType(Me.FindResource("CSL01DataSet"), SistContable.CSL01DataSet) Dim idempresa As Integer = CSL01DataSetTEmpresasTableAdapter.cons_id_por_razonsocial(RazonSocialEmisorComboBox.Text) CSL01DataSetTSaldosProveedoresTableAdapter.FillbyProveedores(CSL01DataSet.TSaldosProveedores, idempresa) Dim di As New List(Of datos_para_informe) Dim mm As New HostReportes() mm.Activate() mm.Show() mm._reportViewer.ProcessingMode = ProcessingMode.Local mm._reportViewer.LocalReport.DataSources.Add(New ReportDataSource("DataSet1", CSL01DataSet.TSaldosProveedores.DefaultView)) mm._reportViewer.LocalReport.ReportEmbeddedResource = "SistContable.SaldosProveedores.rdlc" mm._reportViewer.RefreshReport()
- Propuesto como respuesta Pablo RubioModerator jueves, 30 de noviembre de 2017 23:18
- Marcado como respuesta Pablo RubioModerator martes, 5 de diciembre de 2017 15:50
-
Al abrir el form carga el rdlc en el report viewer de forma automática este es el código generado por Visual
private void InitializeComponent() { this.components = new System.ComponentModel.Container(); Microsoft.Reporting.WinForms.ReportDataSource reportDataSource1 = new Microsoft.Reporting.WinForms.ReportDataSource(); this.reportViewer1 = new Microsoft.Reporting.WinForms.ReportViewer(); this.Base_InventarioDataSet = new Ritch.Base_InventarioDataSet(); this.InventarioBindingSource = new System.Windows.Forms.BindingSource(this.components); this.InventarioTableAdapter = new Ritch.Base_InventarioDataSetTableAdapters.InventarioTableAdapter(); ((System.ComponentModel.ISupportInitialize)(this.Base_InventarioDataSet)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.InventarioBindingSource)).BeginInit(); this.SuspendLayout(); // // reportViewer1 // this.reportViewer1.Dock = System.Windows.Forms.DockStyle.Fill; reportDataSource1.Name = "DataSet1"; reportDataSource1.Value = this.InventarioBindingSource; this.reportViewer1.LocalReport.DataSources.Add(reportDataSource1); this.reportViewer1.LocalReport.ReportEmbeddedResource = "Ritch.Report1.rdlc"; this.reportViewer1.Location = new System.Drawing.Point(0, 0); this.reportViewer1.Name = "reportViewer1"; this.reportViewer1.ServerReport.BearerToken = null; this.reportViewer1.Size = new System.Drawing.Size(796, 704); this.reportViewer1.TabIndex = 0; // // Base_InventarioDataSet // this.Base_InventarioDataSet.DataSetName = "Base_InventarioDataSet"; this.Base_InventarioDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; // // InventarioBindingSource // this.InventarioBindingSource.DataMember = "Inventario"; this.InventarioBindingSource.DataSource = this.Base_InventarioDataSet; // // InventarioTableAdapter // this.InventarioTableAdapter.ClearBeforeFill = true; // // ReporteInventario // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(796, 704); this.Controls.Add(this.reportViewer1); this.Name = "ReporteInventario"; this.Text = "ReporteInventario"; this.Load += new System.EventHandler(this.ReporteInventario_Load); ((System.ComponentModel.ISupportInitialize)(this.Base_InventarioDataSet)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.InventarioBindingSource)).EndInit(); this.ResumeLayout(false); }
Marco
- Propuesto como respuesta Pablo RubioModerator viernes, 1 de diciembre de 2017 15:59