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: 

alv report

Former Member
0 Kudos

hi

how to use the work area in alv report.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

HI

see this report WA stands for WORKAREA here in my program

**************DATA TYPES DECLARATION **********************

TABLES: HRP1001, HRP1026, HRP1000,PCHDY.
TYPE-POOLS SLIS.

TYPES :BEGIN OF ST_OUTPUT,
        COUNT TYPE STRING,
        OBJID TYPE HRP1001-OBJID,
        STEXT TYPE HRP1000-STEXT,
        BEGDA TYPE HRP1000-BEGDA,
        ENDDA TYPE HRP1000-ENDDA,
        CANCRT TYPE T77CRT-CANCRT,
        AEDTM TYPE HRP1026-AEDTM,
        UNAME TYPE HRP1026-UNAME,
        LSTEXT TYPE HRP1000-STEXT,
*        RINVT TYPE T777V-RINVT,
       END OF ST_OUTPUT.

TYPES: BEGIN OF ST_HRP1000,
        OBJID TYPE HRP1001-OBJID,
        STEXT TYPE HRP1000-STEXT,
       END OF ST_HRP1000.

TYPES : BEGIN OF ST_HRP1001,
         OTYPE TYPE HRP1001-OTYPE,
         OBJID TYPE HRP1001-OBJID,
         RELAT type hrp1001-RELAT,
         BEGDA TYPE HRP1001-BEGDA,
         ENDDA TYPE HRP1001-ENDDA,
         SCLAS TYPE HRP1001-SCLAS,
         SOBID TYPE HRP1001-SOBID,
        END OF ST_HRP1001.

TYPES : BEGIN OF ST_HRP1026,
         OTYPE TYPE HRP1026-OTYPE,
         OBJID TYPE HRP1001-OBJID,
         AEDTM TYPE HRP1026-AEDTM,
         UNAME TYPE HRP1026-UNAME,
         DELET TYPE HRP1026-DELET,
         CANCR TYPE HRP1026-CANCR,
        END OF ST_HRP1026.

TYPES : BEGIN OF ST_REASON,
         CANCR TYPE HRP1026-CANCR,
         CANCRT TYPE T77CRT-CANCRT,
        END OF ST_REASON.

TYPES : BEGIN OF ST_SOBID,
         OTYPE TYPE HRP1001-OTYPE,
         OBJID TYPE HRP1001-OBJID,
         RELAT type hrp1001-OBJID,
         BEGDA TYPE HRP1001-BEGDA,
         ENDDA TYPE HRP1001-ENDDA,
         SCLAS TYPE HRP1001-SCLAS,
         SOBID TYPE HRP1001-OBJID,
        END OF ST_SOBID.

TYPES : BEGIN OF ST_OBJID,
         OBJID TYPE HRP1001-OBJID,
        END OF ST_OBJID.

TYPES : BEGIN OF ST_LOCATION,
         OTYPE TYPE HRP1001-OTYPE,
         OBJID TYPE HRP1001-OBJID,
         RSIGN TYPE HRP1001-RSIGN,
         RELAT TYPE HRP1001-RELAT,
         SCLAS TYPE HRP1001-SCLAS,
         SOBID TYPE HRP1001-SOBID,
        END OF ST_LOCATION.

TYPES : BEGIN OF ST_LOCATION1,
         OTYPE TYPE HRP1001-OTYPE,
         OBJID TYPE HRP1001-OBJID,
         RSIGN TYPE HRP1001-RSIGN,
         RELAT TYPE HRP1001-RELAT,
         SCLAS TYPE HRP1001-SCLAS,
         SOBID TYPE HRP1001-OBJID,
        END OF ST_LOCATION1.

TYPES : BEGIN OF ST_LSTEXT,
         OTYPE TYPE HRP1000-OTYPE,
         OBJID TYPE HRP1000-OBJID,
         LSTEXT TYPE HRP1000-STEXT,
        END OF ST_LSTEXT.

TYPES : BEGIN OF ST_OBJID_SH,
         OTYPE TYPE HRP1000-OTYPE,
         OBJID TYPE HRP1000-OBJID,
        END OF ST_OBJID_SH.

DATA : IT_OBJID_SH TYPE STANDARD TABLE OF ST_OBJID_SH.
DATA : WA_OBJID_SH TYPE ST_OBJID_SH.

DATA : IT_LSTEXT TYPE STANDARD TABLE OF ST_LSTEXT.              "TOS STORE THE TEXT OF COURCE LOCATION
DATA : WA_LSTEXT TYPE ST_LSTEXT.

DATA : IT_LOCATION TYPE STANDARD TABLE OF ST_LOCATION.          " TO STORE THE LOCATION OF COURCE
DATA : WA_LOCATION TYPE ST_LOCATION.


DATA : IT_LOCATION1 TYPE STANDARD TABLE OF ST_LOCATION1.        " TO CONVERT SOBID INTO OBJID FOR COURCE LOCATION
DATA : WA_LOCATION1 TYPE ST_LOCATION1.


DATA : IT_SOBID TYPE STANDARD TABLE OF ST_SOBID.                " TO CHANGE THE SOBID OF HRP1001 TO OBJID OF HRP1026
DATA : WA_SOBID TYPE ST_SOBID.                                   " BY USING FOR ALL ENTRIES

DATA : IT_REASON TYPE STANDARD TABLE OF ST_REASON.              "TO STORE T HE REASON FOR CANCELL TEXT
DATA : WA_REASON TYPE ST_REASON.

DATA : IT_OUTPUT TYPE STANDARD TABLE OF ST_OUTPUT.               "OUTPUT FEILDS OF REPORT.
DATA : WA_OUTPUT TYPE ST_OUTPUT.

DATA : IT_OUTPUT_1 TYPE STANDARD TABLE OF ST_OUTPUT.               " TEMP OUTPUT FEILDS OF REPORT.
DATA : WA_OUTPUT_1 TYPE ST_OUTPUT.


DATA : IT_HRP1000 TYPE STANDARD TABLE OF ST_HRP1000.             "DATA FROM HRP1000 TABLE
DATA : WA_HRP1000 TYPE ST_HRP1000.

DATA : IT_HRP1001 TYPE STANDARD TABLE OF ST_HRP1001.             "DATA FROM HRP1001 TABLE
DATA : WA_HRP1001 TYPE ST_HRP1001.


DATA : IT_HRP1026 TYPE STANDARD TABLE OF ST_HRP1026.              "DATA FROM HRP1026 TABLE
DATA : WA_HRP1026 TYPE ST_HRP1026.

DATA : IT_OBJID TYPE STANDARD TABLE OF ST_OBJID.                  " TO STORE THE OBJID OF HRP1001
DATA : WA_OBJID TYPE ST_OBJID.

DATA: WS_FCAT    TYPE SLIS_FIELDCAT_ALV .                         " FEILDCATALOG FOR ALV REPORT
DATA: IN_FCAT    TYPE SLIS_T_FIELDCAT_ALV.
DATA: W_LAYOUT   TYPE SLIS_LAYOUT_ALV.

DATA : LV_COUNT TYPE I.                                           "FEILD FOR SERIAL NUMBER


****************************END OF DATA DECLARATION*******************************************

************SELECTION SCREEN DESIGN************************

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

*SELECT-OPTIONS : S_OTYPE FOR HRP1001-OTYPE NO INTERVALS .
SELECT-OPTIONS : S_OBJID FOR HRP1001-OBJID NO INTERVALS .
SELECT-OPTIONS : DATE FOR SY-DATUM NO-EXTENSION OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

***********END OF SELECTION SCREEN DESIGN******************


*****INITIALIZATION VENT TO ASIGN DEFAULT VALUES TO OTYPE
*INITIALIZATION.
*  S_OTYPE-LOW = 'D'.
*  S_OTYPE-SIGN = 'I'.
*  S_OTYPE-OPTION = 'EQ'.
*  APPEND S_OTYPE.
*  CLEAR S_OTYPE.
**************END OF EVENT INITIALIZATION******************

**********VALIDATION FOR SCREEN FIELDS*********************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_OBJID-LOW.

*  IF S_OBJID IS NOT INITIAL.

    SELECT OTYPE OBJID FROM HRP1000
                 INTO TABLE IT_OBJID_SH
                 WHERE OTYPE = 'D'.

 IF SY-SUBRC EQ 0.

* SEARCH HELP FOR QUALIFICATION.

    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
      EXPORTING
*              DDIC_STRUCTURE         = ' '
        RETFIELD               =  'OBJID'
*              PVALKEY                = ' '
       DYNPPROG               = SY-REPID
       DYNPNR                 = SY-DYNNR
       DYNPROFIELD            = 'S_OBJID'
*              STEPL                  = 0
*              WINDOW_TITLE           =
*              VALUE                  = ' '
       VALUE_ORG              = 'S'
*              MULTIPLE_CHOICE        = ' '
*              DISPLAY                = ' '
*              CALLBACK_PROGRAM       = ' '
*              CALLBACK_FORM          = ' '
*              MARK_TAB               =
*            IMPORTING
*              USER_RESET             =
      TABLES
        VALUE_TAB              =  IT_OBJID_SH
*              FIELD_TAB              =
*              RETURN_TAB             = RETURN_TAB
*              DYNPFLD_MAPPING        =
*            EXCEPTIONS
*              PARAMETER_ERROR        = 1
*              NO_VALUES_FOUND        = 2
*              OTHERS                 = 3
              .
    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.

              .

*    IF SY-SUBRC NE 0.
*      MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA.' TYPE 'E'.
*    ENDIF.
*
*  ENDIF.
*  REFRESH IT_OBJID.

****************VALIDATION OF SCREEN FIELDS ENDS************

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

START-OF-SELECTION.

  SELECT OTYPE
         OBJID
         RELAT
         BEGDA
         ENDDA
         SCLAS
         SOBID FROM HRP1001 INTO TABLE IT_HRP1001
                    WHERE OTYPE = 'D'
                        AND OBJID IN S_OBJID
                        AND BEGDA GE DATE-LOW
                        AND ENDDA LE DATE-HIGH
                        AND ( SCLAS = 'E' OR SCLAS = 'ET' ).

  IF SY-SUBRC NE 0.
    MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.
  ENDIF.

  LOOP AT IT_HRP1001 INTO WA_HRP1001.

    WA_SOBID-OTYPE = WA_HRP1001-OTYPE.
    WA_SOBID-OBJID = WA_HRP1001-OBJID.
    WA_SOBID-RELAT = WA_HRP1001-RELAT.
    WA_SOBID-BEGDA = WA_HRP1001-BEGDA.
    WA_SOBID-ENDDA = WA_HRP1001-ENDDA.
    WA_SOBID-SCLAS = WA_HRP1001-SCLAS.
    WA_SOBID-SOBID = WA_HRP1001-SOBID.
    APPEND WA_SOBID TO IT_SOBID.

  ENDLOOP.

  SELECT OTYPE
         OBJID
         AEDTM
         UNAME
         DELET
         CANCR
*         NCONT
          FROM HRP1026
          INTO TABLE IT_HRP1026
          FOR ALL ENTRIES IN IT_SOBID
             WHERE OBJID = IT_SOBID-SOBID
             AND ( OTYPE = 'E' OR OTYPE = 'ET' )
                 AND DELET = 'X' AND
                 BEGDA GE DATE-LOW  AND
                 ENDDA LE DATE-HIGH.

  IF SY-SUBRC EQ 0.

    SELECT OBJID
           STEXT
           FROM HRP1000
           INTO TABLE IT_HRP1000
           FOR ALL ENTRIES IN IT_SOBID
              WHERE OBJID = IT_SOBID-SOBID AND
                    BEGDA GE DATE-LOW  AND
                    ENDDA LE DATE-HIGH.

    SELECT CANCR
           CANCRT
           FROM T77CRT
           INTO TABLE IT_REASON
           FOR ALL ENTRIES IN IT_HRP1026
           WHERE CANCR = IT_HRP1026-CANCR
             AND LANGU = 'E' .

*********PERFORM FOR GETTING T HE LOCATION OF THE COURCE***

  PERFORM GET_LOCATION.
**************END OF LOCATION OF COURCE ******************

  ELSE.
    MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.

  ENDIF.

******PERFORM FOR GETTING DATA INTO THE FINAL INTERNAL TABLE IT_OUTPUT***

  PERFORM GET_DATA.

*********************************END OF PERFORM ET DATA ***************

***********LOGIC FOR PRONTING NUMBER OF RECORDS ***********************

  LV_COUNT = 0.
  LOOP  AT IT_OUTPUT INTO WA_OUTPUT.
    LV_COUNT = LV_COUNT + 1.
    WA_OUTPUT-COUNT = LV_COUNT.
    APPEND WA_OUTPUT TO IT_OUTPUT_1.
  ENDLOOP.
  REFRESH IT_OUTPUT.
  IT_OUTPUT = IT_OUTPUT_1.
********************END OF LOGIC FOR NUMBER OF RECORDS ***************

*****************DISPLAYING OUTPUT BY USEING GRID DISPLAY***********

  PERFORM ALV_DISPLAY.

****************************END OF PERFORM FOR DISPLAYING **********

*&---------------------------------------------------------------------*
*&      Form  PERFORM_ALV
*&---------------------------------------------------------------------*
* DISPLAY THE RECORDS IN ALV GRID FORMAT.
*----------------------------------------------------------------------*
FORM ALV_DISPLAY.

  PERFORM FIELD_CATALOG USING 'COUNT' 'Sr. No.'.
  PERFORM FIELD_CATALOG USING 'OBJID' 'COURCE ID.'.
  PERFORM FIELD_CATALOG USING 'STEXT' 'COURCE NAME'.
    PERFORM FIELD_CATALOG USING 'LSTEXT' 'COURCE LOATION'.
  PERFORM FIELD_CATALOG USING 'BEGDA' 'BEGIN DATE '.
  PERFORM FIELD_CATALOG USING 'ENDDA' 'END DATE '.
  PERFORM FIELD_CATALOG USING 'CANCRT' 'REASON'.
  PERFORM FIELD_CATALOG USING 'AEDTM' 'DATE Of CANCEL'.
*  PERFORM FIELD_CATALOG USING 'NCONT' 'NUMBER OF BOOKINGS'.
*  PERFORM FIELD_CATALOG USING 'LOCTX' 'COURCE LOCATION'.

  PERFORM FIELD_CATALOG USING 'UNAME' 'WHO CANCELLED'.
*  PERFORM FIELD_CATALOG USING 'LSTEXT' 'COURCE LOATION'.



  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_STRUCTURE_NAME = 'IT_OUTPUT'
      I_GRID_TITLE     = ' Cancelled courses with reason '
      IT_FIELDCAT      = IN_FCAT
    TABLES
      T_OUTTAB         = IT_OUTPUT.
  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.                    "PERFORM_ALV




*&---------------------------------------------------------------------*
*&      Form  FIELD_CATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->FIELD_NAME text
*      -->DIS_TEXT   text
*----------------------------------------------------------------------*
FORM FIELD_CATALOG USING FIELD_NAME DIS_TEXT.


  CLEAR WS_FCAT.
  WS_FCAT-TABNAME = 'IT_OUTPUT'.
  WS_FCAT-FIELDNAME = FIELD_NAME.
  WS_FCAT-SELTEXT_M = DIS_TEXT.
  APPEND WS_FCAT TO IN_FCAT .

ENDFORM.                    "FIELD_CATALOG
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_DATA .

*sort it_sobid by objid.



  LOOP AT IT_SOBID INTO WA_SOBID." where otype eq s_otype and objid eq s_objid.

    READ TABLE IT_HRP1026 WITH KEY OBJID = WA_SOBID-SOBID OTYPE = WA_SOBID-SCLAS INTO WA_HRP1026.
    IF SY-SUBRC EQ 0.
      READ TABLE IT_HRP1000 WITH KEY OBJID = WA_SOBID-SOBID INTO WA_HRP1000.
*    READ TABLE IT_REASON WITH KEY CANCR = WA_HRP1026-CANCR INTO WA_REASON.


      WA_OUTPUT-OBJID = WA_HRP1026-OBJID.
      WA_OUTPUT-BEGDA = WA_SOBID-BEGDA.
      WA_OUTPUT-ENDDA = WA_SOBID-ENDDA.
      WA_OUTPUT-AEDTM = WA_HRP1026-AEDTM.
      WA_OUTPUT-UNAME = WA_HRP1026-UNAME.
*    WA_OUTPUT-NCONT = WA_HRP1026-NCONT.



*    READ TABLE IT_HRP1000 WITH KEY OBJID = WA_SOBID-SOBID INTO WA_HRP1000.


      WA_OUTPUT-STEXT = WA_HRP1000-STEXT.


      READ TABLE IT_REASON WITH KEY CANCR = WA_HRP1026-CANCR INTO WA_REASON.


      WA_OUTPUT-CANCRT = WA_REASON-CANCRT.
      CLEAR WA_REASON-CANCRT.

      READ TABLE IT_LOCATION1 WITH KEY OBJID = WA_HRP1026-OBJID INTO WA_LOCATION1..

      READ TABLE IT_LSTEXT WITH KEY OBJID = WA_LOCATION1-SOBID OTYPE = 'F' INTO WA_LSTEXT.

             WA_OUTPUT-LSTEXT = WA_LSTEXT-LSTEXT.
             CLEAR WA_LSTEXT-LSTEXT.


      APPEND WA_OUTPUT TO IT_OUTPUT.
      CLEAR WA_OUTPUT.
      CLEAR WA_OUTPUT-CANCRT.
    ENDIF.
  ENDLOOP.


ENDFORM.                    " GET_DATA
*&---------------------------------------------------------------------*
*&      Form  GET_LOCATION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_LOCATION .


SELECT OTYPE
       OBJID
       RSIGN
       RELAT
       SCLAS
      SOBID
      FROM HRP1001
      INTO TABLE IT_LOCATION
      FOR ALL ENTRIES IN IT_HRP1026
      WHERE OTYPE = 'E' AND OBJID = IT_HRP1026-OBJID
       AND RSIGN = 'A' AND RELAT = '024' AND SCLAS = 'F'
                AND BEGDA GE DATE-LOW AND ENDDA LE DATE-HIGH.

IF SY-SUBRC NE 0.
    MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.
  ENDIF.

  LOOP AT IT_LOCATION INTO WA_LOCATION.

    WA_LOCATION1-OTYPE = WA_LOCATION-OTYPE.
    WA_LOCATION1-OBJID = WA_LOCATION-OBJID.
        WA_LOCATION1-RSIGN = WA_LOCATION-RSIGN.
    WA_LOCATION1-RELAT = WA_LOCATION-RELAT.
    WA_LOCATION1-SCLAS = WA_LOCATION-SCLAS.
    WA_LOCATION1-SOBID = WA_LOCATION-SOBID.
    APPEND WA_LOCATION1 TO IT_LOCATION1.
*    CLEAR WA_LOCATION1.
  ENDLOOP.



SELECT OTYPE
       OBJID
       STEXT
       FROM HRP1000
       INTO TABLE IT_LSTEXT
       FOR ALL ENTRIES IN IT_LOCATION1
       WHERE OBJID = IT_LOCATION1-SOBID
          AND OTYPE = 'F'.
*          AND BEGDA GE DATE-LOW
*          AND ENDDA LE DATE-HIGH.


ENDFORM.                    " GET_LOCATION

6 REPLIES 6

Former Member
0 Kudos

structure

DATA:

<b>WA_FCAT TYPE line of SLIS_T_FIELDCAT_ALV ,

IT_FCAT TYPE SLIS_T_FIELDCAT_ALV .</b>CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-CPROG

I_INTERNAL_TABNAME = 'I_OUT_ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

  • I_INCLNAME = SY-CPROG

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = IT_FCAT

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

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

ENDIF.

WA_FCAT-FIELDNAME = 'STLNR'.

APPEND WA_FCAT TO IT_FCAT.

WA_FCAT-FIELDNAME = 'MATNR'.

APPEND WA_FCAT TO IT_FCAT.

0 Kudos

Thanks ya but i need a internal table.

0 Kudos

Where do you need the internal table.?

Because in the above example you are getting that:

DATA:

WA_FCAT TYPE line of SLIS_T_FIELDCAT_ALV , " << this Work area

IT_FCAT TYPE SLIS_T_FIELDCAT_ALV. " << this is Internal table

WA_FCAT-ROW_POS = 1.

APPEND WA_FCAT TO IT_FCAT.

Regards,

Naimesh Patel

Former Member
0 Kudos

HI

see this report WA stands for WORKAREA here in my program

**************DATA TYPES DECLARATION **********************

TABLES: HRP1001, HRP1026, HRP1000,PCHDY.
TYPE-POOLS SLIS.

TYPES :BEGIN OF ST_OUTPUT,
        COUNT TYPE STRING,
        OBJID TYPE HRP1001-OBJID,
        STEXT TYPE HRP1000-STEXT,
        BEGDA TYPE HRP1000-BEGDA,
        ENDDA TYPE HRP1000-ENDDA,
        CANCRT TYPE T77CRT-CANCRT,
        AEDTM TYPE HRP1026-AEDTM,
        UNAME TYPE HRP1026-UNAME,
        LSTEXT TYPE HRP1000-STEXT,
*        RINVT TYPE T777V-RINVT,
       END OF ST_OUTPUT.

TYPES: BEGIN OF ST_HRP1000,
        OBJID TYPE HRP1001-OBJID,
        STEXT TYPE HRP1000-STEXT,
       END OF ST_HRP1000.

TYPES : BEGIN OF ST_HRP1001,
         OTYPE TYPE HRP1001-OTYPE,
         OBJID TYPE HRP1001-OBJID,
         RELAT type hrp1001-RELAT,
         BEGDA TYPE HRP1001-BEGDA,
         ENDDA TYPE HRP1001-ENDDA,
         SCLAS TYPE HRP1001-SCLAS,
         SOBID TYPE HRP1001-SOBID,
        END OF ST_HRP1001.

TYPES : BEGIN OF ST_HRP1026,
         OTYPE TYPE HRP1026-OTYPE,
         OBJID TYPE HRP1001-OBJID,
         AEDTM TYPE HRP1026-AEDTM,
         UNAME TYPE HRP1026-UNAME,
         DELET TYPE HRP1026-DELET,
         CANCR TYPE HRP1026-CANCR,
        END OF ST_HRP1026.

TYPES : BEGIN OF ST_REASON,
         CANCR TYPE HRP1026-CANCR,
         CANCRT TYPE T77CRT-CANCRT,
        END OF ST_REASON.

TYPES : BEGIN OF ST_SOBID,
         OTYPE TYPE HRP1001-OTYPE,
         OBJID TYPE HRP1001-OBJID,
         RELAT type hrp1001-OBJID,
         BEGDA TYPE HRP1001-BEGDA,
         ENDDA TYPE HRP1001-ENDDA,
         SCLAS TYPE HRP1001-SCLAS,
         SOBID TYPE HRP1001-OBJID,
        END OF ST_SOBID.

TYPES : BEGIN OF ST_OBJID,
         OBJID TYPE HRP1001-OBJID,
        END OF ST_OBJID.

TYPES : BEGIN OF ST_LOCATION,
         OTYPE TYPE HRP1001-OTYPE,
         OBJID TYPE HRP1001-OBJID,
         RSIGN TYPE HRP1001-RSIGN,
         RELAT TYPE HRP1001-RELAT,
         SCLAS TYPE HRP1001-SCLAS,
         SOBID TYPE HRP1001-SOBID,
        END OF ST_LOCATION.

TYPES : BEGIN OF ST_LOCATION1,
         OTYPE TYPE HRP1001-OTYPE,
         OBJID TYPE HRP1001-OBJID,
         RSIGN TYPE HRP1001-RSIGN,
         RELAT TYPE HRP1001-RELAT,
         SCLAS TYPE HRP1001-SCLAS,
         SOBID TYPE HRP1001-OBJID,
        END OF ST_LOCATION1.

TYPES : BEGIN OF ST_LSTEXT,
         OTYPE TYPE HRP1000-OTYPE,
         OBJID TYPE HRP1000-OBJID,
         LSTEXT TYPE HRP1000-STEXT,
        END OF ST_LSTEXT.

TYPES : BEGIN OF ST_OBJID_SH,
         OTYPE TYPE HRP1000-OTYPE,
         OBJID TYPE HRP1000-OBJID,
        END OF ST_OBJID_SH.

DATA : IT_OBJID_SH TYPE STANDARD TABLE OF ST_OBJID_SH.
DATA : WA_OBJID_SH TYPE ST_OBJID_SH.

DATA : IT_LSTEXT TYPE STANDARD TABLE OF ST_LSTEXT.              "TOS STORE THE TEXT OF COURCE LOCATION
DATA : WA_LSTEXT TYPE ST_LSTEXT.

DATA : IT_LOCATION TYPE STANDARD TABLE OF ST_LOCATION.          " TO STORE THE LOCATION OF COURCE
DATA : WA_LOCATION TYPE ST_LOCATION.


DATA : IT_LOCATION1 TYPE STANDARD TABLE OF ST_LOCATION1.        " TO CONVERT SOBID INTO OBJID FOR COURCE LOCATION
DATA : WA_LOCATION1 TYPE ST_LOCATION1.


DATA : IT_SOBID TYPE STANDARD TABLE OF ST_SOBID.                " TO CHANGE THE SOBID OF HRP1001 TO OBJID OF HRP1026
DATA : WA_SOBID TYPE ST_SOBID.                                   " BY USING FOR ALL ENTRIES

DATA : IT_REASON TYPE STANDARD TABLE OF ST_REASON.              "TO STORE T HE REASON FOR CANCELL TEXT
DATA : WA_REASON TYPE ST_REASON.

DATA : IT_OUTPUT TYPE STANDARD TABLE OF ST_OUTPUT.               "OUTPUT FEILDS OF REPORT.
DATA : WA_OUTPUT TYPE ST_OUTPUT.

DATA : IT_OUTPUT_1 TYPE STANDARD TABLE OF ST_OUTPUT.               " TEMP OUTPUT FEILDS OF REPORT.
DATA : WA_OUTPUT_1 TYPE ST_OUTPUT.


DATA : IT_HRP1000 TYPE STANDARD TABLE OF ST_HRP1000.             "DATA FROM HRP1000 TABLE
DATA : WA_HRP1000 TYPE ST_HRP1000.

DATA : IT_HRP1001 TYPE STANDARD TABLE OF ST_HRP1001.             "DATA FROM HRP1001 TABLE
DATA : WA_HRP1001 TYPE ST_HRP1001.


DATA : IT_HRP1026 TYPE STANDARD TABLE OF ST_HRP1026.              "DATA FROM HRP1026 TABLE
DATA : WA_HRP1026 TYPE ST_HRP1026.

DATA : IT_OBJID TYPE STANDARD TABLE OF ST_OBJID.                  " TO STORE THE OBJID OF HRP1001
DATA : WA_OBJID TYPE ST_OBJID.

DATA: WS_FCAT    TYPE SLIS_FIELDCAT_ALV .                         " FEILDCATALOG FOR ALV REPORT
DATA: IN_FCAT    TYPE SLIS_T_FIELDCAT_ALV.
DATA: W_LAYOUT   TYPE SLIS_LAYOUT_ALV.

DATA : LV_COUNT TYPE I.                                           "FEILD FOR SERIAL NUMBER


****************************END OF DATA DECLARATION*******************************************

************SELECTION SCREEN DESIGN************************

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

*SELECT-OPTIONS : S_OTYPE FOR HRP1001-OTYPE NO INTERVALS .
SELECT-OPTIONS : S_OBJID FOR HRP1001-OBJID NO INTERVALS .
SELECT-OPTIONS : DATE FOR SY-DATUM NO-EXTENSION OBLIGATORY.

SELECTION-SCREEN END OF BLOCK B1.

***********END OF SELECTION SCREEN DESIGN******************


*****INITIALIZATION VENT TO ASIGN DEFAULT VALUES TO OTYPE
*INITIALIZATION.
*  S_OTYPE-LOW = 'D'.
*  S_OTYPE-SIGN = 'I'.
*  S_OTYPE-OPTION = 'EQ'.
*  APPEND S_OTYPE.
*  CLEAR S_OTYPE.
**************END OF EVENT INITIALIZATION******************

**********VALIDATION FOR SCREEN FIELDS*********************

AT SELECTION-SCREEN ON VALUE-REQUEST FOR S_OBJID-LOW.

*  IF S_OBJID IS NOT INITIAL.

    SELECT OTYPE OBJID FROM HRP1000
                 INTO TABLE IT_OBJID_SH
                 WHERE OTYPE = 'D'.

 IF SY-SUBRC EQ 0.

* SEARCH HELP FOR QUALIFICATION.

    CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
      EXPORTING
*              DDIC_STRUCTURE         = ' '
        RETFIELD               =  'OBJID'
*              PVALKEY                = ' '
       DYNPPROG               = SY-REPID
       DYNPNR                 = SY-DYNNR
       DYNPROFIELD            = 'S_OBJID'
*              STEPL                  = 0
*              WINDOW_TITLE           =
*              VALUE                  = ' '
       VALUE_ORG              = 'S'
*              MULTIPLE_CHOICE        = ' '
*              DISPLAY                = ' '
*              CALLBACK_PROGRAM       = ' '
*              CALLBACK_FORM          = ' '
*              MARK_TAB               =
*            IMPORTING
*              USER_RESET             =
      TABLES
        VALUE_TAB              =  IT_OBJID_SH
*              FIELD_TAB              =
*              RETURN_TAB             = RETURN_TAB
*              DYNPFLD_MAPPING        =
*            EXCEPTIONS
*              PARAMETER_ERROR        = 1
*              NO_VALUES_FOUND        = 2
*              OTHERS                 = 3
              .
    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.

              .

*    IF SY-SUBRC NE 0.
*      MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA.' TYPE 'E'.
*    ENDIF.
*
*  ENDIF.
*  REFRESH IT_OBJID.

****************VALIDATION OF SCREEN FIELDS ENDS************

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

START-OF-SELECTION.

  SELECT OTYPE
         OBJID
         RELAT
         BEGDA
         ENDDA
         SCLAS
         SOBID FROM HRP1001 INTO TABLE IT_HRP1001
                    WHERE OTYPE = 'D'
                        AND OBJID IN S_OBJID
                        AND BEGDA GE DATE-LOW
                        AND ENDDA LE DATE-HIGH
                        AND ( SCLAS = 'E' OR SCLAS = 'ET' ).

  IF SY-SUBRC NE 0.
    MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.
  ENDIF.

  LOOP AT IT_HRP1001 INTO WA_HRP1001.

    WA_SOBID-OTYPE = WA_HRP1001-OTYPE.
    WA_SOBID-OBJID = WA_HRP1001-OBJID.
    WA_SOBID-RELAT = WA_HRP1001-RELAT.
    WA_SOBID-BEGDA = WA_HRP1001-BEGDA.
    WA_SOBID-ENDDA = WA_HRP1001-ENDDA.
    WA_SOBID-SCLAS = WA_HRP1001-SCLAS.
    WA_SOBID-SOBID = WA_HRP1001-SOBID.
    APPEND WA_SOBID TO IT_SOBID.

  ENDLOOP.

  SELECT OTYPE
         OBJID
         AEDTM
         UNAME
         DELET
         CANCR
*         NCONT
          FROM HRP1026
          INTO TABLE IT_HRP1026
          FOR ALL ENTRIES IN IT_SOBID
             WHERE OBJID = IT_SOBID-SOBID
             AND ( OTYPE = 'E' OR OTYPE = 'ET' )
                 AND DELET = 'X' AND
                 BEGDA GE DATE-LOW  AND
                 ENDDA LE DATE-HIGH.

  IF SY-SUBRC EQ 0.

    SELECT OBJID
           STEXT
           FROM HRP1000
           INTO TABLE IT_HRP1000
           FOR ALL ENTRIES IN IT_SOBID
              WHERE OBJID = IT_SOBID-SOBID AND
                    BEGDA GE DATE-LOW  AND
                    ENDDA LE DATE-HIGH.

    SELECT CANCR
           CANCRT
           FROM T77CRT
           INTO TABLE IT_REASON
           FOR ALL ENTRIES IN IT_HRP1026
           WHERE CANCR = IT_HRP1026-CANCR
             AND LANGU = 'E' .

*********PERFORM FOR GETTING T HE LOCATION OF THE COURCE***

  PERFORM GET_LOCATION.
**************END OF LOCATION OF COURCE ******************

  ELSE.
    MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.

  ENDIF.

******PERFORM FOR GETTING DATA INTO THE FINAL INTERNAL TABLE IT_OUTPUT***

  PERFORM GET_DATA.

*********************************END OF PERFORM ET DATA ***************

***********LOGIC FOR PRONTING NUMBER OF RECORDS ***********************

  LV_COUNT = 0.
  LOOP  AT IT_OUTPUT INTO WA_OUTPUT.
    LV_COUNT = LV_COUNT + 1.
    WA_OUTPUT-COUNT = LV_COUNT.
    APPEND WA_OUTPUT TO IT_OUTPUT_1.
  ENDLOOP.
  REFRESH IT_OUTPUT.
  IT_OUTPUT = IT_OUTPUT_1.
********************END OF LOGIC FOR NUMBER OF RECORDS ***************

*****************DISPLAYING OUTPUT BY USEING GRID DISPLAY***********

  PERFORM ALV_DISPLAY.

****************************END OF PERFORM FOR DISPLAYING **********

*&---------------------------------------------------------------------*
*&      Form  PERFORM_ALV
*&---------------------------------------------------------------------*
* DISPLAY THE RECORDS IN ALV GRID FORMAT.
*----------------------------------------------------------------------*
FORM ALV_DISPLAY.

  PERFORM FIELD_CATALOG USING 'COUNT' 'Sr. No.'.
  PERFORM FIELD_CATALOG USING 'OBJID' 'COURCE ID.'.
  PERFORM FIELD_CATALOG USING 'STEXT' 'COURCE NAME'.
    PERFORM FIELD_CATALOG USING 'LSTEXT' 'COURCE LOATION'.
  PERFORM FIELD_CATALOG USING 'BEGDA' 'BEGIN DATE '.
  PERFORM FIELD_CATALOG USING 'ENDDA' 'END DATE '.
  PERFORM FIELD_CATALOG USING 'CANCRT' 'REASON'.
  PERFORM FIELD_CATALOG USING 'AEDTM' 'DATE Of CANCEL'.
*  PERFORM FIELD_CATALOG USING 'NCONT' 'NUMBER OF BOOKINGS'.
*  PERFORM FIELD_CATALOG USING 'LOCTX' 'COURCE LOCATION'.

  PERFORM FIELD_CATALOG USING 'UNAME' 'WHO CANCELLED'.
*  PERFORM FIELD_CATALOG USING 'LSTEXT' 'COURCE LOATION'.



  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      I_STRUCTURE_NAME = 'IT_OUTPUT'
      I_GRID_TITLE     = ' Cancelled courses with reason '
      IT_FIELDCAT      = IN_FCAT
    TABLES
      T_OUTTAB         = IT_OUTPUT.
  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.                    "PERFORM_ALV




*&---------------------------------------------------------------------*
*&      Form  FIELD_CATALOG
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->FIELD_NAME text
*      -->DIS_TEXT   text
*----------------------------------------------------------------------*
FORM FIELD_CATALOG USING FIELD_NAME DIS_TEXT.


  CLEAR WS_FCAT.
  WS_FCAT-TABNAME = 'IT_OUTPUT'.
  WS_FCAT-FIELDNAME = FIELD_NAME.
  WS_FCAT-SELTEXT_M = DIS_TEXT.
  APPEND WS_FCAT TO IN_FCAT .

ENDFORM.                    "FIELD_CATALOG
*&---------------------------------------------------------------------*
*&      Form  GET_DATA
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_DATA .

*sort it_sobid by objid.



  LOOP AT IT_SOBID INTO WA_SOBID." where otype eq s_otype and objid eq s_objid.

    READ TABLE IT_HRP1026 WITH KEY OBJID = WA_SOBID-SOBID OTYPE = WA_SOBID-SCLAS INTO WA_HRP1026.
    IF SY-SUBRC EQ 0.
      READ TABLE IT_HRP1000 WITH KEY OBJID = WA_SOBID-SOBID INTO WA_HRP1000.
*    READ TABLE IT_REASON WITH KEY CANCR = WA_HRP1026-CANCR INTO WA_REASON.


      WA_OUTPUT-OBJID = WA_HRP1026-OBJID.
      WA_OUTPUT-BEGDA = WA_SOBID-BEGDA.
      WA_OUTPUT-ENDDA = WA_SOBID-ENDDA.
      WA_OUTPUT-AEDTM = WA_HRP1026-AEDTM.
      WA_OUTPUT-UNAME = WA_HRP1026-UNAME.
*    WA_OUTPUT-NCONT = WA_HRP1026-NCONT.



*    READ TABLE IT_HRP1000 WITH KEY OBJID = WA_SOBID-SOBID INTO WA_HRP1000.


      WA_OUTPUT-STEXT = WA_HRP1000-STEXT.


      READ TABLE IT_REASON WITH KEY CANCR = WA_HRP1026-CANCR INTO WA_REASON.


      WA_OUTPUT-CANCRT = WA_REASON-CANCRT.
      CLEAR WA_REASON-CANCRT.

      READ TABLE IT_LOCATION1 WITH KEY OBJID = WA_HRP1026-OBJID INTO WA_LOCATION1..

      READ TABLE IT_LSTEXT WITH KEY OBJID = WA_LOCATION1-SOBID OTYPE = 'F' INTO WA_LSTEXT.

             WA_OUTPUT-LSTEXT = WA_LSTEXT-LSTEXT.
             CLEAR WA_LSTEXT-LSTEXT.


      APPEND WA_OUTPUT TO IT_OUTPUT.
      CLEAR WA_OUTPUT.
      CLEAR WA_OUTPUT-CANCRT.
    ENDIF.
  ENDLOOP.


ENDFORM.                    " GET_DATA
*&---------------------------------------------------------------------*
*&      Form  GET_LOCATION
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
FORM GET_LOCATION .


SELECT OTYPE
       OBJID
       RSIGN
       RELAT
       SCLAS
      SOBID
      FROM HRP1001
      INTO TABLE IT_LOCATION
      FOR ALL ENTRIES IN IT_HRP1026
      WHERE OTYPE = 'E' AND OBJID = IT_HRP1026-OBJID
       AND RSIGN = 'A' AND RELAT = '024' AND SCLAS = 'F'
                AND BEGDA GE DATE-LOW AND ENDDA LE DATE-HIGH.

IF SY-SUBRC NE 0.
    MESSAGE 'NO RECORD FOUND FOR THE GIVEN SELECTION CRITERIA ' TYPE 'E'.
  ENDIF.

  LOOP AT IT_LOCATION INTO WA_LOCATION.

    WA_LOCATION1-OTYPE = WA_LOCATION-OTYPE.
    WA_LOCATION1-OBJID = WA_LOCATION-OBJID.
        WA_LOCATION1-RSIGN = WA_LOCATION-RSIGN.
    WA_LOCATION1-RELAT = WA_LOCATION-RELAT.
    WA_LOCATION1-SCLAS = WA_LOCATION-SCLAS.
    WA_LOCATION1-SOBID = WA_LOCATION-SOBID.
    APPEND WA_LOCATION1 TO IT_LOCATION1.
*    CLEAR WA_LOCATION1.
  ENDLOOP.



SELECT OTYPE
       OBJID
       STEXT
       FROM HRP1000
       INTO TABLE IT_LSTEXT
       FOR ALL ENTRIES IN IT_LOCATION1
       WHERE OBJID = IT_LOCATION1-SOBID
          AND OTYPE = 'F'.
*          AND BEGDA GE DATE-LOW
*          AND ENDDA LE DATE-HIGH.


ENDFORM.                    " GET_LOCATION

mahaboob_pathan
Contributor
0 Kudos

HI,

REPORT ZSTEST_035 .

TABLES VBAK.

TYPE-POOLS SLIS.

DATA ITAB LIKE VBAK OCCURS 0 WITH HEADER LINE.

*--ALV

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV. <b>''internal table</b>.

DATA: WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV. <b>''work area</b>.

DATA: I_LAYOUT TYPE SLIS_LAYOUT_ALV.

*--

SELECT-OPTIONS S_VBELN FOR VBAK-VBELN.

START-OF-SELECTION.

SELECT * FROM VBAK INTO TABLE ITAB WHERE VBELN IN S_VBELN.

END-OF-SELECTION.

*--1

WA_FIELDCAT-FIELDNAME = 'VBELN'.

WA_FIELDCAT-SELTEXT_L = 'Sal doc no'.

WA_FIELDCAT-KEY = 'X'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*--2

WA_FIELDCAT-FIELDNAME = 'ERDAT'.

WA_FIELDCAT-SELTEXT_L = 'Date'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*--3

WA_FIELDCAT-FIELDNAME = 'KUNNR'.

WA_FIELDCAT-SELTEXT_L = 'Customer'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

*--LAYOUT

I_LAYOUT-ZEBRA = 'X'.

I_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

*--output

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = ' '

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = I_FIELDCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • 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 <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

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

ENDIF.

Reward if usefull.

Former Member
0 Kudos

Hi

1st declare the tables like this , define STRUCTURES and define internal table body and next work area

**************DATA TYPES DECLARATION **********************

TABLES: HRP1001, HRP1026, HRP1000,PCHDY.

TYPE-POOLS SLIS.

TYPES :BEGIN OF ST_OUTPUT,

COUNT TYPE STRING,

OBJID TYPE HRP1001-OBJID,

STEXT TYPE HRP1000-STEXT,

BEGDA TYPE HRP1000-BEGDA,

ENDDA TYPE HRP1000-ENDDA,

CANCRT TYPE T77CRT-CANCRT,

AEDTM TYPE HRP1026-AEDTM,

UNAME TYPE HRP1026-UNAME,

LSTEXT TYPE HRP1000-STEXT,

END OF ST_OUTPUT.

<b>internal table body and WORKAREA</b>

DATA : IT_OUTPUT TYPE STANDARD TABLE OF ST_OUTPUT. "OUTPUT FEILDS OF REPORT.

DATA : WA_OUTPUT TYPE ST_OUTPUT.

WORK AREA--

There is no header when we use workarea. This is good if we use workarea instead of internal table because value is append one by one.