Dinámicamente Informe vinculante para ReportViewer componente

Quiero mostrar diferentes informes en ReportViewer componente, basado en el texto seleccionado en el comboBox, pero parece que estoy teniendo dificultades unión fuentes de datos para los informes.

Este es el código en comboBox.TextChanged(object sender, EventArgs e) controlador de

reportViewer.Reset();
this.reportViewer.LocalReport.ReportEmbeddedResource = "ReportViewer." + MapComboBoxItem2ReportName(cbReports.Text) + ".rdlc";
this.reportViewer.RefreshReport();

Estoy recibiendo un error: «Un origen de datos de instancia no se ha proporcionado para el origen de datos DataSet1».

¿Qué más tengo que hacer para que yo pudiera cargar de forma dinámica?

3 Kommentare

  1. 1

    Cuando cambie el reportViewer del informe de origen, usted también tiene que establecer los orígenes de datos para ello. Normalmente, el diseñador de asas que para usted (echa un vistazo a el código generado por el diseñador para ver cómo se maneja), pero cambiando el informe de origen restablece el LocalReport objeto del control.

    Por lo tanto, usted necesita para el suministro de todos los orígenes de datos para su informe, de manera que se puede mostrar correctamente :

    this.reportViewer.LocalReport.ReportEmbeddedResource = "ReportViewer." + MapComboBoxItem2ReportName(cbReports.Text) + ".rdlc";
    this.reportViewer.LocalReport.Datasource.Add("Datasource1", whateverIsYourDatasourceObject)
    this.reportViewer.RefreshReport();

    Usted tiene que agregar la misma línea para cada origen de datos definidas en el informe. Si no estás seguro acerca de los orígenes de los nombres que usted necesita, consulte el código generado por el diseñador para ver lo que son. También puede utilizar el código siguiente para averiguar todos los informes de los orígenes de datos de nombres :

    this.reportViewer.LocalReport.GetDataSourceNames()

    Si el informe tiene variables, es necesario definir también a ellos, de lo contrario obtendrá el mismo error.

    Espero que ayude

    • este no es trabajo para mí en absoluto. Hay algún gran error que estoy haciendo y creo que tiene algo que ver con el proceso de creación de nuevos informes. Cuando creo un nuevo Informe, estoy usando "DataSet1" como el origen de datos. No sé a dónde mirar más para resolver este…
    • Sin más detalles sobre el código, es difícil saber cuál es realmente el problema.
  2. 1

    que dejó el ReportPath.

    this.reportViewer.LocalReport.ReportPath = "Reports\\" + MapComboBoxItem2ReportName(cbReports.Text) + ".rdlc";
    
    this.reportViewer.LocalReport.ReportEmbeddedResource = "ReportViewer." + MapComboBoxItem2ReportName(cbReports.Text) + ".rdlc";
    
    this.reportViewer.LocalReport.Datasource.Add("Datasource1", whateverIsYourDatasourceObject)
    this.reportViewer.RefreshReport();
  3. 0

    Un origen de datos de instancia no se ha proporcionado para el origen de datos
    DataSet1

    Por favor, asegúrese de que el primer nombre del parámetro es «DataSet1». Que sería la que usted ha creado un nuevo origen de datos en .rdlc de Diseño de Formulario y nombrada como «laDataSet1«.

    this.reportViewr.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", 
                                               yourDataSet.Tables[0]));
    • También, usted tendrá que identificar los datos que deben facilitarse para el informe (basado en el nombre del informe, etc.) para asegurarse de que está enlazado correctamente. Cada informe esperada de la estructura de datos más probable es que sea diferente.
    • este no es trabajo para mí en absoluto. Hay algún gran error que estoy haciendo y creo que tiene algo que ver con el proceso de creación de nuevos informes. Cuando creo un nuevo Informe, estoy usando "DataSet1" como el origen de datos. No sé a dónde mirar más para resolver este…

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea