SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Spaltensumme mit SharePoint 2007

Unbeantwortet Dieser Beitrag hat 14 Antworten

Ohne Rang
37 Beiträge
Chris 22 erstellt 15 Nov. 2010 09:56
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

 

Hi all,

zwei Listen sind so miteinander verknüpft, dass Liste A Kunden enthält und Liste B eine Lookup-Spalte auf einen Kunden der Liste A. In Liste B soll eine Spaltensumme berechnet werden (bezüglich eines Kunden), welche mit einem (Feld-)Wert des Kunden aus Liste A verglichen wird. Das ganze soll über eine CAML-Abfrage realisiert werden, welche mir die Spaltensumme aus Liste B sowie den Wert aus Liste A zurückgibt.

Leider habe ich in keinem Schema eine Lösung für die Bildung der Spaltensumme gefunden, außer in dem View Schema (Aggregations) auf das SPView Objekt angewendet. Dabei besteht jedoch nur die Möglichkeit die verwendete View zu manipulieren, da die Abfrage innerhalb des SPView Objektes stattfindet.

Gibt es vielleicht trotzdem eine Abfragemöglichkeit, welche mir die Spaltensumme bezüglich eines Kunden bildet, so dass ich auf diesen Summenwert zugreifen kann, ohne das eine View verändert wird?

 

Vielen Dank im Voraus!

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Nov. 2010 10:00
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Mit einer einzigen Abfrage geht das in SharePoint 2007 nicht (in 2010 schon). Du brauchst also immer je eine Abfrage für jede Liste.

Was willst Du denn damit erreichen? Soll das Ergebnis nur dargestellt werden? Dann hilft Dir eine SharePoint Designer Datenansicht besierend auf einer verknüpften Datenquelle beider Listen. Die Ansicht kann dann durch Mainipulationen im XSLT entsprechend gestaltet werden.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
37 Beiträge
Chris 22 Als Antwort am 15 Nov. 2010 10:17
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

 

Ok, eine Abfrage auf jeweils eine der beiden Listen wäre kein Problem. Ich weiß nur nicht, wie ich den Wert der Spaltensumme der zweiten Liste bekomme, da dieser schon in dem Query gebildet werden soll. Basierend auf dem Vergleich, Wert Liste A und Spaltensumme Liste B, soll eine weitere Logik implementiert werden. Dies kann also nur mit dem SharePoint Designer realisiert werden?

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Nov. 2010 10:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du verrätst ja nicht, was Du wirklich erreichen willst...

Es gibt meist mehrere Möglichkeiten das gewünschte zu erreichen. Was der beste/einfachste Weg ist, hängt vom gewünschten Ergebnis ab. Natürlich kann man das nicht nur in einer Datenansicht sondern auch per Programmcode machen.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
37 Beiträge
Chris 22 Als Antwort am 15 Nov. 2010 10:33
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

 

Per Programmcode wäre optimal! Was ich erreichen will ist der Vergleich der beiden Listenwerte. Wenn die Spaltensumme der Liste B größer ist als der (Feld-) Wert eines Items der Liste A, soll in einer dritten Liste ein neues Item erstellt werden. Das neue Item soll das ursprüngliche Item der Liste A enthalten und zusätzlich die Spaltensumme der Liste B. Das wars...

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Nov. 2010 10:49
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Und wo genau hast Du das Problem? Wo soll der Code laufen (Webpart, Eventhandler, ...)?

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
37 Beiträge
Chris 22 Als Antwort am 15 Nov. 2010 11:01
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

 

Das ganze soll später in einem EventHandler laufen.

Mein Problem ist die CAML-Abfrage der zweiten Liste, da hier die Spaltensumme in der Abfrage gebildet werden soll. Ich hatte kein passendes CAML-Schema für eine solche Abfrage gefunden. Die Abfrage der ersten Liste ist kein Problem.

Ohne Rang
37 Beiträge
Chris 22 Als Antwort am 15 Nov. 2010 11:18
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Der EventHandler wird übrigens für die zweite Liste installiert und soll bei jedem neuen Item die erwähnte Spaltensumme neu berechnen und vergleichen.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Nov. 2010 11:58
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Die Summe mußt Du manuell bilden (iterieren über alle gefundenen Elemente). Das geht mit CAML nicht direkt.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
37 Beiträge
Chris 22 Als Antwort am 15 Nov. 2010 12:20
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok, danke für die Info. Ich hatte es schon befürchtet.

Auf das SPView-Objekt kann eine Summenabfrage angewendet werden:

<View>
...
<Aggregations Value="On">
<FieldRef Name="Title" Type="Count">
<FieldRef Name="Number" Type="Sum">
</Aggregations>
</View>

Die Abfrage verändert jedoch nur die verwendete View. Oder? Ich hätte somit eine andere Listenansicht hergestellt,
hätte aber keine Möglichkeit, die Summe direkt aus dem Query zu extrahieren? (ohne Iteration)
Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Nov. 2010 13:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Das geht nur in Views und kann nicht in eigenen Abfragen verwendet werden.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 15 Nov. 2010 14:05
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wobei das ja mal richtig dumm ist, denn besser wäre es ja, wenn diese Aggregation schon direkt auf der Datenbank gemacht werden könnten. Aber wir brauchen ja noch Features für zukünftige SharePoint-Versionen.

Henning Eiben
busitec.de

Ohne Rang
37 Beiträge
Chris 22 Als Antwort am 15 Nov. 2010 14:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

 

Ich bin mit der Thematik nicht so vertraut, deswegen mal die blöde Frage: Warum ist das dumm?

Vom Prinzip her kann man doch Listen ähnlich wie Datenbanken (mit wenigen Einträgen) verwenden. Oder?

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 15 Nov. 2010 14:59
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Chris 22"]Vom Prinzip her kann man doch Listen ähnlich wie Datenbanken (mit wenigen Einträgen) verwenden. Oder?[/quote]

Naja, so ähnlich. Aber es sind eben doch keine DB-tabellen mit allem drum und dran.

Und dumm ist es, weil man das selbst ausprogrammieren muß (wie oben geschildert).

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
643 Beiträge
Henning Eiben Als Antwort am 15 Nov. 2010 15:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

... und ich muss unnötigerweise die ganze Tabelle von der SharePoint-Datenbank auf den WFE laden und dann dort aggregieren, dabei gibt es doch für so etwas Aggregationsfunktionen in jeder Datenbank.

Henning Eiben
busitec.de