ABAP調用別的程序

適用場景:

調用別人程序或標準程序 然後加以過濾

 

&---------------------------------------------------------------------*
*& Report ZFI020
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT zfi020.

TABLES mseg .


TYPES:

  BEGIN OF ty_result,
    root      TYPE i,
    level     TYPE i,
    ebeln     TYPE ebeln,
    ebelp     TYPE ebelp,
    aufnr     TYPE mseg-aufnr,
    kostl     TYPE mseg-kostl,
    kdauf     TYPE mseg-kdauf,
    kdpos     TYPE mseg-kdpos,
    matnr_in  TYPE mseg-matnr,
    maktx_in  TYPE maktx,
    charg_in  TYPE mseg-charg,
    matnr_use TYPE mseg-matnr,
    maktx_use TYPE maktx,
    charg_use TYPE mseg-charg,
    menge     TYPE mseg-menge,
    meins     TYPE mseg-meins,
    lifnr     TYPE ekko-lifnr,
    name1     TYPE  lfa1-name1,
  END OF ty_result .

SELECT-OPTIONS:
  s_werks FOR mseg-werks NO INTERVALS "工廠
                         NO-EXTENSION
                         OBLIGATORY
                         
DEFAULT '1000',
  s_matnr FOR mseg-matnr "物料編碼
  s_charg FOR mseg-charg "批次號


DATA gs_out TYPE  ty_result .

DATAgt_out TYPE  TABLE OF ty_result .


FIELD-SYMBOLS<lt_pay_data> TYPE ANY TABLE,
               <lt_temp>     TYPE ANY TABLE,
               <ls_data>.

DATA lr_pay_data              TYPE REF TO data.


cl_salv_bs_runtime_info=>setEXPORTING    display  abap_false
                                            metadata 
abap_false
                                            
data     abap_true ).

SUBMIT zpp008
   
WITH s_matnr  IN s_matnr
   
WITH s_charg IN  s_charg
    
AND RETURN.




*
*  cl_salv_bs_runtime_info=>set( EXPORTING display  = abap_false
*                                            metadata = abap_false
*                                            data     = abap_true ).
*
*   CL_SALV_BS_RUNTIME_INFO=>SET(
*     EXPORTING
*       DISPLAY  = ABAP_FALSE
*       METADATA = ABAP_FALSE
*       DATA     = ABAP_TRUE ).
CLEAR lr_pay_data.
UNASSIGN <lt_pay_data>.

TRY.
    cl_salv_bs_runtime_info=>get_data_ref(
      IMPORTING r_data lr_pay_data ).
    ASSIGN lr_pay_data->TO <lt_pay_data>.

  CATCH cx_salv_bs_sc_runtime_info.
ENDTRY.

cl_salv_bs_runtime_info=>clear_all( ).
IF <lt_pay_data> IS ASSIGNED.
  LOOP AT <lt_pay_data> ASSIGNING <ls_data>.
    MOVE-CORRESPONDING <ls_data> TO gs_out.
    APPEND gs_out TO gt_out.
  ENDLOOP .
ENDIF  .



LOOP AT gt_out INTO gs_out .
  SELECT  SINGLE  a~lifnr b~name1 INTO gs_out-lifnr ,gs_out-name1 )
    FROM ekko AS a
    
JOIN lfa1 AS ON a~lifnr b~lifnr
    
WHERE a~ebeln gs_out-ebeln .



ENDLOOP .

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章