Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Darkface am 18.10.02 - 10:42:45

Titel: Formelsprachenfehler
Beitrag von: Darkface am 18.10.02 - 10:42:45
Hallo zusammen ich haben folgenden Formelsprachencode und ich möchte eine Zahl ausgeben. Das Problem ist, das Notes mir sagt:
Falscher Datentyp für Operator oder @Funktion: Zeit / Datum erwartet

Code
MGebDat := @Month (GebDat);
MBeginn := @Month (Beginn);
YGebDat := @Year (GebDat);
YBeginn := @Year (Beginn);
DGebDat := @Day (GebDat);
DBeginn := @Day (Beginn);
@If ((MGebDat > MBeginn); YBeginn-YGebDat -1; @If ((MGebDat < MBeginn); YBeginn-YGebDat; @If ((DGebDat > DBeginn); YBeginn-YGebDat- 1; YBeginn-YGebDat)))

Über eine Hilfe wäre ich sehr dankbar.

Gruß
  Darkface
Titel: Re:Formelsprachenfehler
Beitrag von: Axel am 18.10.02 - 10:55:22
Hi,

schau mal ob die Felder, die du an @Day, @Month und @Year übergibst, Datumsfelder sind.


Axel
   
Titel: Re:Formelsprachenfehler
Beitrag von: Darkface am 18.10.02 - 11:19:34
Ja es sind alles Datums/Zeitfelder

Gruß
  André
Titel: Re:Formelsprachenfehler
Beitrag von: dirk_2909 am 18.10.02 - 11:22:32
Sind auch in allen Feldern Werte?? Evtl. Vorgabewerte eingeben (z.B. @Today)
Titel: Re:Formelsprachenfehler
Beitrag von: Rob Green am 18.10.02 - 11:35:50
mach doch mal folgendes:
aus
"MGebDat := @Month (GebDat);
MBeginn := @Month (Beginn);
YGebDat := @Year (GebDat);
YBeginn := @Year (Beginn);
DGebDat := @Day (GebDat);
DBeginn := @Day (Beginn);"

stepweise vorgehen. Heißt: zunächst die erste Zeile als Formel, mehr nicht und schauen, ob ein Fehler kommt. wenn ok, dann die zweite Zeile. Damit hast Du schon mal beide Felder abgechecked.

Dann schreib in dritten Schritt diese ganze Formel wieder rein und dazu die erste IF Bedingung:
MGebDat := @Month (GebDat);
MBeginn := @Month (Beginn);
YGebDat := @Year (GebDat);
YBeginn := @Year (Beginn);
DGebDat := @Day (GebDat);
DBeginn := @Day (Beginn);
@If ((MGebDat > MBeginn); YBeginn-YGebDat -1;-9999)

im 4. step ...usw...
Titel: Danke
Beitrag von: Darkface am 18.10.02 - 12:35:39
Hallo zusammen,
es hat funktioniert.
Ich bin mit der Bearbeitung (dank Rob Green) mal durchgegangen und mir ist aufgefallen das ein Feld keinen Wert hatte. Es war in einer Tabelle und deswegen war es für das andere feld nicht sichtbar.
Lösung:
Habe ein verstecktes Feld eingebaut, was den Wert enthält.

Jetzt geht es.

Danke an alle die geholfen haben.

Gruß
  André
Titel: Re:Formelsprachenfehler
Beitrag von: wflamme am 18.10.02 - 14:05:08
Hi,
Jahresalter(?) geht auch einfacher:

http://www.sns1.de/partner/flamme/wflamme.nsf/Shortcut/Jahresalter

Grüße,
WF
Titel: Re:Formelsprachenfehler
Beitrag von: Rob Green am 18.10.02 - 14:45:46
das "einfacher" ist mE nach tückish, da Du die Funktion in einer Spalte verwendest, und für das was es zu erreichen gilt, viel zu viel Performance frisst. Das @now peitscht den Indizierungstask für diese View nonstop 24 Stunden am Tag an.

Lasse für solche Aufgaben lieber einen täglichen Agent über die Geburtsdocs laufen, der sie dann entsprechend einkategorisiert oder was auch immer tut.
Titel: Re:Formelsprachenfehler
Beitrag von: wflamme am 18.10.02 - 14:59:42
Ja, natürlich (manueller Refresh geht aber auch).
War aber eher als Beispiel für Alter/Datumsdifferenz gedacht - dasselbe Problem tritt ja immer auf, wenn relativ zur Jetztzeit berechnet wird.

Grüße!
Wolfgang