无法动态隐藏表格单元格中的子表单

2020-08-19 07:49发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)亲爱的朋友, 我有一个要求,我...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


亲爱的朋友,

我有一个要求,我需要使表行(单元格)中的子窗体动态可见/不可见。

我的代码:

data。#subform [0]。#subform [2]。#subform [3] .GT_TABLE.DATA [0]。#subform [1]。#subform [2] :: initialize-(JavaScript,客户端)
var length = xfa.resolveNodes(" data。#subform [0]。#subform [2]。#subform [3] .GT_TABLE.DATA")。length;
//var字段= xfa.form .subform.table.row.all;
xfa.host.messageBox(" Hi");
用于(var i = 0; i <= length; i ++)
{
xfa.host .messageBox(" Hi");
if(xfa.resolveNode(" data。#subform [0]。#subform [2]。#subform [3] .GT_TABLE.DATA [" + i +"]。# subform [1]。#subform [2] .TextField1")。rawValue ==" X"){
this.presence =" hidden";
} else {
this.presence =" visible" ;
}
}

问题1.如果子窗体在第一行被隐藏,则它在表的所有行中都被隐藏,有条件的情况下它应该变为可见/不可见。

2. xfa.host.messageBox(" Hi"); 不能正常工作,我也尝试过这些,但以下均不能用于调试目的:

data。#pageSet [0] .Page1.CurrentPage :: initialize-(JavaScript,客户端)
xfa.host.messageBox(" welcome"," Error",3,0);
$ host .messageBox(" Welcome");
xfa.host.messageBox(" Test");

app.alert(" click");

4条回答
代楠1984
2020-08-19 08:15 .采纳回答

Siva,您好,我想这肯定是一个逻辑错误。
脚本:data。#subform [0]。#subform [2]。#subform [3] .GT_TABLE.DATA [0 ] .FamilySF.SpouseSF :: initialize

GT_TABLE中的每一行都会触发

,但这仅引用GT_TABLE中的当前行。

想象一下GT_TABLE有3行。 然后,上述编码被调用3次,并且引用为:
1。 这个=> GT_TABLE [0] .FamilySF.SpouseSF

2。 这个=> GT_TABLE [1] .FamilySF.SpouseSF

3。 这个=> GT_TABLE [2] .FamilySF.SpouseSF

由于循环,您将多次覆盖this.presence的值。

那么为什么不将此编码更改为:

 data。#subform [0]。#subform [2]。#subform [3] .GT_TABLE.DATA [0] .FamilySF.SpouseSF :: initialize-(JavaScript,客户端)
 如果(this.TextField1.rawValue ==" X"){
   this.presence ="隐藏";
 }其他{
   this.presence ="可见";
 } 

因为每行都要进行编码,并且要探测的字段是相对于子表单(SpouseSF)的,所以可以通过相对绑定检查值。

最好的问候
Pascal

一周热门 更多>