Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

ALV Problems

sarbajitm
Contributor
0 Likes
749

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.

5 REPLIES 5
Read only

Former Member
0 Likes
690

Hi ,

The source code is stored in table REPOSRC field DATA. But it is in compressed form . You can however get the source in an internal table using Read Report statement.

Refer the thread :

this would help u .

Read only

Former Member
0 Likes
690

Hi...

Try this..

Go to UTITILITIES->SETTINGS and check the checkbox 'Default Line Length'...and try....

Cheers

Read only

Former Member
0 Likes
690

hi sarbajit,

the source code u have written may have exceed the reuired length for what ABAP is supposed to take

may be 72 characters.

Try to use this below setting

goto abap editor in UTILITIES->SETTINGS->Check the checkbox and set the source code to 72 characters

Read only

sarbajitm
Contributor
0 Likes
690

Hi! Zero ABAPER and Murali thank for helping me to resolve the issue

Read only

Former Member
0 Likes
690

I would have loved .. had you given me something.. : (......

Never mind... have fun..!!..