You are on page 1of 6

*&---------------------------------------------------------------------*

*& Report ZALV_REPORT_TWO_TABLE


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZALV_REPORT_TWO_TABLE.
TABLES: YSTUDENT,YSCHOOL.
TYPE-POOLS: SLIS.
DATA: FCAT TYPE SLIS_T_FIELDCAT_ALV,
EVENTS TYPE SLIS_T_EVENT,
HEADER TYPE SLIS_T_LISTHEADER,
WA_FCAT LIKE LINE OF FCAT,
WA_HEADER LIKE LINE OF HEADER.

TYPES :BEGIN OF TY_YSTUDENT,


SCHOOL_ID TYPE YSTUDENT-SCHOOL_ID,
STUD_NAME TYPE YSTUDENT-STUD_NAME,
STUD_ROLL_NO TYPE YSTUDENT-STUD_ROLL_NO,
STUD_ADDRESS TYPE YSTUDENT-STUD_ADDRESS,
END OF TY_YSTUDENT.

TYPES:BEGIN OF TY_YSCHOOL,
SCHOOL_ID TYPE YSCHOOL-SCHOOL_ID,
SCHOOL_NAME TYPE YSCHOOL-SCHOOL_NAME,
BOARD TYPE YSCHOOL-BOARD,
STATUS TYPE YSCHOOL-STATUS,
GRADE TYPE YSCHOOL-GRADE,
NO_OF_STUDENTS TYPE YSCHOOL-NO_OF_STUDENTS,
END OF TY_YSCHOOL.

TYPES: BEGIN OF TY_FINAL,


SCHOOL_ID TYPE YSTUDENT-SCHOOL_ID,
STUD_NAME TYPE YSTUDENT-STUD_NAME,
STUD_ROLL_NO TYPE YSTUDENT-STUD_ROLL_NO,
STUD_ADDRESS TYPE YSTUDENT-STUD_ADDRESS,
SCHOOL_NAME TYPE YSCHOOL-SCHOOL_NAME,
BOARD TYPE YSCHOOL-BOARD,
STATUS TYPE YSCHOOL-STATUS,
GRADE TYPE YSCHOOL-GRADE,
NO_OF_STUDENTS TYPE YSCHOOL-NO_OF_STUDENTS,
END OF TY_FINAL.

DATA: ITAB_YSTUDENT TYPE TABLE OF TY_YSTUDENT,


WA_YSTUDENT TYPE TY_YSTUDENT,

ITAB_YSCHOOL TYPE TABLE OF TY_YSCHOOL,


WA_YSCHOOL TYPE TY_YSCHOOL,

ITAB_FINAL TYPE TABLE OF TY_FINAL,


WA_FINAL TYPE TY_FINAL.

PARAMETERS: SCHL_ID LIKE YSTUDENT-SCHOOL_ID.


DATA WA_FCAT_FINAL.

PERFORM: STUDENT_DATA.
PERFORM: SCHOOL_DATA.
PERFORM: PREPARE_DATA.
PERFORM: DISPLAY.
PERFORM: GET_DATA.

FORM:STUDENT_DATA.
SELECT
SCHOOL_ID
STUD_NAME
STUD_ROLL_NO
STUD_ADDRESS FROM YSTUDENT INTO TABLE ITAB_YSTUDENT WHERE SCHOOL_ID
EQ SCHL_ID.
IF SY-SUBRC = 0.
MESSAGE 'PLEASE CONTINUE FOR DISPLAY DATA' TYPE 'I'.
ELSE.
MESSAGE 'WRONG ENTRY' TYPE 'I'.
ENDIF.
ENDFORM.
FORM:SCHOOL_DATA.
IF ITAB_YSTUDENT IS NOT INITIAL.
SELECT
SCHOOL_ID
SCHOOL_NAME
BOARD
STATUS
GRADE
NO_OF_STUDENTS FROM YSCHOOL INTO TABLE ITAB_YSCHOOL FOR ALL ENTRIES IN
ITAB_YSTUDENT WHERE SCHOOL_ID EQ ITAB_YSTUDENT-SCHOOL_ID.
IF SY-SUBRC = 0.
MESSAGE 'DONE' TYPE 'S'.
ENDIF.
ENDIF.
ENDFORM.
FORM :PREPARE_DATA.
IF ITAB_YSTUDENT IS NOT INITIAL.

LOOP AT ITAB_YSTUDENT INTO WA_YSTUDENT.

WA_FINAL-SCHOOL_ID = WA_YSTUDENT-SCHOOL_ID.
WA_FINAL-STUD_NAME = WA_YSTUDENT-STUD_NAME.
WA_FINAL-STUD_ROLL_NO = WA_YSTUDENT-STUD_ROLL_NO.
WA_FINAL-STUD_ADDRESS = WA_YSTUDENT-STUD_ADDRESS.

READ TABLE ITAB_YSCHOOL INTO WA_YSCHOOL


WITH KEY SCHOOL_ID = WA_YSCHOOL-SCHOOL_ID.
IF sy-subrc = 0.
WA_FINAL-SCHOOL_NAME = WA_YSCHOOL-SCHOOL_NAME.
WA_FINAL-BOARD = WA_YSCHOOL-BOARD.
WA_FINAL-STATUS = WA_YSCHOOL-STATUS.
WA_FINAL-GRADE = WA_YSCHOOL-GRADE.
WA_FINAL-NO_OF_STUDENTS = WA_YSCHOOL-NO_OF_STUDENTS.
ENDIF.

APPEND WA_FINAL TO ITAB_FINAL.


CLEAR: WA_FINAL, WA_YSTUDENT, WA_YSCHOOL.
ENDLOOP.
ENDIF.
ENDFORM.

FORM DISPLAY.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = 'ZALV_REPORT_TWO_TABLE'
* I_CALLBACK_PF_STATUS_SET = ' '
* I_CALLBACK_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 = 'REPORT'
* I_GRID_SETTINGS =
* IS_LAYOUT =
IT_FIELDCAT = FCAT
* 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
* I_HTML_HEIGHT_TOP = 0
* I_HTML_HEIGHT_END = 0
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IT_EXCEPT_QINFO =
* IR_SALV_FULLSCREEN_ADAPTER =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB_FINAL
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM.
FORM GET_DATA.

WA_FCAT-COL_POS = 1.
WA_FCAT-FIELDNAME = 'SCHOOL_ID'.
WA_FCAT-TABNAME = 'ITAB_FINAL'.
WA_FCAT-SELTEXT_M = 'SCHOOL_ID'.
WA_FCAT-OUTPUTLEN = 10.
WA_FCAT-DDICTXT = 'M'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = 2.
WA_FCAT-FIELDNAME = 'STUD_NAME'.
WA_FCAT-TABNAME = 'ITAB_FINAL'.
WA_FCAT-SELTEXT_M = 'STUD_NAME' .
WA_FCAT-OUTPUTLEN = 10.
WA_FCAT-DDICTXT = 'M'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = 3.
WA_FCAT-FIELDNAME = 'STUD_ROLL_NO'.
WA_FCAT-TABNAME = 'ITAB_FINAL'.
WA_FCAT-SELTEXT_M = 'STUD_ROLL_NO' .
WA_FCAT-OUTPUTLEN = 10.
WA_FCAT-DDICTXT = 'M'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = 4.
WA_FCAT-FIELDNAME = 'STUD_ADDRESS'.
WA_FCAT-TABNAME = 'ITAB_FINAL'.
WA_FCAT-SELTEXT_M = 'STUD_ADDRESS' .
WA_FCAT-OUTPUTLEN = 10.
WA_FCAT-DDICTXT = 'M'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = 5.
WA_FCAT-FIELDNAME = 'SCHOOL_NAME'.
WA_FCAT-TABNAME = 'ITAB_FINAL'.
WA_FCAT-SELTEXT_M = 'SCHOOL_NAME' .
WA_FCAT-OUTPUTLEN = 10.
WA_FCAT-DDICTXT = 'M'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = 6.
WA_FCAT-FIELDNAME = 'BOARD'.
WA_FCAT-TABNAME = 'ITAB_FINAL'.
WA_FCAT-SELTEXT_M = 'BOARD' .
WA_FCAT-OUTPUTLEN = 10.
WA_FCAT-DDICTXT = 'M'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = 7.
WA_FCAT-FIELDNAME = 'STATUS'.
WA_FCAT-TABNAME = 'ITAB_FINAL'.
WA_FCAT-SELTEXT_M = 'STATUS' .
WA_FCAT-OUTPUTLEN = 10.
WA_FCAT-DDICTXT = 'M'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = 8.
WA_FCAT-FIELDNAME = 'GRADE'.
WA_FCAT-TABNAME = 'ITAB_FINAL'.
WA_FCAT-SELTEXT_M = 'GRADE' .
WA_FCAT-OUTPUTLEN = 10.
WA_FCAT-DDICTXT = 'M'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.

WA_FCAT-COL_POS = 9.
WA_FCAT-FIELDNAME = 'NO_OF_STUDENTS'.
WA_FCAT-TABNAME = 'ITAB_FINAL'.
WA_FCAT-SELTEXT_M = 'NO_OF_STUDENTS' .
WA_FCAT-OUTPUTLEN = 10.
WA_FCAT-DDICTXT = 'M'.
APPEND WA_FCAT TO FCAT.
CLEAR WA_FCAT.

ENDFORM.
FORM TOP_OF_PAGE.
REFRESH HEADER.
WA_HEADER-TYP = 'H'.
WA_HEADER-INFO = 'SCHOOL REPORT'.
APPEND WA_HEADER TO HEADER.

WA_HEADER-TYP = 'S'.
WA_HEADER-INFO = 'BHIWANI' .
APPEND WA_HEADER TO HEADER.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'


EXPORTING
IT_LIST_COMMENTARY = HEADER[]
* I_LOGO =
* I_END_OF_LIST_GRID =
* I_ALV_FORM =
.
ENDFORM.

You might also like