我在测试环境中按照设计呈现的按钮。将同一文档复制到与开发服务器具有相同配置的生产服务器时,不会显示它。
要求amdin重启http任务,压缩数据库但没有任何效果。测试和生产服务器文档具有相同的配置。
要检查什么。
此屏幕截图来自生产数据库:
此屏幕截图与同一服务器上的文档相同,但在Pilot文件夹中:
提交按钮来源:
<xp:button
value="Lab Man Approval"
id="button4">
<xp:this.rendered><![CDATA[#{javascript:document1.isEditable() & (sessionScope.get("flag")==0) & (document1.getItemValueDate("SECTION1DATECOMPLETED")!=null) & (document1.getItemValueString("DOC_STAGE_TX") == "Stage 2") & (@IsMember(@Name("[ABBREVIATE]",document1.getItemValueString("LABManager_NM")),@Name("[ABBREVIATE]",@UserName())))}]]></xp:this.rendered>
<xp:eventHandler
event="onclick"
submit="true"
refreshMode="complete"
immediate="false"
save="true">
<xp:this.action>
<xp:executeScript>
<xp:this.script><![CDATA[#{javascript:var comboBox2:com.ibm.xsp.component.xp.XspSelectOneMenu = getComponent("comboBox2");
var a=comboBox2.getValue();
var f=sessionScope.get("flag");
if (f == 0){
sessionScope.put("flag",1);
}
var f=sessionScope.get("flag");
//sessionScope.put("ITDialog","flag value " + @Text(f));
//var d=getComponent('dialog1');
//d.show();
if (f == 1){
if ( a=="Accepted"){
var d=getComponent('dialog2');
d.show();
}
}
if (f == 1){
if ( a=="More information needed"){
var d=getComponent('dialog2');
d.show();
}
}
if (f == 1){
if ( a=="Cancelled"){
var d=getComponent('dialog2');
d.show();
}
}}]]></xp:this.script>
</xp:executeScript>
</xp:this.action>
</xp:eventHandler>
</xp:button>
答案 0 :(得分:0)
你对你的渲染条件非常满意,你可能想要&#34;外包&#34;那是一个函数调用。使用类似的东西并使用计算字段来查看结果:
function renderApprovalButton(doc) {
var labManager = @Name("[ABBREVIATE]",doc.getItemValueString("LABManager_NM"));
var curUser = @Name("[ABBREVIATE]",@UserName());
/* Take this out when done */
print(doc.isEditable());
print(sessionScope.get("flag")==0);
print(doc.getItemValueDate("SECTION1DATECOMPLETED")!=null);
print(sessionScope.get("flag")==0);
print(doc.getItemValueString("DOC_STAGE_TX") == "Stage 2");
print(labManager);
print(curUser);
print(labManager==curUser);
/* End of debug to be taken out */
var result = doc.isEditable()
&& sessionScope.get("flag")==0
&& doc.getItemValueDate("SECTION1DATECOMPLETED")!=null
&& sessionScope.get("flag")==0
&& labManager == curUser;
return result;
}
这应该可以解决出现问题的方法