Hi All,
I have written the following ALV:
REPORT ZSARALV_GRID_EVNTINITLZE MESSAGE-ID ZSARMSGCLASS.
TYPE-POOLS:slis.
DATA:BEGIN OF it_vbak OCCURS 3, "internal table for vbak
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
bstnk LIKE vbak-bstnk,
kunnr LIKE vbak-kunnr,
auart LIKE vbak-auart,
vsnmr_v LIKE vbak-vsnmr_v,
END OF it_vbak.
DATA:BEGIN OF it_vkvp OCCURS 3, "internal table to hold record of vbak and vbap joining
vbeln LIKE vbak-vbeln,
erdat LIKE vbak-erdat,
bstnk LIKE vbak-bstnk,
kunnr LIKE vbak-kunnr,
vsnmr_v LIKE vbak-vsnmr_v,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
arktx LIKE vbap-arktx,
werks LIKE vbap-werks,
wavwr LIKE vbap-wavwr,
kwmeng LIKE vbap-kwmeng,
bedae LIKE vbap-bedae,
prctr LIKE vbap-prctr,
netwr LIKE vbap-netwr,
pstyv LIKE vbap-pstyv,
END OF it_vkvp.
DATA:BEGIN OF it_keko OCCURS 3, "internal table for keko
matnr LIKE keko-matnr,
vbeln LIKE keko-vbeln,
posnr LIKE keko-posnr,
feh_k_anz LIKE keko-feh_k_anz,
feh_sta LIKE keko-feh_sta,
maxmsg LIKE keko-maxmsg,
END OF it_keko.
DATA:BEGIN OF it_final_tab OCCURS 3,
vbeln LIKE vbak-vbeln,
posnr LIKE vbap-posnr,
matnr LIKE vbap-matnr,
arktx LIKE vbap-arktx,
werks LIKE vbap-werks,
vsnmr_v LIKE vbak-vsnmr_v,
bstnk LIKE vbak-bstnk,
wavwr LIKE vbap-wavwr,
kwmeng LIKE vbap-kwmeng,
bedae LIKE vbap-bedae,
feh_sta LIKE keko-feh_sta,
prctr LIKE vbap-prctr,
erdat LIKE vbak-erdat,
feh_k_anz LIKE keko-feh_k_anz,
maxmsg LIKE keko-maxmsg,
netwr LIKE vbap-netwr,
kunnr LIKE vbak-kunnr,
END OF it_final_tab.
" Variables required to build ALV
DATA: report_id TYPE sy-repid.
DATA: i_layout TYPE slis_layout_alv.
DATA: i_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ws_title TYPE lvc_title VALUE 'Collective List of Sales Order Cost Estimates'.
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
PARAMETERS: OrdrCrDt TYPE vbak-erdat OBLIGATORY,
SalsOrg TYPE vbak-vkorg OBLIGATORY,
DevryPlt TYPE vbap-werks OBLIGATORY,
ReqrmntT TYPE vbap-bedae OBLIGATORY DEFAULT 'ZHLV',
SlsDocTp TYPE vbak-auart,
Materal# TYPE vbap-matnr,
CostinSt TYPE keko-feh_sta,
PrfitCnt TYPE vbap-prctr,
SalsItmC TYPE vbap-pstyv,
Soldto TYPE vbak-kunnr,
SalesDc# TYPE vbak-vbeln.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
" Data Selection from VBAK into corresponding internal table(it_vbak)
SELECT vbeln erdat bstnk kunnr auart vsnmr_v INTO CORRESPONDING FIELDS OF TABLE it_vbak FROM vbak
WHERE vbtyp = 'C' AND erdat = OrdrCrDt AND vkorg = SalsOrg .
IF NOT it_vbak[] IS INITIAL.
IF SlsDocTp <> ' ' .
DELETE it_vbak WHERE auart <> SlsDocTp.
ENDIF.
IF Soldto <> ' '.
DELETE it_vbak WHERE kunnr <> Soldto.
ENDIF.
IF SalesDc# <> ' '.
DELETE it_vbak WHERE vbeln <> SalesDc#.
ENDIF.
ELSE.
MESSAGE E001.
ENDIF.
" Data Selection from VBAK and VBAP into corresponding internal table(it_vkvp)
SELECT vbakvbeln vbakerdat vbakbstnk vbakkunnr
vbakvsnmr_v vbapposnr vbapmatnr vbaparktx
vbappstyv vbapnetwr vbapkwmeng vbapwerks
vbapwavwr vbapprctr vbap~bedae
INTO CORRESPONDING FIELDS OF TABLE it_vkvp FROM vbak INNER JOIN vbap ON vbakvbeln = vbapvbeln
FOR ALL ENTRIES IN it_vbak WHERE vbakvbeln = it_vbak-vbeln AND vbapwerks = DevryPlt AND vbap~bedae = ReqrmntT.
IF NOT it_vkvp[] IS INITIAL.
IF Materal# <> ' ' .
DELETE it_vkvp WHERE matnr <> Materal#.
ENDIF.
IF PrfitCnt <> ' '.
DELETE it_vkvp WHERE prctr <> PrfitCnt.
ENDIF.
IF SalsItmC <> ' '.
DELETE it_vkvp WHERE pstyv <> SalsItmC.
ENDIF.
ELSE.
MESSAGE E002.
ENDIF.
" Data Selection from KEKO
SELECT matnr vbeln posnr feh_k_anz feh_sta maxmsg INTO CORRESPONDING FIELDS OF TABLE it_keko FROM keko.
IF NOT it_keko[] IS INITIAL.
IF CostinSt <> ' ' .
DELETE it_keko WHERE feh_sta <> CostinSt.
ENDIF.
ELSE.
MESSAGE E003.
ENDIF.
LOOP AT it_vkvp.
READ TABLE it_keko WITH KEY matnr = it_vkvp-matnr vbeln = it_vkvp-vbeln posnr = it_vkvp-posnr.
it_final_tab-vbeln = it_vkvp-vbeln.
it_final_tab-posnr = it_vkvp-posnr.
it_final_tab-matnr = it_vkvp-matnr.
it_final_tab-arktx = it_vkvp-arktx.
it_final_tab-werks = it_vkvp-werks.
it_final_tab-vsnmr_v = it_vkvp-vsnmr_v.
it_final_tab-bstnk = it_vkvp-bstnk.
it_final_tab-wavwr = it_vkvp-wavwr.
it_final_tab-kwmeng = it_vkvp-kwmeng.
it_final_tab-bedae = it_vkvp-bedae.
it_final_tab-feh_sta = it_keko-feh_sta.
it_final_tab-prctr = it_vkvp-prctr.
it_final_tab-erdat = it_vkvp-erdat.
it_final_tab-feh_k_anz = it_keko-feh_k_anz.
it_final_tab-maxmsg = it_keko-maxmsg.
it_final_tab-netwr = it_vkvp-netwr.
it_final_tab-kunnr = it_vkvp-kunnr.
REFRESH it_keko.
APPEND it_final_tab.
ENDLOOP.
report_id = sy-repid.
END-OF-SELECTION.
PERFORM alv_layout_creation CHANGING i_layout.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = report_id
I_INTERNAL_TABNAME = 'IT_FINAL_TAB'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = report_id
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = i_fieldcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = report_id
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE = ws_title
I_GRID_SETTINGS =
IS_LAYOUT = i_layout
IT_FIELDCAT = i_fieldcat
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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
t_outtab = it_final_tab
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
&----
*& Form alv_layout_creation
&----
text
----
<--P_I_LAYOUT text
----
form alv_layout_creation changing p_i_layout TYPE slis_layout_alv.
CLEAR p_i_layout.
p_i_layout-colwidth_optimize = 'X'.
endform. " alv_layout_creation
When trying to execute the above code I'm getting the follwing error:
Runtime Errors:Read_Report_Line_Too_Long
Short Text:The ABAP Program Lines are wider than the internal table
Need your help to resolve the issue.