Wie binden dynamisch datasource zu reportviewer windows forms c#

Ich erstellt habe, windows form, fungiert als Bericht loader. Ich haben auch zwei RDLC-reports, die vom Berichts-Assistenten automatisch erstellte dataset für diese beiden Berichte. Jetzt habe ich zwei Datensätze: sparcsn4DataSet.xsd-und sparcsn4DataSet1.xsd, die mit der gespeicherten Prozedur auf und übergibt zwei Parameter (dateFrom/dateTo). Ich habe ein problem mit verbindlichen Datensatz je nach status:

if (idRep.Equals("extraMove"))

Es ist ganz einfach zu binden dataset reportview, wenn Sie einen Bericht.

Wie binden dynamisch datasource zu reportviewer windows forms c#
aber was, wenn Sie mehr als eine haben? Ich kann immer ein anderes Formular erstellen mit einem anderen reportviewer-aber dies ist nicht eine option (was ist wenn man 10 Berichte/datasets), das ist definitiv in Frage?

Es sollte eine Möglichkeit zum binden von datasets an reportviewer... Hat jemand eine Idee, wie ich das lösen kann verbindlich problem, je nach status?

if (idRep.Equals("extraMove"))
        {
            this.AGCT_ServiceEventReportTableAdapter.Fill(this.sparcsn4DataSet.AGCT_ServiceEventReport, d1,d2);
        }
        else if (idRep.Equals("stripStuff"))
        {
            this.AGCT_StripStuffReportTableAdapter.Fill(this.sparcsn4DataSet1.AGCT_StripStuffReport, d1, d2);
        }
        else
        {
            MessageBox.Show("Ooops, something went wrong...!");
        }

Dies ist ReportForm.cs, die haben reportviewer auf Sie:

namespace NavisReportLoader
{
    public partial class ReportForm : Form
    {
    public DateTime d1;
    public DateTime d2;
    public string dat1;
    public string dat2;
    public string idRep;
    public ReportForm()
    {
        InitializeComponent();
    }
    public void passParam(string dateFrom, string dateTo, string date1, string date2)
    {
        //ispravi ovo
       d1 = Convert.ToDateTime(dateFrom);
       d2 = Convert.ToDateTime(dateTo);
       dat1 = date1;
       dat2 = date2;
    }
    public void report(string id)
    {
        idRep = id;
    }
    private void ReportForm_Load(object sender, EventArgs e)
    {

        ReportParameter[] param = new ReportParameter[2];
        param[0] = new ReportParameter("date1", dat1);
        param[1] = new ReportParameter("date2", dat2);
        this.reportViewer1.LocalReport.SetParameters(param);

        if (idRep.Equals("extraMove"))
        {
            this.AGCT_ServiceEventReportTableAdapter.Fill(this.sparcsn4DataSet.AGCT_ServiceEventReport, d1,d2);
        }
        else if (idRep.Equals("stripStuff"))
        {
            this.AGCT_StripStuffReportTableAdapter.Fill(this.sparcsn4DataSet1.AGCT_StripStuffReport, d1, d2);
        }
        else
        {
            MessageBox.Show("Ooops, something went wrong...!");
        }

        this.reportViewer1.RefreshReport();
    }
    }
   }
InformationsquelleAutor dovla091 | 2014-02-25
Schreibe einen Kommentar