Domino 9 und frühere Versionen > ND6: Entwicklung

Felder aktualisieren

(1/4) > >>

uwepa:
Hallo,

ich habe ja schon fleißig gelesen, aber für mich noch nicht das Passende gefunden. Da mein Chef schon hinter mir steht  :'( bitte ich nun um Hilfe, damit es nicht noch länger dauert. Nun zum Thema.
Ich habe eine kleine Urlaubsdatenbank gebastelt. In der trägt der Benutzer seinen Urlaub ein den er haben will, die Tage werden berechnet. Der Urlaubsanspruch wird auch berechnet. Nun trägt der MA seine bisher erhaltenen Tage ein. Ich kontrolliere nun ob die Anzahl der zur Verfügung stehenden Tage ausreicht. Das klappt auch alles. Aber im Fehlerfall möchte ich, dass das Feld "Genommen" wieder auf 0 gesetzt wird und der Cursor zur Eingabe in diesem Feld steht und die Arbeit erst wieder fortgesetzt wird, wenn alles i. O. ist.
Außerdem möchte ich, dass ein Feld "OK" auf 1 gesetzt wird, damit ich dieses mit abfragen kann, bevor der Urlaubsantrag an den Vorgesetzten weitergeleitet wird. Im Moment wird es in jedem Fall weitergeleitet.
War das verständlich?

Ich habe im Feld "Genommen" in der Eingabevalidierung folgende Befehle:

@If((Genommen+Tage) > Anspruch;
@Prompt([Ok];"Achtung";"Es steht Ihnen nur noch + @Text(Anspruch-Genommen)+" Tage Urlaub zur Verfügung!");
@SetField(OK ; "1"))

Aber das klappt nicht.

Feld "Genommen" Zahl bearbeitbar Vorgabewert 0
Feld "OK" Zahl berechnet Vorgabewert 0

Ich bin für jede Hilfe dankbar.

Uwe

klaussal:
Was klappt nicht ?

Ein paar mehr Details wären schon hilfreich.

Driri:
Hallo,

und herzlich willkommen im Forum.

In der @SetField-Formel ist ein Syntaxfehler. Der Feldname muß in Anführungszeichen, also so :

@SetField("OK"; "1")

Wenn Du in der @If-Formel mehrere Formeln ausführen willst, kannst Du dies über @Do machen.

koehlerbv:
@SetField in der Eingabevalidierung kommt auch nicht besonders gut ...

Soweit meine 2 ct ...

Bernhard

PS: Wie Du die benötigten Urlaubstage berechnest, würde mich mal interessieren ... Ich bin mir nämlich sehr sicher, dass Du dies - gerade mit @functions - nicht hinbekommen kannst. Nicht, dass Du hier in die völlig falsche Richtung rennst und Dein Chef dann nicht mehr "hinter Dir steht" ...

uwepa:
Ich gebe die Pers-Nr. ein und lese aus einer anderen DB den entsprechenden Urlaubsanspruch für den MA.
(Habe ich auch aus dem Forum)

FIELD Anspruch := Anspruch;
Variable := @DbLookup("" : "NoCache" ; ".....":"\\..\\...nsf" ; "Urlaub" ; PERSNR ; 7) ;
@If(@IsError(Variable);@Return("");"");
@SetField ("Anspruch" ; Variable)

Das klappt.

Dann trage ich das Beginndatum und das Endedatum ein und berechne die Tage.
(Habe ich auch aus dem Forum)

von := Beginn;
bis :=Ende;

feierTage := "01.01.2005":"06.01.2005":"25.03.2005":"28.03.2005":"01.05.2005":"05.05.2005":
"16.05.2005":"03.10.2005":"31.10.2005":"24.12.2005":"25.12.2005":"26.12.2005":"31.12.2005":
"01.01.2006":"06.01.2006":"14.04.2006":"17.04.2006":"01.05.2006":"25.05.2006":"05.06.2006":
"03.10.2006":"31.10.2006":"24.12.2006":"25.12.2006":"26.12.2006":"31.12.2006";
REM {halbeTage := 24.12.2005 : 31.12.2005 : ...};

alleTageStr := @Explode(@TextToTime(@Text(Von) + " - " + @Text(Bis)));
alleTage := @TextToTime(alleTageStr);
wochenendeStr := @Replace(@Text(@Weekday(alleTage)); "1" : "7"; "x" : "x") + alleTageStr;
wochenende := @Trim(@Right(wochenendeStr; "x"));
freieTage := @Unique(feierTage : wochenende);
arbeitsTage := @Trim(@Replace(alleTageStr; @Keywords(alleTageStr; freieTage; ""); ""));
REM {halbeArbTage := @Keywords(arbeitsTage; halbeTage; )};

Tage := @Elements(arbeitsTage) - (@Elements(halbeArbTage) / 2);
Tage

Das klappt auch.

Dann trage ich das Feld "Genommen" mit Hand ein.

@If((Genommen+Tage) > Anspruch;@Prompt([Ok];"Achtung";"Es steht Ihnen nur noch "+@Text(Anspruch-Genommen)+" Tage Urlaub zur Verfügung!");@SetField("OK" ; 1))

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln