If statement 如果是,则为新文档编码
我有一个按钮可以保存文档,并为添加到文档中的用户创建响应文档。我有一个@Unique函数为我的表单编号生成一个随机数 我遇到的问题是,当我进入并编辑文档并保存和发送响应文档时,它将其视为不同的文档,因此表单编号也在更改。父文档的表单编号需要保持不变 是否有一种简单的方法来检查是否已经有一个表单编号,如果已经有,则保持不变?如果没有,就给它一个随机数 以下是“我的保存和发送”按钮上的代码:If statement 如果是,则为新文档编码,if-statement,xpages,If Statement,Xpages,我有一个按钮可以保存文档,并为添加到文档中的用户创建响应文档。我有一个@Unique函数为我的表单编号生成一个随机数 我遇到的问题是,当我进入并编辑文档并保存和发送响应文档时,它将其视为不同的文档,因此表单编号也在更改。父文档的表单编号需要保持不变 是否有一种简单的方法来检查是否已经有一个表单编号,如果已经有,则保持不变?如果没有,就给它一个随机数 以下是“我的保存和发送”按钮上的代码: // get handle to names list var item = new Array(docum
// get handle to names list
var item = new Array(document1.getItemValue("assignedassociates"));
var attach:String;
// loop through the list to create a review doc for each person listed
for(var i = 0; i <= (@Elements(item)-1); i++){
var newdoc:NotesDocument = database.createDocument()
newdoc.replaceItemValue("Form", "Review");
newdoc.replaceItemValue("datecreated", document1.getItemValueString("datecreated"));
newdoc.replaceItemValue("formnumber", document1.getItemValueString("formnumber"));
newdoc.replaceItemValue("title", document1.getItemValueString("title"));
newdoc.replaceItemValue("department", document1.getItemValueString("department"));
newdoc.replaceItemValue("description", document1.getItemValueString("description"));
newdoc.replaceItemValue("assignedassociates", item[i]);
newdoc.replaceItemValue("Status", "Sent");
// attachment URL
// calculate file path
// check for multiple attachments, create multiple URLs
attach = "http://domtest01.hendricks.org/chad/bloodhound.nsf/0/" + document1.getDocument().getUniversalID() +
"/$file/" + @AttachmentNames() + "?openElement";
newdoc.replaceItemValue("AttachmentURL", attach);
// set the security fields on the new doc we created
setSecurityFields(newdoc, item[i]);
newdoc.save();
}
// update document history
var cuser:NotesName=session.createName(@UserName()); // gets user name in name field
updateHistoryField(document1.getDocument(),cuser.getCommon(),"EditHistory","form_create"); // call function
// show assigned docs
requestScope.put("showContainer", true);
//获取名称列表的句柄
var item=新数组(document1.getItemValue(“assignedassociates”);
var附加:字符串;
//在列表中循环,为列出的每个人创建一个审阅文档
对于(var i=0;i
日期: ;
表格编号:
标题: ;;
部门:
说明:
附件:
联系
审查文件:
试试这个(包括回收):
让我们知道进展如何
更新
如果表单编号在创建后不应更改,则对行使用此选项
<xp:tr>
<xp:td style="font-weight:bold">Form Number:</xp:td>
<xp:td>
<xp:inputText
id="inputText3"
value="#{document1.formnumber}" disabled="true"
required="true" rendered="#{javascript:document1.isNewNote()}">
<xp:this.validators>
<xp:validateRequired message="You must enter a Form Number."></xp:validateRequired>
<xp:validateLength message="Form Number must be 8 characters in length."></xp:validateLength>
</xp:this.validators>
<xp:this.defaultValue><![CDATA[#{javascript:session.evaluate("@Unique")}]]></xp:this.defaultValue>
</xp:inputText>
<xp:text escape="true" id="displayText3"
value="#{document1.formnumber}"
rendered=""#{javascript:!document1.isNewNote()}"></xp:text>
</xp:td>
</xp:tr>
另一句话:使用标签作为标签,使用CSS作为格式。粗体标签已经过时了,所以在CSS中有一个单一的定义会使采用更容易。如果你打算让它多语言,你也需要标签(即使在美国也有中文和西班牙文,如果你为7/11工作,也有印地语)如何设置父文档上的表单编号?您是否在寻找类似的内容?如果(document1.isNewNote()){return@Unique();}是的,但在我上面当前的按钮代码中,是否有一个特定的位置需要插入该代码?为了回答您的第一个问题,我只使用session.evaluate(@Unique))在默认值字段中。尝试将父文档上表单编号字段的默认值中的代码更改为:if(document1.isNewNote()){session.evaluate(@Unique);}谢谢,这会起作用,但是表单编号是在页面加载时生成的,但是只有单击按钮才能生成响应文档。我将尝试另一种方法,看看它是否有效……抱歉,每次编辑主文档时,它仍会生成不同的编号。编辑文档时,正确的表单编号将显示在字段中ument,但当我单击按钮(运行此代码)时它不是拉那个数字,而是创建一个新的数字。你没有提供创建主文档的代码,因此任何人都无法猜测你在那里做了什么。将它添加到你的问题中,我们可以指出那里需要更改的内容。后面没有代码,只是一个标准表单。只有名称、部门、标题和描述的文本字段。我然后使用Dojo名称选择器来选择需要响应文档的用户。我在主文档上的唯一代码是javascript,用于为默认值中的表单编号生成随机数:session.evaluate(@Unique)。向我们展示代码!讨论它
var item:java.util.Vector = document1.getItemValue("assignedassociates");
if (!document1.hasItem("formnumber")) {
document1.replaceItemValue("formnumber",session.evaluate("@Unique"));
}
for(var curItem in item) {
try {
var newdoc:NotesDocument = database.createDocument();
newdoc.replaceItemValue("Form", "Review");
newdoc.replaceItemValue("datecreated", document1.getItemValueString("datecreated"));
newdoc.replaceItemValue("formnumber", document1.getItemValueString("formnumber"));
newdoc.replaceItemValue("title", document1.getItemValueString("title"));
newdoc.replaceItemValue("department", document1.getItemValueString("department"));
newdoc.replaceItemValue("description", document1.getItemValueString("description"));
newdoc.replaceItemValue("assignedassociates", curItem);
newdoc.replaceItemValue("Status", "Sent");
// attachment URL
var attach = "http://domtest01.hendricks.org/chad/bloodhound.nsf/0/" + document1.getDocument().getUniversalID() +
"/$file/" + @AttachmentNames() + "?openElement";
newdoc.replaceItemValue("AttachmentURL", attach);
// set the security fields on the new doc we created
setSecurityFields(newdoc, curItem);
newdoc.save();
// Cleanup!
newdow.recycle();
} catch (e) {
// Some clever error handling here
}
}
// update document history
var cuser:NotesName=session.createName(@UserName()); // gets user name in name field
updateHistoryField(document1.getDocument(),cuser.getCommon(),"EditHistory","form_create");
// show assigned docs
requestScope.put("showContainer", true);
<xp:tr>
<xp:td style="font-weight:bold">Form Number:</xp:td>
<xp:td>
<xp:inputText
id="inputText3"
value="#{document1.formnumber}" disabled="true"
required="true" rendered="#{javascript:document1.isNewNote()}">
<xp:this.validators>
<xp:validateRequired message="You must enter a Form Number."></xp:validateRequired>
<xp:validateLength message="Form Number must be 8 characters in length."></xp:validateLength>
</xp:this.validators>
<xp:this.defaultValue><![CDATA[#{javascript:session.evaluate("@Unique")}]]></xp:this.defaultValue>
</xp:inputText>
<xp:text escape="true" id="displayText3"
value="#{document1.formnumber}"
rendered=""#{javascript:!document1.isNewNote()}"></xp:text>
</xp:td>
</xp:tr>
<xp:tr>
<xp:td style="font-weight:bold">Form Number:</xp:td>
<xp:td>
<xp:text escape="true" id="displayText3"
value="#{document1.formnumber}"></xp:text>
</xp:td>
</xp:tr>
document1.replaceItemValue("formnumber",session.evaluate("@Unique"));