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.




calculated/berechnet Felder & Rückgabewerte

Geprüfte Antwort Dieser Beitrag hat 9 Antworten

Ohne Rang
282 Beiträge
MStel erstellt 22 Juli 2015 08:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich habe eine Liste "Person" und eine Liste "Auftrag".
Meine Liste Person besitzt einen Name, eine ID und eine Anzahl an Aufträgen.

Meine Liste Auftrag besitzt eine FID die sich aus der Liste Person auf deren ID bezieht.
Da man dort mehrere Aufträge pro Person angeben kann möchte ich in der Liste Person die Anzahl an Aufträgen auswerten, also habe ich ein berechnet Feld erstellt.

Habe zwar die Funktion Count gesehen, allerdings ist das ja nicht mit SQL Querys zu vergleichen, da ich ja nicht einfach schreiben kann "select Count *from where Pers_ID = Auftr.FID"

Die ID's miteinander abgleichen könnte ich wahrscheinlich, aber man muss ja bei einem IF einen Rückgabewert für den IF Fall und einen für den Else Fall angeben, und da dieser ja von Eintrag zu Eintrag unterschiedlich wäre weiß ich an dieser Stelle nicht was ich eintragen soll.

Wäre nett, wenn mir jemand auf die Sprünge helfen kann, vielleicht ist die Denkweise auch nur falsch.

Alle Antworten

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 22 Juli 2015 09:30
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Nur zum Verständnis: die Liste Person hat ein Nachschlagefeld mit Mehrfachauswahl auf die Liste Auftrag und Du möchtest in einem separaten Feld die Anzahl der ausgewählten Aufträge haben? Das wird mit einem berechneten Feld nicht funktionieren. Ich sehe hier eigentlich nur einen zu programmierenden EventReceiver als Lösung.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
282 Beiträge
MStel Als Antwort am 22 Juli 2015 09:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Es würde genügen die Daten in der Liste Auftrag auszuwerten.
Das entscheidende Kriterium dabei ist die eindeutige Person.

Das Lookup Feld in der Liste Auftrag, welches die Person ID herausnimmt lässt sich nämlich in berechneten Feldern nicht verwenden.

Ziel ist auf jeden Fall, dass man am Ende nachvollziehen kann:
Person 1 hat 2 Aufträge erfüllt
Person 2 hat 3 Aufträge erfüllt.

Ohne Rang
86 Beiträge
MMAY Als Antwort am 22 Juli 2015 09:51
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Schon mit der Funktion Gesamt in der Ansicht ausprobiert? Dort lässt sich zumindest Anzahl auswählen.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 22 Juli 2015 10:22
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Kannst Du mal bitte erklären wie das aufgebaut ist? In welcher Liste ist denn jetzt das Nachschlagefeld? Ich ging bisher von Person aus, aber Du schreibst jetzt von Auftrag. Aber wissen möchtest Du, wieviele Aufträge einer Person zugeordnet sind?

Wie auch immer, es gilt das oben gesagte. Ich glaube nicht, daß man das ohne EventReceiver ordentlich hinbekommt.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
282 Beiträge
MStel Als Antwort am 22 Juli 2015 10:40
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Jede Liste hat Standardmäßig ein Feld mit einer ID.

Das Feld vom Typ Lookup befindet sich in meiner Liste Auftrag und verweist genau auf diese genannte ID in der anderen Liste(Person).
In der Liste Person ist kein Nachschlagefeld. Die Liste Person ist eigentlich gar nicht weiter wichtig, Ich möchte nur irgendwo errechnen, wie oft es der Fall ist, dass das Lookup Feld dem Original entspricht.

Würde ja einfach die Anzahl der gleichen Lookup ID's in der Liste Einträge zählen, aber das Berechnet Feld stellt Lookup Werte für Berechnungen nicht bereit.

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 22 Juli 2015 11:08
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du kannst mal versuchen, eine Ansicht der Aufträge nach dem Lookup zu gruppieren. Ich glaube allerdings, daß das nicht nach einzelnen Werten gruppiert.

Sonst fällt mir tatsächlich nur ein EventReceiver auf den Aufträgen ein, der bei den jeweils ausgewählten Personen ein Zahlenfeld aktualisiert.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
282 Beiträge
MStel Als Antwort am 23 Juli 2015 13:24
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Was hälst du davon das in einem Skript auszugeben ?
Foreach Person
 if PersonID = Fremdschlüssel

Write-Output NamePerson

Fraglich nur, ob man hier auf die Fremdschlüsselwerte Abfragen kann

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 23 Juli 2015 14:21
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Wenn Dir (oder Deinem Auftraggeber) der Output eines Scripts reicht...

Per Script kann man (fast) alles machen, also auch diese Anzahlen ermitteln. Du kannst im Grunde alle Items der Personenliste durchgehen und dann per SPQuery eine CAML-Abfrage auf die Aufträge machen, bei der Du nach der ID im Lookup filterst. Die Anzahl der gefundenen Elemente ist dann die gesuchte Zahl.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
282 Beiträge
MStel Als Antwort am 23 Juli 2015 14:27
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dann kann ich diese Ergebnisse ja wiederum in ein Textdokument abspeichern & aktualisieren und anhand dieser Daten die entsprechenden Felder aktualisieren.
Ist zwar umständlich aber macht nochmal deutlich, dass alles irgendwie möglich ist.
Ich werde das mit dem Auftraggeber absprechen, vielen dank erst mal an dieser Stelle.
Schön dass man auch bei solch spezifischen Problemen noch Hilfe findet.

lg