SAP ABAP llama directamente al programa estándar para obtener el número

Los proyectos a veces encuentran algún desarrollo de informe, que puede estar basado en el posprocesamiento de consultas de cupones MB51 u operaciones basadas en listas de inventario. De hecho, este tipo de demanda se puede simplificar tanto en FS como en desarrollo. Llame directamente a los datos del informe estándar para su procesamiento, y el ajuste del plan de seguimiento tiene poco impacto en la función.

plantilla de código de llamada

if IV_SELECTION_SET_VARIANT is INITIAL.
  SUBMIT (IV_REPORT_NAME)
     WITH SELECTION-TABLE selection_table
    AND RETURN.
ELSE.
  SUBMIT (IV_REPORT_NAME)
     WITH SELECTION-TABLE selection_table
     USING SELECTION-SET IV_SELECTION_SET_VARIANT
    AND RETURN.
endif.
FIELD-SYMBOLS <lt_data>             TYPE ANY TABLE.
FIELD-SYMBOLS <lt_data_line>        TYPE ANY TABLE.
DATA          lr_data               TYPE REF TO data.
DATA          lr_data_line          TYPE REF TO data.
DATA          lr_data_descr          TYPE REF TO cl_abap_datadescr.
DATA          lr_data_line_descr    TYPE REF TO cl_abap_datadescr.
cl_salv_bs_runtime_info=>get_data_ref(
     IMPORTING r_data_descr      = lr_data_descr
                          r_data_line_descr = lr_data_line_descr ).
IF lr_data_descr IS NOT BOUND.
  ev_result_json = '[]'.
  EXIT.
ENDIF.

Ejemplo de código:


TABLES:EKKO,EKPO.
SELECT-OPTIONS:
S_LIFNR FOR EKKO-LIFNR,
S_EKORG FOR EKKO-EKORG,
S_EKGRP FOR EKKO-EKGRP,
S_MATNR FOR EKPO-MATNR,
S_EBELN FOR EKPO-EBELN.




FIELD-SYMBOLS <lt_data> TYPE ANY TABLE.
FIELD-SYMBOLS <lt_data_line> TYPE ANY TABLE.

DATA lr_data TYPE REF TO data.
DATA lr_data_line TYPE REF TO data.
DATA lr_data_descr TYPE REF TO cl_abap_datadescr.
DATA lr_data_line_descr TYPE REF TO cl_abap_datadescr.



CL_SALV_BS_RUNTIME_INFO=>SET( EXPORTING DISPLAY = ABAP_FALSE   METADATA = ABAP_FALSE DATA = ABAP_TRUE ).




SUBMIT RM07MSAL
WITH LIFNR IN S_LIFNR  "radiobutton 传参要用‘’
WITH EKORG IN S_EKORG
WITH EKGRP IN S_EKGRP
WITH MATNR IN S_MATNR
WITH EBELN IN S_EBELN
WITH FINAL = 'X'
WITH ALV_DEF = ''
WITH ZERO = ''
EXPORTING LIST TO MEMORY AND RETURN.


TRY.

cl_salv_bs_runtime_info=>get_data_ref(
IMPORTING r_data_descr = lr_data_descr
r_data_line_descr = lr_data_line_descr ).

CREATE DATA lr_data TYPE HANDLE lr_data_descr.
CREATE DATA lr_data_line TYPE HANDLE lr_data_line_descr.

ASSIGN lr_data->* TO <lt_data>.
ASSIGN lr_data_line->* TO <lt_data_line>.

cl_salv_bs_runtime_info=>get_data(
IMPORTING
t_data = <lt_data>
t_data_line = <lt_data_line>
).


CATCH cx_salv_bs_sc_runtime_info.
MESSAGE `无数据` TYPE 'E'.

ENDTRY.

cl_salv_bs_runtime_info=>clear_all( ).

Supongo que te gusta

Origin blog.csdn.net/Wang_Deji/article/details/132102304
Recomendado
Clasificación