Application Development 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: 

DISPLAY

Former Member
0 Kudos

Hi ,

In my ALV REPORT i HAD TO FIND THE SUM OF ONE FILED.

i HAVE DONE USING ALV.

nOW I NEED TO DISPLAY THE WORD 'TOTAL' IN THE LEFT HAND CORNER OF THE SUM..

IS IT POSSIBLE USING ANY FUNCTIOANLITY

1 ACCEPTED SOLUTION

p291102
Active Contributor
0 Kudos

Hi,

See the below sample coding.

REPORT  YMS_ALVLISTSUBTOTAL.

TYPE-POOLS: SLIS.

DATA: F_FLDCAT TYPE SLIS_FIELDCAT_ALV,
      T_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
      L_LAYOUT TYPE SLIS_LAYOUT_ALV,
      F_EVENT TYPE SLIS_ALV_EVENT,
      T_EVENT TYPE SLIS_T_EVENT.

DATA: BEGIN OF ITAB OCCURS 0,
      VBELN LIKE VBAP-VBELN,
      POSNR LIKE VBAP-POSNR,
      ZMENG LIKE VBAP-ZMENG,
      TEXT(35),
      END OF ITAB.

SELECT VBELN POSNR ZMENG FROM VBAP
       INTO TABLE ITAB UP TO 20 ROWS.

LOOP AT ITAB.
  ITAB-ZMENG = SY-TABIX.
  MODIFY ITAB INDEX SY-TABIX.
ENDLOOP.



F_FLDCAT-FIELDNAME = 'text'.
F_FLDCAT-COL_POS = 1.
F_FLDCAT-OUTPUTLEN = 15.
*f_fldcat-checkbox = 'X'.
*f_fldcat-edit = ''.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.

F_FLDCAT-FIELDNAME = 'VBELN'.
F_FLDCAT-TABNAME = 'itab'.
F_FLDCAT-SELTEXT_L = 'VBELN'.
F_FLDCAT-COL_POS = 2.
F_FLDCAT-OUTPUTLEN = 30.
F_FLDCAT-JUST = 'C'.
F_FLDCAT-EDIT = 'X'.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.

F_FLDCAT-FIELDNAME = 'POSNR'.
F_FLDCAT-TABNAME = 'itab'.
F_FLDCAT-SELTEXT_L = 'POSNR'.
F_FLDCAT-COL_POS = 3.
F_FLDCAT-EDIT = 'X'.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.

F_FLDCAT-FIELDNAME = 'ZMENG'.
F_FLDCAT-TABNAME = 'itab'.
F_FLDCAT-SELTEXT_L = 'ZMENG'.
F_FLDCAT-COL_POS = 4.
F_FLDCAT-EDIT = 'X'.
F_FLDCAT-DO_SUM = 'X'.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.

DATA: SORT TYPE SLIS_SORTINFO_ALV,
      IT_SORT TYPE SLIS_T_SORTINFO_ALV.

SORT-FIELDNAME = 'VBELN'.
SORT-SPOS = '1'.
SORT-GROUP = '*'.
SORT-UP = 'X'.
SORT-SUBTOT = 'X'.
*SORT-OBLIGATORY = 'UL'.


APPEND SORT TO IT_SORT.

L_LAYOUT-TOTALS_TEXT = 'total text'.
L_LAYOUT-SUBTOTALS_TEXT = 'subtotal text'.
*l_layout-totals_only = 'X'.
DATA: PRG TYPE SY-REPID.
PRG = SY-REPID.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
 EXPORTING
*   I_INTERFACE_CHECK              = ' '
*   I_BYPASSING_BUFFER             =
*   I_BUFFER_ACTIVE                = ' '
   I_CALLBACK_PROGRAM             = SY-REPID
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   I_STRUCTURE_NAME               =
   IS_LAYOUT                      = L_LAYOUT
   IT_FIELDCAT                    = T_FLDCAT
*   IT_EXCLUDING                   =
*   IT_SPECIAL_GROUPS              =
   IT_SORT                        = IT_SORT[]
*   IT_FILTER                      =
*   IS_SEL_HIDE                    =
*   I_DEFAULT                      = 'X'
*   I_SAVE                         = ' '
*   IS_VARIANT                     =
   IT_EVENTS                      = T_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
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER        =
*   ES_EXIT_CAUSED_BY_USER         =
  TABLES
    T_OUTTAB                       = ITAB
* EXCEPTIONS
*   PROGRAM_ERROR                  = 1
*   OTHERS                         = 2
.
IF SY-SUBRC EQ 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

Thanks,

Sankar M

5 REPLIES 5

p291102
Active Contributor
0 Kudos

Hi,

See the below sample coding.

REPORT  YMS_ALVLISTSUBTOTAL.

TYPE-POOLS: SLIS.

DATA: F_FLDCAT TYPE SLIS_FIELDCAT_ALV,
      T_FLDCAT TYPE SLIS_T_FIELDCAT_ALV,
      L_LAYOUT TYPE SLIS_LAYOUT_ALV,
      F_EVENT TYPE SLIS_ALV_EVENT,
      T_EVENT TYPE SLIS_T_EVENT.

DATA: BEGIN OF ITAB OCCURS 0,
      VBELN LIKE VBAP-VBELN,
      POSNR LIKE VBAP-POSNR,
      ZMENG LIKE VBAP-ZMENG,
      TEXT(35),
      END OF ITAB.

SELECT VBELN POSNR ZMENG FROM VBAP
       INTO TABLE ITAB UP TO 20 ROWS.

LOOP AT ITAB.
  ITAB-ZMENG = SY-TABIX.
  MODIFY ITAB INDEX SY-TABIX.
ENDLOOP.



F_FLDCAT-FIELDNAME = 'text'.
F_FLDCAT-COL_POS = 1.
F_FLDCAT-OUTPUTLEN = 15.
*f_fldcat-checkbox = 'X'.
*f_fldcat-edit = ''.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.

F_FLDCAT-FIELDNAME = 'VBELN'.
F_FLDCAT-TABNAME = 'itab'.
F_FLDCAT-SELTEXT_L = 'VBELN'.
F_FLDCAT-COL_POS = 2.
F_FLDCAT-OUTPUTLEN = 30.
F_FLDCAT-JUST = 'C'.
F_FLDCAT-EDIT = 'X'.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.

F_FLDCAT-FIELDNAME = 'POSNR'.
F_FLDCAT-TABNAME = 'itab'.
F_FLDCAT-SELTEXT_L = 'POSNR'.
F_FLDCAT-COL_POS = 3.
F_FLDCAT-EDIT = 'X'.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.

F_FLDCAT-FIELDNAME = 'ZMENG'.
F_FLDCAT-TABNAME = 'itab'.
F_FLDCAT-SELTEXT_L = 'ZMENG'.
F_FLDCAT-COL_POS = 4.
F_FLDCAT-EDIT = 'X'.
F_FLDCAT-DO_SUM = 'X'.
APPEND F_FLDCAT TO T_FLDCAT.
CLEAR F_FLDCAT.

DATA: SORT TYPE SLIS_SORTINFO_ALV,
      IT_SORT TYPE SLIS_T_SORTINFO_ALV.

SORT-FIELDNAME = 'VBELN'.
SORT-SPOS = '1'.
SORT-GROUP = '*'.
SORT-UP = 'X'.
SORT-SUBTOT = 'X'.
*SORT-OBLIGATORY = 'UL'.


APPEND SORT TO IT_SORT.

L_LAYOUT-TOTALS_TEXT = 'total text'.
L_LAYOUT-SUBTOTALS_TEXT = 'subtotal text'.
*l_layout-totals_only = 'X'.
DATA: PRG TYPE SY-REPID.
PRG = SY-REPID.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
 EXPORTING
*   I_INTERFACE_CHECK              = ' '
*   I_BYPASSING_BUFFER             =
*   I_BUFFER_ACTIVE                = ' '
   I_CALLBACK_PROGRAM             = SY-REPID
*   I_CALLBACK_PF_STATUS_SET       = ' '
*   I_CALLBACK_USER_COMMAND        = ' '
*   I_STRUCTURE_NAME               =
   IS_LAYOUT                      = L_LAYOUT
   IT_FIELDCAT                    = T_FLDCAT
*   IT_EXCLUDING                   =
*   IT_SPECIAL_GROUPS              =
   IT_SORT                        = IT_SORT[]
*   IT_FILTER                      =
*   IS_SEL_HIDE                    =
*   I_DEFAULT                      = 'X'
*   I_SAVE                         = ' '
*   IS_VARIANT                     =
   IT_EVENTS                      = T_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
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER        =
*   ES_EXIT_CAUSED_BY_USER         =
  TABLES
    T_OUTTAB                       = ITAB
* EXCEPTIONS
*   PROGRAM_ERROR                  = 1
*   OTHERS                         = 2
.
IF SY-SUBRC EQ 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

Thanks,

Sankar M

Former Member
0 Kudos

Hi Shankar,

Thanks a lot..

I included

L_LAYOUT-TOTALS_TEXT = 'total text'.

In my code and it worked...

So if want something to be dispalyed in that we can use this line right?

Former Member
0 Kudos

Shankr,

I do havae one more request,

I have a field called basme from table s012.

In my report I have used that.

Now they want this filed also to displayed in the screen.

eg:

in the screeen

i m getting it as now

basme quanty

ea 5456

ea 789

ea 8788

total 8758739867(some value)

Now they are asking me if it is possible

basme quanty

ea 5456

ea 789

ea 8788

ea total (sum we get)

I mean to say that ea shud also be diplayed in the botttom

p291102
Active Contributor
0 Kudos

Hi,

Following coding is the sample report for your current requirement. Kindly go through that one.

REPORT  YMS_ALVSUBTOTAL.


TYPE-POOLS: slis.

DATA: BEGIN OF it_output OCCURS 0,
          var1(8) TYPE n,
          var2(10),
          var3 TYPE I,
      END OF it_output.

DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
       t_fieldcat TYPE slis_fieldcat_alv,
      it_sort TYPE slis_t_sortinfo_alv,
      t_sort TYPE slis_sortinfo_alv,
      v_repid LIKE sy-repid,
      ilayout type slis_layout_alv.

INITIALIZATION.
  v_repid = sy-repid.

START-OF-SELECTION.

  PERFORM get_data.
  PERFORM sort_fields.
  PERFORM fill_fieldcat.
  PERFORM list_display.

*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM get_data.

  it_output-var1 = 1000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
*  it_output-key = 'X'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 1000.
  it_output-var2 = 'siddhu'.
  it_output-var3 = '20000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 1000.
  it_output-var2 = 'chinni'.
  it_output-var3 = '100000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 2000.
  it_output-var2 = 'chicchu'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 2000.
  it_output-var2 = 'candy'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 1000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.

  it_output-var1 = 4000.
  it_output-var2 = 'anupama'.
  it_output-var3 = '10000'.
  APPEND it_output.
  CLEAR it_output.


ENDFORM.                    " GET_DATA

*&---------------------------------------------------------------------*
*&      Form  fill_fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM fill_fieldcat.
  PERFORM fill_fields USING: 'IT_OUTPUT' 'VAR1' 'Variable 1' ' ',
                             'IT_OUTPUT' 'VAR2' 'Variable 2' ' ',
                             'IT_OUTPUT' 'VAR3' 'Variable 3' 'X'.

ENDFORM.                    " fill_fieldcat

*&---------------------------------------------------------------------*
*&      Form  fill_fields
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_0146   text
*      -->P_0147   text
*      -->P_0148   text
*      -->P_0149   text
*----------------------------------------------------------------------*
FORM fill_fields USING    value(tabname) TYPE slis_tabname
                          value(fieldname) TYPE slis_fieldname
                          value(seltext_m) LIKE dd03p-scrtext_m
                          value(do_sum) TYPE c.
  t_fieldcat-tabname = tabname.
  t_fieldcat-fieldname = fieldname.
  t_fieldcat-seltext_m  = seltext_m.
  IF do_sum = 'X'.
    t_fieldcat-datatype = 'CURR'.
  ENDIF.
  t_fieldcat-do_sum = do_sum.
  APPEND t_fieldcat TO it_fieldcat.
  CLEAR t_fieldcat.
ENDFORM.                    " fill_fields

*&---------------------------------------------------------------------*
*&      Form  list_display
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM list_display.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
   EXPORTING
     i_callback_program             = v_repid
     it_fieldcat                    = it_fieldcat
     it_sort                        = it_sort[]
   TABLES
      t_outtab                       = it_output
   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.                    " list_display

*&---------------------------------------------------------------------*
*&      Form  sort_fields
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM sort_fields.
  t_sort-fieldname = 'VAR1'.
  t_sort-tabname = 'IT_OUTPUT'.
  t_sort-spos = 1.
  t_sort-up = 'X'.
  t_sort-subtot = 'X'.
  APPEND t_sort TO it_sort.
  CLEAR t_sort.

  t_sort-fieldname = 'VAR3'.
  t_sort-tabname = 'IT_OUTPUT'.
  t_sort-spos = 2.
  t_sort-up = 'X'.
  APPEND t_sort TO it_sort.
  CLEAR t_sort.

ENDFORM.                    " sort_fields

Thanks,

Sankar M

Former Member
0 Kudos

Hi u know anytg regarding module pool