大家好! 小弟附上程序,运行中当掉了,想不出什么问题。请老师指明方向!
REPORT z_alv.
TABLES: ekko,
ekpo,
lfa1,
mepo1211,
makt.
TYPE-POOLS: SLIS.
TYPES: BEGIN OF T_ITAB,
BUKRS like EKKO-BUKRS,
AEDAT like EKKO-AEDAT,
EBELN like EKKO-ebeln,
MENGE like EKPO-MENGE,
MEINS like EKPO-MEINS,
NETPR like EKPO-NETPR,
MATNR like EKPO-MATNR,
EBELP like EKPO-EBELP,
lifnr like lfa1-lifnr,
NAME1 like LFA1-NAME1,
MAKTX like MAKT-MAKTX,
End of T_ITAB.
DATA: it_itab type standard table of T_ITAB WITH HEADER LINE.
DATA: gw_layout type slis_layout_alv,
gw_fcat type slis_fieldcat_alv,
ge_fcat type standard table of slis_fieldcat_alv.
perform FRM_FIELDCAT.
perform frm_alv_out.
selection-screen begin of block 10 with frame title text-a10.
select-options: s_bukrs for ekko-bukrs no intervals obligatory no-extension.
selection-screen: skip 1.
select-options: s_aedat for ekko-aedat.
selection-screen:skip 1.
select-options:
s_ebeln for ekko-ebeln,
s_matnr for ekpo-matnr,
s_lifnr for ekko-lifnr.
selection-screen end of block 10.
select K~BUKRS
K~AEDAT
K~ebeln
P~MENGE
P~MEINS
P~NETPR
P~MATNR
P~EBELP
l~lifnr
L~NAME1
M~MAKTX
from makt as m
inner join ekpo as p
on m~mandt = p~mandt
inner join ekko as k
on p~ebeln = k~ebeln
inner join lfa1 as l
on k~lifnr = l~lifnr
up to 1
rows
into corresponding fields of table it_itab.
*
*loop at it_itab.
*
*endloop.
**write: it_itab-ebeln,
**it_itab-matnr,
**it_itab-BUKRS,
**it_itab-BUKRS,
**it_itab-MENGE,
**it_itab-MEINS,
**it_itab-NETPR,
**it_itab-NETPR,
**it_itab-EBELP,
**it_itab-lifnr,
**it_itab-NAME1,
**it_itab-MAKTX.
INCLUDE ZALV_FRM_FIELDCATF01.
*&---------------------------------------------------------------------*
*& Form FRM_FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_FIELDCAT .
clear gw_fcat.
gw_fcat-key =''.
gw_fcat-fieldname ='ebeln'.
gw_fcat-no_zero ='X'.
gw_fcat-seltext_l ='ebeln'.
append gw_fcat to ge_fcat.
clear gw_fcat.
gw_fcat-key =''.
gw_fcat-fieldname ='matnr'.
gw_fcat-no_zero ='X'.
gw_fcat-seltext_l ='matnr'.
append gw_fcat to ge_fcat.
ENDFORM. " FRM_FIELDCAT
*&---------------------------------------------------------------------*
*& Form FRM_ALV_OUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FRM_ALV_OUT .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
* I_CALLBACK_PROGRAM = ' '
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_USER_COMMAND = ' '
* I_STRUCTURE_NAME =
IS_LAYOUT = gw_layout
IT_FIELDCAT = ge_fcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
* IT_SORT =
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
* I_SAVE = ' '
* IS_VARIANT =
* IT_EVENTS =
* IT_EVENT_EXIT =
* IS_PRINT =
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
* IR_SALV_LIST_ADAPTER =
* IT_EXCEPT_QINFO =
* I_SUPPRESS_EMPTY_DATA = ABAP_FALSE
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ge_fcat
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM.