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

simple ALV

Former Member
0 Likes
737

hi,

how to make use of alv to display fields only namely

matnr

mbrsh

mtart

meins

from mara

in grid ....

i just need these fields to be at output.... can u write the whole program... plz

hi,

how to make use of alv to display fields only namely

matnr

mbrsh

mtart

meins

from mara

in grid ....

i just need these fields to be at output.... can u write the whole program... plz

5 REPLIES 5
Read only

Former Member
0 Likes
694

go to this site

http://www.alvrobot.com.ar/home.php

here subscribe to it from

I want to start generating ALV reports! »

its short prcedure then enter what fields u want in display and then automatically code will b generated.

plz reward if useful

vivek

Edited by: Vivek Gaur on Mar 3, 2008 12:16 PM

Read only

Former Member
0 Likes
694

hi,

report zempdet1.

type-pools slis.

tables: zemptab1,zdeptab1.

selection-screen begin of block b1 with frame title t1.

parameters: a like zemptab1-zedepid.

selection-screen end of block b1.

data: begin of itab occurs 0,

zempid3 like zemptab1-zempid3,

zename3 like zemptab1-zename3,

zedepid like zdeptab1-zedepid,

zdepdes like zdeptab1-zdepdes,

end of itab.

data itab1 like zdeptab1 occurs 0 with header line.

data var like zdeptab1-zedepid.

select * from zdeptab1 into table itab1.

data : gt_fcat type slis_t_fieldcat_alv,

fcat like line of gt_fcat.

perform fieldcatalog.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

it_fieldcat = gt_fcat

tables

t_outtab = itab.

&----


*& Form FIELDCATALOG

&----


  • text

----


form fieldcatalog.

fcat-seltext_l = 'EMPLOYEE ID'.

fcat-fieldname = 'ZEMPID3'.

fcat-tabname = 'ITAB'.

append fcat to gt_fcat.

fcat-seltext_l = 'EMPLOYEE NAME'.

fcat-fieldname = 'ZENAME3'.

fcat-tabname = 'ITAB'.

append fcat to gt_fcat.

fcat-seltext_l = 'DEPARTMENT DESCRIPTION'.

fcat-fieldname = 'ZDEPDES'.

fcat-tabname = 'ITAB'.

append fcat to gt_fcat.

endform. "FIELDCATALOG

hi, try out this,

Regards,

Arunsri

Read only

Former Member
0 Likes
694

Hi

Try this example

A Simple ABAP ALV LIST VIEWER Example

This ALV program have all the basic report requirements such as page heading, page no, sub-total and a grand total.

  • This is a basic ALV with the followings:-

  • - Page Heading

  • - Page No

  • - Sub-Total

  • - Grand Total

REPORT ZALV.

TYPE-POOLS: SLIS.

DATA: G_REPID LIKE SY-REPID,

GS_PRINT TYPE SLIS_PRINT_ALV,

GT_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

GT_EVENTS TYPE SLIS_T_EVENT,

GT_SORT TYPE SLIS_T_SORTINFO_ALV,

GS_LAYOUT TYPE SLIS_LAYOUT_ALV,

GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

FIELDCAT_LN LIKE LINE OF GT_FIELDCAT,

COL_POS TYPE I.

DATA: BEGIN OF ITAB,

FIELD1(5) TYPE C,

FIELD2(5) TYPE C,

FIELD3(5) TYPE P DECIMALS 2,

END OF ITAB.

DATA: BEGIN OF ITAB1 OCCURS 0.

INCLUDE STRUCTURE ITAB.

DATA: END OF ITAB1.

DATA: BEGIN OF ITAB_FIELDCAT OCCURS 0.

INCLUDE STRUCTURE ITAB.

DATA: END OF ITAB_FIELDCAT.

  • Print Parameters

PARAMETERS:

P_PRINT AS CHECKBOX DEFAULT ' ', "PRINT IMMEDIATE

P_NOSINF AS CHECKBOX DEFAULT 'X', "NO SELECTION INFO

P_NOCOVE AS CHECKBOX DEFAULT ' ', "NO COVER PAGE

P_NONEWP AS CHECKBOX DEFAULT ' ', "NO NEW PAGE

P_NOLINF AS CHECKBOX DEFAULT 'X', "NO PRINT LIST INFO

P_RESERV TYPE I. "NO OF FOOTER LINE

INITIALIZATION.

G_REPID = SY-REPID.

PERFORM PRINT_BUILD USING GS_PRINT. "Print PARAMETERS

START-OF-SELECTION.

  • TEST DATA

MOVE 'TEST1' TO ITAB1-FIELD1.

MOVE 'TEST1' TO ITAB1-FIELD2.

MOVE '10.00' TO ITAB1-FIELD3.

APPEND ITAB1.

MOVE 'TEST2' TO ITAB1-FIELD1.

MOVE 'TEST2' TO ITAB1-FIELD2.

MOVE '20.00' TO ITAB1-FIELD3.

APPEND ITAB1.

DO 50 TIMES.

APPEND ITAB1.

ENDDO.

END-OF-SELECTION.

PERFORM BUILD.

PERFORM EVENTTAB_BUILD CHANGING GT_EVENTS.

PERFORM COMMENT_BUILD CHANGING GT_LIST_TOP_OF_PAGE.

PERFORM CALL_ALV.

FORM BUILD.

  • DATA FIELD CATALOG

  • Explain Field Description to ALV

DATA: FIELDCAT_IN TYPE SLIS_FIELDCAT_ALV.

CLEAR FIELDCAT_IN.

FIELDCAT_LN-FIELDNAME = 'FIELD1'.

FIELDCAT_LN-TABNAME = 'ITAB1'.

*FIELDCAT_LN-NO_OUT = 'X'. "FIELD NOT DISPLAY, CHOOSE FROM LAYOUT

FIELDCAT_LN-KEY = ' '. "SUBTOTAL KEY

FIELDCAT_LN-NO_OUT = ' '.

FIELDCAT_LN-SELTEXT_L = 'HEAD1'.

APPEND FIELDCAT_LN TO GT_FIELDCAT.

CLEAR FIELDCAT_IN.

FIELDCAT_LN-FIELDNAME = 'FIELD2'.

FIELDCAT_LN-TABNAME = 'ITAB1'.

FIELDCAT_LN-NO_OUT = 'X'.

FIELDCAT_LN-SELTEXT_L = 'HEAD2'.

APPEND FIELDCAT_LN TO GT_FIELDCAT.

CLEAR FIELDCAT_IN.

FIELDCAT_LN-FIELDNAME = 'FIELD3'.

FIELDCAT_LN-TABNAME = 'ITAB1'.

FIELDCAT_LN-REF_FIELDNAME = 'MENGE'. "<- REF FIELD IN THE DICTIONNARY

FIELDCAT_LN-REF_TABNAME = 'MSEG'. "<- REF TABLE IN THE DICTIONNARY

FIELDCAT_LN-NO_OUT = ' '.

FIELDCAT_LN-DO_SUM = 'X'. "SUM UPON DISPLAY

APPEND FIELDCAT_LN TO GT_FIELDCAT.

  • DATA SORTING AND SUBTOTAL

DATA: GS_SORT TYPE SLIS_SORTINFO_ALV.

CLEAR GS_SORT.

GS_SORT-FIELDNAME = 'FIELD1'.

GS_SORT-SPOS = 1.

GS_SORT-UP = 'X'.

GS_SORT-SUBTOT = 'X'.

APPEND GS_SORT TO GT_SORT.

CLEAR GS_SORT.

GS_SORT-FIELDNAME = 'FIELD2'.

GS_SORT-SPOS = 2.

GS_SORT-UP = 'X'.

*GS_SORT-SUBTOT = 'X'.

APPEND GS_SORT TO GT_SORT.

ENDFORM.

FORM CALL_ALV.

  • ABAP List Viewer

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = G_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

I_STRUCTURE_NAME = 'ITAB1'

IS_LAYOUT = GS_LAYOUT

IT_FIELDCAT = GT_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

IT_SORT = GT_SORT[]

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

IT_EVENTS = GT_EVENTS[]

  • IT_EVENT_EXIT =

IS_PRINT = GS_PRINT

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = ITAB1

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

ENDFORM.

  • HEADER FORM

FORM EVENTTAB_BUILD CHANGING LT_EVENTS TYPE SLIS_T_EVENT.

CONSTANTS:

GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.

*GC_FORMNAME_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE'.

DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = LT_EVENTS.

READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO LS_EVENT.

IF SY-SUBRC = 0.

MOVE GC_FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.

APPEND LS_EVENT TO LT_EVENTS.

ENDIF.

  • define END_OF_PAGE event

  • READ TABLE LT_EVENTS WITH KEY NAME = SLIS_EV_END_OF_PAGE

  • INTO LS_EVENT.

  • IF SY-SUBRC = 0.

  • MOVE GC_FORMNAME_END_OF_PAGE TO LS_EVENT-FORM.

  • APPEND LS_EVENT TO LT_EVENTS.

  • ENDIF.

ENDFORM.

FORM COMMENT_BUILD CHANGING GT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA: GS_LINE TYPE SLIS_LISTHEADER.

CLEAR GS_LINE.

GS_LINE-TYP = 'H'.

GS_LINE-INFO = 'HEADER 1'.

APPEND GS_LINE TO GT_TOP_OF_PAGE.

CLEAR GS_LINE.

GS_LINE-TYP = 'S'.

GS_LINE-KEY = 'STATUS 1'.

GS_LINE-INFO = 'INFO 1'.

APPEND GS_LINE TO GT_TOP_OF_PAGE.

GS_LINE-KEY = 'STATUS 2'.

GS_LINE-INFO = 'INFO 2'.

APPEND GS_LINE TO GT_TOP_OF_PAGE.

  • CLEAR GS_LINE.

  • GS_LINE-TYP = 'A'.

  • GS_LINE-INFO = 'ACTION'.

  • APPEND GS_LINE TO GT_TOP_OF_PAGE.

ENDFORM.

FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = GT_LIST_TOP_OF_PAGE.

WRITE: SY-DATUM, 'Page No', SY-PAGNO LEFT-JUSTIFIED.

ENDFORM.

FORM END_OF_PAGE.

WRITE at (sy-linsz) sy-pagno CENTERED.

ENDFORM.

  • PRINT SETTINGS

FORM PRINT_BUILD USING LS_PRINT TYPE SLIS_PRINT_ALV.

LS_PRINT-PRINT = P_PRINT. "PRINT IMMEDIATE

LS_PRINT-NO_PRINT_SELINFOS = P_NOSINF. "NO SELECTION INFO

LS_PRINT-NO_COVERPAGE = P_NOCOVE. "NO COVER PAGE

LS_PRINT-NO_NEW_PAGE = P_NONEWP.

LS_PRINT-NO_PRINT_LISTINFOS = P_NOLINF. "NO PRINT LIST INFO

LS_PRINT-RESERVE_LINES = P_RESERV.

ENDFORM.

*END OF ZALV PROGRAM

Question : Subject : ALV Sample ABAP Code - Group

Dear Abapers,

Can anybody send me code for ALV report where group has been used.

Thanks in Advance.

Warm Regards,

Reply : Subject : ALV Sample Code - Group

I will be sending some code about ALV.

It may help you out.

Regards

======================================

REPORT ALV.

  • REPORT Z_LIST_MATERIALS.

TYPE-POOLS: SLIS.

TABLES:MARC, MARD, VBAP, LIPS, EKPO, VBFA, EKBE, MARM, VBBE, MARA, MBEW.

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

SELECT-OPTIONS: S_WERKS FOR MARC-WERKS, " Plant

S_MATNR FOR MARC-MATNR, " Material

S_MTART FOR MARA-MTART. " Material Type

SELECTION-SCREEN END OF BLOCK SEL.

PARAMETERS: P_VARI LIKE DISvariant-VARIANT. " ALV Variant

CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.

DATA: BEGIN OF INV OCCURS 100,

WERKS LIKE MARD-WERKS, " Plant

MATNR LIKE MARD-MATNR, " Material

MTART LIKE MARA-MTART, " Material Type

STPRS LIKE MBEW-STPRS, " Standard Price

AVAIL LIKE MARD-LABST, " Available

LABST LIKE MARD-LABST, " Unrestricted use

INSME LIKE MARD-INSME, " Quality Inspection

RETME LIKE MARD-RETME, " Returns

TRANS LIKE MARC-UMLMC, " Stock in transit (calculated)

UMLMC LIKE MARC-UMLMC, " Stock Transfer (plant)

UMLME LIKE MARD-UMLME, " Transfer (SLoc)

WESBS LIKE EKBE-WESBS, " GR Blocked Stock

TRAME LIKE MARC-TRAME, " Stock in transit

SPEME LIKE MARD-SPEME, " Blocked

KWMENG LIKE VBAP-KWMENG, " Sales orders

LFIMG LIKE LIPS-LFIMG, " Scheduled for Delivery

MENGE LIKE EKPO-MENGE, " Open Purch. Orders

VALUE LIKE MBEW-SALK3, " Stock Value (Calculated)

MEINS LIKE MARA-MEINS, " Unit of measure

END OF INV.

DATA: FIELDTAB TYPE SLIS_T_FIELDCAT_ALV,

HEADING TYPE SLIS_T_LISTHEADER,

LAYOUT TYPE SLIS_LAYOUT_ALV,

EVENTS TYPE SLIS_T_EVENT,

REPNAME LIKE SY-REPID,

F2CODE LIKE SY-UCOMM VALUE '&ETA',

G_SAVE(1) TYPE C,

G_EXIT(1) TYPE C,

G_VARIANT LIKE DISVARIANT,

GX_VARIANT LIKE DISVARIANT.

break-point.

INITIALIZATION.

REPNAME = SY-REPID.

PERFORM INITIALIZE_FIELDCAT USING FIELDTAB[].

PERFORM BUILD_EVENTTAB USING EVENTS[].

PERFORM BUILD_COMMENT USING HEADING[].

PERFORM INITIALIZE_VARIANT.

break-point.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.

PERFORM F4_FOR_VARIANT.

break-point.

AT SELECTION-SCREEN.

PERFORM PAI_OF_SELECTION_SCREEN.

break-point.

START-OF-SELECTION.

PERFORM GET_MARD.

PERFORM GET_UNIT_OF_MEASURE.

PERFORM GET_MARC.

PERFORM GET_EKPO.

PERFORM GET_LIPS.

PERFORM GET_VBAP.

PERFORM GET_OPEN.

PERFORM GET_PRICE.

END-OF-SELECTION.

break-point.

PERFORM BUILD_LAYOUT USING LAYOUT.

PERFORM WRITE_OUTPUT.

&----


*& Form INITIALIZE_FIELDCAT

&----


  • text

----


  • -->P_FIELDTAB[] text *

----


FORM INITIALIZE_FIELDCAT USING P_FIELDTAB TYPE SLIS_T_FIELDCAT_ALV.

DATA: L_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

  • fixed columns (obligatory)

CLEAR L_FIELDCAT.

L_FIELDCAT-TABNAME = 'INV'.

L_FIELDCAT-FIX_COLUMN = 'X'.

L_FIELDCAT-NO_OUT = 'O'.

L_FIELDCAT-FIELDNAME = 'WERKS'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'MATNR'.

APPEND L_FIELDCAT TO P_FIELDTAB.

  • totalized columns

CLEAR L_FIELDCAT.

L_FIELDCAT-TABNAME = 'INV'.

L_FIELDCAT-SP_GROUP = 'A'.

L_FIELDCAT-DO_SUM = 'X'.

L_FIELDCAT-FIELDNAME = 'LABST'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'INSME'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'RETME'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'UMLME'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'WESBS'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'SPEME'.

APPEND L_FIELDCAT TO P_FIELDTAB.

  • columns with different description

L_FIELDCAT-FIELDNAME = 'KWMENG'.

L_FIELDCAT-SELTEXT_M = 'Sales Orders'.

L_FIELDCAT-SELTEXT_S = 'Sales Or'.

L_FIELDCAT-SELTEXT_L = 'Sales Orders Qty'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'LFIMG'.

L_FIELDCAT-SELTEXT_M = 'Sched. Delivery'.

L_FIELDCAT-SELTEXT_S = 'Schd. Del'.

L_FIELDCAT-SELTEXT_L = 'Scheduled for Delivery'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'TRANS'.

L_FIELDCAT-SELTEXT_M = 'Stk. in transit'.

L_FIELDCAT-SELTEXT_S = 'Stk. trns'.

L_FIELDCAT-SELTEXT_L = 'Stock in transit (sum)'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'AVAIL'.

L_FIELDCAT-SELTEXT_M = 'Available'.

L_FIELDCAT-SELTEXT_S = 'Avail.'.

L_FIELDCAT-SELTEXT_L = 'Stock Available'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'MENGE'.

L_FIELDCAT-SELTEXT_M = 'Open Orders'.

L_FIELDCAT-SELTEXT_S = 'Open Ord'.

L_FIELDCAT-SELTEXT_L = 'Open Purchase Orders'.

APPEND L_FIELDCAT TO P_FIELDTAB.

  • columns not displayed

CLEAR L_FIELDCAT.

L_FIELDCAT-TABNAME = 'INV'.

L_FIELDCAT-SP_GROUP = 'A'.

L_FIELDCAT-NO_OUT = 'X'.

L_FIELDCAT-FIELDNAME = 'MEINS'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'UMLMC'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'TRAME'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'STPRS'.

APPEND L_FIELDCAT TO P_FIELDTAB.

L_FIELDCAT-FIELDNAME = 'VALUE'.

APPEND L_FIELDCAT TO P_FIELDTAB.

ENDFORM. " INITIALIZE_FIELDCAT

&----


*& Form BUILD_EVENTTAB

&----


  • text

----


  • -->P_EVENTS[] text *

----


FORM BUILD_EVENTTAB USING P_EVENTS TYPE SLIS_T_EVENT.

DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = P_EVENTS.

READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO LS_EVENT.

IF SY-SUBRC = 0.

MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.

APPEND LS_EVENT TO P_EVENTS.

ENDIF.

ENDFORM. " BUILD_EVENTTAB

&----


*& Form BUILD_COMMENT

&----


  • text

----


  • -->P_HEADING[] text *

----


FORM BUILD_COMMENT USING P_HEADING TYPE SLIS_T_LISTHEADER.

DATA: HLINE TYPE SLIS_LISTHEADER,

TEXT(60) TYPE C,

SEP(20) TYPE C.

CLEAR: HLINE, TEXT.

HLINE-TYP = 'H'.

WRITE: TEXT-101 TO TEXT+23.

HLINE-INFO = TEXT.

APPEND HLINE TO P_HEADING.

CLEAR TEXT.

WRITE: 'User: ' TO TEXT,

SY-UNAME TO TEXT+6,

'Date: ' TO TEXT+25,

SY-DATUM TO TEXT+31,

'Page: ' TO TEXT+50,

SY-PAGNO TO TEXT+56.

HLINE-INFO = TEXT.

APPEND HLINE TO P_HEADING.

ENDFORM. " BUILD_COMMENT

----


  • FORM TOP_OF_PAGE *

----


  • ........ *

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = HEADING.

ENDFORM.

&----


*& Form INITIALIZE_VARIANT

&----


  • text

----


FORM INITIALIZE_VARIANT.

G_SAVE = 'A'.

CLEAR G_VARIANT.

G_VARIANT-REPORT = REPNAME.

GX_VARIANT = G_VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

I_SAVE = G_SAVE

CHANGING

CS_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 0.

P_VARI = GX_VARIANT-VARIANT.

ENDIF.

ENDFORM. " INITIALIZE_VARIANT

&----


*& Form F4_FOR_VARIANT

&----


  • text

----


FORM F4_FOR_VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

IS_VARIANT = G_VARIANT

I_SAVE = G_SAVE

IMPORTING

E_EXIT = G_EXIT

ES_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 2.

MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO

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

ELSE.

IF G_EXIT = SPACE.

P_VARI = GX_VARIANT-VARIANT.

ENDIF.

ENDIF.

ENDFORM. " F4_FOR_VARIANT

&----


*& Form PAI_OF_SELECTION_SCREEN

&----


  • text

----


FORM PAI_OF_SELECTION_SCREEN.

IF NOT P_VARI IS INITIAL.

MOVE G_VARIANT TO GX_VARIANT.

MOVE P_VARI TO GX_VARIANT-VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'

EXPORTING

I_SAVE = G_SAVE

CHANGING

CS_VARIANT = GX_VARIANT.

G_VARIANT = GX_VARIANT.

ELSE.

PERFORM INITIALIZE_VARIANT.

ENDIF.

ENDFORM. " PAI_OF_SELECTION_SCREEN

&----


*& Form GET_MARD

&----


  • text

----


FORM GET_MARD.

SELECT MATNR WERKS LABST INSME RETME UMLME SPEME

FROM MARD

INTO CORRESPONDING FIELDS OF INV

WHERE MATNR IN S_MATNR

AND WERKS IN S_WERKS.

COLLECT INV.

ENDSELECT.

PERFORM FILTER_BY_MATERIAL_TYPE.

ENDFORM. " GET_MARD

&----


*& Form FILTER_BY_MATERIAL_TYPE

&----


  • text

----


FORM FILTER_BY_MATERIAL_TYPE.

LOOP AT INV.

CLEAR INV-MTART.

SELECT SINGLE MTART

INTO INV-MTART

FROM MARA

WHERE MATNR EQ INV-MATNR

AND MTART IN S_MTART.

IF SY-SUBRC EQ 0.

MODIFY INV.

ELSE.

DELETE INV.

ENDIF.

ENDLOOP.

ENDFORM. " FILTER_BY_MATERIAL_TYPE

&----


*& Form GET_MARC

&----


  • text

----


FORM GET_MARC.

LOOP AT INV.

SELECT SINGLE UMLMC TRAME

FROM MARC

INTO CORRESPONDING FIELDS OF INV

WHERE MATNR EQ INV-MATNR

AND WERKS EQ INV-WERKS.

IF SY-SUBRC EQ 0.

INV-TRANS = INV-UMLMC + INV-TRAME.

MODIFY INV.

ENDIF.

ENDLOOP.

ENDFORM. " GET_MARC

&----


*& Form GET_EKPO

&----


  • text

----


FORM GET_EKPO.

DATA: WESBS LIKE INV-WESBS,

SHKZG LIKE EKBE-SHKZG,

MEINS LIKE EKPO-MEINS,

LMEIN LIKE EKPO-LMEIN.

LOOP AT INV.

CLEAR: WESBS, SHKZG, MEINS, LMEIN.

SELECT YWESBS YSHKZG XMEINS XLMEIN

INTO (WESBS, SHKZG, MEINS, LMEIN)

FROM EKPO AS X JOIN EKBE AS Y

ON XEBELN = YEBELN

AND XEBELP = YEBELP

WHERE X~MATNR EQ INV-MATNR

AND X~WERKS EQ INV-WERKS

AND X~LOEKZ NE 'L'.

IF SHKZG EQ 'H'.

MULTIPLY WESBS BY -1.

ENDIF.

IF MEINS NE LMEIN.

PERFORM CONVERT_UNIT_OF_MEASURE CHANGING INV-MATNR MEINS WESBS.

ENDIF.

ADD WESBS TO INV-WESBS.

ENDSELECT.

MODIFY INV.

ENDLOOP.

ENDFORM. " GET_EKPO

&----


*& Form GET_LIPS

&----


  • text

----


FORM GET_LIPS.

DATA: LFIMG LIKE INV-LFIMG.

LOOP AT INV.

CLEAR: LFIMG, INV-LFIMG.

SELECT OMENG

INTO LFIMG

FROM VBBE

WHERE MATNR EQ INV-MATNR

AND WERKS EQ INV-WERKS

AND VBTYP EQ 'J'.

ADD LFIMG TO INV-LFIMG.

ENDSELECT.

MODIFY INV.

ENDLOOP.

ENDFORM. " GET_LIPS

&----


*& Form GET_VBAP

&----


  • text

----


FORM GET_VBAP.

DATA: KWMENG LIKE INV-KWMENG.

LOOP AT INV.

CLEAR: KWMENG, INV-KWMENG.

SELECT OMENG

INTO KWMENG

FROM VBBE

WHERE MATNR EQ INV-MATNR

AND WERKS EQ INV-WERKS

AND VBTYP EQ 'C'.

ADD KWMENG TO INV-KWMENG.

ENDSELECT.

INV-AVAIL = INV-LABST - INV-INSME - INV-KWMENG - INV-LFIMG.

MODIFY INV.

ENDLOOP.

ENDFORM. " GET_VBAP

&----


*& Form GET_UNIT_OF_MEASURE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_UNIT_OF_MEASURE.

LOOP AT INV.

SELECT SINGLE MEINS

FROM MARA

INTO INV-MEINS

WHERE MATNR EQ INV-MATNR.

MODIFY INV.

ENDLOOP.

ENDFORM. " GET_UNIT_OF_MEASURE

&----


*& Form GET_OPEN

&----


  • text

----


FORM GET_OPEN.

DATA: BEGIN OF XTAB OCCURS 10, " Open orders table

WERKS LIKE EKPO-WERKS,

LGORT LIKE EKPO-LGORT,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MENGK LIKE EKPO-MENGE,

END OF XTAB.

RANGES: L_WERKS FOR MARD-WERKS.

LOOP AT INV.

REFRESH XTAB.

CLEAR: XTAB, L_WERKS.

MOVE INV-WERKS TO L_WERKS-LOW.

CALL FUNCTION 'MB_ADD_PURCHASE_ORDER_QUANTITY'

EXPORTING

X_MATNR = INV-MATNR

X_MEINS = INV-MEINS

X_ELIKZ = SPACE

X_LOEKZ = SPACE

TABLES

XTAB = XTAB

XWERKS = L_WERKS.

MOVE XTAB-MENGE TO INV-MENGE.

MODIFY INV.

ENDLOOP.

ENDFORM. " GET_OPEN

&----


*& Form GET_PRICE

&----


  • text

----


FORM GET_PRICE.

LOOP AT INV.

SELECT SINGLE STPRS

FROM MBEW

INTO INV-STPRS

WHERE MATNR EQ INV-MATNR

AND BWKEY EQ INV-WERKS

AND BWTAR EQ SPACE.

IF SY-SUBRC EQ 0.

INV-VALUE = INV-STPRS *

( INV-LABST + INV-INSME + INV-TRANS + INV-SPEME ).

MODIFY INV.

ENDIF.

ENDLOOP.

ENDFORM. " GET_PRICE

----


  • FORM CONVERT_UNIT_OF_MEASURE *

----


  • text *

----


  • --> P_MATNR *

  • --> P_VRKME *

  • --> P_QUANT *

----


FORM CONVERT_UNIT_OF_MEASURE USING P_MATNR P_VRKME P_QUANT.

DATA: UMREZ LIKE MARM-UMREZ,

UMREN LIKE MARM-UMREN.

SELECT SINGLE UMREZ UMREN

INTO (UMREZ, UMREN)

FROM MARM

WHERE MATNR EQ P_MATNR

AND MEINH EQ P_VRKME.

IF SY-SUBRC EQ 0.

COMPUTE P_QUANT = ( P_QUANT * UMREZ ) / UMREN.

ENDIF.

ENDFORM.

&----


*& Form BUILD_LAYOUT

&----


  • text

----


  • -->P_LAYOUT text *

----


FORM BUILD_LAYOUT USING P_LAYOUT TYPE SLIS_LAYOUT_ALV.

P_LAYOUT-F2CODE = F2CODE.

P_LAYOUT-ZEBRA = 'X'.

P_LAYOUT-DETAIL_POPUP = 'X'.

ENDFORM. " BUILD_LAYOUT

&----


*& Form WRITE_OUTPUT

&----


  • text

----


FORM WRITE_OUTPUT.

SORT INV BY WERKS MATNR.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = REPNAME

I_INTERNAL_TABNAME = 'INV'

I_INCLNAME = REPNAME

CHANGING

CT_FIELDCAT = FIELDTAB.

IF SY-SUBRC <> 0.

WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_FIELDCATALOG_MERGE'.

ENDIF.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = REPNAME

I_STRUCTURE_NAME = 'INV'

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FIELDTAB

I_DEFAULT = 'A'

I_SAVE = G_SAVE

IS_VARIANT = G_VARIANT

IT_EVENTS = EVENTS[]

TABLES

T_OUTTAB = INV.

break-point.

IF SY-SUBRC <> 0.

WRITE: 'SY-SUBRC: ', SY-SUBRC, 'REUSE_ALV_LIST_DISPLAY'.

ENDIF.

ENDFORM. " WRITE_OUTPUT

ALV Grid List with sub-totals

REPORT z_demo_alv_sort.

----


  • This program lists orders (VBAK) with sort and sub-total for *

  • 'sold-to-party' (KUNNR) and 'Sales organization' (VKORG) *

----


TABLES : vbak.

TYPE-POOLS: slis. " ALV Global types

SELECT-OPTIONS :

s_vkorg FOR vbak-vkorg, " Sales organization

s_kunnr FOR vbak-kunnr, " Sold-to party

s_vbeln FOR vbak-vbeln. " Sales document

SELECTION-SCREEN :

SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max.

PARAMETERS p_max(2) TYPE n DEFAULT '20' OBLIGATORY.

SELECTION-SCREEN END OF LINE.

DATA:

BEGIN OF gt_vbak OCCURS 0,

vkorg LIKE vbak-vkorg, " Sales organization

kunnr LIKE vbak-kunnr, " Sold-to party

vbeln LIKE vbak-vbeln, " Sales document

netwr LIKE vbak-netwr, " Net Value of the Sales Order

waerk LIKE vbak-waerk, " Document currency

END OF gt_vbak.

----


INITIALIZATION.

v_1 = 'Maximum of records to read'.

----


START-OF-SELECTION.

PERFORM f_read_data.

PERFORM f_display_data.

----


  • Form f_read_data

----


FORM f_read_data.

SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_vbak

FROM vbak

UP TO p_max ROWS

WHERE kunnr IN s_kunnr

AND vbeln IN s_vbeln

AND vkorg IN s_vkorg.

ENDFORM. " F_READ_DATA

----


  • Form f_display_data

----


FORM f_display_data.

DEFINE m_fieldcat.

add 1 to ls_fieldcat-col_pos.

ls_fieldcat-fieldname = &1.

ls_fieldcat-ref_tabname = 'VBAK'.

ls_fieldcat-do_sum = &2.

ls_fieldcat-cfieldname = &3.

append ls_fieldcat to lt_fieldcat.

END-OF-DEFINITION.

DEFINE m_sort.

add 1 to ls_sort-spos.

ls_sort-fieldname = &1.

ls_sort-up = 'X'.

ls_sort-subtot = &2.

append ls_sort to lt_sort.

END-OF-DEFINITION.

DATA:

ls_fieldcat TYPE slis_fieldcat_alv,

lt_fieldcat TYPE slis_t_fieldcat_alv,

lt_sort TYPE slis_t_sortinfo_alv,

ls_sort TYPE slis_sortinfo_alv,

ls_layout TYPE slis_layout_alv.

m_fieldcat 'VKORG' '' ''.

m_fieldcat 'KUNNR' '' ''.

m_fieldcat 'VBELN' '' ''.

m_fieldcat 'NETWR' 'X' 'WAERK'.

m_fieldcat 'WAERK' '' ''.

m_sort 'VKORG' 'X'. " Sort by vkorg and subtotal

m_sort 'KUNNR' 'X'. " Sort by kunnr and subtotal

m_sort 'VBELN' ''. " Sort by vbeln

ls_layout-cell_merge = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

is_layout = ls_layout

it_fieldcat = lt_fieldcat

it_sort = lt_sort

TABLES

t_outtab = gt_vbak.

ENDFORM. " F_DISPLAY_DATA

                                  • END OF PROGRAM Z_DEMO_ALV_SORT **********************

Auto Refresh ALV List

REPORT z_alv_auto_refresh.

>********************************************************************

  • This report displays User's info (SM04) using the FM : *

  • REUSE_ALV_LIST_DISPLAY *

  • The list is auto-refreshed (refresh time : 5 seconds) *

----


TYPE-POOLS: slis. " ALV Global Types

DATA :

gt_user LIKE uinfo OCCURS 0 WITH HEADER LINE. " User info in SM04

----


START-OF-SELECTION.

PERFORM f_read_data.

PERFORM f_display_data.

----


  • Form F_LIRE_DATA

----


FORM f_read_data.

REFRESH gt_user.

  • Get User's info

CALL FUNCTION 'THUSRINFO'

TABLES

usr_tabl = gt_user.

  • Wait in a task

PERFORM f_call_rfc_wait.

ENDFORM. " F_READ_DATA

----


  • Form F_DISPLAY_DATA

----


FORM f_display_data.

DEFINE m_sort.

add 1 to ls_sort-spos.

ls_sort-fieldname = &1.

append ls_sort to lt_sort.

END-OF-DEFINITION.

DEFINE m_event_exit.

clear ls_event_exit.

ls_event_exit-ucomm = &1.

ls_event_exit-after = 'X'.

append ls_event_exit to lt_event_exit.

END-OF-DEFINITION.

DATA :

ls_layout TYPE slis_layout_alv,

lt_sort TYPE slis_t_sortinfo_alv,

ls_sort TYPE slis_sortinfo_alv,

lt_event_exit TYPE slis_t_event_exit,

ls_event_exit TYPE slis_event_exit.

  • Build Sort Table

m_sort 'ZEIT'.

  • Build Event Exit Table

m_event_exit '&NTE'. " Refresh

ls_layout-zebra = 'X'.

ls_layout-colwidth_optimize = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = sy-cprog

i_callback_user_command = 'USER_COMMAND'

is_layout = ls_layout

i_structure_name = 'UINFO'

it_sort = lt_sort

it_event_exit = lt_event_exit

TABLES

t_outtab = gt_user.

ENDFORM. " F_DISPLAY_DATA

----


  • FORM USER_COMMAND *

----


FORM user_command USING i_ucomm TYPE syucomm

is_selfield TYPE slis_selfield. "#EC CALLED

CASE i_ucomm.

WHEN '&NTE'.

PERFORM f_read_data.

is_selfield-refresh = 'X'.

SET USER-COMMAND '&OPT'. " Optimize columns width

ENDCASE.

ENDFORM. " USER_COMMAND

----


  • Form F_CALL_RFC_WAIT

----


FORM f_call_rfc_wait.

DATA lv_mssg(80). "#EC NEEDED

  • Wait in a task

CALL FUNCTION 'RFC_PING_AND_WAIT' STARTING NEW TASK '001'

PERFORMING f_task_end ON END OF TASK

EXPORTING

seconds = 5 " Refresh time

busy_waiting = space

EXCEPTIONS

RESOURCE_FAILURE = 1

communication_failure = 2 MESSAGE lv_mssg

system_failure = 3 MESSAGE lv_mssg

OTHERS = 4.

ENDFORM. " F_CALL_RFC_WAIT

----


  • Form F_TASK_END

----


FORM f_task_end USING u_taskname.

DATA lv_mssg(80). "#EC NEEDED

  • Receiving task results

RECEIVE RESULTS FROM FUNCTION 'RFC_PING_AND_WAIT'

EXCEPTIONS

RESOURCE_FAILURE = 1

communication_failure = 2 MESSAGE lv_mssg

system_failure = 3 MESSAGE lv_mssg

OTHERS = 4.

CHECK sy-subrc EQ 0.

SET USER-COMMAND '&NTE'. " Refresh

ENDFORM. " F_TASK_END

                              • END OF PROGRAM Z_ALV_AUTO_REFRESH *********************

Regards

Rohini.

Read only

Former Member
0 Likes
694

hi check these links....

ALV

1. Please give me general info on ALV.

http://www.sapfans.com/forums/viewtopic.php?t=58286

http://www.sapfans.com/forums/viewtopic.php?t=76490

http://www.sapfans.com/forums/viewtopic.php?t=20591

http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.

2. How do I program double click in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=11601

http://www.sapfans.com/forums/viewtopic.php?t=23010

3. How do I add subtotals (I have problem to add them)...

http://www.sapfans.com/forums/viewtopic.php?t=20386

http://www.sapfans.com/forums/viewtopic.php?t=85191

http://www.sapfans.com/forums/viewtopic.php?t=88401

http://www.sapfans.com/forums/viewtopic.php?t=17335

4. How to add list heading like top-of-page in ABAP lists?

http://www.sapfans.com/forums/viewtopic.php?t=58775

http://www.sapfans.com/forums/viewtopic.php?t=60550

http://www.sapfans.com/forums/viewtopic.php?t=16629

5. How to print page number / total number of pages X/XX in ALV? http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)

6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.

http://www.sapfans.com/forums/viewtopic.php?t=64320

http://www.sapfans.com/forums/viewtopic.php?t=44477

7. How can I set the cell color in ALV? http://www.sapfans.com/forums/viewtopic.php?t=52107

8. How do I print a logo/graphics in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=81149

http://www.sapfans.com/forums/viewtopic.php?t=35498

http://www.sapfans.com/forums/viewtopic.php?t=5013

9. How do I create and use input-enabled fields in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=84933

http://www.sapfans.com/forums/viewtopic.php?t=69878

10. How can I use ALV for reports that are going to be run in background?

http://www.sapfans.com/forums/viewtopic.php?t=83243

http://www.sapfans.com/forums/viewtopic.php?t=19224

11. How can I display an icon in ALV? (Common requirement is traffic light icon).

http://www.sapfans.com/forums/viewtopic.php?t=79424

http://www.sapfans.com/forums/viewtopic.php?t=24512

12. How can I display a checkbox in ALV? http://www.sapfans.com/forums/viewtopic.php?t=88376

http://www.sapfans.com/forums/viewtopic.php?t=40968

http://www.sapfans.com/forums/viewtopic.php?t=6919

REWARD IF HELPFUL

GAURAV J.

Read only

Former Member
0 Likes
694

Hi,

TYPE-POOLS SLIS.

DATA IT_KNA1 LIKE KNA1 OCCURS 0 WITH HEADER LINE.

DATA FIELDCAT TYPE SLIS_FIELDCAT_ALV OCCURS 0.

DATA FIELD1 LIKE LINE OF FIELDCAT.

SELECT * FROM KNA1 INTO TABLE IT_KNA1.

PERFORM FIELDCATALOG.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

IT_FIELDCAT = FIELDCAT

TABLES

T_OUTTAB = IT_KNA1.

FORM FIELDCATALOG.

FIELD1-COL_POS = 1.

FIELD1-FIELDNAME = 'KUNNR'.

*FIELD1-TABNAME = 'CUSTOMER NUMBER'.

FIELD1-SELTEXT_S = 'NUMBER'.

APPEND FIELD1 TO FIELDCAT.

FIELD1-COL_POS = 2.

FIELD1-FIELDNAME = 'NAME1'.

*FIELD1-TABNAME = 'CUSTOMER NAME'.

FIELD1-SELTEXT_S = 'NAME'.

APPEND FIELD1 TO FIELDCAT.

FIELD1-COL_POS = 3.

FIELD1-FIELDNAME = 'ORT01'.

*FIELD1-TABNAME = 'CUSTOMER CITY'.

FIELD1-SELTEXT_S = 'CITY'.

APPEND FIELD1 TO FIELDCAT.

FIELD1-COL_POS = 4.

FIELD1-FIELDNAME = 'LAND1'.

*FIELD1-TABNAME = 'CUSTOMER COUNTRY'.

FIELD1-SELTEXT_S = 'COUNTRY'.

APPEND FIELD1 TO FIELDCAT.

ENDFORM.

Regards,

priya.