我有2个按钮,button1(为新主文档创建响应文档)& button2(为现有主文档创建响应文档) 当我第一次创建新的主“MyBirthday”文档并创建响应时,即使我尝试创建更多响应文档,也只会创建一个响应文档。这是我隐藏button1的时间,它在调用create-responseDoc函数之前保存主文档。
对于响应文档的第二个或更多条目,我创建了button2,它直接调用create-responseDoc函数,因为我的主文档已经保存。 单击button2不会影响任何内容。它不会创建响应。但是,如果我关闭并重新打开文件..同样的事情也可以。 我发现很难理解幕后实际发生的事情!!
这应该很简单,但我被困在代码或我的理解中。 我的问题在于: 我有一份主要文件'MyBirthday'。我想创建与MyBirthday链接的响应文档“MyFamily Birthday”。我想要这个而不提交我的主文档(我可以保存)。
我做了什么: 我为家庭生日创建了生日xpage和2个字段。单击“创建响应文档1”按钮,首先使用简单操作保存主文档。然后我通过SSJS中的函数创建响应文档。
我创建了两个类似的按钮(第一个用于新文档,第二个用于现有文档):1在其上方将首先保存主文档然后将调用此函数&另一个按钮不会保存主文件,但会调用&创造回应。
功能如下:
function fncCreateResponseDoc(currDoc:NotesDocument)
{
var name = sessionScope.get("FNAME")
var Bday = sessionScope.get("FBIRTH")
var respDoc:NotesDocument = database.createDocument()
respDoc.replaceItemValue("Form","rfFamily")
respDoc.replaceItemValue("FName",name)
respDoc.replaceItemValue("FBirthday",Bday)
respDoc.makeResponse(currDoc)
respDoc.save()
respDoc = null
}
然后就在下面,我重复一遍查看这些回复文件。重复的数据绑定公式如下所示 - > currentDocument.getDocument().getResponses()
在保存主文档之前,我设置了sessionScope变量:
sessionScope.put("FNAME",currentDocument.getItemValueString("FName"))
sessionScope.put("FBIRTH",currentDocument.getItemValueDateTime("FBirthday"))
然后在这个document1的postSaveDocument事件中:
var currDoc:NotesDocument = currentDocument.getDocument(true)
fncCreateResponseDoc(currDoc)
请帮忙!!
答案 0 :(得分:1)
Ravi,很可能你的currDoc没有docid,因为它还没有保存。在开头为您的函数添加一个currDoc。save();
。在将其设置为null之前,还要添加respDoc.recyle();
。此外,为您省略的每个;
刻录一个jostick(并且不要试图争论那个< vbg>)。
让我们知道它是怎么回事。