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 reports

Former Member
0 Likes
1,152

Can anybody send me a sample progrma for alv report including interactive report

Can anybody send me a sample progrma for alv report including interactive report

7 REPLIES 7
Read only

Former Member
0 Likes
1,123

You can have a look at belwo link:

[ALV Interactive Report Sample Code|http://abapprogramming.blogspot.com/2007/11/alv-interactive-report-sample-code.html]

Also please have a look at belwo report:

*&---------------------------------------------------------------------*
*& Report  Zalv                                                   *
*&                                                                     *
*&---------------------------------------------------------------------*
*& This is an Interactive ALV report, where on line slection we can see
*&  the secondry list
*&
*&                                                                     *
*&---------------------------------------------------------------------*

REPORT  zalv NO STANDARD PAGE HEADING LINE-SIZE 650
MESSAGE-ID ZZ_9838                      .

TYPE-POOLS: SLIS.
*type declaration for values from ekko
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.

*type declaration for values from ekpo
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 .

*variable for Report ID
DATA: V_REPID LIKE SY-REPID .

*declaration for fieldcatalog
DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
      WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.


DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

* declaration for events table where user comand or set PF status will
* be defined
DATA: V_EVENTS TYPE SLIS_T_EVENT,
      WA_EVENT TYPE SLIS_ALV_EVENT.

* declartion for layout
DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

* declaration for variant(type of display we want)
DATA: I_VARIANT TYPE DISVARIANT,
      I_VARIANT1 TYPE DISVARIANT,
      I_SAVE(1) TYPE C.

*PARAMETERS : p_var TYPE disvariant-variant.

*Title displayed when the alv list is displayed
DATA:  I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.
DATA:  I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

INITIALIZATION.
  V_REPID = SY-REPID.
  PERFORM BUILD_FIELDCATLOG.
  PERFORM EVENT_CALL.
  PERFORM POPULATE_EVENT.

START-OF-SELECTION.
  PERFORM DATA_RETRIEVAL.
  PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.
  PERFORM DISPLAY_ALV_REPORT.

*&--------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATLOG
*&--------------------------------------------------------------------*
*       Fieldcatalog has all the field details from ekko
*---------------------------------------------------------------------*
FORM BUILD_FIELDCATLOG.
  WA_FIELDCAT-TABNAME = 'IT_EKKO'.
  WA_FIELDCAT-FIELDNAME = 'EBELN'.
  WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
  APPEND WA_FIELDCAT TO I_FIELDCAT.
  CLEAR WA_FIELDCAT.

  WA_FIELDCAT-TABNAME = 'IT_EKKO'.
  WA_FIELDCAT-FIELDNAME = 'AEDAT'.
  WA_FIELDCAT-SELTEXT_M = 'DATE.'.
  APPEND WA_FIELDCAT TO I_FIELDCAT.
  CLEAR WA_FIELDCAT.

  WA_FIELDCAT-TABNAME = 'IT_EKKO'.
  WA_FIELDCAT-FIELDNAME = 'BUKRS'.
  WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.
  APPEND WA_FIELDCAT TO I_FIELDCAT.
  CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.
  WA_FIELDCAT-FIELDNAME = 'BUKRS'.
  WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.
  APPEND WA_FIELDCAT TO I_FIELDCAT.
  CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.
  WA_FIELDCAT-FIELDNAME = 'LIFNR'.
  WA_FIELDCAT-NO_OUT    = 'X'.
  WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.
  APPEND WA_FIELDCAT TO I_FIELDCAT.
  CLEAR WA_FIELDCAT.


ENDFORM.                    "BUILD_FIELDCATLOG

*&--------------------------------------------------------------------*
*&      Form  EVENT_CALL
*&--------------------------------------------------------------------*
*   we get all events - TOP OF PAGE or USER COMMAND in table v_events
*---------------------------------------------------------------------*
FORM EVENT_CALL.
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
   EXPORTING
     I_LIST_TYPE           = 0
   IMPORTING
     ET_EVENTS             = V_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.
ENDFORM.                    "EVENT_CALL

*&--------------------------------------------------------------------*
*&      Form  POPULATE_EVENT
*&--------------------------------------------------------------------*
*      Events populated for TOP OF PAGE & USER COMAND
*---------------------------------------------------------------------*
FORM POPULATE_EVENT.
  READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
  IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'TOP_OF_PAGE'.
    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
  ENDIF.

  READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.
  IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'USER_COMMAND'.
    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-NAME.
  ENDIF.
ENDFORM.                    "POPULATE_EVENT


*&--------------------------------------------------------------------*
*&      Form  data_retrieval
*&--------------------------------------------------------------------*
*   retreiving values from the database table ekko
*---------------------------------------------------------------------*
FORM DATA_RETRIEVAL.
  SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

ENDFORM.                    "data_retrieval
*&--------------------------------------------------------------------*
*&      Form  bUild_listheader
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      -->I_LISTHEADEtext
*---------------------------------------------------------------------*
FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
  DATA HLINE TYPE SLIS_LISTHEADER.
  HLINE-INFO = 'this is my first alv pgm'.
  HLINE-TYP = 'H'.
ENDFORM.                    "build_listheader

*&--------------------------------------------------------------------*
*&      Form  display_alv_report
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM DISPLAY_ALV_REPORT.
  V_REPID = SY-REPID.
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
   EXPORTING
     I_CALLBACK_PROGRAM                = V_REPID
*   I_CALLBACK_PF_STATUS_SET          = ' '
     I_CALLBACK_USER_COMMAND           = 'USER_COMMAND'
     I_CALLBACK_TOP_OF_PAGE            = 'TOP_OF_PAGE'
     I_GRID_TITLE                      = I_TITLE_EKKO
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         = ALV_LAYOUT
     IT_FIELDCAT                       = I_FIELDCAT[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*     i_default                         = 'ZLAY1'
     I_SAVE                            = 'A'
*     is_variant                        = i_variant
     IT_EVENTS                         = V_EVENTS
    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.                    "display_alv_report




*&--------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM TOP_OF_PAGE.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY       = IT_LISTHEADER
*    i_logo                   =
*    I_END_OF_LIST_GRID       =
            .

ENDFORM.                    "TOP_OF_PAGE

*&--------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      -->R_UCOMM    text
*      -->,          text
*      -->RS_SLEFIELDtext
*---------------------------------------------------------------------*
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
  CASE R_UCOMM.
    WHEN '&IC1'.
      READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.
      PERFORM BUILD_FIELDCATLOG_EKPO.
      PERFORM EVENT_CALL_EKPO.
      PERFORM POPULATE_EVENT_EKPO.
      PERFORM DATA_RETRIEVAL_EKPO.
      PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.
      PERFORM DISPLAY_ALV_EKPO.
  ENDCASE.
ENDFORM.                    "user_command
*&--------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATLOG_EKPO
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM BUILD_FIELDCATLOG_EKPO.

  WA_FIELDCAT-TABNAME = 'IT_EKPO'.
  WA_FIELDCAT-FIELDNAME = 'EBELN'.
  WA_FIELDCAT-SELTEXT_M = 'PO NO.'.
  APPEND WA_FIELDCAT TO I_FIELDCAT.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-TABNAME = 'IT_EKPO'.
  WA_FIELDCAT-FIELDNAME = 'EBELP'.
  WA_FIELDCAT-SELTEXT_M = 'LINE NO'.
  APPEND WA_FIELDCAT TO I_FIELDCAT.
  CLEAR WA_FIELDCAT.
  WA_FIELDCAT-TABNAME = 'I_EKPO'.
  WA_FIELDCAT-FIELDNAME = 'MATNR'.
  WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.
  APPEND WA_FIELDCAT TO I_FIELDCAT.
  CLEAR WA_FIELDCAT.
WA_FIELDCAT-TABNAME = 'I_EKPO'.
  WA_FIELDCAT-FIELDNAME = 'MENGE'.
  WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.
  APPEND WA_FIELDCAT TO I_FIELDCAT.
  CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.
  WA_FIELDCAT-FIELDNAME = 'MEINS'.
  WA_FIELDCAT-SELTEXT_M = 'UOM'.
  APPEND WA_FIELDCAT TO I_FIELDCAT.
  CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.
  WA_FIELDCAT-FIELDNAME = 'NETPR'.
  WA_FIELDCAT-SELTEXT_M = 'PRICE'.
  APPEND WA_FIELDCAT TO I_FIELDCAT.
  CLEAR WA_FIELDCAT.


ENDFORM.                    "BUILD_FIELDCATLOG_EKPO

*&--------------------------------------------------------------------*
*&      Form  event_call_ekpo
*&--------------------------------------------------------------------*
*   we get all events - TOP OF PAGE or USER COMMAND in table v_events
*---------------------------------------------------------------------*
FORM EVENT_CALL_EKPO.
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
   EXPORTING
     I_LIST_TYPE           = 0
   IMPORTING
     ET_EVENTS             = V_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.
ENDFORM.                    "event_call_ekpo


*&--------------------------------------------------------------------*
*&      Form  POPULATE_EVENT
*&--------------------------------------------------------------------*
*        Events populated for TOP OF PAGE & USER COMAND
*---------------------------------------------------------------------*
FORM POPULATE_EVENT_EKPO.
  READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.
  IF SY-SUBRC EQ 0.
    WA_EVENT-FORM = 'TOP_OF_PAGE'.
    MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =
WA_EVENT-FORM.
  ENDIF.

  ENDFORM.                    "POPULATE_EVENT

*&--------------------------------------------------------------------*
*&      Form  TOP_OF_PAGE
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM F_TOP_OF_PAGE.
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      IT_LIST_COMMENTARY       = IT_LISTHEADER
*    i_logo                   =
*    I_END_OF_LIST_GRID       =
            .

ENDFORM.                    "TOP_OF_PAGE

*&--------------------------------------------------------------------*
*&      Form  USER_COMMAND
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
*      -->R_UCOMM    text
*      -->,          text
*      -->RS_SLEFIELDtext
*---------------------------------------------------------------------*

*retreiving values from the database table ekko
FORM DATA_RETRIEVAL_EKPO.
SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.
ENDFORM.

FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.
DATA: HLINE1 TYPE SLIS_LISTHEADER.
HLINE1-TYP = 'H'.
HLINE1-INFO = 'CHECKING PGM'.
ENDFORM.


FORM DISPLAY_ALV_EKPO.
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           = 'F_USER_COMMAND'
   I_CALLBACK_TOP_OF_PAGE            = '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_EKPO
*   I_GRID_SETTINGS                   =
*   IS_LAYOUT                         =
   IT_FIELDCAT                       = I_FIELDCAT[]
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         =
   I_SAVE                            = 'A'
*   IS_VARIANT                        =
   IT_EVENTS                         = V_EVENTS
  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.
ENDFORM.

I hope it helps.

Best Regards,

Vibha

Please mark all the helpful answers

Read only

Former Member
0 Likes
1,123

Check out the below link

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

Regards,

Santosh

Read only

Former Member
0 Likes
1,123

Goto SE38>Environment>Examples.....

you will find a programs in all categories.....

Hope it helps....

OR

&----


*& Report ZZ_22038_22098_002 *

*& *

&----


*& This is an Interactive ALV report, where on line slection we can see

*& the secondry list

*&

*& *

&----


REPORT ZZ_22038_22098_002 NO STANDARD PAGE HEADING LINE-SIZE 650

MESSAGE-ID ZZ_9838 .

TYPE-POOLS: SLIS.

*type declaration for values from ekko

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.

*type declaration for values from ekpo

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 .

*variable for Report ID

DATA: V_REPID LIKE SY-REPID .

*declaration for fieldcatalog

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

  • declaration for events table where user comand or set PF status will

  • be defined

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

  • declartion for layout

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

  • declaration for variant(type of display we want)

DATA: I_VARIANT TYPE DISVARIANT,

I_VARIANT1 TYPE DISVARIANT,

I_SAVE(1) TYPE C.

*PARAMETERS : p_var TYPE disvariant-variant.

*Title displayed when the alv list is displayed

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from ekko

----


FORM BUILD_FIELDCATLOG.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'AEDAT'.

WA_FIELDCAT-SELTEXT_M = 'DATE.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'LIFNR'.

WA_FIELDCAT-NO_OUT = 'X'.

WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_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.

ENDFORM. "EVENT_CALL

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

ENDFORM. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'this is my first alv pgm'.

HLINE-TYP = 'H'.

ENDFORM. "build_listheader

&----


*& Form display_alv_report

&----


  • text

----


FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_GRID_TITLE = I_TITLE_EKKO

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

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

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_EKPO.

PERFORM EVENT_CALL_EKPO.

PERFORM POPULATE_EVENT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_EKPO.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATLOG_EKPO

&----


  • text

----


FORM BUILD_FIELDCATLOG_EKPO.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELP'.

WA_FIELDCAT-SELTEXT_M = 'LINE NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MENGE'.

WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-SELTEXT_M = 'UOM'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'NETPR'.

WA_FIELDCAT-SELTEXT_M = 'PRICE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_EKPO

&----


*& Form event_call_ekpo

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_EKPO.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_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.

ENDFORM. "event_call_ekpo

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_EKPO.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM F_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


*retreiving values from the database table ekko

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.

ENDFORM.

FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: HLINE1 TYPE SLIS_LISTHEADER.

HLINE1-TYP = 'H'.

HLINE1-INFO = 'CHECKING PGM'.

ENDFORM.

FORM DISPLAY_ALV_EKPO.

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 = 'F_USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = '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_EKPO

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

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.

ENDFORM.

Read only

Former Member
0 Likes
1,123

Dear friend

i am seanding you a live MIS ALV report.

pls go through it if ther is any problem pls keep in touch.

REPORT Y_DAILY_SAP_REPORT

NO STANDARD PAGE HEADING

LINE-SIZE 215.

TYPE-POOLS: slis.

TABLES: EKKO, EKPO, ZADVMUTH,mseg.

TYPES : BEGIN OF s_ekko,

ebeln like ekko-ebeln,

ekgrp like ekko-ekgrp,

AEDAT LIKE EKKO-AEDAT,

END OF s_ekko,

Begin of s_ekkpo ,

netwr like ekpo-netwr,

ekgrp like ekko-ekgrp,

werks like ekpo-werks,

aedat like ekko-aedat,

loekz like ekpo-loekz,

End of s_ekkpo,

Begin of s_Final,

descr type string,

emode type string,

Cimmco type ekpo-netwr,

BMT type ekpo-netwr,

BTB type ekpo-netwr,

PTP type ekpo-netwr,

Cimmco1 type ekpo-netwr,

BMT1 type ekpo-netwr,

BTB1 type ekpo-netwr,

PTP1 type ekpo-netwr,

Srno type c length 1,

Final type ekpo-netwr,

final1 type ekpo-netwr,

end of s_final.

DATA : it_ekkpo type table of s_ekkpo,

wa_ekkpo type s_ekkpo,

it_final type table of s_final,

wa_final type s_final.

DATA: rptname LIKE sy-repid .

*-->Tables for field catalog

DATA: fcat TYPE TABLE OF slis_fieldcat_alv WITH NON-UNIQUE DEFAULT KEY

WITH HEADER LINE INITIAL SIZE 0,

fs_layo TYPE slis_layout_alv,

fevents TYPE TABLE OF slis_alv_event WITH NON-UNIQUE DEFAULT KEY

WITH HEADER LINE INITIAL SIZE 0,

fheader TYPE TABLE OF slis_listheader WITH NON-UNIQUE DEFAULT KEY

WITH HEADER LINE INITIAL SIZE 0.

DATA: it_sortcat TYPE slis_sortinfo_alv OCCURS 1,

wa_sort LIKE LINE OF it_sortcat,

gd_layout TYPE slis_layout_alv,

gd_prntparams TYPE slis_print_alv.

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

******USER INTERACTION OPTION FOR THE INVOICE NO

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

SELECTION-SCREEN : begin OF BLOCK B1 WITH FRAME TITLE R.

SELECT-OPTIONS: DAD FOR EKKO-AEDAT OBLIGATORY.

SELECTION-SCREEN : END OF BLOCK B1.

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

******USER INTERACTION OPTION FOR THE INVOICE NO

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

START-OF-SELECTION.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

percentage = '93'

text = 'Wait Processing ....'.

SELECT sum( ekpo~netwr )

ekko~ekgrp

ekpo~werks

ekko~aedat

ekpo~loekz

into table it_ekkpo

from ekko

inner join ekpo

on ekkoebeln = ekpoebeln

WHERE ekgrp IN ('C01', 'C02', 'DG1', 'E01', 'O01', 'P01', 'R02' , 'E02')

and WERKS IN ('1100', '1101' , '1110', '1111' , '1120' , '1130')

and ekko~aedat in dad

Group by

ekko~ekgrp

ekpo~werks

ekko~aedat

ekpo~loekz.

loop at it_ekkpo into wa_ekkpo where ekgrp ne 'E02'

and loekz ne 'L'.

if wa_ekkpo-aedat eq dad-high.

if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.

wa_final-cimmco = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.

wa_final-bmt = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1120.

wa_final-btb = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1130.

wa_final-ptp = wa_ekkpo-netwr.

endif.

wa_final-final = wa_ekkpo-netwr.

        • For cumulative

if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.

wa_final-cimmco1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.

wa_final-bmt1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1120.

wa_final-btb1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1130.

wa_final-ptp1 = wa_ekkpo-netwr.

endif.

wa_final-final1 = wa_ekkpo-netwr.

else. " For cumulative

if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.

wa_final-cimmco1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.

wa_final-bmt1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1120.

wa_final-btb1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1130.

wa_final-ptp1 = wa_ekkpo-netwr.

endif.

wa_final-final1 = wa_ekkpo-netwr.

endif.

wa_final-descr = 'Purchase Order Placed.'.

wa_final-srno = 'A'.

wa_final-emode = 'Domestic'.

Collect wa_final into it_final.

endloop.

loop at it_ekkpo into wa_ekkpo where ekgrp eq 'E02'

and loekz ne 'L'.

if wa_ekkpo-aedat eq dad-high.

if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.

wa_final-cimmco = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.

wa_final-bmt = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1120.

wa_final-btb = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1130.

wa_final-ptp = wa_ekkpo-netwr.

wa_final-final = wa_ekkpo-netwr.

endif.

  • **** For cumulative

if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.

wa_final-cimmco1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.

wa_final-bmt1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1120.

wa_final-btb1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1130.

wa_final-ptp1 = wa_ekkpo-netwr.

endif.

wa_final-final1 = wa_ekkpo-netwr.

else. " For cumulative

if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.

wa_final-cimmco1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.

wa_final-bmt1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1120.

wa_final-btb1 = wa_ekkpo-netwr.

elseif wa_ekkpo-werks eq 1130.

wa_final-ptp1 = wa_ekkpo-netwr.

endif.

wa_final-final1 = wa_ekkpo-netwr.

endif.

wa_final-descr = 'Purchase Order Placed'.

wa_final-srno = 'B'.

wa_final-emode = 'Import'.

Collect wa_final into it_final.

clear wa_final.

endloop.

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

********************material recieved*and ***material issued*******

TYPES : BEGIN OF s_msegM,

ebeln like ekpo-ebeln,

werks like ekpo-werks,

MBLNR LIKE MSEG-MBLNR,

dmbtr like mseg-dmbtr,

shkzg like mseg-shkzg,

ekgrp like ekko-ekgrp,

aedat like ekko-aedat,

END OF s_msegM.

DATA : it_msegm TYPE TABLE OF s_msegm,

wa_msegm TYPE s_msegm.

SELECT ekpo~ebeln

ekpo~werks

MSEG~MBLNR

mseg~dmbtr

mseg~shkzg

ekko~ekgrp

ekko~aedat

into corresponding fields of table it_msegm

from ekpo

inner join ekko

on ekpoebeln = ekkoebeln

inner join mseg

on ekpoebeln = msegebeln

WHERE ekgrp IN ('C01', 'C02', 'DG1', 'E01', 'O01', 'P01', 'R02' , 'E02')

and ekpo~WERKS IN ('1100', '1101' , '1110', '1111' , '1120' , '1130')

and ekko~aedat in dad .

  • Group by

  • ekpo~ebeln

  • ekpo~werks

  • MSEG~MBLNR

  • mseg~dmbtr

  • ekko~ekgrp

  • ekpo~ebeln

  • ekko~aedat.

break sildev01.

loop at it_msegm into wa_msegm where shkzg eq 'S'. " Recieved

if wa_msegm-aedat eq dad-high.

if wa_msegm-werks eq 1100 or wa_msegm-werks eq 1101.

wa_final-cimmco = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1110 or wa_msegm-werks eq 1111.

wa_final-bmt = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1120.

wa_final-btb = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1130.

wa_final-ptp = wa_msegm-dmbtr.

endif.

wa_final-final = wa_msegm-dmbtr.

        • For cumulative

if wa_msegm-werks eq 1100 or wa_msegm-werks eq 1101.

wa_final-cimmco1 = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1110 or wa_msegm-werks eq 1111.

wa_final-bmt1 = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1120.

wa_final-btb1 = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1130.

wa_final-ptp1 = wa_msegm-dmbtr.

endif.

wa_final-final1 = wa_msegm-dmbtr.

else. " For cumulative

if wa_ekkpo-werks eq 1100 or wa_ekkpo-werks eq 1101.

wa_final-cimmco1 = wa_msegm-dmbtr.

elseif wa_ekkpo-werks eq 1110 or wa_ekkpo-werks eq 1111.

wa_final-bmt1 = wa_msegm-dmbtr.

elseif wa_ekkpo-werks eq 1120.

wa_final-btb1 = wa_msegm-dmbtr.

elseif wa_ekkpo-werks eq 1130.

wa_final-ptp1 = wa_msegm-dmbtr.

endif.

wa_final-final1 = wa_msegm-dmbtr.

endif.

wa_final-descr = 'MATERIAL RECIEVED'.

wa_final-srno = 'D'.

Collect wa_final into it_final.

clear wa_final.

endloop.

sort it_final by srno.

loop at it_msegm into wa_msegm where shkzg eq 'H'. " ISSUED

if wa_msegm-aedat eq dad-high.

if wa_msegm-werks eq 1100 or wa_msegm-werks eq 1101.

wa_final-cimmco = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1110 or wa_msegm-werks eq 1111.

wa_final-bmt = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1120.

wa_final-btb = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1130.

wa_final-ptp = wa_msegm-dmbtr.

endif.

wa_final-final = wa_msegm-dmbtr.

        • For cumulative

if wa_msegm-werks eq 1100 or wa_msegm-werks eq 1101.

wa_final-cimmco1 = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1110 or wa_msegm-werks eq 1111.

wa_final-bmt1 = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1120.

wa_final-btb1 = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1130.

wa_final-ptp1 = wa_msegm-dmbtr.

endif.

wa_final-final1 = wa_msegm-dmbtr.

else. " For cumulative

if wa_msegm-werks eq 1100 or wa_msegm-werks eq 1101.

wa_final-cimmco1 = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1110 or wa_msegm-werks eq 1111.

wa_final-bmt1 = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1120.

wa_final-btb1 = wa_msegm-dmbtr.

elseif wa_msegm-werks eq 1130.

wa_final-ptp1 = wa_msegm-dmbtr.

endif.

wa_final-final1 = wa_msegm-dmbtr.

endif.

wa_final-descr = 'MATERIAL ISSUED'.

wa_final-srno = 'E'.

Collect wa_final into it_final.

clear wa_final.

endloop.

sort it_final by srno.

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

************invoices booked******************************************************************

TYPES : BEGIN OF s_ekkoB,

ebeln like ekko-ebeln,

ekgrp like ekko-ekgrp,

aedat like ekko-aedat,

END OF s_ekkoB,

BEGIN OF s_ekBEb,

DMBTR like ekBE-dmbtr,

ekgrp like ekko-ekgrp,

werks like ekpo-werks,

aedat like ekko-aedat,

END OF s_ekBEb.

DATA : it_ekBEb TYPE TABLE OF s_ekBEb,

wa_ekBEb TYPE s_ekBEb.

break sildev01.

SELECT sum( ekBE~dmbtr )

ekko~ekgrp

ekpo~werks

ekko~aedat

into table it_ekBEb

from ekko

inner join ekpo

on ekkoebeln = ekpoebeln

inner join EKBE

on ekpoebeln = EKBEebeln

WHERE ekgrp IN ('C01', 'C02', 'DG1', 'E01', 'O01', 'P01', 'R02' , 'E02')

and ekpo~WERKS IN ('1100', '1101' , '1110', '1111' , '1120' , '1130')

and ekbe~WERKS IN ('1100', '1101' , '1110', '1111' , '1120' , '1130')

and ekko~aedat in dad

Group by

ekko~ekgrp

ekpo~werks

ekbe~WERKS

ekko~aedat.

loop at it_ekBEb into wa_ekBEb.

if wa_ekBEb-aedat eq dad-high.

if wa_ekBEb-werks eq 1100 or wa_ekBEb-werks eq 1101.

wa_final-cimmco = wa_ekBEb-dmbtr.

elseif wa_ekBEb-werks eq 1110 or wa_ekBEb-werks eq 1111.

wa_final-bmt = wa_ekBEb-dmbtr.

elseif wa_ekBEb-werks eq 1120.

wa_final-btb = wa_ekBEb-dmbtr.

elseif wa_ekBEb-werks eq 1130.

wa_final-ptp = wa_ekBEb-dmbtr.

endif.

wa_final-final = wa_ekbeb-dmbtr.

        • For cumulative

if wa_ekBEb-werks eq 1100 or wa_ekBEb-werks eq 1101.

wa_final-cimmco1 = wa_ekBEb-dmbtr.

elseif wa_ekBEb-werks eq 1110 or wa_ekBEb-werks eq 1111.

wa_final-bmt1 = wa_ekBEb-dmbtr.

elseif wa_ekBEb-werks eq 1120.

wa_final-btb1 = wa_ekBEb-dmbtr.

elseif wa_ekBEb-werks eq 1130.

wa_final-ptp1 = wa_ekBEb-dmbtr.

endif.

wa_final-final1 = wa_ekbeb-dmbtr.

else. " For cumulative

if wa_ekBEb-werks eq 1100 or wa_ekBEb-werks eq 1101.

wa_final-cimmco1 = wa_ekBEb-dmbtr.

elseif wa_ekBEb-werks eq 1110 or wa_ekBEb-werks eq 1111.

wa_final-bmt1 = wa_ekBEb-dmbtr.

elseif wa_ekBEb-werks eq 1120.

wa_final-btb1 = wa_ekBEb-dmbtr.

elseif wa_ekBEb-werks eq 1130.

wa_final-ptp1 = wa_ekBEb-dmbtr.

endif.

wa_final-final1 = wa_ekbeb-dmbtr.

endif.

wa_final-descr = 'INVOICE BOOKED'.

wa_final-srno = 'F'.

Collect wa_final into it_final.

clear wa_final.

endloop.

sort it_final by srno.

PERFORM process_data.

PERFORM display_data.

FORM process_data .

ENDFORM.

&----


*& Form display_data

&----


FORM display_data .

  • PERFORM field_cat.

PERFORM alv_display.

ENDFORM. " display_data

&----


*& Form process_mchb_data

&----


FORM process_mchb_data .

ENDFORM. " process_mchb_data

&----


*& Form field_cat

&----


*FORM field_cat .

FORM topofpage.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = fheader[]

i_logo = 'ENJOYSAP_LOGO'.

  • I_END_OF_LIST_GRID = 'Hello '

ENDFORM. "TOPOFPAGE

&----


*& Form alv_display

&----


  • text

----


FORM alv_display .

DATA: w_dthigh(20).

CLEAR fcat.

fcat-fieldname = 'SRNO'.

fcat-outputlen = 20.

fcat-seltext_s = 'SR.No.'.

fcat-seltext_m = 'SR.No.'.

fcat-seltext_l = 'SR.No.'.

fcat-ddictxt = 'M'.

fcat-inttype = 'C'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'DESCR'.

fcat-outputlen = 20.

fcat-seltext_s = 'DESCRIPTION'.

fcat-seltext_m = 'DESCRIPTION'.

fcat-seltext_l = 'DESCRIPTION'.

fcat-ddictxt = 'M'.

fcat-inttype = 'C'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'EMODE'.

fcat-outputlen = 15.

fcat-seltext_s = 'MODE'.

fcat-seltext_m = 'MODE'.

fcat-seltext_l = 'MODE'.

fcat-ddictxt = 'M'.

fcat-inttype = 'C'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'CIMMCO'.

fcat-outputlen = 30.

fcat-seltext_s = 'CIMMCO'.

fcat-seltext_m = 'CIMMCO'.

fcat-seltext_l = 'CIMMCO'.

fcat-ddictxt = 'M'.

fcat-inttype = 'C'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'BMT'.

fcat-outputlen = 20.

fcat-seltext_s = 'BARAMATI'.

fcat-seltext_m = 'BARAMATI'.

fcat-seltext_l = 'BARAMATI'.

fcat-ddictxt = 'M'.

fcat-inttype = 'C'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'BTB'.

fcat-outputlen = 20.

fcat-seltext_s = 'BUTIBORI'.

fcat-seltext_m = 'BUTIBORI'.

fcat-seltext_l = 'BUTIBORI'.

fcat-ddictxt = 'M'.

fcat-inttype = 'C'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'PTP'.

fcat-outputlen = 20.

fcat-seltext_s = 'PITHAMPUR'.

fcat-seltext_m = 'PITHAMPUR'.

fcat-seltext_l = 'PITHAMPUR'.

fcat-ddictxt = 'M'.

fcat-inttype = 'CURR'.

fcat-datatype = 'CURR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'FINAL'.

fcat-outputlen = 20.

fcat-seltext_s = 'TOTAL'.

fcat-seltext_m = 'TOTAL'.

fcat-seltext_l = 'TOTAL'.

fcat-ddictxt = 'M'.

fcat-inttype = 'CHAR'.

fcat-datatype = 'CHAR'.

fcat-no_zero = 'X' .

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'CIMMCO1'.

fcat-outputlen = 15.

fcat-seltext_s = 'CIMMCO'.

fcat-seltext_m = 'CIMMCO'.

fcat-seltext_l = 'CIMMCO'.

fcat-ddictxt = 'M'.

fcat-inttype = 'CHAR'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'BMT1'.

fcat-outputlen = 20.

fcat-seltext_s = 'BARAMATI'.

fcat-seltext_m = 'BARAMATI'.

fcat-seltext_l = 'BARAMATI'.

fcat-ddictxt = 'M'.

fcat-inttype = 'C'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'BTB1'.

fcat-outputlen = 20.

fcat-seltext_s = 'BUTIBORI'.

fcat-seltext_m = 'BUTIBORI'.

fcat-seltext_l = 'BUTIBORI'.

fcat-ddictxt = 'M'.

fcat-inttype = 'C'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'PTP1'.

fcat-outputlen = 20.

fcat-seltext_s = 'PITHAMPUR'.

fcat-seltext_m = 'PITHAMPUR'.

fcat-seltext_l = 'PITHAMPUR'.

fcat-ddictxt = 'M'.

fcat-inttype = 'C'.

fcat-datatype = 'CHAR'.

APPEND fcat.

CLEAR fcat.

fcat-fieldname = 'FINAL1'.

fcat-outputlen = 20.

fcat-seltext_s = 'TOTAL'.

fcat-seltext_m = 'TOTAL'.

fcat-seltext_l = 'TOTAL'.

fcat-ddictxt = 'M'.

fcat-inttype = 'C'.

fcat-datatype = 'CHAR'.

fcat-no_zero = 'X' .

APPEND fcat.

CLEAR fcat.

fheader-typ = 'H'.

fheader-info = 'DAILY SAP REPORT'.

APPEND fheader.

CLEAR fheader.

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

gd_layout-no_input = 'X'.

gd_layout-colwidth_optimize = 'X'.

gd_layout-totals_text = 'Totals'(601).

gd_layout-totals_only = 'X'.

  • gd_layout-f2code = 'DISP'. "Sets fcode for when double

  • "click(press f2)

gd_layout-zebra = 'X'.

  • gd_layout-group_change_edit = 'X'.

  • gd_layout-header_text = 'helllllo'.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = fevents[]

EXCEPTIONS

list_type_wrong = 1

OTHERS = 2.

READ TABLE fevents WITH KEY name = 'TOP_OF_PAGE'.

IF sy-subrc = 0.

fevents-form = 'TOPOFPAGE'.

MODIFY fevents INDEX sy-tabix.

CLEAR fevents.

ENDIF.

rptname = sy-repid .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = rptname

it_fieldcat = fcat[]

i_default = 'S'

it_events = fevents[]

it_sort = it_sortcat

is_print = gd_prntparams

i_save = 'X'

is_layout = gd_layout

TABLES

t_outtab = it_final[].

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

ENDFORM . " alv_display .

rewards are expected, pls

vivek srivastava

Read only

Former Member
0 Likes
1,123

hi,

please check this sample code

REPORT zalv_report.*type pools for alv declarations

TYPE-POOLS: slis.*structure declaration for tstc table

TYPES : BEGIN OF ty_tstc,

tcode TYPE tcode,

pgmna TYPE program_id,

dypno TYPE dynpronr,

END OF ty_tstc.* Internal table and workarea declarations for tstc

DATA: it_tstc TYPE STANDARD TABLE OF ty_tstc,

wa_tstc TYPE ty_tstc.*data declarations for ALV

DATA: it_layout TYPE slis_layout_alv,

wa_fieldcat TYPE slis_fieldcat_alv,

it_fieldcat TYPE slis_t_fieldcat_alv,

it_eventexit TYPE slis_t_event_exit,

wa_eventexit TYPE slis_event_exit.*initialisation event

INITIALIZATION.*start of selection event

START-OF-SELECTION.*subroutine to fetch data from the db table

PERFORM fetch_data.*subroutine for output display

PERFORM alv_output.&----


*& Form fetch_data

&----


  • *subroutine to fetch data from the db table

----


FORM fetch_data.*Internal table and work area declaratin for TSTC (local tables)

DATA : lt_tstc TYPE STANDARD TABLE OF ty_tstc,

ls_tstc TYPE ty_tstc.*Static field definition

*Reads the last tcode and stores it in l_tstc that on refresh further data

*beyond this value is fetched

STATICS l_tstc TYPE tcode.

  • Selection from the tstc table

*we select till 25 rows and on further refresh next 25 are selected

*we select transactions having screen numbers only

SELECT tcode

pgmna

dypno

FROM tstc

INTO CORRESPONDING FIELDS OF TABLE lt_tstc

UP TO 25 ROWS

WHERE tcode GT l_tstc

AND dypno NE '0000'.* Code for transferring the values of local table to output table

  • for 25 rows as sy-tfill is 25.

*In case there are no records a message pops up.

IF sy-subrc EQ 0.

DESCRIBE TABLE it_tstc.

READ TABLE lt_tstc INTO ls_tstc INDEX sy-tfill.

l_tstc = ls_tstc-tcode.

it_tstc[] = lt_tstc[].

ELSE.

MESSAGE 'No Records found ' TYPE 'i'.

ENDIF.

ENDFORM. "read_data&----


*& Form alv_output

&----


  • text

----


FORM alv_output.*subroutine to refresh alv

PERFORM event_exits.

*field catalogue

PERFORM build_fieldcat.

*Layout for alv

PERFORM build_layout.

*output display

PERFORM alv_display.ENDFORM. "alv_output&----


*& Form event_exits

&----


  • text

----


*subroutine to refresh alvFORM event_exits. CLEAR wa_eventexit.

wa_eventexit-ucomm = '&REFRESH'. " Refresh

wa_eventexit-after = 'X'.

APPEND wa_eventexit TO it_eventexit.ENDFORM. "event_exits&----


*& Form build_fieldcat

&----


  • text

----


*Field catalogue

FORM build_fieldcat. CLEAR wa_fieldcat.

wa_fieldcat-row_pos = '1'.

wa_fieldcat-col_pos = '1'.

wa_fieldcat-fieldname = 'TCODE'.

wa_fieldcat-tabname = 'it_tstc'.

wa_fieldcat-seltext_m = 'TRANSACTION'.

APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat.

wa_fieldcat-row_pos = '1'.

wa_fieldcat-col_pos = '2'.

wa_fieldcat-fieldname = 'PGMNA'.

wa_fieldcat-tabname = 'it_tstc'.

wa_fieldcat-seltext_m = 'PROGRAM'.

APPEND wa_fieldcat TO it_fieldcat. CLEAR wa_fieldcat.

wa_fieldcat-row_pos = '1'.

wa_fieldcat-col_pos = '3'.

wa_fieldcat-fieldname = 'DYPNO'.

wa_fieldcat-tabname = 'it_tstc'.

wa_fieldcat-seltext_m = 'SCREEN'.

APPEND wa_fieldcat TO it_fieldcat.ENDFORM. "build_fieldcat&----


*& Form build_layout

&----


  • text

----


*Layout

FORM build_layout. it_layout-zebra = 'X'.

it_layout-colwidth_optimize = 'X'.ENDFORM. "build_layout&----


*& Form alv_display

&----


  • text

----


*ALV output

FORM alv_display. CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_user_command = 'USER_COMMAND'

i_callback_pf_status_set = 'PFSTATUS'

it_fieldcat = it_fieldcat

is_layout = it_layout

it_event_exit = it_eventexit

i_screen_start_column = 10

i_screen_start_line = 20

i_screen_end_column = 70

i_screen_end_line = 45

i_grid_title = 'Call Tcode Refresh ALV'

TABLES

t_outtab = it_tstc.ENDFORM. "alv_display

&----


*& Form user_command

&----


  • text

----


*User actions on ALV

FORM user_command USING r_ucomm TYPE sy-ucomm

rs_selfield TYPE slis_selfield. CASE r_ucomm.*User clicks a transaction code and that tcode is called from ALV

WHEN '&IC1'.

READ TABLE it_tstc INDEX rs_selfield-tabindex INTO wa_tstc.

IF sy-subrc = 0.

CALL TRANSACTION wa_tstc-tcode.

ENDIF.*user clicks the refresh button and the next 25 records are displayed

WHEN '&REFRESH'.

PERFORM fetch_data.

rs_selfield-refresh = 'X'.

rs_selfield-col_stable = 'X' .

rs_selfield-row_stable = 'X' .

ENDCASE.ENDFORM. "user_command----


  • FORM PFSTATUS *

----


*Form for settings the pf status to the alv

FORM pfstatus USING ut_extab TYPE slis_t_extab. SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLKKBL'.ENDFORM. " PF_STATUS_SET

regards

dilip

Read only

Former Member
0 Likes
1,123

Hi,

Here I am sending you the sample code which uses all the events.

In the first ALV report, im displaying Purchase Order Header details.

I hav one Pushbutton called "display" in the menu.

If I select any "EBELN", and pressd that display button....thn one POPUP ALV comes which has purchase organization details related to that "EBELN".

And if I double clicked on EBELN, then in the next screen, i will get Purchase Order Item details in the next screen.

REPORT z50871_alv_griddisplay message-id z50871msg.

----


  • STRUCTURE DECLARATIONS

  • INTERNAL TABLE DECLARATIONS

  • WORKAREA DECLARATIONS

  • TYPE-POOLS DECLARATION

----


TYPE-POOLS : slis.

TYPES : BEGIN OF st_ekko,

ebeln TYPE ekko-ebeln, "Purchasing Document Number

bstyp TYPE ekko-bstyp, "Purchasing Document Category

bsart TYPE ekko-bsart, "Purchasing Document Type

aedat TYPE ekko-aedat, "record created on

ernam TYPE ekko-ernam, "Person who Created the Object

check(1),

END OF st_ekko.

TYPES : BEGIN OF st_ekpo,

ebeln TYPE ekko-ebeln,

ebelp TYPE ekpo-ebelp, "Item Number of Purchasing Document

ematn TYPE ekpo-ematn, "Material number

matkl TYPE ekpo-matkl, "Material group

netpr TYPE ekpo-netpr, "Net price in purchasing document

END OF st_ekpo.

TYPES : BEGIN OF st_ebeln,

ebeln TYPE ekpo-ebeln,

END OF st_ebeln.

TYPES : BEGIN OF st_eine,

ebeln TYPE ekko-ebeln,

ekorg TYPE eine-ekorg,

ekgrp TYPE eine-ekgrp,

END OF st_eine.

TYPES : BEGIN OF st_check,

check(1),

END OF st_check.

DATA : it_ekpo TYPE STANDARD TABLE OF st_ekpo,

it_ekko TYPE STANDARD TABLE OF st_ekko,

wa_ekko LIKE LINE OF it_ekko,

it_fieldcat TYPE slis_t_fieldcat_alv,

wa_fieldcat LIKE LINE OF it_fieldcat,

wa_layout TYPE slis_layout_alv,

it_events TYPE slis_t_event,

st_event LIKE LINE OF it_events,

it_listheadr TYPE slis_t_listheader ,

wa_listheadr LIKE LINE OF it_listheadr,

st_printparams TYPE slis_print_alv,

it_sortinfo TYPE slis_t_sortinfo_alv,

wa_sortinfo LIKE LINE OF it_sortinfo,

it_ekposortinfo TYPE slis_t_sortinfo_alv,

wa_ekposortinfo LIKE LINE OF it_ekposortinfo,

it_filter TYPE slis_t_filter_alv,

it_ebeln TYPE STANDARD TABLE OF st_ebeln,

it_eine TYPE STANDARD TABLE OF st_eine,

wa_eine TYPE st_eine,

it_popup TYPE STANDARD TABLE OF st_eine,

wa_popup TYPE st_eine,

it_check TYPE STANDARD TABLE OF st_check,

wa_check TYPE st_check.

DATA : v_ebeln TYPE ekko-ebeln.

----


  • SELECTION-SCREEN

----


SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE tit.

SELECT-OPTIONS: so_ebeln FOR v_ebeln OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b.

----


  • INITIALIZATION

----


INITIALIZATION.

tit = text-000.

----


  • AT SELECTION-SCREEN ON

----


AT SELECTION-SCREEN ON so_ebeln.

PERFORM validate_ebeln.

----


  • START-OF-SELECTION

----


START-OF-SELECTION.

PERFORM get_ekko_data.

PERFORM get_eine_data.

----


  • END-OF-SELECTION

----


END-OF-SELECTION.

PERFORM populate_fieldcat1.

PERFORM populate_layout.

PERFORM get_eventlist.

PERFORM get_ekkosortinfo.

PERFORM ekkodisplay_onalv.

&----


*& Form POPULATE_FIELDCAT1

&----


FORM populate_fieldcat1.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_l = text-004.

wa_fieldcat-no_zero = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'BSTYP'.

wa_fieldcat-seltext_l = text-005.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'BSART'.

wa_fieldcat-seltext_l = text-006.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'AEDAT'.

wa_fieldcat-seltext_l = text-007.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'ERNAM'.

wa_fieldcat-seltext_l = text-008.

APPEND wa_fieldcat TO it_fieldcat.

ENDFORM. "POPULATE_FIELDCAT1

&----


*& Form populate_fieldcat2

&----


FORM populate_fieldcat2 .

CLEAR wa_fieldcat.

CLEAR it_fieldcat.

REFRESH it_fieldcat.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_l = text-004.

wa_fieldcat-hotspot = 'X'.

  • wa_fieldcat-no_zero = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EBELP'.

wa_fieldcat-seltext_l = text-009.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EMATN'.

wa_fieldcat-seltext_l = text-010.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'MATKL'.

wa_fieldcat-seltext_l = text-011.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'NETPR'.

wa_fieldcat-seltext_l = text-012.

wa_fieldcat-datatype = 'CURR'. "Obligatory to perform SUM

wa_fieldcat-do_sum = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

ENDFORM. "populate_fieldcat2

&----


*& Form GET_EVENTLIST

&----


FORM get_eventlist.

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.

READ TABLE it_events WITH KEY name = slis_ev_pf_status_set INTO st_event.

IF sy-subrc EQ 0.

st_event-form = 'SET_PF_STATUS1'.

APPEND st_event TO it_events.

CLEAR st_event.

ENDIF.

READ TABLE it_events WITH KEY name = slis_ev_end_of_page INTO st_event.

IF sy-subrc EQ 0.

st_event-form = 'END_OF_PAGE'.

APPEND st_event TO it_events.

CLEAR st_event.

ENDIF.

ENDFORM. "GET_EVENTLIST

&----


*& Form ekpodisplay_onalv

&----


FORM ekpodisplay_onalv .

IF it_ekpo[] IS INITIAL.

MESSAGE 'NO DATA FOUND' TYPE 'I'.

ELSE.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_pf_status_set = 'SET_PF_STATUS'

i_callback_user_command = 'AT_USER_COMMAND1'

i_callback_top_of_page = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME = I_STRUCTURE_NAME

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE = I_GRID_TITLE

  • I_GRID_SETTINGS = I_GRID_SETTINGS

is_layout = wa_layout

it_fieldcat = it_fieldcat

  • IT_EXCLUDING = IT_EXCLUDING

  • IT_SPECIAL_GROUPS = IT_SPECIAL_GROUPS

it_sort = it_ekposortinfo[]

  • IT_FILTER = IT_FILTER

  • IS_SEL_HIDE = IS_SEL_HIDE

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT = IS_VARIANT

  • it_events = it_events

  • IT_EVENT_EXIT = IT_EVENT_EXIT

  • IS_PRINT = IS_PRINT

  • IS_REPREP_ID = 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_ALV_GRAPHICS

  • IT_HYPERLINK = IT_HYPERLINK

  • IT_ADD_FIELDCAT = IT_ADD_FIELDCAT

  • IT_EXCEPT_QINFO = IT_EXCEPT_QINFO

  • IR_SALV_FULLSCREEN_ADAPTER = IR_SALV_FULLSCREEN_ADAPTER

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER = E_EXIT_CAUSED_BY_CALLER

  • ES_EXIT_CAUSED_BY_USER = ES_EXIT_CAUSED_BY_USER

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.

ENDIF.

ENDFORM. "ekpodisplay_onalv

&----


*& Form SET_PF_STATUS1

&----


FORM set_pf_status1 USING rt_extab TYPE slis_t_extab.

SET PF-STATUS 'MENU' excluding rt_extab. "Copy from SALV .

ENDFORM. "SET_PF_STATUS1

&----


*& Form SET_PF_STATUS

&----


FORM set_pf_status USING rt_extab TYPE slis_t_extab.

SET PF-STATUS 'STANDARD' excluding rt_extab. "Copy from SALV .

ENDFORM. "SET_PF_STATUS

&----


*& Form AT_user_command

&----


FORM at_user_command USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

CASE r_ucomm.

WHEN '&IC1'.

IF rs_selfield-fieldname EQ 'EBELN'.

READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.

SELECT ebeln ebelp ematn matkl netpr

FROM ekpo

INTO TABLE it_ekpo

WHERE ebeln EQ wa_ekko-ebeln.

PERFORM populate_fieldcat2.

PERFORM populate_layout2.

PERFORM get_ekposortinfo.

PERFORM ekpodisplay_onalv.

ELSE.

MESSAGE i020(z50871msg) WITH text-013.

ENDIF.

WHEN 'SE16'.

CALL TRANSACTION 'SE16'.

WHEN 'SE37'.

CALL TRANSACTION 'SE37'.

WHEN 'DISP'.

PERFORM get_popupdata.

PERFORM get_popupfcat.

PERFORM display_popup.

ENDCASE.

ENDFORM. "AT_user_command

&----


*& Form TOP_OF_PAGE

&----


FORM top_of_page.

REFRESH it_listheadr.

wa_listheadr-typ = 'H'.

wa_listheadr-info = text-001.

APPEND wa_listheadr TO it_listheadr.

CLEAR wa_listheadr.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_listheadr[]

i_logo = 'ENJOYSAP_LOGO'. "From OAER transaction

ENDFORM. "TOP_OF_PAGE

&----


*& Form build_print_params

&----


FORM build_print_params.

st_printparams-reserve_lines = '3'. "Lines reserved for footer

st_printparams-no_coverpage = 'X'.

ENDFORM. "build_print_params

&----


*& Form end_of_page

&----


FORM end_of_page.

REFRESH it_listheadr.

wa_listheadr-typ = 'H'.

wa_listheadr-info = sy-pagno.

APPEND wa_listheadr TO it_listheadr.

CLEAR wa_listheadr.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_listheadr[].

ENDFORM. "end_of_page

&----


*& Form GET_EKPOSORTINFO

&----


FORM get_ekposortinfo.

wa_ekposortinfo-up = 'X'.

wa_ekposortinfo-spos = 1.

wa_ekposortinfo-fieldname = 'EBELP'.

wa_ekposortinfo-tabname = 'EKPO'.

APPEND wa_ekposortinfo TO it_ekposortinfo.

CLEAR wa_ekposortinfo.

wa_ekposortinfo-up = 'X'.

wa_ekposortinfo-spos = 2.

wa_ekposortinfo-fieldname = 'EMATN'.

wa_ekposortinfo-tabname = 'EKPO'.

APPEND wa_ekposortinfo TO it_ekposortinfo.

CLEAR wa_ekposortinfo.

ENDFORM. "GET_EKPOSORTINFO

*

&----


*& Form POPULATE_LAYOUT

&----


FORM populate_layout.

wa_layout-colwidth_optimize = 'X'. "column width

wa_layout-zebra = 'X'.

  • wa_layout-no_hline = 'X'.

  • wa_layout-no_vline = 'X'.

  • wa_layout-cell_merge = 'X'.

wa_layout-box_fieldname = 'CHECK'.

wa_layout-box_tabname = 'IT_EKKO'.

wa_layout-window_titlebar = 'PURCHASE ORDER HEADER DETAILS'.

ENDFORM. "POPULATE_LAYOUT

&----


*& Form get_EKKOsortinfo

&----


FORM get_ekkosortinfo.

wa_sortinfo-up = 'X'.

wa_sortinfo-spos = 1.

wa_sortinfo-fieldname = 'EBELN'.

wa_sortinfo-tabname = 'EKKO'.

APPEND wa_sortinfo TO it_sortinfo.

CLEAR wa_sortinfo.

wa_sortinfo-up = 'X'.

wa_sortinfo-spos = 2.

wa_sortinfo-fieldname = 'BSTYP'.

wa_sortinfo-tabname = 'EKKO'.

APPEND wa_sortinfo TO it_sortinfo.

CLEAR wa_sortinfo.

wa_sortinfo-up = 'X'.

wa_sortinfo-spos = 3.

wa_sortinfo-fieldname = 'AEDAT'.

wa_sortinfo-tabname = 'EKKO'.

APPEND wa_sortinfo TO it_sortinfo.

CLEAR wa_sortinfo.

ENDFORM. "get_EKKOsortinfo

&----


*& Form EKKODISPLAY_ONALV

&----


FORM ekkodisplay_onalv.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

i_callback_program = sy-repid

i_callback_pf_status_set = 'SET_PF_STATUS1'

i_callback_user_command = 'AT_USER_COMMAND'

is_layout = wa_layout

it_fieldcat = it_fieldcat

it_sort = it_sortinfo[]

it_filter = it_filter

it_events = it_events[]

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

&----


*& Form validate_ebeln

&----


FORM validate_ebeln.

SELECT ebeln

FROM ekpo

INTO TABLE it_ebeln

WHERE ebeln IN so_ebeln.

IF sy-subrc NE 0.

MESSAGE e020(z50871msg) WITH text-014.

ENDIF.

ENDFORM. "validate_ebeln

&----


*& Form populate_layout2

&----


FORM populate_layout2 .

CLEAR wa_layout.

wa_layout-colwidth_optimize = 'X'. "column width

  • wa_layout-zebra = 'X'.

  • wa_layout-no_hline = 'X'.

  • wa_layout-no_vline = 'X'.

  • wa_layout-cell_merge = 'X'.

wa_layout-window_titlebar = 'PURCHASE ORDER DETAILS SECOND SCREEN'.

ENDFORM. " populate_layout2

&----


*& Form GET_POPUPDATA

&----


FORM get_popupdata .

LOOP AT it_ekko INTO wa_ekko WHERE check = 'X'.

READ TABLE it_eine INTO wa_eine WITH KEY ebeln = wa_ekko-ebeln.

IF sy-subrc NE 0.

MESSAGE i020(z50871msg) WITH text-015 wa_ekko-ebeln .

ELSE.

wa_popup-ebeln = wa_eine-ebeln.

wa_popup-ekorg = wa_eine-ekorg.

wa_popup-ekgrp = wa_eine-ekgrp.

APPEND wa_popup TO it_popup.

ENDIF.

ENDLOOP.

ENDFORM. " GET_POPUPDATA

&----


*& Form GET_POPUPFCAT

&----


FORM get_popupfcat .

CLEAR wa_fieldcat.

REFRESH it_fieldcat.

wa_fieldcat-fieldname = 'EBELN'.

wa_fieldcat-seltext_l = text-004.

wa_fieldcat-hotspot = 'X'.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EKORG'.

wa_fieldcat-seltext_l = text-016.

APPEND wa_fieldcat TO it_fieldcat.

wa_fieldcat-fieldname = 'EKGRP'.

wa_fieldcat-seltext_l = text-017.

APPEND wa_fieldcat TO it_fieldcat.

ENDFORM. " GET_POPUPFCAT

&----


*& Form DISPLAY_POPUP

&----


FORM display_popup .

LOOP AT it_ekko INTO wa_ekko WHERE check EQ 'X'.

wa_check-check = wa_ekko-check.

APPEND wa_check TO it_check.

ENDLOOP.

IF it_check[] IS INITIAL.

MESSAGE i020(z50871msg) WITH text-018.

ENDIF.

IF NOT it_popup[] IS INITIAL.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'

EXPORTING

i_title = text-003

i_allow_no_selection = 'X'

i_scroll_to_sel_line = 'X'

i_tabname = 'IT_POPUP'

it_fieldcat = it_fieldcat

i_callback_program = sy-repid

TABLES

t_outtab = it_popup

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.

ENDIF.

REFRESH it_check.

REFRESH it_popup.

ENDFORM. " DISPLAY_POPUP

&----


*& Form get_ekko_data

&----


FORM get_ekko_data .

SELECT ebeln bstyp bsart aedat ernam

FROM ekko

INTO CORRESPONDING FIELDS OF TABLE it_ekko

WHERE ebeln IN so_ebeln.

IF sy-subrc NE 0.

MESSAGE e020(z50871msg) WITH text-019.

ENDIF.

ENDFORM. " get_ekko_data

&----


*& Form get_eine_data

&----


FORM get_eine_data .

SELECT ebeln ekorg ekgrp

FROM eine

INTO TABLE it_eine

WHERE ebeln IN so_ebeln.

ENDFORM. " get_eine_data

&----


*& Form at_user_command1

&----


FORM at_user_command1 USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

CASE r_ucomm.

WHEN 'SE16'.

CALL TRANSACTION 'SE16'.

WHEN 'SE37'.

Regards

Sandeep Reddy

CALL TRANSACTION 'SE37'.

ENDCASE.

ENDFORM. "at_user_command1