Zu dem Hintergrund für meine Anfrage:
Erstmal ich bin noch recht jungfreulich im Thema und habe wahrscheinlich noch nicht die optimalsten Ideen, um etwas zu lösen. Momentan bin ich an einer Datenbank, wo Events eingetragen werden, zu welchen sich Benutzer eintragen können. Die Events sind jedoch Platztechnisch beschränkt.
Beim Anlegen eines solchen Events (Form1) wird im Hintergrund ein zweites Dokument erzeugt (Form 2). In beiden Dokumenten steht die Kursnummer - Werte A / Spalte 1. In Form 2 wollte in Spalte 2 / Werte B ich die freien Sitzplätze speichern.
Dies hat den Hintergrund: Wenn ich dies in dem eigentlichen Eventdokument speichere und mehrere Personen gleichzeitig auf das Dokument zugreifen, um sich ein oder auszutragen, wird sich das Dokument vermehren, da ich bei jeder Änderung das Dokument ja speichern muss. Wenn jemand teilnehmen klickt, wird ein drittes Dokument (Form 3) erzeugt mit Kursnummer und Teilnehmernamen und in Form 2 die Anzahl der Plätze um 1 reduziert bzw. beim Abmelden das Dokument mit der Kursnummer und dessen Namen wieder gelöscht und in Form 2 die Anzahl der Sitzplätze wieder erhöht.
Wie gesagt, wahrscheinlich nicht der beste Weg, aber mit ein wenig Errorhandling finde ich das für ca 400 User eine akzeptable Lösung. Die Wahrscheinlichkeit das zwei Personen genau gleichzeitig teilnehmen klicken, ist recht gering.
@ Ulrich:
Ähnliches habe ich auch schon gefunden bzw. eine nette Anleitung für computed values in der gleichen view auf der XPage (
http://www-10.lotus.com/ldd/ddwiki.nsf/dx/VideoXPagesViewControlDisplayHTMLComputedCol.htm ).
Bei deiner Lösung habe ich noch ein Problem: Auf der XPage wo die view brechnet wird, habe ich nur View2. Wie kriege ich den key?
Ich hatte folgendes gefunden, um mir eine ganze Spalte zu holen. Mit dem getColumnValue kriege ich dann jedoch eine Fehler.
var v:NotesView = database.getView("vwCourse");
var vcourse:java.util.Vector = v.getColumnValue("Seats");