今天做一个报表,说是要一部分MB51的数据,捋逻辑太麻烦了就想着直接用submit的方法,结果上来就给我dump了,我看了一下是因为这个报表用的listalv方法,所以只获取到了header这个表的数据,主要的list表没有获取到,然后我又用memory id 的方法,结果import出来还是空表,接着继续想点子,用ASSIGN (PROGRAM)TABLE[] 的方法,但是submit完我就发现这个不在同一session,空忙活一天
顺便附上失败的代码
SUBMIT RM07DOCS WITH MATNR IN R_MATNR WITH WERKS IN R_WERKS WITH BWART IN R_BWART WITH BUDAT IN R_BUDAT AND RETURN.
IMPORT GT_DATA FROM MEMORY ID 'MB51_LIST' .
FREE MEMORY ID 'MB51_LIST' .
STR = '(RM07DOCS)LIST[]' .
ASSIGN (STR) TO <FT_TAB> .
TRY.
CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF( IMPORTING R_DATA = GR_DATA ).
ASSIGN GR_DATA->* TO <FT_TAB>.
CATCH CX_SALV_BS_SC_RUNTIME_INFO.
MESSAGE 'Unable to get data from SALV' TYPE 'I'.
ENDTRY.
以上方法都失败了,还有其他方法吗
还是说我只能去看mb51的代码写一遍取数过程了
顺便附上失败的代码
SUBMIT RM07DOCS WITH MATNR IN R_MATNR WITH WERKS IN R_WERKS WITH BWART IN R_BWART WITH BUDAT IN R_BUDAT AND RETURN.
IMPORT GT_DATA FROM MEMORY ID 'MB51_LIST' .
FREE MEMORY ID 'MB51_LIST' .
STR = '(RM07DOCS)LIST[]' .
ASSIGN (STR) TO <FT_TAB> .
TRY.
CL_SALV_BS_RUNTIME_INFO=>GET_DATA_REF( IMPORTING R_DATA = GR_DATA ).
ASSIGN GR_DATA->* TO <FT_TAB>.
CATCH CX_SALV_BS_SC_RUNTIME_INFO.
MESSAGE 'Unable to get data from SALV' TYPE 'I'.
ENDTRY.
以上方法都失败了,还有其他方法吗
还是说我只能去看mb51的代码写一遍取数过程了

