使用AdjustDay设置日期字段(NotesDateTime类)

时间:2015-01-22 09:31:00

标签: lotus-notes lotusscript lotus

我的代码有问题,最后当脚本试图保存de doc lotus时显示错误:

  

格式验证错误。

我想更改当天的提醒,我首先尝试的是事件,然后我想将此代码实现到代理中,是这个......

Sub Click(Source As Button)

'... other variables declared ...

Dim dateTime As NotesDateTime
Dim nuevoRecordatorio As Variant

Set uidoc = ws.CurrentDocument
Set doc = uidoc.Document
Set item = doc.GetFirstItem("TempoFechaRecordatorio01")
Set dateTime = item.DateTimeValue

Messagebox (dateTime.DateOnly)

Call dateTime.AdjustDay(15)

Messagebox (dateTime.DateOnly)

nuevoRecordatorio = dateTime.DateOnly

Messagebox (nuevoRecordatorio)

Set item2 = doc.ReplaceItemValue("TempoFechaRecordatorio01",Cdat(nuevoRecordatorio))

Messagebox (doc.TempoFechaRecordatorio01(0))

Call uidoc.Save
Call uidoc.Close End Sub

我试过没有Cdat(...),但结果是一样的:format error

有人能给我任何解决这个问题的指导吗?

1 个答案:

答案 0 :(得分:3)

NotesDateTime.DateOnly属性返回string值,因此您需要使用date函数将此值转换为DateValue值:

'Your code.

Set item2 = doc.ReplaceItemValue("TempoFechaRecordatorio01", DateValue(nuevoRecordatorio))

'Your code.

您也可以直接使用date值:

'Your code.
vDate = doc.GetItemValue("TempoFechaRecordatorio01")(0)

vDate = vDate + 15

doc.ReplaceItemValue("TempoFechaRecordatorio01", Datenumber(Year(vDate), Month(vDate), Day(vDate))
'Your code.

另一方面,您可以使用Evaluate功能:

'Your code.

doc.ReplaceItemValue("TempoFechaRecordatorio01", Evaluate({@Adjust(@Date(TempoFechaRecordatorio01); 0; 0; 15; 0; 0; 0)}, doc)

'Your code.