‎2007 Jun 04 9:22 AM
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.
‎2007 Jun 04 9:26 AM
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
‎2007 Jun 04 9:27 AM
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>
‎2007 Jun 04 9:28 AM
Hi Prasanth,
Can you elaborate on the dump that's occuring?
Regards
Anil Madhavan