Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Hammer am 16.02.06 - 08:50:57

Titel: Automatische Feldfüllung!
Beitrag von: Hammer am 16.02.06 - 08:50:57
Hallo zusammen,

wir haben ein Kontrollkästchen und ein Datumsfeld.
Nun versuche ich gerade dass wenn jemand einen Hacken in das Kontrollkästchen setzt automatisch das aktuelle Datum in das nebenstehende Datumsfeld schreibt

kann mir jemand hierzu eine kleine Formel veraten?
Wäre sehr dankbar

Vielen Dank im voraus

Gruß
Hammer
Titel: Re: Automatische Feldfüllung!
Beitrag von: klaussal am 16.02.06 - 08:58:03
@if(deinKontrollkasten = "x";@SetField("deinDatumsfeld";@Today);"")

Und die Haken nicht vergessen bei "Felder aktualisieren....." , etc.
Titel: Re: Automatische Feldfüllung!
Beitrag von: Hammer am 16.02.06 - 09:13:40
Hallo Klaus,

vielen Dank für Deine super schnelle Antwort. Ich habe hierzu noch eine kleine Frage und zwar stehen bei uns im Kontrollkästchen standardmäßig eine 0 drin.
Problem: Wenn ich nun eines von unseren Tausend Dokumenten öffne, dort bereits ein Hacken und ein Datum gesetzt ist wird das Datum mit Sicherheit überschrieben :-(
Kann ich es nicht so machen dass ich vorher prüfe ob das Datumsfeld leer ist?

Vielleicht so:

@if(deinKontrollkasten = "x" | Datumsfeld = "";@SetField("deinDatumsfeld";@Today);"")
Titel: Re: Automatische Feldfüllung!
Beitrag von: klaussal am 16.02.06 - 09:22:48
Wenn Du dich ein bisschen mit Script auskennst, sollte Dir die Antwort nicht schwer fallen.
Titel: Re: Automatische Feldfüllung!
Beitrag von: Hammer am 16.02.06 - 09:27:35
Das Problem ist ja genau dieses, dass ich mich "fast" nicht mit Script auskenne :-(
Würde ich mich ja gerne in diesem Gebiet auskennen leider fehlt mir ehrlich gesagt die Zeit und ein gewissen KnowHow dazu. Ein gutes Buch hab ich mir bereits zugelegt.

Gruß
Hammer
Titel: Re: Automatische Feldfüllung!
Beitrag von: koehlerbv am 16.02.06 - 09:56:11
Für diese kleine Aufgabe brauchst Du kein LotusScript - und mit @Functions bist Du doch schon nahe dran. Dein OR ist allerdings logisch falsch.
Ferner solltest Du auch wegen der Konsistenz abfragen, ob das Datumsfeld gefüllt ist und das Kontrollkästchen leer. Dann sollte dort auch der Haken (bitte beachte die Schreibweise) gesetzt sein.
Tip: Um das Datumsfeld zu prüfen, nimm @IsTime.

Bernhard
Titel: Re: Automatische Feldfüllung!
Beitrag von: Glombi am 16.02.06 - 10:11:25
Du musst im Schlüsselwortfeld die Eigenschaft "Felder bei Schlüsselwortänderung aktualisieren" anhaken und im Datumsfeld in der Eingabeumsetzung folgendes eintragen:

@if(deinKontrollkasten != "" & deinKontrollkasten != "0" & Datumsfeld = "";@Today;Datumsfeld)

Andreas
Titel: Re: Automatische Feldfüllung!
Beitrag von: Hammer am 16.02.06 - 10:34:02
Hi Andreas,

vielen Dank für Deine Formel. Habe diese gerade getest und funktioniert auch wunderbar :)
Kleines Problem besteht allerdings und zwar wäre es noch ein "Schmankerl" wenn ich den Hacken wieder aus dem Kontrollkästchen rausnehem, dass dann das Datum wieder aus dem Feld gelöscht wird.
Zweites Problem ist dass ich das Datumsfeld als "Berechnet" stellen muss das hat den Nachteil dass ich bei vorhandenen Dokumenten das Datum zur Not nicht mehr ändern kann.

Wenn es nicht lösbar ist kann ich auch mit dieser Lösung leben.

Trotzdem vielen Dank

Gruß
Hammer
Titel: Re: Automatische Feldfüllung!
Beitrag von: Glombi am 16.02.06 - 10:37:17
Das Feld muss nicht berechnet sein, daher habe ich ja gesagt: Eingabeumsetzungsformel

Hier die Schmankerl-Formel:

@if(
deinKontrollkasten = "" | deinKontrollkasten = "0";
  "";
deinKontrollkasten != "" & deinKontrollkasten != "0" & Datumsfeld = "";
  @Today;
Datumsfeld)

Andreas
Titel: Re: Automatische Feldfüllung!
Beitrag von: Hammer am 16.02.06 - 10:58:42
Hi Andreas,

habe die Formel gerade getest und muss leider sagen dass sie FUNKTIONIERT :-)

Vielen Dank für die schnelle Hilfe

Gruß
Hammer
Titel: Re: Automatische Feldfüllung!
Beitrag von: klaussal am 16.02.06 - 11:26:14
Ich hatte zwischendurch einige dringende Änderungen zu machen, sodass ich erst jetzt wieder dazukomme.
Aber wie ich sehe, hat Andreas ja sehr gut geholfen. Danke !!
Titel: Re: Automatische Feldfüllung!
Beitrag von: Hammer am 22.02.06 - 10:22:10
Hallo zusammen,

nun muss ich den alten Kram wieder hervor kruschteln.
Ich habe nun ein "größeres" Problem und zwar wollte ich zu dem unten beschriebenen Problem.


Das Feld muss nicht berechnet sein, daher habe ich ja gesagt: Eingabeumsetzungsformel

Hier die Schmankerl-Formel:

@if(
deinKontrollkasten = "" | deinKontrollkasten = "0";
 "";
deinKontrollkasten != "" & deinKontrollkasten != "0" & Datumsfeld = "";
 @Today;
Datumsfeld)

Andreas

Die Formel funktioniert und setze diese auch ein. Wir wollen nun eine weitere Formel, die beim schließen eines Dokumentes das aktuelle Datum in das Datumsfeld schreibt. Das aktuelle Datum soll quasi das bestehende Datum einfach überschreiben.

Beispiel: Wenn ein Feld (xy) ein bestimmten Status hat (erledigt) und das dokument abgespeichert wird soll es das Datum im Datumsfeld einfach überschreiben aber nur wenn der Hacken Kontrollkästchen gesetzt ist.

Sprich wenn ich ein Dokument öffne in dem ein Hacken im Kontrollkästchen gesetzt ist und auch ein Datum im Datumsfeld eingetragen ist und ich dieses den Status "erledigt" hat dieses abgespeichert wird soll das aktuelle Datum das Datumfeld (alte Datum) überschreiben.

Ist zwar ein wenig kompliziert erklärt hoffe aber trotzdem dass es jemand verstanden hat :-) und einen Vorschlag hat?

P.S. Wahrscheinlich muss ich die Formel im QuerySave eintragen und dort ist bei mir LotusScript hinterlegt :(

Gruß
Hammer
Titel: Re: Automatische Feldfüllung!
Beitrag von: Hammer am 22.02.06 - 12:38:29
Ich muss doch eigentlich im Querysave nur solch eine ScriptFormel einfügen, oder?

If Source.FiledGetText("Status") = "erledigt" _
AND (source.FieldGetText("Kontrollkästchen")="Ja")) Then
überschreibe das Datumsfeld mit dem aktuellen Datum

und genau dieser letzte Teil (kursiv) fehlt mir :-(

Titel: Re: Automatische Feldfüllung!
Beitrag von: Axel am 22.02.06 - 12:57:09
Code
If Source.FiledGetText("Status") = "erledigt" _
AND (source.FieldGetText("Kontrollkästchen")="Ja")) Then
Source.Document.Datumsfeld = Today

Call source.Refresh



Axel
Titel: Re: Automatische Feldfüllung!
Beitrag von: Hammer am 22.02.06 - 13:26:54
Hi Axel,

vielen Dank für Deine schnelle Hilfe. leider stimmt die Formel nicht, er mekert dass die Syntax nicht richtig wäre.
Ich kann in der Formel keinen Fehler finden :-(


If Source.FieldGetText("Status") = "erledigt" _
AND (source.FieldGetText("Kontrollkästchen")="Ja")) Then
Source.Document.Datumsfeld = Today
End If

Call source.Refresh



P.S. Den blauen Text habe ich hinzugefügt oder verbessert.


Titel: Re: Automatische Feldfüllung!
Beitrag von: Axel am 22.02.06 - 13:29:58
Auf Anhieb sehe ich da auch keinen Fehler. In welcher Zeile meckert er denn rum?

Axel
Titel: Re: Automatische Feldfüllung!
Beitrag von: Hammer am 22.02.06 - 13:34:54
In

If Source.FieldGetText("Status") = "erledigt" _
AND (source.FieldGetText("Kontrollkästchen")="Ja")) Then

Danke
Titel: Re: Automatische Feldfüllung!
Beitrag von: ascabg am 22.02.06 - 13:48:41
Hi,

Hast Du da nicht eine Klammer zu ")" zuviel?

Andreas
Titel: Re: Automatische Feldfüllung!
Beitrag von: Hammer am 22.02.06 - 13:52:27
@Andreas

Stimmt :-) hab ich total übersehen.
Bis jetzt hat er auf jeden Fall mal den Code als angenommen markiert. Werde diesen mal kurz testen und gleich nochmals feedback geben.

Danke
Titel: Re: Automatische Feldfüllung!
Beitrag von: Hammer am 22.02.06 - 15:06:16
Hallo zusammen,

vielen Dank für Eure Hilfe. Es hat tatsächlich funktioniert :-)

Gruß
Hammer