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
694

Hi Experts,

This is my code i want to display my quantity total according to material group but i can't do it.

I attached all code as follows.Please correct it if it has any mistake or any code missing pls.

REPORT ZZABCTEST2.

TABLES: MARA,

MAKT.

TYPE-POOLS: SLIS.

TYPES: BEGIN OF TY_MARA,

MATNR TYPE MATNR,

MTART TYPE MTART,

MATKL TYPE MATKL,

BRGEW TYPE BRGEW,

END OF TY_MARA,

BEGIN OF TY_MAKT,

MATNR TYPE MATNR,

SPRAS TYPE SPRAS,

MAKTX TYPE MAKTX,

END OF TY_MAKT,

BEGIN OF TY_FINAL,

MATNR TYPE MATNR,

MAKTX TYPE MAKTX,

MTART TYPE MTART,

MATKL TYPE MATKL,

BRGEW TYPE BRGEW,

TOTBW TYPE BRGEW,

END OF TY_FINAL.

CONSTANTS: C_X VALUE 'X',

C_H VALUE 'H',

C_S VALUE 'S'.

DATA: IT_MARA TYPE STANDARD TABLE OF TY_MARA INITIAL SIZE 0,

IT_MAKT TYPE STANDARD TABLE OF TY_MAKT INITIAL SIZE 0,

IT_FINAL TYPE STANDARD TABLE OF TY_FINAL INITIAL SIZE 0,

WA_MARA TYPE TY_MARA,

WA_MAKT TYPE TY_MAKT,

WA_FINAL TYPE TY_FINAL,

G_TOTAL TYPE BRGEW,

G_SNO TYPE I.

  • DECLARATION FOR ALV.

DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV,

LAYOUT TYPE SLIS_LAYOUT_ALV,

TOPPAGE TYPE SLIS_T_LISTHEADER,

ALVSORT TYPE SLIS_T_SORTINFO_ALV.

                    • INITIALIZATION BLOCK ****************************

INITIALIZATION.

                          • SELECTION SCREEN *****************************

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

SELECT-OPTIONS : S_MAT FOR MARA-MATNR.

SELECTION-SCREEN END OF BLOCK B1.

                      • START OF SELECTION ******************************

START-OF-SELECTION.

PERFORM DATA_RETRIVAL.

IF IT_FINAL[] IS NOT INITIAL.

PERFORM BUILD_FIELDCAT.

PERFORM BUILD_LAYOUT.

PERFORM BUILD_HEADER.

  • PERFORM ALV_SORT.

PERFORM DISPLAY_OUTPUT.

ENDIF.

***********END OF SEL;ECTION ********************************

END-OF-SELECTION.

CLEAR: IT_MARA,

IT_MAKT,

IT_FINAL.

&----


*& Form DATA_RETRIVAL

&----


FORM DATA_RETRIVAL .

SELECT MATNR MTART MATKL BRGEW

FROM MARA

INTO TABLE IT_MARA

WHERE MATNR IN S_MAT.

IF IT_MARA[] IS NOT INITIAL.

SELECT MATNR SPRAS MAKTX

FROM MAKT

INTO TABLE IT_MAKT

FOR ALL ENTRIES IN IT_MARA

WHERE MATNR EQ IT_MARA-MATNR

  • AND SPRAS BETWEEN L_SPRAS AND H_SPRAS.

AND SPRAS EQ SY-LANGU.

ENDIF.

CLEAR G_SNO.

LOOP AT IT_MARA INTO WA_MARA WHERE MATNR IS NOT INITIAL.

READ TABLE IT_MAKT INTO WA_MAKT WITH KEY MATNR = WA_MARA-MATNR BINARY SEARCH.

WA_FINAL-MATNR = WA_MARA-MATNR.

WA_FINAL-MAKTX = WA_MAKT-MAKTX.

WA_FINAL-MTART = WA_MARA-MTART.

WA_FINAL-MATKL = WA_MARA-MATKL.

WA_FINAL-BRGEW = WA_MARA-BRGEW.

  • ON CHANGE OF MTART.

  • G_TOTAL = WA_FINAL-BRGEW + G_TOTAL.

  • ENDAT.

APPEND WA_FINAL TO IT_FINAL.

CLEAR WA_FINAL.

ENDLOOP.

SORT IT_FINAL BY MTART.

ENDFORM. " DATA_RETRIVAL

&----


*& Form BUILD_FIELDCAT

&----


FORM BUILD_FIELDCAT .

DATA: L_POS TYPE I,

WA_FLDCAT TYPE SLIS_FIELDCAT_ALV.

  • WA_FLDCAT-FIELDNAME = 'SNO'.

  • WA_FLDCAT-TABNAME = 'IT_FINAL'.

  • WA_FLDCAT-SELTEXT_M = TEXT-000.

  • WA_FLDCAT-OUTPUTLEN = 10.

  • WA_FLDCAT-KEY = C_X.

  • WA_FLDCAT-COL_POS = L_POS.

  • APPEND WA_FLDCAT TO FLDCAT.

  • CLEAR WA_FLDCAT.

  • L_POS = L_POS + 1.

WA_FLDCAT-FIELDNAME = 'MATNR'.

WA_FLDCAT-TABNAME = 'IT_FINAL'.

WA_FLDCAT-SELTEXT_M = TEXT-002.

WA_FLDCAT-OUTPUTLEN = 10.

WA_FLDCAT-KEY = C_X.

WA_FLDCAT-COL_POS = L_POS.

APPEND WA_FLDCAT TO FLDCAT.

CLEAR WA_FLDCAT.

L_POS = L_POS + 1.

WA_FLDCAT-FIELDNAME = 'MAKTX'.

WA_FLDCAT-TABNAME = 'IT_FINAL'.

WA_FLDCAT-SELTEXT_M = TEXT-003.

WA_FLDCAT-OUTPUTLEN = 40.

  • WA_FLDCAT-KEY = C_X.

  • WA_FLDCAT-EMPHASIZE = C_X.

WA_FLDCAT-COL_POS = L_POS.

APPEND WA_FLDCAT TO FLDCAT.

CLEAR WA_FLDCAT.

L_POS = L_POS + 1.

WA_FLDCAT-FIELDNAME = 'MTART'.

WA_FLDCAT-TABNAME = 'IT_FINAL'.

WA_FLDCAT-SELTEXT_M = TEXT-004.

WA_FLDCAT-OUTPUTLEN = 4.

  • WA_FLDCAT-KEY = C_X.

WA_FLDCAT-COL_POS = L_POS.

APPEND WA_FLDCAT TO FLDCAT.

CLEAR WA_FLDCAT.

L_POS = L_POS + 1.

WA_FLDCAT-FIELDNAME = 'MATKL'.

WA_FLDCAT-TABNAME = 'IT_FINAL'.

WA_FLDCAT-SELTEXT_M = TEXT-005.

  • WA_FLDCAT-KEY = C_X.

WA_FLDCAT-OUTPUTLEN = 9.

WA_FLDCAT-COL_POS = L_POS.

APPEND WA_FLDCAT TO FLDCAT.

CLEAR WA_FLDCAT.

L_POS = L_POS + 1.

*

  • WA_FLDCAT-FIELDNAME = 'BRGEW'.

  • WA_FLDCAT-TABNAME = 'IT_FINAL'.

  • WA_FLDCAT-SELTEXT_M = TEXT-005.

  • WA_FLDCAT-KEY = C_X.

  • WA_FLDCAT-OUTPUTLEN = 13.

  • WA_FLDCAT-COL_POS = L_POS.

  • APPEND WA_FLDCAT TO FLDCAT.

  • CLEAR WA_FLDCAT.

  • L_POS = L_POS + 1.

WA_FLDCAT-FIELDNAME = 'TOTBW'.

WA_FLDCAT-TABNAME = 'IT_FINAL'.

WA_FLDCAT-SELTEXT_M = TEXT-005.

  • WA_FLDCAT-KEY = C_X.

WA_FLDCAT-OUTPUTLEN = 13.

WA_FLDCAT-DO_SUM = C_X.

WA_FLDCAT-COL_POS = L_POS.

APPEND WA_FLDCAT TO FLDCAT.

CLEAR WA_FLDCAT.

L_POS = L_POS + 1.

ENDFORM. " BUILD_FIELDCAT

&----


*& Form BUILD_LAYOUT

&----


FORM BUILD_LAYOUT .

LAYOUT-ZEBRA = C_X.

LAYOUT-COLWIDTH_OPTIMIZE = C_X.

ENDFORM. " BUILD_LAYOUT

&----


*& Form BUILD_HEADER

&----


FORM BUILD_HEADER .

DATA: L_TP TYPE SLIS_LISTHEADER.

L_TP-TYP = C_H.

L_TP-INFO = TEXT-006.

APPEND L_TP TO TOPPAGE.

L_TP-TYP = C_S.

L_TP-INFO = TEXT-007.

APPEND L_TP TO TOPPAGE.

ENDFORM. " BUILD_HEADER

&----


*& Form BUILD_COMMENTRY

&----


FORM BUILD_COMMENTRY .

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = TOPPAGE.

ENDFORM.

&----


*& Form DISPLAY_OUTPUT

&----


FORM DISPLAY_OUTPUT .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_TOP_OF_PAGE = 'BUILD_COMMENTRY'

IT_SORT = ALVSORT

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FLDCAT[]

I_SAVE = C_X

TABLES

T_OUTTAB = IT_FINAL

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. " DISPLAY_OUTPUT

&----


*& Form ALV_SORT

&----


FORM ALV_SORT .

DATA: WA_SORT TYPE SLIS_SORTINFO_ALV.

WA_SORT-FIELDNAME = 'MTART'.

WA_SORT-SUBTOT = C_X.

WA_SORT-UP = C_X.

APPEND WA_SORT TO ALVSORT.

CLEAR WA_SORT.

ENDFORM.

Help will be awarded by points.

Regards,

Gurprit Bhatia

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
673

just uncomment

  • PERFORM ALV_SORT.

it is working for me after uncommenting.

regards

shiba dutta

Hi Experts,

This is my code i want to display my quantity total according to material group but i can't do it.

I attached all code as follows.Please correct it if it has any mistake or any code missing pls.

REPORT ZZABCTEST2.

TABLES: MARA,

MAKT.

TYPE-POOLS: SLIS.

TYPES: BEGIN OF TY_MARA,

MATNR TYPE MATNR,

MTART TYPE MTART,

MATKL TYPE MATKL,

BRGEW TYPE BRGEW,

END OF TY_MARA,

BEGIN OF TY_MAKT,

MATNR TYPE MATNR,

SPRAS TYPE SPRAS,

MAKTX TYPE MAKTX,

END OF TY_MAKT,

BEGIN OF TY_FINAL,

MATNR TYPE MATNR,

MAKTX TYPE MAKTX,

MTART TYPE MTART,

MATKL TYPE MATKL,

BRGEW TYPE BRGEW,

TOTBW TYPE BRGEW,

END OF TY_FINAL.

CONSTANTS: C_X VALUE 'X',

C_H VALUE 'H',

C_S VALUE 'S'.

DATA: IT_MARA TYPE STANDARD TABLE OF TY_MARA INITIAL SIZE 0,

IT_MAKT TYPE STANDARD TABLE OF TY_MAKT INITIAL SIZE 0,

IT_FINAL TYPE STANDARD TABLE OF TY_FINAL INITIAL SIZE 0,

WA_MARA TYPE TY_MARA,

WA_MAKT TYPE TY_MAKT,

WA_FINAL TYPE TY_FINAL,

G_TOTAL TYPE BRGEW,

G_SNO TYPE I.

  • DECLARATION FOR ALV.

DATA: FLDCAT TYPE SLIS_T_FIELDCAT_ALV,

LAYOUT TYPE SLIS_LAYOUT_ALV,

TOPPAGE TYPE SLIS_T_LISTHEADER,

ALVSORT TYPE SLIS_T_SORTINFO_ALV.

                    • INITIALIZATION BLOCK ****************************

INITIALIZATION.

                          • SELECTION SCREEN *****************************

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

SELECT-OPTIONS : S_MAT FOR MARA-MATNR.

SELECTION-SCREEN END OF BLOCK B1.

                      • START OF SELECTION ******************************

START-OF-SELECTION.

PERFORM DATA_RETRIVAL.

IF IT_FINAL[] IS NOT INITIAL.

PERFORM BUILD_FIELDCAT.

PERFORM BUILD_LAYOUT.

PERFORM BUILD_HEADER.

  • PERFORM ALV_SORT.

PERFORM DISPLAY_OUTPUT.

ENDIF.

***********END OF SEL;ECTION ********************************

END-OF-SELECTION.

CLEAR: IT_MARA,

IT_MAKT,

IT_FINAL.

&----


*& Form DATA_RETRIVAL

&----


FORM DATA_RETRIVAL .

SELECT MATNR MTART MATKL BRGEW

FROM MARA

INTO TABLE IT_MARA

WHERE MATNR IN S_MAT.

IF IT_MARA[] IS NOT INITIAL.

SELECT MATNR SPRAS MAKTX

FROM MAKT

INTO TABLE IT_MAKT

FOR ALL ENTRIES IN IT_MARA

WHERE MATNR EQ IT_MARA-MATNR

  • AND SPRAS BETWEEN L_SPRAS AND H_SPRAS.

AND SPRAS EQ SY-LANGU.

ENDIF.

CLEAR G_SNO.

LOOP AT IT_MARA INTO WA_MARA WHERE MATNR IS NOT INITIAL.

READ TABLE IT_MAKT INTO WA_MAKT WITH KEY MATNR = WA_MARA-MATNR BINARY SEARCH.

WA_FINAL-MATNR = WA_MARA-MATNR.

WA_FINAL-MAKTX = WA_MAKT-MAKTX.

WA_FINAL-MTART = WA_MARA-MTART.

WA_FINAL-MATKL = WA_MARA-MATKL.

WA_FINAL-BRGEW = WA_MARA-BRGEW.

  • ON CHANGE OF MTART.

  • G_TOTAL = WA_FINAL-BRGEW + G_TOTAL.

  • ENDAT.

APPEND WA_FINAL TO IT_FINAL.

CLEAR WA_FINAL.

ENDLOOP.

SORT IT_FINAL BY MTART.

ENDFORM. " DATA_RETRIVAL

&----


*& Form BUILD_FIELDCAT

&----


FORM BUILD_FIELDCAT .

DATA: L_POS TYPE I,

WA_FLDCAT TYPE SLIS_FIELDCAT_ALV.

  • WA_FLDCAT-FIELDNAME = 'SNO'.

  • WA_FLDCAT-TABNAME = 'IT_FINAL'.

  • WA_FLDCAT-SELTEXT_M = TEXT-000.

  • WA_FLDCAT-OUTPUTLEN = 10.

  • WA_FLDCAT-KEY = C_X.

  • WA_FLDCAT-COL_POS = L_POS.

  • APPEND WA_FLDCAT TO FLDCAT.

  • CLEAR WA_FLDCAT.

  • L_POS = L_POS + 1.

WA_FLDCAT-FIELDNAME = 'MATNR'.

WA_FLDCAT-TABNAME = 'IT_FINAL'.

WA_FLDCAT-SELTEXT_M = TEXT-002.

WA_FLDCAT-OUTPUTLEN = 10.

WA_FLDCAT-KEY = C_X.

WA_FLDCAT-COL_POS = L_POS.

APPEND WA_FLDCAT TO FLDCAT.

CLEAR WA_FLDCAT.

L_POS = L_POS + 1.

WA_FLDCAT-FIELDNAME = 'MAKTX'.

WA_FLDCAT-TABNAME = 'IT_FINAL'.

WA_FLDCAT-SELTEXT_M = TEXT-003.

WA_FLDCAT-OUTPUTLEN = 40.

  • WA_FLDCAT-KEY = C_X.

  • WA_FLDCAT-EMPHASIZE = C_X.

WA_FLDCAT-COL_POS = L_POS.

APPEND WA_FLDCAT TO FLDCAT.

CLEAR WA_FLDCAT.

L_POS = L_POS + 1.

WA_FLDCAT-FIELDNAME = 'MTART'.

WA_FLDCAT-TABNAME = 'IT_FINAL'.

WA_FLDCAT-SELTEXT_M = TEXT-004.

WA_FLDCAT-OUTPUTLEN = 4.

  • WA_FLDCAT-KEY = C_X.

WA_FLDCAT-COL_POS = L_POS.

APPEND WA_FLDCAT TO FLDCAT.

CLEAR WA_FLDCAT.

L_POS = L_POS + 1.

WA_FLDCAT-FIELDNAME = 'MATKL'.

WA_FLDCAT-TABNAME = 'IT_FINAL'.

WA_FLDCAT-SELTEXT_M = TEXT-005.

  • WA_FLDCAT-KEY = C_X.

WA_FLDCAT-OUTPUTLEN = 9.

WA_FLDCAT-COL_POS = L_POS.

APPEND WA_FLDCAT TO FLDCAT.

CLEAR WA_FLDCAT.

L_POS = L_POS + 1.

*

  • WA_FLDCAT-FIELDNAME = 'BRGEW'.

  • WA_FLDCAT-TABNAME = 'IT_FINAL'.

  • WA_FLDCAT-SELTEXT_M = TEXT-005.

  • WA_FLDCAT-KEY = C_X.

  • WA_FLDCAT-OUTPUTLEN = 13.

  • WA_FLDCAT-COL_POS = L_POS.

  • APPEND WA_FLDCAT TO FLDCAT.

  • CLEAR WA_FLDCAT.

  • L_POS = L_POS + 1.

WA_FLDCAT-FIELDNAME = 'TOTBW'.

WA_FLDCAT-TABNAME = 'IT_FINAL'.

WA_FLDCAT-SELTEXT_M = TEXT-005.

  • WA_FLDCAT-KEY = C_X.

WA_FLDCAT-OUTPUTLEN = 13.

WA_FLDCAT-DO_SUM = C_X.

WA_FLDCAT-COL_POS = L_POS.

APPEND WA_FLDCAT TO FLDCAT.

CLEAR WA_FLDCAT.

L_POS = L_POS + 1.

ENDFORM. " BUILD_FIELDCAT

&----


*& Form BUILD_LAYOUT

&----


FORM BUILD_LAYOUT .

LAYOUT-ZEBRA = C_X.

LAYOUT-COLWIDTH_OPTIMIZE = C_X.

ENDFORM. " BUILD_LAYOUT

&----


*& Form BUILD_HEADER

&----


FORM BUILD_HEADER .

DATA: L_TP TYPE SLIS_LISTHEADER.

L_TP-TYP = C_H.

L_TP-INFO = TEXT-006.

APPEND L_TP TO TOPPAGE.

L_TP-TYP = C_S.

L_TP-INFO = TEXT-007.

APPEND L_TP TO TOPPAGE.

ENDFORM. " BUILD_HEADER

&----


*& Form BUILD_COMMENTRY

&----


FORM BUILD_COMMENTRY .

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = TOPPAGE.

ENDFORM.

&----


*& Form DISPLAY_OUTPUT

&----


FORM DISPLAY_OUTPUT .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

I_CALLBACK_TOP_OF_PAGE = 'BUILD_COMMENTRY'

IT_SORT = ALVSORT

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FLDCAT[]

I_SAVE = C_X

TABLES

T_OUTTAB = IT_FINAL

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. " DISPLAY_OUTPUT

&----


*& Form ALV_SORT

&----


FORM ALV_SORT .

DATA: WA_SORT TYPE SLIS_SORTINFO_ALV.

WA_SORT-FIELDNAME = 'MTART'.

WA_SORT-SUBTOT = C_X.

WA_SORT-UP = C_X.

APPEND WA_SORT TO ALVSORT.

CLEAR WA_SORT.

ENDFORM.

Help will be awarded by points.

Regards,

Gurprit Bhatia

4 REPLIES 4
Read only

Former Member
0 Likes
674

just uncomment

  • PERFORM ALV_SORT.

it is working for me after uncommenting.

regards

shiba dutta

Read only

former_member480923
Active Contributor
0 Likes
673

Hi ur code is correct please add the highlighted section to complete it.

FORM display_output .

<b>  PERFORM alv_sort.</b>

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      i_callback_program     = sy-repid
      i_callback_top_of_page = 'BUILD_COMMENTRY'
      it_sort                = alvsort
      is_layout              = layout
      it_fieldcat            = fldcat[]
      i_save                 = c_x
    TABLES
      t_outtab               = it_final
    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. " DISPLAY_OUTPUT

Hope that Helps

Anirban M.

Read only

Neslinn
Participant
0 Likes
673

Hi,

Check this code for subtotal:

Define

DATA: wa_sort TYPE slis_sortinfo_alv..

it_sort TYPE slis_t_sortinfo_alv.

CLEAR wa_sort.

wa_sort-spos = 2.

wa_sort-fieldname = 'FIELDNAME'.

wa_sort-tabname = 'ITAB'.

wa_sort-subtot = 'X'.

APPEND wa_sort TO it_sort.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

it_sort = it_sort .

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

The ' wa_sort-subtot = 'X'.' is used fo the subtotal display.

You have to sort on the basis of material grp...

Reward points if this helped.

Regards,

Neslin.

Message was edited by:

neslin

Message was edited by:

neslin