Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: solaar am 18.08.06 - 07:45:54

Titel: wie klick auf ein Kontrollkästchen protokollieren
Beitrag von: solaar am 18.08.06 - 07:45:54
Hallo zusammen!

Hab leider nicht wirklich viel Erfahrung und gerade erst einen Anwendungsentwicklung-Grundkurs hinter mir. Ich steh nun vor einer vermutlich einfachen Problematik:

Ich erstelle gerade eine Datenbank, die unsere Materialanforderungen auflistet und deren Bearbeitungsstatus.

Es wird beispielsweise ein Monitor und ein Drucker bestellt.

Ich habe nun eine Tabelle erstellt in der ich mehrere Postionen eintragen kann . zusätzlich habe ich ein Kontrollkästchen erstellt in dem der Bearbeiter ein häckchen setzen soll wenn die angeforderet Hardware mit einer Anlagennummer beklebt wurde.

in etwa so:

Pos    Beschreibung     beklebt
1        monitor 
2        drucker

Wenn nun der Bearbeiter das Häckchen in "beklebt" setzt, soll ein Protokolleintrag beim Speichern erfolgen.

dies habe ich hinter den speichern-button gesetzt:

@If(beklebt != "";(@SetField("history"; "--> " + @Text(@Now) + "," +  " " + @Name([CN];@V3UserName) + ":" + " " + "Beklebung erfolgt" + @NewLine + @NewLine + history));"");

OK, mein Fehler ist mir eigentlich klar, nun wird bei jedem Speichern ein Protokolleintrag dafür geschrieben, aber wie änder ich das? Er soll dies quasi nur einmal schreiben, und wegen der besseren Übersicht sollte er auch, falls für beide Positionen ein Häckchen gesetzt wurde ein eintrag a la "Pos 1,2 Beklebung erfolgt " geschrieben werden.

Gebt mir doch mal ein paar Denkanstösse :)
Achtung: leider habe ich 0 Scriptwissen, lediglich kleine copy+paste erfahrungen :)

Vielen Dank
Carsten
Titel: Re: wie klick auf ein Kontrollkästchen protokollieren
Beitrag von: klaussal am 18.08.06 - 08:03:57
Das Kontrollkästchen bekommt die Werte "ja" und "nein" zugeteilt (oder auch nur "ja"). Wenn jetzt der Haken gesetzt wird, dann hat das Feld eben den Inhalt "ja".

Jetzt möchte ich wirklich mal gerne wissen, wie dieser "Grundkurs" ausgesehen hat.... ;D
Titel: Re: wie klick auf ein Kontrollkästchen protokollieren
Beitrag von: solaar am 18.08.06 - 08:19:18
ersteinmal Danke

naja aller Anfang ist schwer, vorallem wenn zwischen GK und erster Anwendung 5 Wochen vergehen...

ok, abändern auf ja ist ja kein Ding, aber das Problem bleibt doch, ob ich jetzt sage feld ="ja" oder != "", an der Protokollierung ändert sich doch nichts, oder?

Titel: Re: wie klick auf ein Kontrollkästchen protokollieren
Beitrag von: klaussal am 18.08.06 - 09:11:56
Try and error .... :-\
Titel: Re: wie klick auf ein Kontrollkästchen protokollieren
Beitrag von: LN4ever am 18.08.06 - 10:45:38
Für dein Vorhaben brauchst du 4 Felder

BESCHREIBUNG: BEARBEITBAR, MEHRFACHWERTE
BEKLEBT: KONTROLLKÄSTCHEN BEARBEITBAR  FORMEL FÜR AUSWAHL, AKTUALISIERUNG BEI SCHLÜSSELWORTÄNDERUNG mit der Formel: BESCHREIBUNG (du verwendest einfach die bestellten Sachen als Werte
BEKLEBTVERMERKT: BERECHNET BEIM ANLEGEN, MEHRFACHWERTE, Formel: ""
HISTORY: BERECHNET BEIM ANLEGEN, MEHRFACHWERTE, Formel: ""

Der entscheidende Teil findet in der Eingabeumsetzungsformel des Felds BEKLEBT statt. Dort schreibst du Einträge in das Feld HISTORY für die Werte, die noch nicht in BEKLEBTVERMERKT stehen und setzst das Feld BEKLEBTVERMERKT auf den Wert von BEKLEBT - und dann das Feld BEKLEBT auf den Wert von BEKLEBTVERMERKT (das sorgt dafür, daß du ein gesetztes Häkchen nicht wieder wegnehmen kannst).

OFFEN:=@Trim(@Replace(BEKLEBT;BEKLEBTVERMERKT;"");
NEWHISTORY:=@If@Elements(OFFEN)<1;"";OFFEN+(" beklebt am "+@Text(@Now)+ " von " + @Name([CN];@Username)));
@If(NEWHISTORY="";NULL;@SetFIELD("HISTORY";@Trim(HISTORY:NEWHISTORY);
@SETFIELD("BEKLEBTVERMERKT";@Trim(@Unique(BEKLEBT:BEKLEBTVERMERKT)));
BEKLEBTVERMERKT

Was passiert ?
Du kannst ein Häkchen setzen, aber nicht wieder wegnehmen.
Jeder neue Eintrag wird einmal protokolliert.

Eine so einfache Lösung hat natürlich ein paar Einschränkungen. Du solltest die Liste der BESCHREIBUNG nicht mehr für die Elemente ändern, die bereits ein Häkchen bei BEKLEBT haben. Aber ansonsten sollte es so funktionieren.
Titel: Re: wie klick auf ein Kontrollkästchen protokollieren
Beitrag von: Thomas Schulte am 18.08.06 - 11:23:47
Du könntest auch die ClassHistory benutzen die Michael Wöhrer gebaut hat bzw. deine Anwendung einfach auf Basis von !!HELP!! oder !!DRIVERS!! aufbauen und die da bereits vorhandenen Mechanismen zur Protokollierung von Änderungen an Feldwerten verwenden.
Titel: Re: wie klick auf ein Kontrollkästchen protokollieren
Beitrag von: solaar am 06.09.06 - 13:36:31
Vielen Dank nochmals!

konnte es mit Eurer Hilfe/Denkanstössen schaffen :)