表控件中的自动滚动和手动滚动

2020-09-23 05:38发布

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

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


你好

我有一个用于扫描序列号的表格控件。 一旦用户扫描了序列号,光标就会自动下降以扫描下一个序列号。 填满页面后,程序将显示下一页以扫描下一组序列号。(通过在PBO中如下设置top_line来实现此目的)。

***设置顶行

如果sy-loopc不是初始的。
如果tc_mat_scan-lines => sy-loopc。
tc_mat_scan-top_line =(tc_mat_scan-lines DIV sy-loopc)* sy-loopc + 1.
ENDIF。
ENDIF。

当用户尝试手动按滚动按钮查看以前的条目但程序按照top_line计算显示页面时,出现问题。 因此有时甚至在滚动页面停留在相同位置并且不会向上滚动之后。

当用户手动按下滚动按钮时,是否有任何方式不会触发我计算top_line的逻辑? 我尝试使用sy-ucom,但sy-ucomm在所有情况下均为空白。

或者是否还有其他方法可以实现以上目标?

谢谢

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

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


你好

我有一个用于扫描序列号的表格控件。 一旦用户扫描了序列号,光标就会自动下降以扫描下一个序列号。 填满页面后,程序将显示下一页以扫描下一组序列号。(通过在PBO中如下设置top_line来实现此目的)。

***设置顶行

如果sy-loopc不是初始的。
如果tc_mat_scan-lines => sy-loopc。
tc_mat_scan-top_line =(tc_mat_scan-lines DIV sy-loopc)* sy-loopc + 1.
ENDIF。
ENDIF。

当用户尝试手动按滚动按钮查看以前的条目但程序按照top_line计算显示页面时,出现问题。 因此有时甚至在滚动页面停留在相同位置并且不会向上滚动之后。

当用户手动按下滚动按钮时,是否有任何方式不会触发我计算top_line的逻辑? 我尝试使用sy-ucom,但sy-ucomm在所有情况下均为空白。

或者是否还有其他方法可以实现以上目标?

谢谢

付费偷看设置
发送
1条回答
Alawn_Xu
1楼-- · 2020-09-23 06:21

Jitendra嗨,

每次使用表控件向导进行表控制时,系统都会注意表控件的滚动逻辑。

如果您强行删除/删除了表格控制向导逻辑,则您拥有控制滚动部分的逻辑。

甚至系统都允许您删除手动创建的向导代码。

我对may表控制程序也做了同样的事情。

如下所示,它可能不是正确的方法,但是我通过使用一些简单的代码解决了。

================================================ =============

控件:使用屏幕9001的zcerti类型表视图。
数据:g_zcerti_lines类型sy-loopc。

================================================ =============

我将此称为USER_COMMAND的PAI中的表演。

如果用户单击表控件的ADD按钮。.
**在滚动表后创建空表控件行

**当用户请求插入新条目时

IF zcerti-top_line> 1。

如果wf_change = abap_true。

执行f_tcont_lines_certi。

ENDIF。

ENDIF。

================================================ ==============
FORM f_tcont_lines_certi。

描述表int_pipi_certi LINES wf_lines。

"要将新记录追加到表中

wf_lines =(g_zcerti_lines + zcerti-top_line-1)-wf_lines。

做wf_lines次。

清除fs_pipi_certi。

将fs_pipi_certi附加到int_pipi_certi。

ENDDO。

ENDFORM。 " F_TCONT_LINES_CERTIp

================================================ ===============

注意:该代码将在表控件中创建很多行,因为它将被多次触发,因此您必须在添加之前删除内部表的空行。

如果有帮助,请予以奖励

一周热门 更多>