Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Bille am 18.09.04 - 12:07:46

Titel: Problem bei Datumsmanipulation mit AdjustMonth
Beitrag von: Bille am 18.09.04 - 12:07:46
Hallo!

Ich möchte mittels Script das Datum eines Feldes in Abhängigkeit eines anderen Feldes um x Monate verändern.

Mein Code sieht wie folgt aus:

     Dim nLDat As Variant, Rhythmus As Integer
     Rhythmus = Cint(this.Erstellungsrhythmus(0))
     nLDat = this.nächstesLieferdatum(0)
     Call nLDat.AdjustMonth(Rhythmus)

Beim Ausführen bringt er in der letzten Zeile den Fehler "Variant does not contain an object".
Im Debugger sind die Variablen wie folgt belegt:
NLDAT          =  30.09.2005
RHYTHMUS =  12

Könnt Ihr mir sagen, wo mein Fehler liegt?
Evtl. beim Definieren der Variable nLDat?

Gruß, Bille
Titel: Re:Problem bei Datumsmanipulation mit AdjustMonth
Beitrag von: koehlerbv am 18.09.04 - 12:16:56
nLDat ist ein Variant, muss aber für AdjustMonth ein Objekt der Klasse NotesDateTime sein.

Set dtLDate = New NotesDateTime (Cstr (this.nächstesLieferdatum(0) ))

Schau Dir hierzu bitte mal die entsprechende Klasse an, da Du das Objekt ja auch wieder zurück konvertieren musst.

HTH,
Bernhard
Titel: Re:Problem bei Datumsmanipulation mit AdjustMonth
Beitrag von: Semeaphoros am 18.09.04 - 12:19:44
Damit AdjustMonth greifen kann, muss Dein nLDat vom Typ NotesDateTime sein, das ist hier nicht der Fall, das kann Dir aber auch der Debugger sagen .... Du musst das dann aus dem NotesItem über die Eigenschaft DateTimeValue auslesen. Ob das in Kurzschreibweise geht, also this.nächstesLieferdatum.DateTimeValue weiss ich nicht auswendig.
Titel: Re:Problem bei Datumsmanipulation mit AdjustMonth
Beitrag von: koehlerbv am 18.09.04 - 12:25:18
Direkt geht es nicht - DateTimeValue ist eine Property der NotesItem class. Ein solches Objekt ist also vorher zu instantiieren.

Bernhard
Titel: Re:Problem bei Datumsmanipulation mit AdjustMonth
Beitrag von: Bille am 18.09.04 - 12:36:01
Danke für Eure Hilfe!
Genau so hat's funktioniert:

     Dim nLDat As New NotesDateTime(Cstr (this.nächstesLieferdatum(0) ))
     Rhythmus = Cint(this.Erstellungsrhythmus(0))
     Call nLDat.AdjustMonth(Rhythmus)
     this.nächstesLieferdatum = nLDat.DateOnly  

Bille  
 :D