2010-12-31 6 views
4

Ist es möglich, zwei Spaltenwerte hinzufügen sagen, ich habe 3 Spalten:Microsoft Berichte Hinzufügen von zwei Spaltenwerte

Item 1    | Item 2    | Total 

=Fields!Item1.Value | =Fields!Item1.Value | ??? 

Was will ich (für Wartbarkeit Gründen) zu vermeiden, so etwas wie dies tut:

=Fields!Item1.Value + Fields!Item2.Value 

ich suche eher nach so etwas wie

Column1Value + Column2Value 

Danke Jungs !!!!

+1

Kommt dies aus einer Datenbank irgendeiner Art, und wenn ja, warum ist es nicht möglich, die Summe in einer Abfrage zu erhalten? – Fionnuala

+0

Dies kommt von einem Webservice und das Dataset ist eine Liste von benutzerdefinierten Objekten. Ich kann die gesamte Logik im Objekt selbst implementieren, aber es macht nur Sinn in dem Bericht, so dass ich die Summen in den Objekten vermeiden wollte, da ich mit "Haufen neuer Gesamteigenschaften" in dem Objekt – Luis

Antwort

3

Sie können dies auch tun, indem Sie ein berechnetes Feld in Ihrem Dataset hinzufügen. Fügen Sie also Ihre zwei Quellfelder hinzu, lassen Sie sie Item1 und Item2 nennen, normalerweise - mit ihrer Quelle auf den Namen des Feldes in der Datenquelle festgelegt. Fügen Sie dann ein berechnetes Feld hinzu, nennen Sie es Gesamt zu dem Berichtsdataset, indem Sie die Ausdruck des Feldes auf = Felder setzen! Item1.Value + Fields! Item2.Value. Dann können Sie überall in Ihrem Bericht auf den berechneten Wert zugreifen, indem Sie = Fields! Total.Value verwenden.

Auf diese Weise erhalten Sie Ihre Berechnung, ohne die zugrundeliegende Datenquelle zu ändern, sie ist wartungsfreundlicher (die Berechnung an einer Stelle) und vereinfacht die Referenzierung der Berechnung im gesamten Bericht.

+0

Noch besser Scott ... Danke für diesen Kumpel !!! – Luis

+0

Dies funktioniert, bis sich diese Feldnamen in der Abfrage ändern. Sie haben gleich wieder die Felder benutzt, was das OP gesagt hat, dass sie NICHT wollen. Das ist also nicht die Antwort. Sie müssen weiterhin ReportItems verwenden. Ändern Sie den Wert Ihrer Feldnamen und lassen Sie mich wissen, wie es funktioniert. –

+0

Tatsächlich werden diese Feldnamen, die in Ausdrücken verwendet werden (z. B. Felder! Eintrag1, Felder! Eintrag2) vollständig vom Berichtsautor gesteuert und in den DataSet-Elementen des Berichts angegeben. Die zugrunde liegenden Feldnamen der Datenquelle werden in der "Quelle" des RDL-Feldelements angegeben. Das Feld des Datensatz-DataSets kann also Item1 sein, aber es könnte an ein Feld in der Datenquelle mit einem anderen Namen gebunden sein. –

3

Ich würde nur den Zusatz in der Abfrage tun und es als ein berechnetes Feld zurückgeben.

z.B.

SELECT field1, field2, field1 + field2 AS total; 

Ich sehe das Problem der Wartbarkeit damit nicht. Wenn Sie die Abfrage von allem anderen trennen müssen, sollten Sie gespeicherte Prozeduren oder eine Art Factory in Betracht ziehen, um die Abfrage zu generieren.

+0

enden werde, das ich benutze Benutzerdefinierte Geschäftsobjekte und diese Summen sind für das Objekt nicht sinnvoll, sondern nur für den Bericht selbst. Ich möchte vermeiden, dass ich das im Objekt selbst berechnen muss ... wenn möglich, wenn nicht, dann muss ich mit dem vorgeschlagenen gehen. Danke – Luis

2

Wenn Sie ein matrix verwenden, ist das Verhalten, das Sie suchen, eingebaut.

+0

Humm..not in meinem speziellen Fall als Diese Summen sind nicht die Summe einer Zeile, sondern aus 2 Spalten, was bedeutet, dass ich eine vierte Spalte haben kann, die ich nicht in der Summe enthalten möchte. Hoffe, das macht Sinn. – Luis

4

Klingt wie das, was Sie tun möchten, verweist auf den Wert des Berichtsobjekts (des Textfelds) statt der Spalte aus der Abfrage. Sie können dies tun, indem Sie ReportItems!

Wenn Sie die Spalte aus dem Dataset ziehen, kann sie das Textfeld nach der Spalte benennen. Wenn der Spaltenname variieren kann, müssen Sie dem Textfeld, in dem der Wert angezeigt wird, einen statischen Wert zuweisen.

Also, in dem ersten Beispiel, das Sie gaben, werden Sie Textfelder mit den Namen von Item1, Item2 und Total haben. So wird in der entsprechenden Gesamt Textbox wollen Sie:

=ReportItems!Item1.Value + ReportItems!Item2.Value 

oder wenn Sie die Textfelder Rot und Blau genannt wäre es:

=ReportItems!Red.Value + ReportItems!Blue.Value 

alt text alt text

Eine Liste der verfügbaren Report erscheint, wenn Sie '!' nach ReportItems.

+0

Du bist ein Legend Mate..das ist genau das, was ich brauche !!!! Vielen Dank – Luis

+2

Ich habe dies nur benutzt, um eine variable Formatierung zu machen, wenn die Summe 3 ist, wird der Hintergrund lila. Ich war es leid, den Ausdruck zweimal zu tippen, einmal für den Wert und einmal für die Farbe. Dies machte die Wartung auch schwierig. Jetzt mache ich einfach IIF (ReportItems! Total.Value = 3, ...). Danke an D.S. für die Antwort und an Luis für die Frage! – Fillet

Verwandte Themen