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

HOW TO CREATE A DRILLDOWN PROGRAM NEED EXAMPLE

Former Member
0 Likes
4,016

HAI FRIENDS

1 I WANT TO KNOW HOW TO CREATE A DRILLDOWN PROGRAM NEED EXAMPLE IN ABAP

2 NEED ABAP PROGRAM EBOOK

PLZ DO IT

7 REPLIES 7
Read only

Former Member
Read only

Former Member
0 Likes
1,425

Hi,

copy paste the following........ create the object 'LIST' as

'list no : &' ( double-click on 'LIST' and give title as 'list no : &' )

and run

....it drills down and every time a new list is shown

(though the content is same ).

data : it type STANDARD TABLE OF vbak,

wa type vbak.

data : ctr TYPE sy-lsind.

data : str(20) type c.

select * from vbak into table it UP TO 10 ROWS.

PERFORM list.

at LINE-SELECTION.

perform list.

form list.

ctr = sy-lsind.

move ctr to str.

set TITLEBAR 'LIST' with str.

loop at it into wa.

skip 1.

write wa-vbeln.

endform.

For ebook : an important one .............

[http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCABA/BCABA.pdf]

and many more :

http://help.sap.com/printdocu/core/Print46c/en/Data/Index_en.htm

Reward points if helpful............

Read only

Former Member
0 Likes
1,425

CHECK THIS ALV DRILL DOWN REPORT

&----


*& Report ZHAI_SD_CUSTOMER_DETAILS_ALV

*&

&----


*&

*&

&----


REPORT ZHAI_SD_CUSTOMER_DETAILS_ALV.

TYPE-POOLS: SLIS.

*----


  • TYPES DECLARATIONS

*----


TABLES : KNA1.

DATA : BEGIN OF IT_CUST OCCURS 0,

KUNNR LIKE KNA1-KUNNR,

NAME1 LIKE KNA1-NAME1,

LAND1 LIKE KNA1-LAND1,

ORT01 LIKE KNA1-ORT01,

STRAS LIKE KNA1-STRAS,

PSTLZ LIKE KNA1-PSTLZ,

END OF IT_CUST.

DATA:BEGIN OF IT_SALE OCCURS 0,

VBELN LIKE VBAK-VBELN,"SALES DOC NO

AUDAT LIKE VBAK-AUDAT,"DATE RECIEVED AND SENT

AUART LIKE VBAK-AUART,"SALES DOC LIKE

NETWR LIKE VBAK-NETWR,"NET VALUE IN DOC CURRENCY

KUNNR LIKE VBAK-KUNNR,

END OF IT_sale.

TYPES: BEGIN OF TY_ITEM,

VBELN TYPE VBAP-VBELN,

POSNR TYPE VBAP-POSNR,"ITEM NO

MATNR TYPE VBAP-MATNR,"MATERIAL NO

CHARG TYPE VBAP-CHARG,"BATCH

MATKL TYPE VBAP-MATKL,"MATERIAL GROUP

MEINS TYPE VBAP-MEINS,"BASE UNIT OF MEASURE

END OF TY_ITEM.

SELECT-OPTIONS : S_KUNNR FOR KNA1-KUNNR.

*----


*----


  • INTERNAL TABLES

*----


*----


DATA:

  • IT_CUST TYPE TABLE OF TY_CUST,

  • IT_SALE TYPE TABLE OF TY_SALE,

IT_ITEM TYPE TABLE OF TY_ITEM.

*----


*----


  • INTERNAL TABLES FOR ALV

*----


*----


DATA: IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,

IT_FCAT1 TYPE SLIS_T_FIELDCAT_ALV,

IT_FCAT3 TYPE SLIS_T_FIELDCAT_ALV.

DATA: IT_EVENTS TYPE TABLE OF slis_alv_event,

IT_EVENTS1 TYPE TABLE OF SLIS_ALV_EVENT,

IT_EVENTS2 TYPE TABLE OF SLIS_ALV_EVENT.

DATA: IT_LISTHEADER1 TYPE SLIS_T_LISTHEADER,

IT_LISTHEADER TYPE TABLE OF slis_listheader,

IT_LISTHEADER3 TYPE TABLE OF SLIS_LISTHEADER,

IT_FOOTER TYPE TABLE OF SLIS_LISTHEADER.

DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV,

WA_SORT LIKE LINE OF IT_SORT.

*----


*----


  • WORK AREAS FOR ALV

*----


*----


DATA: WA_LAYOUT TYPE SLIS_LAYOUT_ALV,

WA_LAYOUT1 TYPE SLIS_LAYOUT_ALV,

WA_FCAT LIKE LINE OF IT_FCAT,

WA_FCAT1 LIKE LINE OF IT_FCAT1,

WA_FCAT3 LIKE LINE OF IT_FCAT3,

WA_EVENTS LIKE LINE OF IT_EVENTS,

WA_EVENTS1 LIKE LINE OF IT_EVENTS,

WA_EVENTS2 LIKE LINE OF IT_EVENTS.

*----


*----


  • WORK VARIABLES

*----


*----


DATA: W_REPID TYPE SY-REPID,

W_KUNNR TYPE KNA1-KUNNR.

$$**----


*----


  • WORK AREAS

*----


*----


*----


  • MACROS

*----


DEFINE ADD_FCAT1..

WA_FCAT1-COL_POS = &1.

WA_FCAT1-FIELDNAME = &2.

WA_FCAT1-TABNAME = &3.

WA_FCAT1-REF_TABNAME = &4.

WA_FCAT1-KEY = &5.

WA_FCAT1-DO_SUM = &6.

WA_FCAT1-HOTSPOT = &7.

WA_FCAT1-EMPHASIZE = &8.

APPEND WA_FCAT1 TO IT_FCAT1.

END-OF-DEFINITION.

START-OF-SELECTION.

PERFORM F_GET_DATA.

PERFORM F_BUILD_FCAT.

PERFORM F_GET_EVENTS.

PERFORM F_BUILD_LAYOUT USING WA_LAYOUT.

PERFORM F_GET_DISPLAY.

*&----


*& Form F_GET_DATA

*&----


FORM F_GET_DATA .

SELECT KUNNR

NAME1

LAND1

ORT01

STRAS

PSTLZ FROM KNA1

INTO TABLE

IT_CUST WHERE KUNNR IN S_KUNNR.

ENDFORM. " F_GET_DATA

*&----


*& Form F_GET_DISPLAY

*&----


  • text

*----


  • --> p1 text

  • <-- p2 text

*----


FORM F_GET_DISPLAY .

CLEAR W_REPID.

MOVE SY-REPID TO W_REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = w_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

I_CALLBACK_TOP_OF_PAGE = 'F_TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = 'DUCK'

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

IS_LAYOUT = WA_LAYOUT

IT_FIELDCAT = IT_FCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = 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_CUST

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

ENDFORM. " F_GET_DISPLAY

*&----


*& Form F_GET_EVENTS

*&----


  • text

*----


  • --> p1 text

  • <-- p2 text

*----


FORM F_GET_EVENTS .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = IT_EVENTS

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.

SORT IT_EVENTS.

READ TABLE IT_EVENTS INTO WA_EVENTS

WITH KEY NAME = 'TOP_OF_PAGE' BINARY SEARCH.

IF SY-SUBRC EQ 0.

WA_EVENTS-FORM = 'F_TOP_OF_PAGE'.

MODIFY IT_EVENTS INDEX SY-TABIX FROM

WA_EVENTS TRANSPORTING FORM.

ENDIF.

READ TABLE IT_EVENTS INTO WA_EVENTS

WITH KEY NAME = 'USER_COMMAND' BINARY SEARCH.

IF SY-SUBRC EQ 0.

WA_EVENTS-FORM = 'F_USER_COMMAND'.

MODIFY IT_EVENTS FROM WA_EVENTS INDEX

SY-TABIX TRANSPORTING FORM.

READ TABLE IT_EVENTS INTO WA_EVENTS

WITH KEY NAME = 'USER_COMMAND' BINARY SEARCH.

ENDIF.

READ TABLE IT_EVENTS INTO WA_EVENTS WITH

KEY NAME = 'END_OF_PAGE' BINARY SEARCH.

IF SY-SUBRC EQ 0.

WA_EVENTS-FORM = 'F_END_OF_PAGE'.

MODIFY IT_EVENTS FROM WA_EVENTS

INDEX SY-TABIX TRANSPORTING FORM.

ENDIF.

ENDFORM. "F_GET_EVENTS

*&----


*& Form F_BUILD_LAYOUT

*&----


FORM F_BUILD_LAYOUT USING P_WA_LAYOUT LIKE WA_LAYOUT .

CLEAR P_WA_LAYOUT.

P_WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

*P_WA_LAYOUT-F2CODE = '&ETA'.

*p_wa_layout-detail_popup = 'X'.

P_WA_LAYOUT-DETAIL_TITLEBAR = 'ALV REPORT'.

*P_WA_LAYOUT-CONFIRMATION_PROMPT = 'X'.

ENDFORM. " F_BUILD_LAYOUT

*&----


*& Form F_TOP_OF_PAGE

*&----


FORM F_TOP_OF_PAGE .

refresh it_listheader.

DATA: LS_LIST TYPE SLIS_LISTHEADER.

LS_LIST-TYP = 'H'.

LS_LIST-INFO = TEXT-004.

APPEND LS_LIST TO IT_LISTHEADER.

LS_LIST-typ = 'S'.

LS_LIST-key = 'Date: '.

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

sy-datum+4(2) '.'

sy-datum(4) INTO LS_LIST-info. "todays date

append LS_LIST to IT_LISTHEADER.

clear: LS_LIST.

LS_LIST-TYP = 'S'.

LS_LIST-KEY = 'DEVELOPED:'.

LS_LIST-INFO = SY-UNAME.

APPEND LS_LIST TO IT_LISTHEADER.

CLEAR LS_LIST.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

I_LOGO = 'GLOBAL'.

ENDFORM. " F_TOP_OF_PAGE

*&----


*& Form F_BUILD_FCAT

*&----


FORM F_BUILD_FCAT .

CLEAR: W_REPID,

IT_FCAT.

MOVE SY-REPID TO W_REPID.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = W_REPID

I_INTERNAL_TABNAME = 'IT_CUST'

I_INCLNAME = W_REPID

CHANGING

CT_FIELDCAT = IT_FCAT

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.

ENDFORM. " F_BUILD_FCAT

*&----


*& Form F_USER_COMMAND

*&----


FORM F_USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

IF RS_SELFIELD-FIELDNAME = 'KUNNR'.

READ TABLE IT_CUST

INDEX RS_SELFIELD-TABINDEX.

MOVE rs_selfield-value TO W_KUNNR.

IF IT_CUST IS NOT INITIAL.

PERFORM F_GET_SECONDARY_DATA.

PERFORM F_BUILD_FCAT1.

PERFORM F_BUILD_EVENTS.

PERFORM F_GET_SORT.

PERFORM F_BUILD_LAYOUT1.

PERFORM F_GET_DISPLAY1.

ENDIF.

ENDIF.

ENDCASE.

ENDFORM. " F_USER_COMMAND

*&----


*& Form F_GET_SECONDARY_DATA

*&----


FORM F_GET_SECONDARY_DATA .

data:v_data.

SELECT VBELN

AUDAT

AUART

NETWR

KUNNR FROM VBAK INTO TABLE IT_SALE

WHERE KUNNR EQ IT_CUST-KUNNR.

IF IT_SALE[] IS INITIAL .

CALL FUNCTION 'POPUP_TO_CONFIRM'

EXPORTING

TITLEBAR = SY-REPID

  • DIAGNOSE_OBJECT = ' '

TEXT_QUESTION = 'NO SALES FOR THIS CUSTOMER'

  • TEXT_BUTTON_1 = 'Ja'(001)

  • ICON_BUTTON_1 = ' '

  • TEXT_BUTTON_2 = 'Nein'(002)

  • ICON_BUTTON_2 = ' '

DEFAULT_BUTTON = '1'

DISPLAY_CANCEL_BUTTON = 'X'

  • USERDEFINED_F1_HELP = ' '

  • START_COLUMN = 25

  • START_ROW = 6

  • POPUP_TYPE =

  • IV_QUICKINFO_BUTTON_1 = ' '

  • IV_QUICKINFO_BUTTON_2 = ' '

IMPORTING

ANSWER = v_data

  • TABLES

  • PARAMETER =

EXCEPTIONS

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

case v_data.

when '2'.

leave screen.

when 'A'.

leave to screen '0'.

.

endcase.

ENDIF.

ENDFORM. " F_GET_SECONDARY_DATA

*&----


*& Form F_BUILD_FCAT1

*&----


FORM F_BUILD_FCAT1 .

REFRESH IT_FCAT1.

CLEAR WA_FCAT1.

ADD_FCAT1:

'1' 'VBELN' 'VBAK' 'VBAK' 'X' ' ' 'X' 'C500',

'2' 'AUDAT' 'VBAK' 'VBAK' ' ' ' ' ' ' 'C400',

'3' 'AUART' 'VBAK' 'VBAK' ' ' ' ' ' ' 'C100',

'4' 'NETWR' 'VBAK' 'VBAK' ' ' 'X' ' ' 'C300'.

ENDFORM. " F_BUILD_FCAT1

&----


*& Form F_GET_DISPLAY1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_GET_DISPLAY1 .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'F_USER_COMMAND1'

I_CALLBACK_TOP_OF_PAGE = 'F_TOP_OF_PAGE1'

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

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = IT_SORT

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = IT_EVENTS1

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

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

ENDFORM. " F_GET_DISPLAY1

*&----


*& Form F_BUILD_EVENTS

&----


FORM F_BUILD_EVENTS .

clear wa_events1.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = IT_EVENTS1.

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

SORT IT_EVENTS1.

read table It_events1 with key name = 'TOP_OF_PAGE'

into WA_eventS1.

if sy-subrc = 0.

move 'F_TOP_OF_PAGE1' to WA_EventS1-form.

append WA_eventS1 to it_events1.

endif.

READ TABLE IT_EVENTS WITH KEY NAME = 'USER_COMMAND'

INTO WA_EVENTS1.

IF SY-SUBRC = 0.

MOVE 'F_USER_COMMAND1' TO WA_EVENTS1-FORM.

APPEND WA_EVENTS1 TO IT_EVENTS1.

ENDIF.

*READ TABLE IT_EVENTS WITH KEY NAME = 'SUBTOTAL_TEXT'

  • INTO WA_EVENTS1.

  • IF SY-SUBRC = 0.

  • MOVE 'F_SUBTOTAL_TEXT' TO WA_EVENTS1-FORM.

  • APPEND WA_EVENTS1 TO IT_EVENTS1.

  • ENDIF.

*

ENDFORM. " F_BUILD_EVENTS

*&----


*& Form F_TOP_OF_PAGE1

*&----


FORM F_TOP_OF_PAGE1 .

DATA: LS_HEADER TYPE SLIS_LISTHEADER.

REFRESH : IT_LISTHEADER1.

LS_HEADER-TYP = 'H'.

LS_HEADER-INFO = 'SALES ORDER DETAILS FOR CUSTOMER'.

APPEND LS_HEADER TO it_listheader1.

CLEAR LS_HEADER.

LS_HEADER-TYP = 'S'.

LS_HEADER-KEY = 'CUSTOMER NO:'.

LS_HEADER-INFO = W_KUNNR.

APPEND LS_HEADER TO IT_LISTHEADER1.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER1

I_LOGO = 'DUCK'

  • I_END_OF_LIST_GRID =

  • I_ALV_FORM =

.

ENDFORM. " F_TOP_OF_PAGE

&----


*& Form F_END_OF_PAGE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_END_OF_PAGE .

DATA:LS_FOOTER TYPE SLIS_LISTHEADER.

LS_FOOTER-TYP = 'S'.

LS_FOOTER-KEY = SY-UNAME.

LS_FOOTER-INFO = 'DEVELOPED BY:'.

APPEND LS_FOOTER TO IT_FOOTER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_FOOTER

.

ENDFORM. " F_END_OF_PAG

&----


*& Form F_USER_COMMAND1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_USER_COMMAND1 USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_SALE INDEX RS_SELFIELD-TABINDEX.

PERFORM F_GET_SECONDARY2.

PERFORM F_GET_FCAT3 USING:

'VBELN' '1' 'C' '12' 'SALES_DOC' 'M' 'VBAP' 'X' 'C51' ' ',

'POSNR' '2' ' ' '5' 'ITEM_NO' 'M' 'VBAP' ' ' 'C61' ' ',

'MATNR' '3' ' ' '12' 'MATERIAL_NO' 'M' 'VBAP' ' ' 'C71' ' ',

'CHARG' '4' ' ' '10' 'BATCH_NO' 'M' 'VBAP' ' ' 'C41' ' ',

'MATKL' '5' ' ' '10' 'MAT_GROUP' 'M' 'VBAP' ' ' 'C31' ' ',

'MEINS' '6' ' ' '12' 'BASE_UNIT' 'M' 'VBAP' ' ' 'C21' 'X' .

PERFORM F_GET_EVENTS2 USING WA_EVENTS2

CHANGING IT_EVENTS2.

PERFORM F_GET_DISPLAY3.

REFRESH IT_FCAT3.

ENDCASE.

ENDFORM. " F_USER_COMMAND1

&----


*& Form F_GET_SECONDARY2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_GET_SECONDARY2 .

SELECT VBELN

POSNR

MATNR

MATKL

MEINS

FROM VBAP INTO

TABLE IT_ITEM WHERE

VBELN EQ IT_SALE-VBELN.

IF SY-DBCNT EQ 0.

MESSAGE E000(ZHAI) WITH TEXT-KO1.

ENDIF.

ENDFORM. " F_GET_SECONDARY2

&----


*& Form F_GET_DISPLAY3

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_GET_DISPLAY3 .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_PF_STATUS_SET = 'F_PF_STATUS'

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = 'F_TOP_OF_PAGE3'

I_CALLBACK_HTML_TOP_OF_PAGE = 'F_TOP_OF_PAGE3'

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

IS_LAYOUT = WA_LAYOUT1

IT_FIELDCAT = IT_FCAT3

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT = IT_SORT

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = IT_EVENTS2

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

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

ENDFORM. " F_GET_DISPLAY3

*&----


*

*& Form F_GET_FCAT3

*&----


*

FORM F_GET_FCAT3 USING VALUE(P1)

VALUE(P2)

VALUE(P3)

VALUE(P4)

VALUE(P5)

VALUE(P6)

VALUE(P7)

VALUE(P8)

VALUE(P9)

VALUE(P10).

CLEAR WA_FCAT3.

WA_FCAT3-FIELDNAME = P1.

WA_FCAT3-COL_POS = P2.

WA_FCAT3-JUST = P3.

WA_FCAT3-OUTPUTLEN = P4.

WA_FCAT3-SELTEXT_M = P5.

WA_FCAT3-DDICTXT = P6.

WA_FCAT3-REF_TABNAME = P7.

WA_FCAT3-HOTSPOT = P8.

WA_FCAT3-EMPHASIZE = P9.

WA_FCAT3-DO_SUM = P10.

APPEND WA_FCAT3 TO IT_FCAT3.

ENDFORM. " F_GET_FCAT3

&----


*& Form F_BUILD_LAYOUT1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_BUILD_LAYOUT1 .

WA_LAYOUT1-totals_text = 'TOTAL'.

wa_layout1-detail_popup = 'X'.

ENDFORM. " F_BUILD_LAYO

&----


*& Form F_GET_EVENTS2

&----


  • text

----


  • -->P_IT_EVENTS2 text

  • <--P_WA_EVENTS2 text

----


FORM F_GET_EVENTS2 USING VALUE(P_WA_EVENTS2) LIKE WA_EVENTS2

CHANGING P_IT_EVENTS2 LIKE IT_EVENTS2.

P_WA_EVENTS2-NAME = 'HTML_TOP_OF_PAGE'.

P_WA_EVENTS2-FORM = 'F_TOP_OF_PAGE3'.

APPEND P_WA_EVENTS2 TO P_IT_EVENTS2.

CLEAR P_WA_EVENTS2.

P_WA_EVENTS2-NAME = 'PF_STATUS'.

P_WA_EVENTS2-FORM = 'F_PF_STATUS'.

APPEND P_WA_EVENTS2 TO P_IT_EVENTS2.

CLEAR P_WA_EVENTS2.

P_WA_EVENTS2-NAME = 'USER_COMMAND'.

P_WA_EVENTS2-FORM = 'F_USER_COMMAND3'.

APPEND P_WA_EVENTS2 TO P_IT_EVENTS2.

CLEAR P_WA_EVENTS2.

p_wa_events2-name = 'HTML_END_OF_LIST'.

P_WA_EVENTS2-FORM = 'F_HTML_END_OF_LIST'.

APPEND P_WA_EVENTS2 TO P_IT_EVENTS2.

CLEAR p_wa_events2.

ENDFORM. " F_GET_EVENTS2

&----


*& Form F_TOP_OF_PAGE3

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_TOP_OF_PAGE3 USING DOCUMENT TYPE REF TO cl_dd_document .

data : link_area type ref to cl_dd_area,

picture_area type ref to cl_dd_area.

CALL METHOD DOCUMENT->ADD_TEXT

EXPORTING

TEXT = 'ALV REPORT'

  • TEXT_TABLE =

  • FIX_LINES =

  • SAP_STYLE =

SAP_COLOR = cl_dd_area=>list_background_int

SAP_FONTSIZE = 'LARGE'

SAP_FONTSTYLE = 'TIMES'

SAP_EMPHASIS = 'STRONG'

  • STYLE_CLASS =

  • CHANGING

  • DOCUMENT =

.

CALL METHOD DOCUMENT->NEW_LINE.

CALL METHOD DOCUMENT->ADD_PICTURE

EXPORTING

PICTURE_ID = 'LOGO1'

WIDTH = '10%'

.

ENDFORM. " F_TOP_OF_PAGE3

&----


*& Form F_GET_SORT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_GET_SORT .

WA_SORT-FIELDNAME = 'NETWR'.

WA_SORT-SPOS = 4.

WA_SORT-UP = 'X'.

WA_SORT-SUBTOT = 'X'.

APPEND WA_SORT TO IT_SORT.

ENDFORM. " F_GET_SORT

&----


*& Form F_PF_STATUS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_PF_STATUS USING RS_EXTAB TYPE SLIS_T_EXTAB .

SET PF-STATUS 'ZHAIALV' EXCLUDING RS_EXTAB.

ENDFORM. " F_PF_STATUS

&----


*& Form F_USER_COMMAND3

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_USER_COMMAND3 USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&SALE'.

IF RS_SELFIELD-FIELDNAME = 'VBELN'.

SET parameter ID 'AUN' FIELD rs_selfield-value.

CALL TRANSACTION 'VA02' AND SKIP FIRST SCREEN.

ENDIF.

WHEN '&MAT'.

IF RS_SELFIELD-FIELDNAME = 'MATNR'.

SET PARAMETER ID 'MAT' FIELD RS_SELFIELD-VALUE.

CALL TRANSACTION 'MM02' AND SKIP FIRST SCREEN.

ENDIF.

ENDCASE.

ENDFORM. " F_USER_COMMAND3

&----


*& Form F_HTML_END_OF_LIST

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM F_HTML_END_OF_LIST USING DOCUMENT TYPE REF TO CL_DD_DOCUMENT.

DATA : PAGE TYPE SDYDO_TEXT_ELEMENT.

MOVE SY-PAGNO TO PAGE.

CALL METHOD DOCUMENT->ADD_TEXT

EXPORTING

TEXT = PAGE

  • TEXT_TABLE =

  • FIX_LINES =

  • SAP_STYLE =

  • SAP_COLOR =

  • SAP_FONTSIZE =

  • SAP_FONTSTYLE =

  • SAP_EMPHASIS =

  • STYLE_CLASS =

  • CHANGING

  • DOCUMENT =

.

ENDFORM. " F_HTML_END_OF_LIS

Read only

Former Member
0 Likes
1,425

Hi,

Use this code:

&----


*& Form chama_f_02

&----


  • Drilldown da F-02

----


FORM chama_f_02.

GET CURSOR FIELD v_campo VALUE v_valor.

CHECK v_campo = 'BKPF-BELNR'.

CHECK NOT v_valor IS INITIAL.

SET PARAMETER ID 'GJR' FIELD SY-DATUM(4).

SET PARAMETER ID 'BUK' FIELD LV_BUKRS.

SET PARAMETER ID 'BLN' FIELD v_valor.

AUTHORITY-CHECK OBJECT 'S_TCODE'

ID 'TCD' FIELD 'FB03'.

IF sy-subrc = 0.

CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.

ELSE.

MESSAGE e261(sf) WITH 'FB03'.

ENDIF.

ENDFORM. " chama_f_02

Regards,

Fernando

Edited by: Fernando Pinto on May 12, 2008 3:08 PM

Read only

Former Member
0 Likes
1,425

Hi Selvendran.

First of all, you'll need to call a Drill Down handling form, on the ALV Function Module call:


  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_user_command  = 'f_user_command' " Drill Down Form
      i_callback_pf_status_set     = c_pfstat
      i_callback_program             = vg_repid
      is_layout                            = wa_layout
      it_fieldcat                           = tg_fieldcat[]
      is_variant                           = wa_variant
      i_save                                = c_x
    TABLES
      t_outtab                 = tg_output[]
    EXCEPTIONS
      program_error            = 1
      OTHERS                   = 2.

And on the form, just input the CALL TRANSACTION, or BDC mapping of the desired transaction:


FORM f_user_command USING vl_ucomm LIKE sy-ucomm            "#EC CALLED
                  rs_selfield TYPE slis_selfield.

  CASE vl_ucomm.

    WHEN c_ok.

      IF rs_selfield-fieldname = c_recnnr.
        READ TABLE tg_output INTO wa_output INDEX rs_selfield-tabindex.
        SET PARAMETER ID c_buk FIELD wa_output-bukrs.
        SET PARAMETER ID c_recnnr FIELD wa_output-recnnr.
        CALL TRANSACTION c_recn AND SKIP FIRST SCREEN.
      ENDIF.

    WHEN OTHERS.

  ENDCASE.

ENDFORM.                    " F_USER_COMMAND

Regards,

Brian Gonsales

Read only

Former Member
0 Likes
1,425

hi check this..simple example for drilldown list..

report .

start-of-selection.

format color 2 .

do 10 times.

write:/ 'this is the basic list' color 6.

enddo.

at line-selection.

if sy-lsind = 1.

do 10 times.

write:/ 'this is the 1st list' color 7 .

enddo.

elseif sy-lsind = 2.

do 10 times.

write:/ 'this is the 2st list' color 1.

enddo.

elseif sy-lsind = 3.

do 10 times.

write:/ 'this is the 3st list' color 2 .

enddo.

elseif sy-lsind = 4.

do 10 times.

write:/ 'this is the 4st list' color 3 .

enddo.

elseif sy-lsind = 5.

do 10 times.

write:/ 'this is the 5st list' color 4 .

enddo.

elseif sy-lsind = 6.

do 10 times.

write:/ 'this is the 6st list' color 5.

enddo.

elseif sy-lsind = 7.

do 10 times.

write:/ 'this is the 7st list' color 6 .

enddo.

elseif sy-lsind = 8.

do 10 times.

write:/ 'this is the 8st list' color 7 .

enddo.

elseif sy-lsind = 9.

do 10 times.

write:/ 'this is the 8st list' color 1.

enddo.

elseif sy-lsind = 10.

do 10 times.

write:/ 'this is the 10th list' color 2.

enddo.

elseif sy-lsind = 11.

do 10 times.

write:/ 'this is the 11 list' color 3.

enddo.

elseif sy-lsind = 12.

do 10 times.

write:/ 'this is the 12 list' color 4.

enddo.

elseif sy-lsind = 13.

do 10 times.

write:/ 'this is the 13 list' color 5.

enddo.

elseif sy-lsind = 14.

do 10 times.

write:/ 'this is the 14 list' color 6 .

enddo.

elseif sy-lsind = 15.

do 10 times.

write:/ 'this is the 15 list' color 7.

enddo.

elseif sy-lsind = 16.

do 10 times.

write:/ 'this is the 16 list' color 3.

enddo.

elseif sy-lsind = 17.

do 10 times.

write:/ 'this is the 17st list' color 2 .

enddo.

elseif sy-lsind = 18.

do 10 times.

write:/ 'this is the 18 list' color 1 .

enddo.

elseif sy-lsind = 19.

do 10 times.

write:/ 'this is the 19 list'.

enddo.

endif.

regards,

venkat .

Read only

Former Member
0 Likes
1,425

Difference between Drilldown report and Interactive report

1.What is the difference between Drilldown reprt and Interactive report?

2. Is there any similarity between Classical report and Drill down Report?

There is no difference between drill down and interactive report, they are the same.

With drilldown reporting, SAP provides you with an interactive information system to let you evaluate the data collected in your application. This information system is capable of analyzing all the data according to any of the characteristics that describe the data. You can also use any key figures you wish to categorize your data. You can display a number of objects for a given key figure, or a number of key figures for a given object. In addition, the system lets you carry out any number of variance analyses (such as plan/actual comparisons, fiscal year comparisons, comparisons of different objects, and so on).

You can produce both simple, data-directed lists (basic reports) and complex, formatted lists in drilldown reporting (form reports).

Drilldown report provides you with comfortable functions for navigating through your data. For example, you can jump to the next level of detail or the next report object on the same level, hide individual levels and switch between the detail and drilldown lists. It also provides a number of additional functions which let you process lists interactively (sorting, conditions, ranking lists, and so on). SAP Graphics, SAPmail and the Excel List Viewer are also integrated into drilldown reporting.

The drilldown functions are divided into three groups which differ in the number of functions available. That way each user can choose the functional level most suited for his requirements.

In addition to the online functions for displaying reports, drilldown reporting also provides functions which let you print reports. A number of formatting functions are available to let you determine the look of your printed reports (page breaks, headers and footers, underscores, and so on).

The menus and the functions available directly on the drilldown report make it easy to use the information system.

What is an Interactive Report?

An interactive report generally works in the following fashion:

1. Basic list is displayed.

2. User double clicks on any valid line

or

User selects a line and presses as button on the tool bar.

3. The corresponding event is triggered

4. Then in the code, the line on which action was done, is read.

5. Depending on the values in that selected line, a secondary list is displayed.

6. Steps from 2-5 are repeated till the end.

From the above explanation, I believe, its clear that, the 20th list, will essentially depend on the "selected line" of 19th list. According to your question, you want to move to 20th list directly, without "a prior list". May I know the exact requirement so that, an appropriate solution can be suggested?

Again, your question was, how to move to 20th list directly on pressing of execute button. Its not possible to move to 20th list. You must cross over a basic list, before you can go to a different list level, using the code given by Pavan.

What are Drilldown reports?

The lines of basic list of a drilldown report when clicked, will take the user to the corresponding (standard) object's display.

For eg: Suppose your report's primary component is purchase requisition, (assume you are printing PR details), and the basic list displays details of many PRs.

Eg: when clicked on a particular line of the PR basic list, it takes you to std t-code me53 (display of purchase requisition). This is the 'Drill-down' functionality.

For this, in the at-line selection of your program, as per the above ex: you'll set the parameter ID of PR number BAN (that you can get from Data element) in memory (using set parameter id) and then calling the corresponding transaction (usually skipping initial screen of the std t-code).

Likewise, if it's Material Number (Matnr), you'll be displaying MM03 transaction w.r.t. the line's matnr.

Example Code For Drill Down Report

REPORT zmm_rept_purchorderkkb01 LINE-SIZE 80

LINE-COUNT 65(3)

MESSAGE-ID z_msg_class

NO STANDARD PAGE HEADING.

--


DECLARING THE STANDARD TABLES--

TABLES : ekko, "PURCHASE ORDER : HEADER

ekpo. "PURCHASE ORDER : ITEM

--


DECLARING THE INTERNAL TABLE--

DATA : BEGIN OF it_ekko OCCURS 2,

ebeln LIKE ekko-ebeln, "PURCHASE ORDER NUMBER

bukrs LIKE ekko-bukrs, "COMPANY CODE

bsart LIKE ekko-bsart, "PURCHASING DOCUMENT TYPE

lifnr LIKE ekko-lifnr, "VENDOR

spras LIKE ekko-spras, "LANGUAGE KEY

zterm LIKE ekko-zterm, "PAYMENT TERMS KEY

end of it_ekko.

DATA : BEGIN OF it_ekpo OCCURS 2,

ebeln LIKE ekpo-ebeln, "PURCHASE ORDER NUMBER

ebelp LIKE ekpo-ebelp, "PURCHASE ORDER NUMBER

werks LIKE ekpo-werks, "PLANT

matnr LIKE ekpo-matnr, "MATERIAL NUMBER

matkl LIKE ekpo-matkl, "MATERIAL GROUP

END OF it_ekpo.

DATA: it_ebeln LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.

*DATA: it_ebeln_high LIKE ekko-ebeln OCCURS 0 WITH HEADER LINE.

DATA: p_ebeln TYPE i.

--


Declaring the selection screen--

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.

SELECT-OPTIONS : s_ebeln FOR ekko-ebeln.

PARAMETER : p_limit TYPE i.

SELECTION-SCREEN END OF BLOCK blk1.

*INCLUDE z_incl_purorderkkb01_sub_f01.

----


  • Validation for number of records to be printed *

----


*AT SELECTION-SCREEN ON p_limit.

  • IF p_limit IS INITIAL.

  • MESSAGE e011.

  • ENDIF.

  • IF p_limit GT sy-linct.

  • MESSAGE e010.

  • ENDIF.

----


  • Search help for purchase document number (s_ebeln-low) *

----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-low.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = s_ebeln-low

IMPORTING

output = s_ebeln-low.

perform form_search_help.

IF sy-subrc <> 0.

CASE sy-subrc.

WHEN 2.

LEAVE TO SCREEN 1000.

ENDCASE.

ELSE.

LOOP AT it_ebeln.

IF sy-tabix = p_ebeln.

s_ebeln-low = it_ebeln.

EXIT.

ENDIF.

ENDLOOP.

ENDIF.

----


  • Search help for purchase document number (s_ebeln-high) *

----


AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_ebeln-high.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

EXPORTING

input = s_ebeln-high

IMPORTING

output = s_ebeln-high.

perform form_search_help.

IF sy-subrc <> 0.

CASE sy-subrc.

WHEN 2.

LEAVE TO SCREEN 1000.

ENDCASE.

ELSE.

LOOP AT it_ebeln.

IF sy-tabix = p_ebeln.

s_ebeln-high = it_ebeln.

EXIT.

ENDIF.

ENDLOOP.

ENDIF.

----


  • Start-of-selection event *

----


START-OF-SELECTION.

--


To attach a user interface--

SET PF-STATUS '0010'.

--


To fetch the data for the basic list--

SELECT ebeln "PURCHASE ORDER NUMBER

bukrs "COMPANY CODE

bsart "PURCHASING DOCUMENT TYPE

lifnr "VENDOR

spras "LANGUAGE KEY

zterm "PAYMENT TERMS KEY

up to p_limit rows

into table it_ekko from ekko

where ebeln in s_ebeln.

REFRESH it_ekpo.

--


To fetch the data for the secondary list--

if it_ekpo is initial.

SELECT ebeln "PURCHASE ORDER NUMBER

ebelp "PURCHASING DOCUMENT TYPE

werks "PLANT

matnr "MATERIAL NUMBER

matkl "MATERIAL GROUP

FROM ekpo INTO TABLE it_ekpo for all entries in it_ekko

WHERE ebeln EQ it_ekko-ebeln.

endif.

----


  • End-of-selection event *

----


END-OF-SELECTION.

--


To display the data for the basic list--

format color 4 intensified off.

LOOP AT it_ekko.

WRITE 😕 sy-vline, it_ekko-ebeln UNDER text-002, 18 sy-vline,

"PURCHASE ORDER NUMBER

it_ekko-bukrs UNDER text-003, 27 sy-vline,

"COMPANY CODE

it_ekko-bsart UNDER text-004, 38 sy-vline,

"PURCHASING DOCUMENT TYPE

it_ekko-lifnr UNDER text-005, 50 sy-vline,

"VENDOR

it_ekko-spras UNDER text-006, 62 sy-vline,

"LANGUAGE KEY

it_ekko-zterm UNDER text-007, 80 sy-vline.

"PAYMENT TERMS KEY

hide : it_ekko-ebeln.

ENDLOOP.

WRITE 😕 sy-uline(80).

----


  • To generate the detailed lists *

----


AT LINE-SELECTION.

CASE sy-lsind.

WHEN 1.

SET PF-STATUS '0011'.

--


To display the data for the secondary list--

WINDOW STARTING AT 10 10

ENDING AT 90 30.

format color 5 intensified off.

LOOP AT it_ekpo where ebeln = it_ekko-ebeln .

WRITE 😕 sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline,

"PURCHASE ORDER NUMBER

it_ekpo-ebelp UNDER text-008, 30 sy-vline,

"PO ITEM NUMBER

it_ekpo-werks UNDER text-009, 45 sy-vline,

"PLANT

it_ekpo-matnr UNDER text-010, 60 sy-vline,

"MATERIAL NUMBER

it_ekpo-matkl UNDER text-011, 80 sy-vline.

"MATERIAL GROUP

ENDLOOP.

WRITE 😕 sy-uline(80).

ENDCASE.

CASE sy-ucomm.

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

LEAVE TO SCREEN 0.

ENDCASE.

----


  • At user-command event *

----


AT USER-COMMAND.

CASE sy-ucomm.

WHEN 'SELE' OR 'LIST1'.

IF sy-lsind = 1.

SET PF-STATUS '0011'.

--


To display the data for the secondary list--

WINDOW STARTING AT 10 10

ENDING AT 90 30.

format color 5 intensified off.

LOOP AT it_ekpo where ebeln = it_ekko-ebeln .

WRITE 😕 sy-vline, it_ekpo-ebeln UNDER text-002, 15 sy-vline, "PURCHASE ORDER NUMBER

it_ekpo-ebelp UNDER text-008, 30 sy-vline, "PO ITEM NUMBER

it_ekpo-werks UNDER text-009, 45 sy-vline, "PLANT

it_ekpo-matnr UNDER text-010, 60 sy-vline, "MATERIAL NUMBER

it_ekpo-matkl UNDER text-011, 80 sy-vline. "MATERIAL GROUP

ENDLOOP.

WRITE 😕 sy-uline(80).

endif.

ENDCASE.

CASE sy-ucomm.

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

LEAVE TO SCREEN 0.

ENDCASE.

----


  • Top-of-page for basic list *

----


TOP-OF-PAGE.

format color 3 intensified off.

WRITE 😕 sy-uline(80).

WRITE 😕 sy-vline,

03 sy-repid,

60 text-015,

sy-uname,

80 sy-vline.

WRITE 😕 sy-vline, 03 sy-datum,

35 text-012,

60 text-014,

sy-pagno,

80 sy-vline.

WRITE 😕 sy-uline(80).

WRITE 😕 sy-vline, text-002, 18 sy-vline, "PURCHASE ORDER NUMBER

text-003, 27 sy-vline, "COMPANY CODE

text-004, 38 sy-vline, "PURCHASING DOCUMENT TYPE

text-005, 50 sy-vline, "VENDOR

text-006, 62 sy-vline, "LANGUAGE KEY

text-007, 80 sy-vline. "PAYMENT TERMS KEY

WRITE 😕 sy-uline(80).

----


  • Top-of-page for secondary list *

----


TOP-OF-PAGE DURING LINE-SELECTION.

format color 2 intensified off.

WINDOW STARTING AT 10 10

ENDING AT 90 30.

WRITE 😕 sy-uline(80).

WRITE 😕 sy-vline,

03 sy-repid,

60 text-015,

sy-uname,

80 sy-vline.

WRITE 😕 sy-vline,

03 sy-datum,

35 text-013,

60 text-014,

sy-pagno,

80 sy-vline.

WRITE 😕 sy-uline(80).

WRITE 😕 sy-vline, text-014, 15 sy-vline, "PURCHASE ORDER NUMBER

text-008, 30 sy-vline, "PO ITEM NUMBER

text-009, 45 sy-vline, "PLANT

text-010, 60 sy-vline, "MATERIAL NUMBER

text-011, 80 sy-vline. "MATERIAL GROUP

WRITE 😕 sy-uline(80).

----


  • End-of-page event *

----


END-OF-PAGE.

WRITE 😕 sy-vline,

03 text-016,

p_limit,

60 text-014,

sy-pagno,

80 sy-vline.

write:/ sy-uline(80).

INCLUDE Z_INCLUDE_PURCHORDERKKB01.

form form_search_help .

REFRESH it_ebeln.

CLEAR it_ebeln.

CLEAR P_ebeln.

SELECT ebeln FROM ekko INTO TABLE it_ebeln.

CALL FUNCTION 'POPUP_WITH_TABLE_DISPLAY'

EXPORTING

endpos_col = 21

endpos_row = 35

startpos_col = 12

startpos_row = 1

titletext = text-012

IMPORTING

choise = P_ebeln

TABLES

valuetab = it_ebeln

EXCEPTIONS

break_off = 1

OTHERS = 2.