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

Former Member
0 Likes
571

Hi,

I was given an objectin Interactive ALV..

I have displayed the po numbers in first list..When i click tht particular po number,it want to display other details regarding the PO in the next level..

I need to knw how to get the value (PO number) from 1st level to second level..Inside the programi need to write the query based on this PO number in 1st level..

So how to do this..anybody help with sample prgm

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
538
5 REPLIES 5
Read only

Former Member
0 Likes
539
Read only

Former Member
0 Likes
538

HI,

Check out the below sample program

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

Read only

prasanth_kasturi
Active Contributor
0 Likes
538

hi,

check this prog

REPORT ZPURCHASE_ORDER.

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

  • TYPE-POOLS DECLARATION

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

TYPE-POOLS:

SLIS.

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

  • DATA DECLARATIONS

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

DATA:

W_EBELN TYPE EKKO-EBELN,

W_PROG TYPE SY-REPID,

T_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

FS_FIELDCAT LIKE LINE OF T_FIELDCAT,

T_EVENTCAT TYPE SLIS_T_EVENT,

W_EVENTCAT LIKE LINE OF T_EVENTCAT.

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

  • SELECT-OPTIONS DECLARATION

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

SELECT-OPTIONS:

S_EBELN FOR W_EBELN.

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

  • INTERNAL TABLE AND FIELD-STRING DECLARATIONS

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

DATA:

T_EKKO LIKE

STANDARD TABLE

OF EKKO,

FS_EKKO LIKE LINE OF T_EKKO.

DATA:

T_EKPO LIKE

STANDARD TABLE

OF EKPO,

FS_EKPO LIKE LINE OF T_EKPO.

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

  • START-OF-SELECTION

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

START-OF-SELECTION.

SELECT *

FROM EKKO

INTO TABLE T_EKKO

WHERE EBELN IN S_EBELN.

W_PROG = SY-REPID.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = W_PROG

I_CALLBACK_USER_COMMAND = 'PICK'

I_STRUCTURE_NAME = 'EKKO'

TABLES

T_OUTTAB = T_EKKO

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 pick

&----


  • -->UCOMM text

  • -->SELFIELD text

----


FORM PICK USING COMMAND LIKE SY-UCOMM

SELFIELD TYPE SLIS_SELFIELD.

READ TABLE T_EKKO INTO FS_EKKO INDEX SELFIELD-TABINDEX.

CASE COMMAND.

WHEN '&IC1'.

SELECT *

FROM EKPO

INTO TABLE T_EKPO

WHERE EBELN EQ FS_EKKO-EBELN.

W_PROG = SY-REPID.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_STRUCTURE_NAME = 'EKPO'

CHANGING

CT_FIELDCAT = T_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.

DELETE T_FIELDCAT WHERE FIELDNAME EQ 'EBELN'.

DELETE T_FIELDCAT WHERE FIELDNAME EQ 'BUKRS'.

DELETE T_FIELDCAT WHERE FIELDNAME EQ 'LGORT'.

DELETE T_FIELDCAT WHERE FIELDNAME EQ 'WERKS'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = W_PROG

IT_FIELDCAT = T_FIELDCAT

IT_EVENTS = T_EVENTCAT

TABLES

T_OUTTAB = T_EKPO

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.

ENDCASE. " CASE COMMAND

ENDFORM. " FORM PICK

FORM T_EVENTCAT.

W_EVENTCAT-NAME = 'TOP_OF_PAGE'.

W_EVENTCAT-FORM = 'TOP'.

APPEND W_EVENTCAT TO T_EVENTCAT.

ENDFORM.

FORM TOP.

READ TABLE T_EKPO INTO FS_EKPO INDEX 1.

WRITE:/ 'Purchase Document Number'(001),30 FS_EKPO-EBELN,

/ 'Company Code'(002), 30 FS_EKPO-BUKRS,

/ 'Plant'(003), 30 FS_EKPO-WERKS,

/ 'Storage Location'(004),30 FS_EKPO-LGORT.

ENDFORM.

check this link also

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

regards

prasanth

Read only

Former Member
0 Likes
538

Hi,

Have a look on the following code,it displays the second level

report based on the field selected in first level.

An Interactive ALV Report without Header list based on particular field only.

  • Use “set parameter id ‘BES’ “

REPORT ZCS_PRG9.

TYPE-POOLS SLIS.

TYPES: BEGIN OF I_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BUKRS LIKE EKKO-BUKRS,

BSART LIKE EKKO-BSART,

LIFNR LIKE EKKO-LIFNR,

END OF I_EKKO.

DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,

WA_EKKO TYPE I_EKKO.

TYPES: BEGIN OF I_EKPO,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MEINS LIKE EKPO-MEINS,

NETPR LIKE EKPO-NETPR,

END OF I_EKPO.

DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

WA_EKPO TYPE I_EKPO.

DATA: V_REPID TYPE SY-REPID,

I_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FLDCAT TYPE SLIS_FIELDCAT_ALV,

I_FLDCAT1 TYPE SLIS_T_FIELDCAT_ALV,

WA_FLDCAT1 TYPE SLIS_FIELDCAT_ALV.

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST ALV REPORT',

I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDARY ALV REPORT'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM FLDCATALOG.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM DISPLAY_ALV_REPORT.

FORM FLDCATALOG.

WA_FLDCAT-TABNAME = 'IT_EKKO'.

WA_FLDCAT-FIELDNAME = 'EBELN'.

WA_FLDCAT-SELTEXT_M = 'PO NUMBER'.

APPEND WA_FLDCAT TO I_FLDCAT.

CLEAR WA_FLDCAT.

WA_FLDCAT-TABNAME = 'IT_EKKO'.

WA_FLDCAT-FIELDNAME = 'AEDAT'.

WA_FLDCAT-SELTEXT_M = 'DATE'.

APPEND WA_FLDCAT TO I_FLDCAT.

CLEAR WA_FLDCAT.

WA_FLDCAT-TABNAME = 'IT_EKKO'.

WA_FLDCAT-FIELDNAME = 'BUKRS'.

WA_FLDCAT-SELTEXT_M = 'DOCUMENT TYPE'.

APPEND WA_FLDCAT TO I_FLDCAT.

CLEAR WA_FLDCAT.

WA_FLDCAT-TABNAME = 'IT_EKKO'.

WA_FLDCAT-FIELDNAME = 'LIFNR'.

WA_FLDCAT-SELTEXT_M = 'VENDOR CODE'.

APPEND WA_FLDCAT TO I_FLDCAT.

CLEAR WA_FLDCAT.

ENDFORM.

FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR

FROM EKKO INTO TABLE IT_EKKO.

ENDFORM.

FORM DISPLAY_ALV_REPORT.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

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_TITLE_EKKO

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FLDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

I_SAVE = 'A'

  • IS_VARIANT =

  • IT_EVENTS = I_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_EKKO

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

FORM USER_COMMAND USING R_COMM TYPE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_COMM.

WHEN '&IC1'.

IF RS_SELFIELD-FIELDNAME = 'EBELN'.

SET PARAMETER ID 'BES' FIELD WA_EKKO-EBELN. " BES is data element of EBELN

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM FLDCAT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM DISPLAY_ALV_REPORT_EKPO.

ENDIF.

ENDCASE.

ENDFORM.

FORM FLDCAT_EKPO.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'EBELN'.

WA_FLDCAT1-SELTEXT_M = 'PO NUMBER'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'EBELP'.

WA_FLDCAT1-SELTEXT_M = 'LINE NO'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'MATNR'.

WA_FLDCAT1-SELTEXT_M = 'MATERIAL NUMBER'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'MENGE'.

WA_FLDCAT1-SELTEXT_M = 'QUANTITY'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'MEINS'.

WA_FLDCAT1-SELTEXT_M = 'BASE UNIT OF MEASURE'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

WA_FLDCAT1-TABNAME = 'IT_EKPO'.

WA_FLDCAT1-FIELDNAME = 'NETPR'.

WA_FLDCAT1-SELTEXT_M = 'PRICE'.

APPEND WA_FLDCAT1 TO I_FLDCAT1.

CLEAR WA_FLDCAT1.

ENDFORM.

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR

INTO TABLE IT_EKPO

FROM EKPO.

ENDFORM.

FORM DISPLAY_ALV_REPORT_EKPO.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

I_GRID_TITLE = I_TITLE_EKPO

IT_FIELDCAT = I_FLDCAT1[]

I_SAVE = 'A'

TABLES

T_OUTTAB = IT_EKPO

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

REFRESH: IT_EKPO,I_FLDCAT1.

ENDFORM.

Reward,if useful.

Thanks,

Chandu

Read only

Former Member
0 Likes
538

thanks