
*&---------------------------------------------------------------------*
*& Report Y_TEST_YO
*&
*&---------------------------------------------------------------------*
*& Extraer datos de ALV de Tx. MB52 para su tratamiento (DEMO)
*& Autor: Yorman Oviedo
*& Fecha: 23/02/2020
*&---------------------------------------------------------------------*
REPORT y_test_yo.
DATA: co_variante(8) TYPE c VALUE 'VARIANT1'.
"--- Estructura de salida del ALV del report Fuente (debe ser igual)
TYPES: BEGIN OF ty_alv_total,
* Key fields
matnr LIKE mara-matnr,
werks LIKE t001w-werks,
lgort LIKE mard-lgort,
sobkz LIKE mkol-sobkz,
ssnum LIKE bickey-ssnum,
pspnr LIKE mspr-pspnr,
vbeln LIKE mska-vbeln,
posnr LIKE mska-posnr,
lifnr LIKE mkol-lifnr,
kunnr LIKE msku-kunnr,
kzbws LIKE mssa-kzbws,
charg LIKE mchb-charg,
* Additional data (texts, unit, ...)
maktx LIKE marav-maktx,
bwkey LIKE mbew-bwkey,
mtart LIKE marav-mtart,
matkl LIKE marav-matkl,
meins LIKE marav-meins,
bwtty LIKE marc-bwtty,
xchar LIKE marc-xchar,
lgobe LIKE t001l-lgobe,
bwtar LIKE mcha-bwtar,
waers LIKE t001-waers,
name1 LIKE t001w-name1,
* Quantities and currencies
labst LIKE mard-labst,
wlabs LIKE mbew-salk3,
insme LIKE mard-insme,
winsm LIKE mbew-salk3,
speme LIKE mard-speme,
wspem LIKE mbew-salk3,
einme LIKE mard-einme,
weinm LIKE mbew-salk3,
retme LIKE mard-retme,
wretm LIKE mbew-salk3,
umlme LIKE mard-umlme,
wumlm LIKE mbew-salk3,
glgmg LIKE marc-glgmg,
wglgm LIKE mbew-salk3,
trame LIKE marc-trame,
wtram LIKE mbew-salk3,
umlmc LIKE marc-umlmc,
wumlc LIKE mbew-salk3,
dummy TYPE alv_dummy,
farbe TYPE slis_t_specialcol_alv,
lvorm LIKE mard-lvorm,
bwesb LIKE marc-bwesb,
wbwesb LIKE mbew-salk3,
END OF ty_alv_total.
DATA: gt_alv_total TYPE TABLE OF ty_alv_total,
gs_alv_total LIKE LINE OF gt_alv_total.
DATA: gr_matart TYPE RANGE OF mara-mtart,
ls_matart LIKE LINE OF gr_matart.
DATA: lv_alv TYPE REF TO cl_salv_table.
START-OF-SELECTION.
"---Damos valor a parametro de selección de Entrada a MB52 (opcional)
ls_matart-sign = 'I'.
ls_matart-option = 'EQ'.
ls_matart-low = 'Z001'.
APPEND ls_matart TO gr_matart.
"--- Llamammos rutina para obtener datos de report RM07MLBS
PERFORM get_datos.
IF gt_alv_total[] IS NOT INITIAL.
"--- En este punto podria hacer algun proceso con los datos obtenidos
"--- y luego mostrarlos en ALV o enviarlos a ITAB
CALL METHOD cl_salv_table=>factory
IMPORTING
r_salv_table = lv_alv
CHANGING
t_table = gt_alv_total.
lv_alv->display( ).
ENDIF.
*&---------------------------------------------------------------------*
*& Form get_datos
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM get_datos.
DATA: lr_data TYPE REF TO data.
FIELD-SYMBOLS: <lt_data> TYPE ANY TABLE.
FIELD-SYMBOLS: <lt_test> TYPE any.
"--- Determinar que cuando se presnete el resulatado ALV, este no se muestre
cl_salv_bs_runtime_info=>set( EXPORTING display = abap_false
metadata = abap_false
data = abap_true ).
"--- Lllamda del Report estandar o Zxxxx
SUBMIT rm07mlbs
USING SELECTION-SET co_variante
WITH matart IN gr_matart
AND RETURN.
TRY.
"--- Obtener los datos en memoria del ALV Resultante
cl_salv_bs_runtime_info=>get_data_ref( IMPORTING r_data = lr_data ).
ASSIGN lr_data->* TO <lt_data>.
IF <lt_data> IS ASSIGNED.
CLEAR gt_alv_total.
FREE gt_alv_total[].
LOOP AT <lt_data> ASSIGNING <lt_test>.
MOVE-CORRESPONDING <lt_test> TO gs_alv_total .
APPEND gs_alv_total TO gt_alv_total[].
ENDLOOP.
cl_salv_bs_runtime_info=>clear_all( ).
ELSE.
CLEAR gt_alv_total.
FREE gt_alv_total[].
ENDIF.
CATCH cx_salv_bs_sc_runtime_info.
MESSAGE 'No se pueden recuperar los datos ALV' TYPE 'E'.
ENDTRY.
ENDFORM. "get_datos
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
10 | |
7 | |
6 | |
4 | |
3 | |
3 | |
3 | |
3 | |
3 | |
3 |