求教:ABAP MEMORY

[复制链接]
查看11 | 回复9 | 2008-8-14 10:04:33 | 显示全部楼层 |阅读模式
需求描述:
对于ALV报表输出的数据,对某一行的料号双击跳转至MD04查看物料需求,等到从MD04返回到报表时,我需要一个字段来标识这一行已经被用户转到MD04浏览过。
请各位高手指点需要如何实现?
回复

使用道具 举报

千问 | 2008-8-14 10:04:33 | 显示全部楼层
在ALV上加个标识字段吧
回复

使用道具 举报

千问 | 2008-8-14 10:04:33 | 显示全部楼层
alv->refresh( )
回复

使用道具 举报

千问 | 2008-8-14 10:04:33 | 显示全部楼层
呀,我是初学者,查了很多资料,还是不大懂要怎么做呢,能不能讲详细一些呢
回复

使用道具 举报

千问 | 2008-8-14 10:04:33 | 显示全部楼层
alv上做一个标识列,入MD04时 改这行标识列数值。
回复

使用道具 举报

千问 | 2008-8-14 10:04:33 | 显示全部楼层
alv显示的内表中,多加一个字段,双击后,修改这个字段的值.
返回后,重新刷新alv.根据这个字段判断是否已经查看过了。
回复

使用道具 举报

千问 | 2008-8-14 10:04:33 | 显示全部楼层
逻辑是这样,可是实现起来貌似没那么容易,而且料号可能有多行,点击某一行的料号时,只能对这一行进行标识。另外这个标识是否也是存在内表中的一个字段呢?当内表的数据都输出到ALV时,还能再次修改内表的值吗?
回复

使用道具 举报

千问 | 2008-8-14 10:04:33 | 显示全部楼层
双击,程序可以获取,当前的行号,就是,内表的第几行. 这样就可以读取内表中的值,也可以知道物料号.想怎么处理内表就可以怎么处理.
当转到md04的时候,因为还是在同一个程序里面,因此,abap memory还是保存alv的内表的,当返回,重新显示alv的时候, 就可以根据,你修改的那个字段进行处理了。想怎么处理,就怎么处理.
回复

使用道具 举报

千问 | 2008-8-14 10:04:33 | 显示全部楼层
谢谢,耐心讲解。刚才已经试了一下,但是对于刷新数据的方法(call method grid (name of grid )->refresh_table_display) 还是出现错误。
求:类似功能的实例,好心人把代码贴出来学习一下吧,TKS
回复

使用道具 举报

千问 | 2008-8-14 10:04:33 | 显示全部楼层
原帖由 wpsl5168 于 2008-7-29 11:54 发表
谢谢,耐心讲解。刚才已经试了一下,但是对于刷新数据的方法(call method grid (name of grid )->refresh_table_display) 还是出现错误。
求:类似功能的实例,好心人把代码贴出来学习一下吧,TKS

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.
DATA: LR_GRID TYPE REF TO CL_GUI_ALV_GRID.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING

E_GRID = LR_GRID.
CALL METHOD LR_GRID->CHECK_CHANGED_DATA.
RS_SELFIELD-REFRESH = 'X'."自动刷新
CASE R_UCOMM.
WHEN '&IC1'.

。。。。。。

以上是刷新的代码,可以在内表定义一个字段,双击后,修改这个字段的值。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行