Domino 9 und frühere Versionen > Entwicklung
Bestimmte Dokumente zählen/addieren
feel_x:
Hier nochmal ein Bildchen:
Ich kämpfe mit dem Problem, dass ich sehen will, wie viele Anmeldungen (grün) zu einem Seminar (Schwarz) vorliegen.
Mit @docchildren kann ich ja nicht weiterrechnen, insofern bringt mir das nur zur Anzeige was.
Ich will wissen: Gesamtanzahl Plätze (fest eingetragen)
abzüglich Anmeldungen (automatisch berechnet) ist gleich Anzahl freie Plätze.
oder muss ich das doch über ein Skript machen, das mir die Platzanzahl im Seminardokument herunterzählt..
Rob Green:
nein, Du kannst kein dblookup in einer View verwenden, wozu auch? Eine View ist quasi schon ein extrakt von dem, was man sehen will.
Was Du möchtest ist ja, daß ein neuer User keine Schulung mehr buchen kann, wenn diese voll ist bzw. vica versa.
Wenn also ein neues Reservierungsdoc aufgemacht wird, gibt es eine Formel in einem berechneten Feld...
_result:=@if(@isdocbeingsaved;@dblookup("":"NoCache":"server":"db";"view";EINDEUTIGE_SUCH_ID_ZUM_ANGEBOTENEN_SEMINAR;2);CHECK);
_entries:=@if(@iserror(_result);0;@elements(_result));
Field CHECK:=_entries;
_void
Dann gibt es im hidden, bearbeitbaren Feld CHECK eine Validierungsformel....
@if(CHECK>=FELD_MAXIMUMPLAETZE;@failure("Sie können nicht weil ..");@success)
Feld_Maximumplätze enthält die für das Seminar vorgegebene feste Anzahl an Plätzen.
So wird bei jedem Speicherversuch nachgeschaut, wie viele Buchungen bereits vorliegen und bei überschreiten unterbindet das System den Versuch des Users, einen weiteren Platz zu buchen.
Das schöne daran ist, Du kannst es mit fertigen "Response Slots" machen (also leeren, aber bestehenden Reservierungsdocs, wobei natürlich ne andere View für Überbuchungs-Check herangezogen wird, damit nicht auch die leeren Slots fälschlicherweise zählen) ODEr man kann neue Reservierungsdocs on the fly userseitig erstellen.
feel_x:
--- Zitat von: Rob Green am 10.04.03 - 11:03:23 ---
_result:=@if(@isdocbeingsaved;@dblookup("":"NoCache":"server":"db";"view";EINDEUTIGE_SUCH_ID_ZUM_ANGEBOTENEN_SEMINAR;2);CHECK);
_entries:=@if(@iserror(_result);0;@elements(_result));
Field CHECK:=_entries;
_void
usw.
--- Ende Zitat ---
cool, fast genau das suche ich.
Jetzt noch eine Verständnisfrage: der Schlüssel "EINDEUTIGE_SUCH_ID_ZUM_ANGEGEBENEN_SEMINAR" ist ja statisch.
In dem Moment, in dem ein neues Seminar mit einer anderen ID angelegt wird, soll das ja auch funktionieren. Sonst sucht jedes neue Seminar nach dem gleichen Schlüssel
(oder hab ich die Formel falsch verstanden?)
wie mache ich das, dass ich in dieser Formel übergebe:
Feld "EINDEUTIGE_ID" istgleich dem aktuellen Dokument?
Dann hab ich's
:)
Rob Green:
feel_x...es gibt eine sehr gute Help in Lotus Notes, wo super dupa die Funktionen erklärt werden. Da findest Du auch @dblookup.
Und wie man den Suchschlüssel eingeben kann, statisch, dynamisch, etc...ist easy. ;)
feel_x:
Okay, Danke Dir :)
Navigation
[0] Themen-Index
[*] Vorherige Sete
Zur normalen Ansicht wechseln