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 Interactive

Former Member
0 Likes
501

hello friends

In my report i take PF-SATUS take one display button on first screen.

after clicking on that button my second screen is ALV.

but in that iwhen i do SUM using symbol in alv or want take output in 'SPEAD SHEET' dump generate.

where is the problem occurs i can't understand.

so plz help me.

thanks in advance.

3 REPLIES 3
Read only

sreeramkumar_madisetty
Active Contributor
0 Likes
467

Hii

this is an Interactive report to list out Billing details

VBRK is the Billing Master table and VBRP is the Billing Item table

Upon double clicking Billing Document produce a Secondary report with line item

details.

Upon clicking VBELN in secondary list, Open the billing document in display mode..

REPORT Z_50657_ALV_EX5 NO STANDARD PAGE HEADING

LINE-COUNT 65(3)

LINE-SIZE 220

MESSAGE-ID ZZ.

************************************************************************

  • Type Pools *

************************************************************************

TYPE-POOLS: SLIS, ICON.

************************************************************************

  • Tables *

************************************************************************

TABLES : VBRK, "Billing Master table

VBRP. "Billing Item table

************************************************************************

  • VARIABLES DECLARATION *

************************************************************************

DATA: STR_DATE LIKE SY-DATUM.

DATA: X_FIELDCAT_VBRK TYPE SLIS_FIELDCAT_ALV,

IT_FIELDCAT_VBRK TYPE SLIS_T_FIELDCAT_ALV.

DATA: X_FIELDCAT_VBRP TYPE SLIS_FIELDCAT_ALV,

IT_FIELDCAT_VBRP TYPE SLIS_T_FIELDCAT_ALV.

DATA: L_LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA: CUR_VBELN(15), CUR_VBELN_VALUE(15).

DATA: TEMP_VBELN(10).

DATA: CTAB LIKE SY-TABIX.

************************************************************************

  • Internal Tables *

************************************************************************

  • Internal table to hold data from VBRK

DATA: BEGIN OF IT_VBRK OCCURS 0,

VBELN LIKE VBRK-VBELN,

WAERK LIKE VBRK-WAERK,

VKORG LIKE VBRK-VKORG,

FKDAT LIKE VBRK-FKDAT,

BUKRS LIKE VBRK-BUKRS,

BUTXT LIKE T001-BUTXT,

CHECK(1) TYPE C,

END OF IT_VBRK.

  • Internal table to hold data from VBRP

DATA: BEGIN OF IT_VBRP OCCURS 0,

VBELN LIKE VBRP-VBELN,

POSNR LIKE VBRP-POSNR,

FKIMG LIKE VBRP-FKIMG,

VRKME LIKE VBRP-VRKME,

NETWR LIKE VBRP-NETWR,

MATNR LIKE VBRP-MATNR,

ARKTX LIKE VBRP-ARKTX,

END OF IT_VBRP.

DATA: BEGIN OF IT_T001 OCCURS 0,

BUKRS LIKE T001-BUKRS,

BUTXT LIKE T001-BUTXT,

END OF IT_T001.

************************************************************************

  • Selection-Screen *

************************************************************************

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

SELECT-OPTIONS: S_VBELN FOR VBRK-VBELN,

S_FKDAT FOR VBRK-FKDAT,

S_MATNR FOR VBRP-MATNR.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-001.

PARAMETERS : LIST RADIOBUTTON GROUP G1,

GRID RADIOBUTTON GROUP G1 DEFAULT 'X'.

SELECTION-SCREEN END OF BLOCK B2.

************************************************************************

                                  • INITIALIZATION ********************

************************************************************************

INITIALIZATION.

STR_DATE = SY-DATUM - 200.

S_FKDAT-LOW = STR_DATE.

S_FKDAT-HIGH = SY-DATUM.

S_FKDAT-SIGN = 'I'.

APPEND S_FKDAT.

************************************************************************

  • At Selection-Screen Output *

************************************************************************

AT SELECTION-SCREEN OUTPUT .

LOOP AT SCREEN.

IF SCREEN-NAME = 'S_FKDAT-HIGH'.

SCREEN-INPUT = 0.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

************************************************************************

  • At Selection-Screen *

************************************************************************

AT SELECTION-SCREEN.

PERFORM VALIDATION.

************************************************************************

  • Start of Selection *

************************************************************************

START-OF-SELECTION.

*POPULATION OF DATA INTO INTERNAL TABLE IT_VBRK AND IT_VBRP

PERFORM GET_DATA_VBRK.

PERFORM FIELDCATALOG_CHANGE.

*ALV GRID/LIST DISPLAY

PERFORM FIRST_SCREEN_DISPLAY.

&----


*& Form VALIDATION

&----


  • text

----


FORM VALIDATION.

IF S_VBELN[] IS NOT INITIAL.

SELECT SINGLE VBELN

FROM VBRK

INTO VBRK-VBELN

WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE e000(Z000) WITH s_vbeln.

STOP.

ENDIF.

ENDIF.

IF S_FKDAT[] IS INITIAL.

MESSAGE I000 WITH 'PLEASE ENTER ALL THE MANDATORY FIELDS'.

STOP.

ENDIF.

IF S_MATNR[] IS NOT INITIAL.

SELECT SINGLE MATNR

FROM MARA

INTO VBRP-MATNR

WHERE MATNR IN S_MATNR.

IF SY-SUBRC <> 0.

MESSAGE I000 WITH 'PLEASE ENTER CORRECT MATERIAL NUMBER'.

STOP.

ENDIF.

ENDIF.

ENDFORM. "VALIDATION

&----


*& Form GET_DATA_VBRK

&----


  • text

----


FORM GET_DATA_VBRK.

SELECT VBELN

WAERK

VKORG

FKDAT

BUKRS

FROM VBRK INTO TABLE IT_VBRK

WHERE VBELN IN S_VBELN

AND FKDAT IN S_FKDAT.

SORT IT_VBRK BY VBELN BUKRS.

SELECT BUKRS

BUTXT

FROM T001 INTO TABLE IT_T001

FOR ALL ENTRIES IN IT_VBRK

WHERE BUKRS = IT_VBRK-BUKRS.

LOOP AT IT_VBRK.

CTAB = SY-TABIX.

LOOP AT IT_T001 WHERE BUKRS = IT_VBRK-BUKRS.

IF SY-SUBRC = 0.

IT_VBRK-BUTXT = IT_T001-BUTXT.

MODIFY IT_VBRK INDEX CTAB.

CLEAR CTAB.

ENDIF.

ENDLOOP.

ENDLOOP.

ENDFORM. "GET_DATA

&----


*& Form FIELDCATALOG_CHANGE

&----


  • text

----


FORM FIELDCATALOG_CHANGE.

*Layout Change

L_LAYOUT-ZEBRA = 'X'.

  • L_LAYOUT-BOX_FIELDNAME = 'CHECK'.

*Define seperate Color for the fields

X_FIELDCAT_VBRK-COL_POS = 1.

X_FIELDCAT_VBRK-FIELDNAME = 'CHECK'.

X_FIELDCAT_VBRK-SELTEXT_M = 'chek'.

X_FIELDCAT_VBRK-CHECKBOX = 'X'.

X_FIELDCAT_VBRK-INPUT = 'X'.

X_FIELDCAT_VBRK-EDIT = 'X'.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-COL_POS = 2.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'VBELN'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C301'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'WAERK'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C201'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'VKORG'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C300'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'FKDAT'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C600'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'BUKRS'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C400'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

X_FIELDCAT_VBRK-TABNAME = 'IT_VBRK'.

X_FIELDCAT_VBRK-FIELDNAME = 'BUTXT'.

X_FIELDCAT_VBRK-EMPHASIZE = 'C500'.

X_FIELDCAT_VBRK-OUTPUTLEN = 15.

APPEND X_FIELDCAT_VBRK TO IT_FIELDCAT_VBRK.

CLEAR X_FIELDCAT_VBRK.

ENDFORM. "FIELDCATALOG_CHANGE

&----


*& Form FIRST_SCREEN_DISPLAY

&----


  • text

----


FORM FIRST_SCREEN_DISPLAY.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'IT_VBRK'

I_INCLNAME = SY-REPID

CHANGING

CT_FIELDCAT = IT_FIELDCAT_VBRK

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.

  • CHECK RADIO BUTTON SELECTION AND ACCORDINGLY DISPLAY LIST OR GRID ALV

IF LIST = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = L_LAYOUT

IT_FIELDCAT = IT_FIELDCAT_VBRK

  • IT_EVENTS =

TABLES

T_OUTTAB = IT_VBRK

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.

CLEAR LIST.

ENDIF.

IF GRID = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = L_LAYOUT

IT_FIELDCAT = IT_FIELDCAT_VBRK

  • IT_EVENTS =

TABLES

T_OUTTAB = IT_VBRK

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.

CLEAR GRID.

ENDIF.

ENDFORM. "FIRST_SCREEN_DISPLAY

&----


*& Form STATUS

&----


  • text

----


  • -->P_EXTAB text

----


FORM STATUS USING P_EXTAB TYPE SLIS_T_EXTAB.

SET PF-STATUS 'STATUS' EXCLUDING P_EXTAB.

ENDFORM. "STATUS

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->RS_SELFIELD text

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN 'BACK' OR 'CANC' OR 'EXIT'.

LEAVE TO SCREEN 0.

WHEN '&IC1'.

IF RS_SELFIELD-FIELDNAME = 'VBELN'.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

INPUT = RS_SELFIELD-VALUE

IMPORTING

OUTPUT = TEMP_VBELN.

TEMP_VBELN = RS_SELFIELD-VALUE.

PERFORM GET_DATA_VBRP.

PERFORM GET_SECOND_SCREEN_DISPLAY.

ENDIF.

ENDCASE.

ENDFORM. "USER_COMMAND

&----


*& Form GET_DATA_VBRP

&----


  • text

----


FORM GET_DATA_VBRP.

SELECT VBELN

POSNR

FKIMG

VRKME

NETWR

MATNR

ARKTX

FROM VBRP INTO TABLE IT_VBRP

WHERE VBELN = TEMP_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH ' NO BILLING DETAILS FOUND'.

EXIT.

ELSE.

MESSAGE S000 WITH 'SUCCESSFUL'.

ENDIF.

ENDFORM. "GET_DATA_VBRP

&----


*& Form GET_SECOND_SCREEN_DISPLAY

&----


  • text

----


FORM GET_SECOND_SCREEN_DISPLAY.

  • FIELDCATALOG CALL

X_FIELDCAT_VBRP-TABNAME = 'IT_VBRP'.

X_FIELDCAT_VBRP-FIELDNAME = 'VRKME'.

X_FIELDCAT_VBRP-EMPHASIZE = 'C500'.

X_FIELDCAT_VBRP-OUTPUTLEN = 10.

APPEND X_FIELDCAT_VBRP TO IT_FIELDCAT_VBRP.

CLEAR X_FIELDCAT_VBRP.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'IT_VBRP'

I_INCLNAME = SY-REPID

CHANGING

CT_FIELDCAT = IT_FIELDCAT_VBRP

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.

  • CHECK RADIO BUTTON SELECTION AND ACCORDINGLY DISPLAY LIST OR GRID ALV

IF LIST = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = L_LAYOUT

IT_FIELDCAT = IT_FIELDCAT_VBRP

I_SCREEN_START_COLUMN = 1

I_SCREEN_START_LINE = 1

I_SCREEN_END_COLUMN = 100

I_SCREEN_END_LINE = 10

  • IT_EVENTS =

TABLES

T_OUTTAB = IT_VBRP

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.

ENDIF.

IF GRID = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = L_LAYOUT

IT_FIELDCAT = IT_FIELDCAT_VBRP

I_SCREEN_START_COLUMN = 1

I_SCREEN_START_LINE = 1

I_SCREEN_END_COLUMN = 100

I_SCREEN_END_LINE = 10

  • IT_EVENTS =

TABLES

T_OUTTAB = IT_VBRP

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.

ENDIF.

ENDFORM. "GET_SECOND_SCREEN_DISPLAY

chk this link

http://www.sap-img.com/abap/an-interactive-alv-report.htm

Reward points if helpful

Revert back for more help

  • Consider this as an Reference Progarm

Regards

Sree

Read only

Former Member
0 Likes
467

hi prashant.

i m sending u my code for what u want.Its exactly what u want .Plz check it.

<b>INCLUDE INITIALIZATION</b>

TABLES: eban,

SSCRFIELDS.

SELECTION-SCREEN BEGIN OF SCREEN 100 TITLE title.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-t01.

PARAMETER:rad1 RADIOBUTTON GROUP rad USER-COMMAND frad1 DEFAULT 'X',

rad2 RADIOBUTTON GROUP rad .

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-t02.

PARAMETER: mtr AS CHECKBOX MODIF ID g3 USER-COMMAND chk1,

p_matnr TYPE eban-matnr MODIF ID g1,

sloc AS CHECKBOX MODIF ID g3 USER-COMMAND chk2,

str_loc TYPE eban-lgort MODIF ID g4.

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-t03.

SELECT-OPTIONS: matnr1 FOR eban-matnr MODIF ID g2.

SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN PUSHBUTTON /20(10) name USER-COMMAND UCOM.

SELECTION-SCREEN END OF SCREEN 100.

name = 'FETCH'.

title = 'Test Report'.

CALL SELECTION-SCREEN '100'.

TYPE-POOLS slis.

  • declaration of internal tables and work areas to be used

DATA: BEGIN OF it_pr OCCURS 0,

banfn TYPE eban-banfn,

bnfpo TYPE eban-bnfpo,

loekz TYPE eban-loekz,

statu TYPE eban-statu,

ekgrp TYPE eban-ekgrp,

matnr TYPE eban-matnr,

werks TYPE eban-werks,

lgort TYPE eban-lgort,

preis TYPE eban-preis,

peinh TYPE eban-peinh,

END OF it_pr.

DATA: BEGIN OF it_mat OCCURS 0,

matnr TYPE eban-matnr,

END OF it_mat.

*DATA:BEGIN OF ITAB1 OCCURS 0,

DATA: l_answer.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,

wa_fieldcat LIKE LINE OF it_fieldcat,

it_event TYPE slis_t_event,

wa_event TYPE slis_alv_event.

  • declaration of variables to be used

DATA: r_ucomm TYPE sy-ucomm,

mat_no TYPE eban-matnr,

len TYPE i VALUE 1,

count TYPE i VALUE IS INITIAL,

iflag TYPE i VALUE IS INITIAL,

iflag1 TYPE i VALUE 0.

DATA :pr_id TYPE sy-repid,

rt_extab TYPE slis_t_extab.

INITIALIZATION.

<b>INCLUDE Z_PRE_CONDITIONS</b>

AT SELECTION-SCREEN OUTPUT.

IF rad1 = 'X'.

LOOP AT SCREEN.

IF screen-group1 = 'G1' OR screen-group1 = 'G4'.

screen-active = '1'.

screen-input = 0.

ELSEIF screen-group1 = 'G2'.

screen-active = '0'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ELSEIF rad2 = 'X'.

LOOP AT SCREEN.

IF screen-group1 = 'G1' OR screen-group1 = 'G4' OR screen-group1 = 'G3' OR screen-group1 = 'G5'.

screen-active = '0'.

ELSEIF screen-group1 = 'G2'.

screen-active = '1'.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

IF mtr = 'X'.

LOOP AT SCREEN.

IF screen-group1 = 'G1'.

screen-input = 1 .

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

IF sloc = 'X'.

LOOP AT SCREEN.

IF screen-group1 = 'G4'.

screen-input = 1 .

ENDIF.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

clear sy-ucomm.

<b>INCLUDE Z_DATA_DISPLAY.</b>

AT SELECTION-SCREEN.

  • PERFORM TO FETCH DATA

CASE SSCRFIELDS.

WHEN 'UCOM'.

PERFORM dataselection.

ENDCASE.

&----


*& Form user_command

&----


  • text

----


  • -->R_UCOMM text

  • -->SELFIELD text

----


FORM user_command USING r_ucomm TYPE sy-ucomm

selfield TYPE slis_selfield .

  • on the basis of the button clicked, execution of a code

CASE r_ucomm.

WHEN 'SAVE'.

DATA: t_spopli LIKE spopli OCCURS 0 WITH HEADER LINE.

t_spopli-varoption = 'PDF'.

APPEND t_spopli.

t_spopli-varoption = 'EXCEL'.

APPEND t_spopli .

CALL FUNCTION 'POPUP_TO_DECIDE_LIST'

EXPORTING

  • CURSORLINE = 1

  • MARK_FLAG = ' '

  • MARK_MAX = 1

  • START_COL = 0

  • START_ROW = 0

textline1 = 'SELECT THE FORMAT OF THE OUTPUT'

  • TEXTLINE2 = ' '

  • TEXTLINE3 = ' '

titel = 'SAVE AS'

  • DISPLAY_ONLY = ' '

IMPORTING

ANSWER = l_answer

tables

t_spopli = t_spopli

EXCEPTIONS

NOT_ENOUGH_ANSWERS = 1

TOO_MUCH_ANSWERS = 2

TOO_MUCH_MARKS = 3

OTHERS = 4 .

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

PERFORM DOWNLOAD.

  • exit when back or exit button is pressed

WHEN 'BACK'.

LEAVE PROGRAM .

WHEN 'EXIT'.

LEAVE PROGRAM .

ENDCASE.

ENDFORM. " user_command

END-OF-SELECTION.

&----


*& Form dataselection

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM dataselection .

  • fetching details from database table on the basis of material number fetched.

IF mtr = 'X' AND sloc = 'X'.

SELECT banfn

bnfpo

loekz

statu

ekgrp

matnr

werks

lgort

preis

peinh

FROM eban INTO TABLE it_pr WHERE matnr = p_matnr AND lgort = str_loc .

ELSEIF mtr = 'X'.

SELECT banfn

bnfpo

loekz

statu

ekgrp

matnr

werks

lgort

preis

peinh

FROM eban INTO TABLE it_pr WHERE matnr = p_matnr.

ELSEIF sloc = 'X'.

SELECT banfn

bnfpo

loekz

statu

ekgrp

matnr

werks

lgort

preis

peinh

FROM eban INTO TABLE it_pr WHERE lgort = str_loc.

ELSE.

MESSAGE e002(zpurreq_msg).

endif.

  • flag to check single access of the database

IF iflag = 0.

PERFORM build_catalog.

ENDIF.

  • perform build_events

perform build_events.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = 'X'

  • I_BUFFER_ACTIVE = ' '

i_callback_program = pr_id

i_callback_pf_status_set = 'SET_PF_STATUS'

i_callback_user_command = '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 =

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

it_fieldcat = it_fieldcat

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

it_events = it_event

  • 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_pr

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.

PERFORM set_pf_status USING rt_extab.

ENDFORM. " dataselection

&----


*& Form set_pf_status

&----


  • text

----


  • -->P_RT_EXTAB text

  • -->P_TYPE text

  • -->P_SLIS_EXTAB text

----


FORM set_pf_status USING p_rt_extab.

SET PF-STATUS 'Z_71945_STATUS'.

ENDFORM.

form

build_events .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = it_event

EXCEPTIONS

list_type_wrong = 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.

  • read contents of table it_event into work area

READ TABLE it_event WITH KEY name = slis_ev_top_of_page

INTO wa_event.

IF sy-subrc EQ 0.

MOVE 'ALV_TOP_OF_PAGE' TO wa_event-form.

MODIFY it_event FROM wa_event INDEX sy-tabix.

ENDIF.

READ TABLE it_event WITH KEY name = slis_ev_end_of_list

INTO wa_event.

IF sy-subrc EQ 0.

MOVE 'ALV_END_OF_LIST' TO wa_event-form.

MODIFY it_event FROM wa_event INDEX sy-tabix.

ENDIF.

ENDFORM. " build_events

&----


*& Form ALV_TOP_OF_PAGE

&----


  • text

----


FORM alv_top_of_page.

DATA:h_header TYPE slis_t_listheader,

wa_header TYPE slis_listheader.

  • building the header of the list

wa_header-typ = 'H'.

CONCATENATE 'Purchase'

'Requisition'

INTO wa_header-info SEPARATED BY space.

APPEND wa_header TO h_header.

CLEAR wa_header.

wa_header-typ = 'S'.

wa_header-key = 'Name:'.

wa_header-info = 'Infosys technologies limited'.

APPEND wa_header TO h_header.

CLEAR wa_header.

wa_header-typ = 'S'.

wa_header-key = 'Address:'.

wa_header-info = 'IT PARK Chandigarh'.

APPEND wa_header TO h_header.

CLEAR wa_header.

wa_header-typ = 'S'.

wa_header-key = 'DATE:'.

CONCATENATE sy-datum+6(2)'-'

sy-datum+4(2)'-'

sy-datum(4)

INTO wa_header-info.

APPEND wa_header TO h_header.

CLEAR wa_header.

wa_header-typ = 'S'.

wa_header-key = 'TIME:'.

CONCATENATE sy-uzeit(2)':'

sy-uzeit+2(2)':'

sy-uzeit+4(2)

INTO wa_header-info.

APPEND wa_header TO h_header.

CLEAR wa_header.

wa_header-typ = 'S'.

wa_header-key = 'Material Number:'.

wa_header-info = p_matnr.

APPEND wa_header TO h_header.

CLEAR wa_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = h_header

i_logo = 'INFY1'.

ENDFORM. "ALV_TOP_OF_PAGE

&----


*& Form ALV_END_OF_LIST

&----


  • text

----


FORM alv_end_of_list.

  • building the footer

DATA: f_footer TYPE slis_t_listheader,

wa_footer TYPE slis_listheader.

wa_footer-typ = 'A'.

CONCATENATE 'Authorized'

'Signature'

':'

INTO wa_footer-info SEPARATED BY space.

APPEND wa_footer TO f_footer.

CLEAR wa_footer.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = f_footer.

ENDFORM. "ALV_END_OF_LIST

&----


*& Form build_catalog

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form build_catalog .

  • building the catalog.

wa_fieldcat-col_pos = 1.

wa_fieldcat-fieldname = 'BANFN'.

wa_fieldcat-tabname = 'eban'.

wa_fieldcat-outputlen = '10'.

wa_fieldcat-seltext_l = 'PUR_REQ'.

wa_fieldcat-datatype = 'C'.

wa_fieldcat-emphasize = 'C511'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 2.

wa_fieldcat-fieldname = 'BNFPO'.

wa_fieldcat-tabname = 'eban'.

wa_fieldcat-outputlen = '9'.

wa_fieldcat-seltext_l = 'ITEM_REQ'.

wa_fieldcat-datatype = 'C'.

wa_fieldcat-emphasize = 'C611'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 3.

wa_fieldcat-fieldname = 'LOEKZ'.

wa_fieldcat-tabname = 'eban'.

wa_fieldcat-outputlen = '7'.

wa_fieldcat-seltext_l = 'DEL_IND'.

wa_fieldcat-datatype = 'C'.

wa_fieldcat-emphasize = 'C511'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 4.

wa_fieldcat-fieldname = 'STATU'.

wa_fieldcat-tabname = 'eban'.

wa_fieldcat-outputlen = '10'.

wa_fieldcat-seltext_l = 'PROC_STAT'.

wa_fieldcat-datatype = 'C'.

wa_fieldcat-emphasize = 'C611'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 5.

wa_fieldcat-fieldname = 'EKGRP'.

wa_fieldcat-tabname = 'eban'.

wa_fieldcat-outputlen = '10'.

wa_fieldcat-seltext_l = 'PUR_GRP'.

wa_fieldcat-datatype = 'C'.

wa_fieldcat-emphasize = 'C511'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 6.

wa_fieldcat-fieldname = 'MATNR'.

wa_fieldcat-tabname = 'eban'.

wa_fieldcat-outputlen = '18'.

wa_fieldcat-seltext_l = 'MATERIAL NO'.

wa_fieldcat-datatype = 'C'.

wa_fieldcat-emphasize = 'C611'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 7.

wa_fieldcat-fieldname = 'WERKS'.

wa_fieldcat-tabname = 'eban'.

wa_fieldcat-outputlen = '8'.

wa_fieldcat-seltext_l = 'PLANT'.

wa_fieldcat-datatype = 'C'.

wa_fieldcat-emphasize = 'C511'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 8.

wa_fieldcat-fieldname = 'LGORT'.

wa_fieldcat-tabname = 'eban'.

wa_fieldcat-outputlen = '10'.

wa_fieldcat-seltext_l = 'STRG_LOC'.

wa_fieldcat-datatype = 'C'.

wa_fieldcat-emphasize = 'C611'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 9.

wa_fieldcat-fieldname = 'PREIS'.

wa_fieldcat-tabname = 'eban'.

wa_fieldcat-outputlen = '10'.

wa_fieldcat-seltext_l = 'VAL_PRICE'.

wa_fieldcat-datatype = 'C'.

wa_fieldcat-emphasize = 'C511'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

wa_fieldcat-col_pos = 10.

wa_fieldcat-fieldname = 'PEINH'.

wa_fieldcat-tabname = 'eban'.

wa_fieldcat-outputlen = '10'.

wa_fieldcat-seltext_l = 'PRICE_UNIT'.

wa_fieldcat-datatype = 'C'.

wa_fieldcat-emphasize = 'C611'.

APPEND wa_fieldcat TO it_fieldcat.

CLEAR wa_fieldcat.

iflag = 1.

endform. " build_catalog

&----


*& Form DOWNLOAD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form DOWNLOAD .

IF l_answer = '2'.

CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

  • BIN_FILESIZE =

filename = 'C:\REPORT.XLS'

  • FILETYPE = 'ASC'

APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

HEADER = '00'

  • TRUNC_TRAILING_BLANKS = ' '

  • WRITE_LF = 'X'

  • COL_SELECT = ' '

  • COL_SELECT_MASK = ' '

  • DAT_MODE = ' '

  • CONFIRM_OVERWRITE = ' '

  • NO_AUTH_CHECK = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • WRITE_BOM = ' '

  • TRUNC_TRAILING_BLANKS_EOL = 'X'

  • WK1_N_FORMAT = ' '

  • WK1_N_SIZE = ' '

  • WK1_T_FORMAT = ' '

  • WK1_T_SIZE = ' '

  • IMPORTING

  • FILELENGTH =

tables

data_tab = IT_PR

  • FIELDNAMES =

EXCEPTIONS

FILE_WRITE_ERROR = 1

NO_BATCH = 2

GUI_REFUSE_FILETRANSFER = 3

INVALID_TYPE = 4

NO_AUTHORITY = 5

UNKNOWN_ERROR = 6

HEADER_NOT_ALLOWED = 7

SEPARATOR_NOT_ALLOWED = 8

FILESIZE_NOT_ALLOWED = 9

HEADER_TOO_LONG = 10

DP_ERROR_CREATE = 11

DP_ERROR_SEND = 12

DP_ERROR_WRITE = 13

UNKNOWN_DP_ERROR = 14

ACCESS_DENIED = 15

DP_OUT_OF_MEMORY = 16

DISK_FULL = 17

DP_TIMEOUT = 18

FILE_NOT_FOUND = 19

DATAPROVIDER_EXCEPTION = 20

CONTROL_FLUSH_ERROR = 21

OTHERS = 22

.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

endform. " DOWNLOAD

<b>

COPY PASTE THE CODE IN THE INCLUDES AND CHECK.</b>

regards

ravish

<b>plz dont forget to reward points if helpful</b>

Read only

Former Member
0 Likes
467

Hi Prasanth,

Can you elaborate on the dump that's occuring?

Regards

Anil Madhavan