webentwicklung-frage-antwort-db.com.de

wie füge ich Parameter im Report Viewer hinzu?

HY! Ich habe eine Formularanwendung in Visual Studio 2010 und möchte einen Bericht mit Report Viewer erstellen und einige Parameter hinzufügen. Ich habe versucht, Parameter aus dem Code hinzuzufügen, aber es hat nicht funktioniert. Ich habe diesen Fehler: 

Der FilterExpression-Ausdruck für das Tablix 'Tablix1' bezieht sich auf das Feld Berichtselementausdrücke können nur auf Felder innerhalb des aktuellen Dataset-Bereichs oder, falls sie sich innerhalb eines Aggregats befinden, auf den angegebenen Dataset-Bereich beziehen Berichtsparameter 'datastart'. 

In meinem Code ein dies tun:

 private void SetReportParameters()
    {
        ReportParameter[] parameters = new ReportParameter[2];
        parameters[0] = new ReportParameter("datastart", dateTimePickerStartRaport.Text);
        parameters[1] = new ReportParameter("dataStop", dateTimePickerStopRaport.Text);
        this.reportViewer1.LocalReport.SetParameters(parameters);
    }

nachdem Sie diese Methode aufgerufen haben, aktualisieren Sie den Report Viewer

 reportViewer1.RefreshReport();           

Ich schaue mir auch andere Foren an und habe gesehen, dass ich dem Bericht die Parameter hinzufügen muss, aber ich habe nicht herausgefunden, wie ich das machen soll. Ich habe auch versucht, in den Eigenschaftenfenstern des Berichts einige Filter mit Wert hinzuzufügen 

  =Parameters!datastart.Value     

das hat aber auch nicht funktioniert.

13
user599977

Sie erhalten den Fehler, weil Sie versuchen, Ihren Parameter wie ein Feld anzugeben. Im Ausdrucks-Designer haben Sie eine spezielle Kategorie namens "Parameter". Von dort aus können Sie auf Ihre Parameter zugreifen . Die Syntax lautet =Parameters![FieldName].Value. In Ihrem Fall zum Beispiel =Parameters!datastart.Value.

Beachten Sie außerdem, dass die Parameter im Fenster "Berichtsdaten" unter "Parameter" deklariert werden müssen. Es ist das gleiche Fenster, in dem Sie Ihre Recordsets deklarieren, es gibt jedoch auch eine spezielle Kategorie für Parameter. Es gibt auch einige Optionen für den Datentyp und ob die Angabe des Parameters obligatorisch ist.

16
HCL

Wenn Sie also eine Berichtsdefinition (rdl- oder rdlc-Datei) erstellen, müssen Sie Parameter mit genau denselben Namen hinzufügen. Für Ihren Fall müssen Sie also datastart und dataStop Parameter hinzufügen. Klicken Sie dazu einfach auf Parameter im Berichtsdatenfenster und klicken Sie auf Neu hinzufügen.

2
ravenik

Versuche dies:

ReportParameter PrmInvoiceNo = new ReportParameter("PrmInvoiceNo");
PrmInvoiceNo.Values.Add(this.InvNo.ToString());
this.reportViewer1.LocalReport.SetParameters(PrmInvoiceNo);
0
hakim m