2013-02-27 98 views
0

我有2个按钮,button1(为NEW主文档创建响应文档)& button2(为现有主文档创建响应文档) 第一次当我创建一个新的主' MyBirthday'文档,并创建响应,那么即使我尝试创建更多响应文档,也只会创建1个响应文档。这是我隐藏button1的时候,它在调用create-responseDoc函数之前保存了主文档。Xpages:响应文档的奇怪行为

对于响应文档的第二个或更多条目,我创建了button2,它直接调用create-responseDoc函数,因为我的主文档已经保存。 点击button2不会影响任何东西。它不会创建回应。但是,如果我关闭并重新打开文档..这同样的事情工作正常。 我发现很难理解幕后实际发生的事情!

这应该很简单,但我坚持代码或我的理解。 这里我的问题是: 我有一个主要文件'MyBirthday'。我想创建与MyBirthday链接的响应文档'MyFamily Birthday'。我想要这个没有提交我的主文档(我可以保存它)。

我做了什么: 我为家庭生日创建了生日xpage和2个字段。点击'Create response doc 1'按钮,首先我使用简单的操作保存主文档。然后我在SSJS中通过函数创建响应文档。

我创建2个类似的按钮(第一对新文件,第二现有DOC):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")) 

然后在该文档1的postSaveDocument事件:

var currDoc:NotesDocument = currentDocument.getDocument(true) 
fncCreateResponseDoc(currDoc) 

请帮帮忙! !

回答

1

Ravi,很可能你的currDoc没有docid,因为它没有被保存。添加一个currDoc。 save();到你的功能在开始。在将其设置为空之前,还要添加respDoc.recyle();。此外,为你省略的每个;燃烧jostick(并且不要试图争论那个<vbg>)。

让我们知道它是怎么回事。

+0

谢谢你Wissel!我可以得到它。我检查过,在调用create-response-doc函数之前,doc已保存。我想我正在搞这么多数据源。我在新的页面上重复了这一点,它像一个魅力跑。虽然这次我补充说,在我省略的每一行之后。谢谢。 – 2013-03-07 09:20:13

+0

随时接受答案:-)如果您想知道分号,请阅读:http://inimino.org/~inimino/blog/javascript_semicolons – stwissel 2013-03-08 02:12:54

+0

谢谢。关于分号的有趣的博客。再见 :) – 2013-04-09 18:04:18