Autor Thema: Felder aktualisieren  (Gelesen 2458 mal)

Offline uwepa

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Felder aktualisieren
« am: 05.07.05 - 15:16:01 »
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

  • Gast
Re: Felder aktualisieren
« Antwort #1 am: 05.07.05 - 15:19:51 »
Was klappt nicht ?

Ein paar mehr Details wären schon hilfreich.

Driri

  • Gast
Re: Felder aktualisieren
« Antwort #2 am: 05.07.05 - 15:20:57 »
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.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder aktualisieren
« Antwort #3 am: 05.07.05 - 15:24:55 »
@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" ...

Offline uwepa

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Felder aktualisieren
« Antwort #4 am: 05.07.05 - 15:33:13 »
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))

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder aktualisieren
« Antwort #5 am: 05.07.05 - 16:11:59 »
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";

Ah, dann kommst Du aus Sachsen-Anhalt ... Und bist Dir sicher, dass keine weiteren Mitarbeitern mit Ansprüchen anderer Bundesländer eingestellt werden (Aussendienstler im Vertrieb zum Beispiel).

Deine Halbe-Tage-Mathematik verstehe ich noch nicht so ganz: Die Vorgabe ist auskommentiert, unten wird aber dann damit weitergerechnet.

Wenn Du wirklich die Feiertage auf ein einziges Bundesland (mit "harmlosen" Regeln und nicht so wie Bayern oder Thüringen ...) begrenzen können solltest, dann solltest Du auch die Feiertage in Setup-Dokumente auslagern, um nicht jedes Mal den Code ändern zu müssen, bloss weil wieder so ein ganzes Jahr vorbei ist.

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

Warum ?

Aber zurück zur Frage: Funktioniert jetzt Dein @SetField ?

Bernhard

Offline uwepa

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Felder aktualisieren
« Antwort #6 am: 05.07.05 - 16:35:37 »
Nein das SetField zeigt immer noch den Wert 0 an (Vorgabe)

Offline uwepa

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Felder aktualisieren
« Antwort #7 am: 05.07.05 - 16:36:57 »
Auf Deine Frage, warum ich den Wert genommen mit Hand eintrage.

Ich bin ein absoluter Laie und froh, dass ich die DB so weit mit Eurer Hilfe hinbekommen habe.

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Felder aktualisieren
« Antwort #8 am: 05.07.05 - 16:46:43 »
Nein das SetField zeigt immer noch den Wert 0 an (Vorgabe)

Wie sieht denn die Formel aus, in der du diese @SetField-Anweisung verwendest?


Axel
 
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline uwepa

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Felder aktualisieren
« Antwort #9 am: 05.07.05 - 16:48:01 »
@If((Genommen+Tage) > Anspruch;@Prompt([Ok];"Achtung";"Es steht Ihnen nur noch "+@Text(Anspruch-Genommen)+" Tage Urlaub zur Verfügung!");@SetField("OK" ; 1))

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder aktualisieren
« Antwort #10 am: 05.07.05 - 16:50:07 »
Nochmal zur Erinnerung: Das steht in der Eingabevalidierung ...

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Felder aktualisieren
« Antwort #11 am: 05.07.05 - 16:58:14 »
Hi,

ich bezweifle, dass man @SetField in der Eingabevalidierung verwenden kann.

Was willst du denn mit der Formel erreichen? Was hat den das Feld OK für einen Sinn?


Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline uwepa

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Felder aktualisieren
« Antwort #12 am: 05.07.05 - 17:06:59 »
Ich möchte dieses Feld auf einen bestimmten Wert setzen.
Dieses soll bei der Weiterleitung des Mails an den nächsten Bearbeiter
(über eine Schaltfläche) abgefragt werden.
Die Aktion der Schaltfläche soll nur dann ausgeführt werden,
wenn der Wert auf 1 steht.
Sonst erhält ja der nächste Bearbeiter unter umständen einen fehlerhaften Antrag.

Offline uwepa

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Felder aktualisieren
« Antwort #13 am: 05.07.05 - 17:13:20 »
Übrigens Bernhard wünsche ich noch alles Gute nachträglich zum Geburtstag.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Felder aktualisieren
« Antwort #14 am: 05.07.05 - 17:22:06 »
Danke, Uwe. Das freut mich wirklich sehr !

Schau mal, dass Du Dein @SetField in die Eingabeumsetzung umlagerst. In der Eingabevalidierung stehen Dir @Failure und @Success zur Verfügung, und das nützt Dir hier gar nichts.

Konsequent wäre, wenn einen Button hättest: "Antrag stellen", und die dortigen Routinen die entsprechenden Prüfungen durchführen und dementsprechend das Stellen des Antrages dann erlauben oder eben nicht. Mit wirklich sehr viel Erfahrung genau auf diesem Gebiet kann ich mir nciht vorstellen, dass man eine Lösung auf Feld(-prüfungs-)ebene hinbekommen kann, die dann auch noch sicher funktioniert.

Bernhard

PS: Stimmt Sachsen-Anhalt ?  ;)

Offline uwepa

  • Frischling
  • *
  • Beiträge: 8
  • Geschlecht: Männlich
Re: Felder aktualisieren
« Antwort #15 am: 05.07.05 - 17:28:03 »
Ich komme aus dem wunderschönen Harz.
Nicht ganz so hoch wie die Alpen, aber auch schön.

Die DB entspricht der Schablone "Dok-Bibliothek Notes und Web (R6)"
und hier habe ich solange rumgefriemelt bis ich alles soweit hatte.
Nun fehlt der saubere Abschluss.

Uwe

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz