Vous êtes sur la page 1sur 13

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

*& Report Z_TEST_16042008


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

REPORT Z_TEST_16042008.

*PARAMETERS: A TYPE I,
*
* B TYPE I.

CLASS ABC DEFINITION.

PUBLIC SECTION.

CLASS-DATA: X TYPE I VALUE 10,


Y TYPE I VALUE 20,
Z TYPE I.

CLASS-METHODS ADD.
CLASS-METHODS ADD1.

PRIVATE SECTION.
DATA A TYPE I VALUE 1.

ENDCLASS.

DATA: OBJ TYPE REF TO ABC,


OBJ1 LIKE OBJ.

CREATE OBJECT OBJ.


OBJ->ADD( ).

CREATE OBJECT OBJ1.


OBJ1->ADD1( ).

CLASS ABC implementation.

METHOD ADD.

X = X + Y.

WRITE:/ X.
ENDMETHOD.

METHOD ADD1.

WRITE:/ X.
ENDMETHOD.
ENDCLASS.
*&---------------------------------------------------------------------*
*& Report ZDJ_CLASS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT zdj_class.

TABLES:spfli.

TYPES: BEGIN OF airline_data,


carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
END OF airline_data.

SELECT-OPTIONS: p_carrid FOR spfli-carrid.

*---------------------------------------------------------------------*
* CLASS Zlcl_airline DEFINITION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS zlcl_airline DEFINITION.

PUBLIC SECTION.

METHODS: get_data1,
display_data1.

PRIVATE SECTION.

DATA: itab TYPE TABLE OF airline_data,


wa_1 LIKE LINE OF itab.

METHODS: get_data,
display_data.

ENDCLASS. "Zlcl_airline DEFINITION

DATA: ob_airline TYPE REF TO zlcl_airline.

START-OF-SELECTION.
CREATE OBJECT ob_airline.
ob_airline->get_data1( ).
ob_airline->display_data1( ).

*---------------------------------------------------------------------*
* CLASS zlcl_airline IMPLEMENTATION
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
CLASS zlcl_airline IMPLEMENTATION.

METHOD get_data.

SELECT carrid connid FROM spfli INTO TABLE itab WHERE carrid IN
p_carrid.

ENDMETHOD. "get_data

METHOD display_data.

LOOP AT itab INTO wa_1.


WRITE:/ ob_airline->wa_1-carrid,
ob_airline->wa_1-connid.
ENDLOOP.
ENDMETHOD.

METHOD get_data1.
call method get_data.

ENDMETHOD. "get_data

METHOD display_data1.
call method display_data.
ENDMETHOD. "get_data

ENDCLASS. "zlcl_airline IMPLEMENTATION


*&---------------------------------------------------------------------*
*& Report ZDJ_CLASSTEST
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZDJ_CLASSTEST.

Tables: spfli.

parameters:s_carrid type spfli-carrid.

Data: obj type ref to ZDJ_TESTCLASS,


obj1 like obj.

create object obj.


CALL METHOD obj->DISPLAYDATA
EXPORTING
AIRLINE = s_carrid.
*create object obj1.
* CALL METHOD obj->DISPLAYDATA
* EXPORTING
* AIRLINE = s_carrid
* .
*&---------------------------------------------------------------------*
*& Report ZJIT_ALV_OOPS
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZJIT_ALV_OOPS.
TABLES: SPFLI.
DATA: ITAB_SPFLI TYPE TABLE OF SPFLI WITH HEADER LINE.
DATA: OK_CODE LIKE SY-UCOMM.

DATA: CL_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,


OBJ_GRID TYPE REF TO CL_GUI_ALV_GRID.

DATA: T_FIELDCAT TYPE LVC_T_FCAT,


FS_FIELDCAT LIKE LINE OF T_FIELDCAT.
SELECT-OPTIONS : CARRIER FOR SPFLI-CARRID.

START-OF-SELECTION.

SELECT * FROM SPFLI INTO TABLE ITAB_SPFLI WHERE CARRID IN CARRIER.

CALL SCREEN 100.


*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'JIT_MENU'.
SET TITLEBAR 'THIS_IS_MY_SCREEN'.

PERFORM SET_CONTAINER.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.

CASE OK_CODE.
WHEN 'GO_BACK'.
SET SCREEN 0.
WHEN 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT

FORM SET_CONTAINER.
IF CL_CONTAINER IS INITIAL.
CREATE OBJECT CL_CONTAINER EXPORTING CONTAINER_NAME = 'JIT_CONTAINER'.

CREATE OBJECT OBJ_GRID EXPORTING I_PARENT = CL_CONTAINER.

PERFORM FILL_CATALOG.

CALL METHOD OBJ_GRID->SET_TABLE_FOR_FIRST_DISPLAY


* EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
* I_STRUCTURE_NAME =
* IS_VARIANT =
* I_SAVE =
* I_DEFAULT = 'X'
* IS_LAYOUT =
* IS_PRINT =
* IT_SPECIAL_GROUPS =
* IT_TOOLBAR_EXCLUDING =
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = ITAB_SPFLI[]
IT_FIELDCATALOG = T_FIELDCAT
* IT_SORT =
* IT_FILTER =
* EXCEPTIONS
* INVALID_PARAMETER_COMBINATION = 1
* PROGRAM_ERROR = 2
* TOO_MANY_LINES = 3
* others = 4
.
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.

FORM FILL_CATALOG.

FS_FIELDCAT-FIELDNAME = 'CARRID'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'AIRLINE'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

FS_FIELDCAT-FIELDNAME = 'CONNID'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'CONNECTION'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

FS_FIELDCAT-FIELDNAME = 'CITYFROM'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'FROM'.
APPEND FS_FIELDCAT TO T_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'CITYTO'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'TO'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

ENDFORM.
*&---------------------------------------------------------------------*
*& Report ZJIT_OOPS_LOC
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT zjit_oops_loc.

TYPES: BEGIN OF flight_str,


carrid TYPE spfli-carrid,
connid TYPE spfli-connid,
airpfrom TYPE spfli-airpfrom,
cityfrom TYPE spfli-cityfrom,
airpto TYPE spfli-airpto,
cityto TYPE spfli-cityto,
END OF flight_str.

********* CLASS DEFINITION **********

CLASS flight DEFINITION.

PUBLIC SECTION.

METHODS: get_data. ", set_data.

PRIVATE SECTION.

DATA: flight_det TYPE TABLE OF flight_str,


wa_flight_det like line of flight_det,
check type i.

ENDCLASS. "flight DEFINITION

PARAMETERS: c_from TYPE spfli-cityfrom,


c_to TYPE spfli-cityto.

********* CLASS IMPLEMENTATION **********

CLASS flight IMPLEMENTATION.

METHOD get_data.

SELECT carrid connid airpfrom cityfrom airpto cityto FROM spfli INTO
TABLE flight_det WHERE cityfrom EQ c_from AND cityto EQ c_to.

LOOP AT flight_det into wa_flight_det.


WRITE:/ wa_flight_det-carrid, wa_flight_det-connid,
wa_flight_det-airpfrom,
wa_flight_det-cityfrom, wa_flight_det-airpto, wa_flight_det-cityto.
ENDLOOP.
if sy-subrc eq 4.
write:/ 'No Data Found!'.
endif.

ENDMETHOD. "get_data

* method set_data importing im_par type i.


ENDCLASS. "flight IMPLEMENTATION

DATA: details TYPE REF TO flight.

START-OF-SELECTION.
CREATE OBJECT details.
details->get_data( ).
*&---------------------------------------------------------------------*
*& Report ZJIT_LED
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZJIT_LED.
TABLES: SFLIGHT.

TYPES: BEGIN OF SFLIGHT_STR,


CARRID LIKE SFLIGHT-CARRID,
CONNID LIKE SFLIGHT-CONNID,
FLDATE LIKE SFLIGHT-FLDATE,
SEATSMAX LIKE SFLIGHT-SEATSMAX,
SEATSOCC LIKE SFLIGHT-SEATSOCC,
SEATSFREE LIKE SFLIGHT-SEATSMAX,
LIGHT1,
COLOR(4) TYPE C,
END OF SFLIGHT_STR.

DATA: ITAB_SFLIGHT TYPE TABLE OF SFLIGHT_STR,


WA_SFLIGHT LIKE LINE OF ITAB_SFLIGHT.

DATA: OK_CODE LIKE SY-UCOMM.

DATA: CL_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER,


OBJ_GRID TYPE REF TO CL_GUI_ALV_GRID,
WA_LAYOUT TYPE LVC_S_LAYO.

DATA: T_FIELDCAT TYPE LVC_T_FCAT,


FS_FIELDCAT LIKE LINE OF T_FIELDCAT.

DATA: IT_EXCLUDED_FUNCTIONS TYPE UI_FUNCTIONS.

SELECT-OPTIONS : CARRIER FOR SFLIGHT-CARRID.

START-OF-SELECTION.

SELECT CARRID CONNID FLDATE SEATSMAX SEATSOCC


FROM SFLIGHT
INTO CORRESPONDING FIELDS OF TABLE ITAB_SFLIGHT
WHERE CARRID IN CARRIER.

LOOP AT ITAB_SFLIGHT INTO WA_SFLIGHT.


WA_SFLIGHT-SEATSFREE = WA_SFLIGHT-SEATSMAX - WA_SFLIGHT-SEATSOCC.

IF WA_SFLIGHT-SEATSFREE < 15.


WA_SFLIGHT-COLOR = 'C111'.
WA_SFLIGHT-LIGHT1 = '1'.
ELSEIF WA_SFLIGHT-SEATSFREE < 100.
WA_SFLIGHT-COLOR = 'C710'.
WA_SFLIGHT-LIGHT1 = '2'.
ELSE.
WA_SFLIGHT-COLOR = 'C511'.
WA_SFLIGHT-LIGHT1 = '3'.
ENDIF.

MODIFY ITAB_SFLIGHT FROM WA_SFLIGHT.


ENDLOOP.

WA_LAYOUT-GRID_TITLE = 'CHECK AVAILABILITY'.


WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-EXCP_FNAME = 'LIGHT1'.
WA_LAYOUT-CWIDTH_OPT = 'X'.
WA_LAYOUT-SEL_MODE = 'A'.
WA_LAYOUT-INFO_FNAME = 'COLOR'.
WA_LAYOUT-EXCP_LED = 'X'.

APPEND CL_GUI_ALV_GRID=>MC_FC_FILTER TO IT_EXCLUDED_FUNCTIONS.


APPEND CL_GUI_ALV_GRID=>MC_MB_SUM TO IT_EXCLUDED_FUNCTIONS.

CALL SCREEN 100.


*&---------------------------------------------------------------------*
*& Module STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS 'JIT_MENU'.
SET TITLEBAR 'SEATS_FREE'.

PERFORM SET_CONTAINER.
ENDMODULE. " STATUS_0100 OUTPUT
*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0100 INPUT.

CASE OK_CODE.
WHEN 'BACK'.
SET SCREEN 0.
WHEN 'CANCEL'.
LEAVE PROGRAM.
ENDCASE.

ENDMODULE. " USER_COMMAND_0100 INPUT


FORM SET_CONTAINER.
IF CL_CONTAINER IS INITIAL.
CREATE OBJECT CL_CONTAINER EXPORTING CONTAINER_NAME =
'SEATS_FREE_CONTAINER'.

CREATE OBJECT OBJ_GRID EXPORTING I_PARENT = CL_CONTAINER.

PERFORM FILL_CATALOG.

CALL METHOD OBJ_GRID->SET_TABLE_FOR_FIRST_DISPLAY


EXPORTING
* I_BUFFER_ACTIVE =
* I_BYPASSING_BUFFER =
* I_CONSISTENCY_CHECK =
I_STRUCTURE_NAME = 'SFLIGHT_STR'
* IS_VARIANT =
* I_SAVE =
* I_DEFAULT = 'X'
IS_LAYOUT = WA_LAYOUT
* IS_PRINT =
* IT_SPECIAL_GROUPS =
IT_TOOLBAR_EXCLUDING = IT_EXCLUDED_FUNCTIONS
* IT_HYPERLINK =
* IT_ALV_GRAPHICS =
* IT_EXCEPT_QINFO =
* IR_SALV_ADAPTER =
CHANGING
IT_OUTTAB = ITAB_SFLIGHT
IT_FIELDCATALOG = T_FIELDCAT
* IT_SORT =
* IT_FILTER =
* EXCEPTIONS
* INVALID_PARAMETER_COMBINATION = 1
* PROGRAM_ERROR = 2
* TOO_MANY_LINES = 3
* others = 4
.
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.

FORM FILL_CATALOG.

FS_FIELDCAT-FIELDNAME = 'CARRID'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'AIRLINE'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

FS_FIELDCAT-FIELDNAME = 'CONNID'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'CONNECTION'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

FS_FIELDCAT-FIELDNAME = 'FLDATE'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'DATE'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

FS_FIELDCAT-FIELDNAME = 'SEATSMAX'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'MAX_SEATS'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

FS_FIELDCAT-FIELDNAME = 'SEATSOCC'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'OCCUPIED'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

FS_FIELDCAT-FIELDNAME = 'SEATSFREE'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'AVAILABLE'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

ENDFORM.
*&---------------------------------------------------------------------
*& Report ZDJ_ALVGRID1
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT ZDJ_ALVGRID1.

Tables:sflight.

DATA: cl_container TYPE REF TO cl_gui_custom_container,


obj_grid TYPE REF TO cl_gui_alv_grid.

Data: t_fieldcat type lvc_t_fcat,


fs_fieldcat like line of t_fieldcat.

TYpes: Begin of sflight1,


CARRID LIKE SFLIGHT-CARRID,
CONNID LIKE SFLIGHT-CONNID,
FLDATE LIKE SFLIGHT-FLDATE,
SEATSMAX LIKE SFLIGHT-SEATSMAX,
SEATSOCC LIKE SFLIGHT-SEATSOCC,
FREEseats LIKE SFLIGHT-SEATSMAX,
LIGHTS,
end of sflight1.

Data: it_sflight type table of sflight1,


wa_sflight like line of it_sflight.

Data: wa_layout type lvc_s_layo.


Data: ok_code like sy-ucomm.

SELECT-OPTIONS: S_CARRID FOR SFLIGHT-CARRID.

Start-of-selection.

SELECT * FROM sflight INTO corresponding fields of table it_sflight


WHERE carrid in s_carrid.

loop at it_sflight into wa_sflight.


WA_SFLIGHT-FREEseats = WA_SFLIGHT-SEATSMAX - WA_SFLIGHT-SEATSOCC.

IF WA_SFLIGHT-FREEseats < 15.


WA_SFLIGHT-LIGHTs = '1'.
ELSEIF WA_SFLIGHT-FREEseats < 100.
WA_SFLIGHT-LIGHTs = '2'.
ELSE.
WA_SFLIGHT-LIGHTs = '3'.
ENDIF.

MODIFY IT_SFLIGHT FROM WA_SFLIGHT.


ENDLOOP.

WA_LAYOUT-GRID_TITLE = 'ALV GRID'.


WA_LAYOUT-ZEBRA = 'X'.
WA_LAYOUT-EXCP_FNAME = 'LIGHTS'.

CALL SCREEN '111'.

*&---------------------------------------------------------------------*
*& Module STATUS_0111 OUTPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE STATUS_0111 OUTPUT.
SET PF-STATUS 'BACK'.
SET TITLEBAR 'ALV'.

perform set_container.

ENDMODULE. " STATUS_0111 OUTPUT

*&---------------------------------------------------------------------*
*& Module USER_COMMAND_0100 INPUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
MODULE user_command_0100 INPUT.

CASE ok_code.

WHEN 'BACK'.
SET SCREEN 0.

WHEN 'cancel'.
LEAVE PROGRAM.

ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT

*&---------------------------------------------------------------------*
*& Form set_container
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM set_container .

IF CL_CONTAINER IS INITIAL.

CREATE OBJECT CL_CONTAINER


EXPORTING CONTAINER_NAME = 'ALVSCREEN'.

CREATE OBJECT OBJ_GRID


EXPORTING I_PARENT = CL_CONTAINER.

PERFORM FILL_CATALOG.

CALL METHOD obj_grid->set_table_for_first_display


EXPORTING
i_structure_name = 'SFLIGHT1'
is_layout = WA_LAYOUT
CHANGING
it_outtab = IT_SFLIGHT
it_fieldcatalog = T_FIELDCAT
EXCEPTIONS
OTHERS = 4.

ENDIF.
ENDFORM. " set_container

*&---------------------------------------------------------------------*
*& Form FILL_CATALOG
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FILL_CATALOG .
FS_FIELDCAT-FIELDNAME = 'CARRID'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'AIRLINE'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

FS_FIELDCAT-FIELDNAME = 'CONNID'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'CONNECTION'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

FS_FIELDCAT-FIELDNAME = 'FLDATE'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'FLIGHT_DATE'.
APPEND FS_FIELDCAT TO T_FIELDCAT.
FS_FIELDCAT-FIELDNAME = 'SEATSMAX'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'MAX_SEATS'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

FS_FIELDCAT-FIELDNAME = 'SEATSOCC'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'OCCUPIED'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

FS_FIELDCAT-FIELDNAME = 'FREESEATS'.
FS_FIELDCAT-TABNAME = 'T_SFLIGHT'.
FS_FIELDCAT-REPTEXT = 'AVAILABLE'.
APPEND FS_FIELDCAT TO T_FIELDCAT.

ENDFORM.

Vous aimerez peut-être aussi