none
rdlc Muestra filas en blanco RRS feed

  • 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

    jueves, 30 de noviembre de 2017 19:21

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()

    jueves, 30 de noviembre de 2017 21:25

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.-

    jueves, 30 de noviembre de 2017 20:08
  • Hola estoy usando un dataset 


    Marco

    jueves, 30 de noviembre de 2017 20:46
  • 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()

    jueves, 30 de noviembre de 2017 21:25
  • 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

    viernes, 1 de diciembre de 2017 15:45