如何更改文档的字段值(LotusScript)?

时间:2010-01-28 23:16:28

标签: lotus-notes lotusscript

在一个新的LotusNotes表单中,我有一个计算值字段(“NewOrdProdUID”),该字段使用另一个现有文档的唯一ID正确设置。 我想通过LotusScript更改现有文档中的字段“NewProdAvail”的值。我试过这个:

Sub Querysave(Source As Notesuidocument, Continue As Variant)
 Dim session As NotesSession
 Dim db As NotesDatabase
 Dim ws As New NotesUIWorkspace
 Dim uidoc As notesUIDocument
 Dim odoc As notesDocument 

 Set session = New NotesSession
 Set db = session.CurrentDatabase
 Set uidoc = ws.CurrentDocument

 Set odoc = db.GetDocumentByUNID(uidoc.FieldGetText("NewOrdProdUID"))
 Call odoc.FieldSetText("NewProdAvail", "0")
 Call odoc.Save(True, True)
End Sub

然而,字段“NewProdAval”的值保持不变(在我的情况下为3,而不是0)。 拜托,帮助我!

4 个答案:

答案 0 :(得分:3)

奇怪的是,您似乎也应该收到错误。您正在NotesDocument对象(odoc)上调用NotesUIDocument的前端方法,而NotesDocument类没有名为“FieldSetText”的方法。这应该可以解决问题:

取代Call odoc.FieldSetText(“NewProdAvail”,“0”),试试这个

Call odoc.ReplaceItemValue("NewProdAvail", "0")

希望这有帮助!

答案 1 :(得分:1)

NotesDocument类没有FieldSetText方法。您可以使用:

odoc.replaceItemValue ("NewProdAvail", "0")

或简单地说:

odic.NewProdAvail = "0"

答案 2 :(得分:0)

我用过

Set Item = odoc.replaceItemValue ("NewProdAvail", restAvailable)
Call odoc.Save(True, True)

它有效。谢谢你们的帮助!

答案 3 :(得分:0)

之前的答案,告诉您如何在后端文档中设置字段。我认为值得一提的是后端和前端如何工作。

在编写Lotus Notes客户端时,您需要记住Notes文档具有前端和后端组件。基本上,Lotus Client中的Notes文档也有前端内存版本和相应的后端内存版本。更改应在查询期间传播到后端,然后提交您通过前端进行的更改。

由于之前的答案向您展示了如何直接更改后端文档,因此您还应该了解NotesUIDocument类中的“autoload”属性。 This链接解释得很清楚。其他可以“篡改”字段值设置的内容是受影响字段中的公式,以及字段是计算还是可编辑。

希望这有帮助。