Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Selin am 01.06.04 - 15:11:23
-
Hallo Zusammen,
ich bin gerade dabei eine Reisedatenbank aufzusetzen.
Habe ein Hauptdokument (die Reise als solche)
und Antwortdokumente für die Mitreisenden.
Im Hauptdokument wird vom fahrer die anzahl der max. verfügbaren Plätze angegeben.
Sobald sich jemand für diese Fahrt anmeldet und diese angenommen wird, wird die Anzahl der Plätze berechnet.
Das ist die Formel, die ich im Knopf "Bestätigen" drin stehen habe.
temp :=@Trim(@GetDocField(MainID; "hin"));
@If (hin_ja1="";"";@If(temp="";@Trim(@SetDocField(MainID; "hin";hin_ja1));@Trim(@SetDocField(MainID; "hin";@Trim(temp : hin_ja1) ))));
hin ist ein Feld im Hauptdokument
hin_ja1 ist ein Kontrollkästchen "ja" im Antwortdokument
Das kreuzt der Mitreisende an, wenn er die Hinreise in Anspruch nehmen möchte.
Nun habe ich das Problem, das ich ja auch Reisen stornieren können muss.
Wenn z.B. ein Mitreisender die Mitfahrt storieren will, muss die Anzahl der freien Plätze ja um eins erhöht werden.
Das klappt nicht.
Kann mir da jemand ein Tip geben?
-
Dein Ansatz könnte einige Speicherkonflikte erzeugen, da das Hauptdokument beim Bestätigem geändert wird - das als Anmerkung vorab.
Jetzt zu Deinem Problem:
Du solltest in dem Hauptdokument in einem versteckten Feld die Document-ID speichern.
Dazu gibt es
@Text(@DocumentUniqueID).
Die Anzahl der Elemente in diesem Feld entspricht dann der Anzahl der Bestätiger.
Bei der Stornierung muss dann die entsprechende ID wieder mit
@SetField(....
@Trim(@Replace(<FELD>;@Text(@DocumentUniqueID);""))
)
entfernt werden.
Andreas
-
Hi,
danke für die Antwort
Die ID hab ich in dem Feld MainID stehen und darüber referenzier ich auf das Hauptdokument.
Hatte eben einen Geistesblitz.
Habe es so gelöst
maxi :=@Trim(@GetDocField(MainID; "hin"));
temp := @Elements(maxi);
Liste := @if(temp = 1; "";@Subset(maxi; temp - 1));
@SetDocField(MainID; "hin"; Liste);
Wahrscheinlich sehr umständlich, aber es funzt ;-)
Viele Grüße