Quantcast
Channel: SCN: Message List - ABAP Development
Viewing all articles
Browse latest Browse all 10425

Re: ALV HTML interactive report

$
0
0

Hi,

 

If I understood correctly, you need an interactive report which need to send a mail when user click on a field in alv.

 

for that you can do it in ALV grid/ control with usercommand.

 

In below example

 

FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

  CASE R_UCOMM.

    WHEN '&IC1'.

Here by checking your field name and value you can send a mail to concern person by adding your email logic here.

 

 

Example:

 

REPORT  YMS_ALVINTERSAMPLE 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.

 

Thanks

Sai


 



Viewing all articles
Browse latest Browse all 10425

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>