Autor Thema: Prob. mit SetDocField  (Gelesen 1070 mal)

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Prob. mit SetDocField
« 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?

Windows XP
Notes 6.5

Glombi

  • Gast
Re:Prob. mit SetDocField
« Antwort #1 am: 01.06.04 - 15:21:32 »
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

Offline Selin

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 532
  • Geschlecht: Weiblich
Re:Prob. mit SetDocField
« Antwort #2 am: 01.06.04 - 15:48:23 »
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
Windows XP
Notes 6.5

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz