在按下按钮时访问GuiGridView表行时出错

2020-08-16 22:58发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨,我仍在使用Screen Pe...

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

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


嗨,我仍在使用Screen Personas 3.0 SP11定制SU3。

我添加了一个脚本按钮来替换保存按钮。 脚本按钮的目的是从简化屏幕上的自定义字段中获取数据,将它们放在"参数"选项卡上的相关行中,然后按(将被隐藏)保存按钮。

我已将以下脚本附加到脚本按钮的onClick事件上。

功能睡眠(毫秒){
   var start = new Date()。getTime();
   对于(var i = 0; i <1e7; i ++){
     如果(new Date()。getTime()-开始>毫秒){
       打破;
     }
   }
 }


//打开参数选项卡(如果尚未选择)
 如果(session.findById(" wnd [0]/usr/tabsTABSTRIP1")。selectedTab!== session.findById(" wnd [0]/usr/tabsTABSTRIP1/tabpPARAM")){
   session.findById(" wnd [0]/usr/tabsTABSTRIP1/tabpPARAM")。select();
 }


//将网格视图表转换为变量。
 var pTable = session.findById(" wnd [0]/usr/tabsTABSTRIP1/tabpPARAM/ssubMAINAREA:SAPLSUID_MAINTENANCE:1104/cntlG_PARAMETER_CONTAINER/shellcont/shell");


//获取表中的行数
 var numRows = pTable.rowCount;
 session.utils.log(" Numrows:" + numRows.toString());


//获取保存变量的列名
 var columnNames = pTable.getColumnName(0);
 var columnValues = pTable.getColumnName(1);


//获取表格的最大可见行。 如果我们不向下翻页,我们将无法获得所有价值
 var maxRows = pTable.maxRows;
 session.utils.log(" Maxrows:" + maxRows.toString());


//设置第一个可见
 pTable.firstVisibleRow = 0;


 var i = 0;
 而(i 
 

第一次按下按钮时,出现以下错误:

我昨天遇到相同的错误。 奇怪的是,这基本上与我在onLoad事件中用于填充自定义字段的代码相同,我只是在读取自定义字段并更新表,而不是相反。

另一个很奇怪的事情是,如果我第二次按下按钮,它会起作用! 一致。 第一次按下按钮时,出现错误。 第二次,更改被发布并正确地保存到数据库中。

在尝试填充表的值之前,是否需要触发一些事件?

再次感谢您的帮助。

布莱恩

(16.3 kB)
5条回答
SAP德到
2020-08-16 23:42

嗨,

我在SP08中遇到了类似的问题,并为此公开了一个事件。 有人告诉我应该从SP09开始解决此问题(我们实际上正在计划对SP11进行更新,因此我尚无法对其进行测试)

直接在参数TAB中尝试测试的目的。 我想这会起作用。 在我的情况下,问题是:按脚本导航到某个地方,然后在其中读取一个表。

在我的某些情况下(并非全部),以下解决方法有所帮助:

>在脚本中导航至参数TAB,然后返回,然后再次至参数TAB,然后阅读表
> 在设置firstvisiblerow之前先设置屏幕刷新

sap.personas.scripting.executeScriptInternal({src:''});
table.firstVisibleRow = 0;

最诚挚的问候,
托马斯

一周热门 更多>