Sunteți pe pagina 1din 29

http://www.saptechnical.com/Tutorials/Smartforms/Lines/Index.

htm
IT_MARA1 = MARA
AMBIL IN DARI IT_MARA

print 3 dokumen, ttd, jadiin pdf


ethic compliance training mylearning.accenture
belajar cl_salv dan smartforms, cari kenapa ga mau keluar.
BUAT TIMECARD, TA JUMAT INI

SFLIGHT

FLDATE
PRICE
CARRID
CONNID

https://mylearning.accenture.com/
https://blogs.sap.com/2013/02/13/alv-column-editable-colour/
https://archive.sap.com/discussions/thread/736234
https://wiki.scn.sap.com/wiki/display/ABAP/ALV+TUTOTIAL+FOR+BEGINERS+WITH+EXAMPLES
https://savemedia.com

CL_SALV
smartforms

YNR_OT_DOCC

TABLE
YNR_OT_HEADD
CLASS
Y_CL_OVERTIME_WORKFLOWW

CLASS MOBILE DEFINITION.


PUBLiC SECTION.
METHODS:
CONSTRUCTOR IMPORTING MODEL TYPE string OS TYPE C PRICE TYPE N,
GETMODEL RETURNING VALUE(PRICE) TYPE REF TO DATA,
GETDISC IMPORTING DISC TYPE I PRICE TYPE N.

DATA: MODEL TYPE C,


OS TYPE C,
PRICE TYPE N.

ENDCLASS.

CLASS MOBILE IMPLEMENTATION.

METHOD CONSTRUCTOR.

ENDMETHOD.

METHOD GETMODEL.
MODEL = MODEL.
ENDMETHOD.

METHOD GETDISC.
DATA: HASILDISC TYPE N.

HASILDISC = DISC * PRICE.

ENDMETHOD.

ENDCLASS.

CLASS ANDROID DEFINITION INHERITING FROM MOBILE.


ENDCLASS.

START-OF-SELECTION.
DATA(NEWMOBILE) = NEW ANDROID( MODEL = 'AAASDS'
OS = 'ANDROID KITKAT'
PRICE = 1200000 ).
NEWMOBILE->GETDISC( DISC = 12
PRICE = 121212 ).

CLASS BLACKBERRY DEFINITION INHERITING FROM MOBILE.


PUBLIC SECTION.
METHODS:CONSTRUCTOR,
GETMODEL REDEFINITION,
GETDISC REDEFINITION,
GETPINBB RETURNING VALUE(PINBB) TYPE REF TO DATA.
DATA:
PINBB TYPE C.

ENDCLASS.

CLASS BLACKBERRY IMPLEMENTATION.


PUBLIC SECTION.

METHOD CONSTRUCTOR.
SUPER->CONSTRUCTOR( ).
PINBB = PINBB.
ENDMETHOD.

ENDCLASS.

*==============================
*&---------------------------------------------------------------------*
*& Report ZPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZPSM_000.

TYPES: BEGIN OF ADDRESS,


CITY(20) TYPE C,
STREET(30) TYPE C,

END OF ADDRESS.

DATA :TMP TYPE I VALUE 100,


TEMPERATURE(1) TYPE C,
SUHU LIKE TEMPERATURE,
ALAMAT TYPE ADDRESS,
I_TABADDRESS TYPE STANDARD TABLE
OF ADDRESS WITH NON-UNIQUE KEY CITY
INITIAL SIZE 0
WITH HEADER LINE,

I_TABADDRESS2 TYPE STANDARD TABLE


OF ADDRESS WITH NON-UNIQUE KEY CITY
INITIAL SIZE 0
WITH HEADER LINE,

WA_TAB TYPE ADDRESS,


WA_TAB2 TYPE ADDRESS,
WA_TAB3 TYPE ADDRESS.

*MOVE 100 TO TMP.


*WRITE TMP.
MOVE 'SURABAYA' TO WA_TAB3-CITY.
MOVE 'TANDES ST.' TO WA_TAB3-STREET.

MOVE 'KEDIRI' TO WA_TAB-CITY.


MOVE 'ARJUNO ST.' TO WA_TAB-STREET.
*WRITE I_TABADDRESS.

INSERT WA_TAB3 INTO I_TABADDRESS INDEX 1.


APPEND WA_TAB TO I_TABADDRESS.

LOOP AT I_TABADDRESS INTO WA_TAB2.


WRITE:/ WA_TAB2-CITY, WA_TAB2-STREET.
ENDLOOP.

MOVE 'C' TO TEMPERATURE.


CASE TEMPERATURE.
WHEN 'C'.
WRITE 'CELCIUS'.
WHEN 'F'.
WRITE 'FAHRENHEIT'.
ENDCASE.

IF TEMPERATURE = 'C' AND TMP = 100.


WRITE TMP.
ELSE.
WRITE 'HELLO'.
ENDIF.

IF TEMPERATURE = 'C'.
DO 10 TIMES.
TMP = TMP - 1.
ENDDO.
ENDIF.

*WRITE TMP.

PERFORM CONVERTTEMP USING 9 'C'.

FORM CONVERTTEMP USING SUHU TYPE I


MEASURE TYPE C.
IF MEASURE = 'C'.
DATA: RESULT TYPE I.
RESULT = SUHU * 777.
WRITE RESULT.
ENDIF.

ENDFORM.

CLASS MOBILE DEFINITION.


PUBLiC SECTION.
METHODS:
CONSTRUCTOR IMPORTING MODEL TYPE string OS TYPE C PRICE TYPE N,
GETMODEL RETURNING VALUE(PRICE) TYPE REF TO DATA,
GETDISC IMPORTING DISC TYPE I PRICE TYPE I
RETURNING VALUE(HASILDISC) TYPE I
RAISING CX_SY_ARITHMETIC_ERROR.

DATA: MODEL TYPE C,


OS TYPE C,
PRICE TYPE N.

ENDCLASS.

CLASS MOBILE IMPLEMENTATION.

METHOD CONSTRUCTOR.

ENDMETHOD.

METHOD GETMODEL.
MODEL = MODEL.
ENDMETHOD.

METHOD GETDISC.

HASILDISC = DISC * PRICE.

ENDMETHOD.

ENDCLASS.
*WRITE:/ 'HASIL :', HASILDISC.

CLASS ANDROID DEFINITION INHERITING FROM MOBILE.


ENDCLASS.

START-OF-SELECTION.
DATA(NEWMOBILE) = NEW ANDROID( MODEL = 'AAASDS'
OS = 'ANDROID KITKAT'
PRICE = 1200000 ).
WRITE:/ NEWMOBILE->GETDISC( DISC = 12
PRICE = 121212 ).

*====================
*not working yet

TRY.
NEWMOBILE->GETDISC( DISC = 12
PRICE = 121212 ).
CATCH CX_ROOT INTO OREF.
ASX = OREF->GET_TEXT( ).
WRITE:/ ASX.
ENDTRY.

DAY 3
===========================================
DATA: I_SFLIGHT TYPE TABLE OF SFLIGHT.

SELECT * FROM SFLIGHT INTO TABLE I_SFLIGHT.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'


EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
TABLES
T_OUTTAB = I_SFLIGHT.

********************************************
*&---------------------------------------------------------------------*
*& Report ZPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZPSM_000.

TYPE-POOLS: SLIS.
DATA : BEGIN OF I_OUTTAB OCCURS 0. INCLUDE STRUCTURE SFLIGHT.

DATA : W_CHK TYPE C.


DATA : END OF I_OUTTAB.
DATA : I_PRIVATE TYPE SLIS_DATA_CALLER_EXIT,
I_SEFIELD TYPE SLIS_SELFIELD,
W_EXIT(1) TYPE C.

PARAMETERS: P_TITLR TYPE SY-TITLE.

START-OF-SELECTION.

SELECT * FROM SFLIGHT INTO TABLE I_OUTTAB.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'


EXPORTING
I_TITLE = P_TITLR
I_SELECTION = 'X'
I_CHECKBOXFIELDNAME = 'W_CHK'
I_TABNAME = 'I_OUTTAB'
I_STRUCTURENAME = 'SFLIGHT'
IMPORTING
ES_SELFIELD = I_SEFIELD
E_EXIT = W_EXIT
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.

IF SY-SUBRC <> 0.
MESSAGE I000(0K) WITH SY-SUBRC.
ENDIF.
LOOP AT I_OUTTAB WHERE W_CHK = 'X'.
WRITE:/ I_OUTTAB-CARRID, I_OUTTAB-PRICE.
ENDLOOP.

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

*(STEP 1) DECLARE DATA


TYPE-POOLS: SLIS.

DATA: V_REPID LIKE SY-REPID.

DATA: STRUCT_LAYOUT TYPE SLIS_LAYOUT_ALV.


DATA: STRUCT_LAYOUT1 TYPE SLIS_LAYOUT_ALV.

DATA: I_EVENTS TYPE SLIS_T_EVENT.

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.


DATA: X_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
DATA: I_FIELDCAT1 TYPE SLIS_T_FIELDCAT_ALV.
DATA: X_FIELDCAT1 TYPE SLIS_FIELDCAT_ALV.

DATA: IT_SORT TYPE SLIS_T_SORTINFO_ALV.


DATA: X_SORT TYPE SLIS_SORTINFO_ALV.

DATA: I_LIST_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER.

DATA: I_VARIANT LIKE DISVARIANT,


I_VARIANT1 LIKE DISVARIANT.

DATA: BEGIN OF I_TAB OCCURS 0,


MBLNR LIKE MSEG-MBLNR,
MATNR LIKE MSEG-MATNR,
MAKTG LIKE MAKT-MAKTG,
CHARG LIKE MSEG-CHARG,
WERKS LIKE MSEG-WERKS,
LGORT LIKE MSEG-LGORT,
MENGE LIKE MSEG-MENGE,
MEINS LIKE MSEG-MEINS,
DMBTR LIKE MSEG-DMBTR,
EBELN LIKE MSEG-EBELN,
ICN(4) TYPE C,
SYM(4) TYPE C,
EXCPT(2) TYPE C,
BOX(1),
END OF I_TAB.

DATA: BEGIN OF I_DOC OCCURS 0.


INCLUDE STRUCTURE MSEG.
DATA: END OF I_DOC.

*(STEP 2) SELECTING VARIANTS- OPTIONAL, SEPERTI LIST OF SETS?

PARAMETERS : P_VAR LIKE DISVARIANT-VARIANT.


INITIALIZATION.
V_REPID = SY-REPID.
*Display default variant
PERFORM SUB_VARIANT_INIT.
AT SELECTION-SCREEN ON P_VAR.
* Once the user has entered variant, check about its existence
PERFORM SUB_CHECK_PVAR.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VAR.

* Display a list of various variants of the report


* when theuser presses F4 key in the variant field
PERFORM SUB_VARIANT_F4.
START-OF-SELECTION.

* Prepare field catalog for the main report.


*State the name of the field , name of internal table ,
*various formatting options etc
PERFORM SUB_PREPARE_FIELDCATALOG.

* Fetches records from database into table i_tab to be passed as export


* parameter t_outtab in function module : REUSE_ALV_GRID_DISPLAY
PERFORM SUB_SELECT_RECORD.

* Populate stat and icon columns of internal table i_tab with specific
* columns and symbols based on some logic for quantity and value fields.
PERFORM SUB_MODIFY_RECORDS.

* Defines the overall layout of the report


PERFORM SUB_DETERMINE_ALV_LAYOUT.

* Defines the sort sequence of the report


PERFORM SUB_DETERMINE_SORT_SEQUENCE.

* Defines the event table


PERFORM SUB_EVENTTAB_BUILD USING I_EVENTS.

* Things to be written at the top of the page


PERFORM SUB_COMMENT_BUILD USING I_LIST_TOP_OF_PAGE.

* Display the ALV list


PERFORM SUB_SHOW_ALV_LIST.

* struct_layout-hotspot_fieldname = 'X'.
AT LINE-SELECTION.
PERFORM SUB_HOTSPOT.

*&---------------------------------------------------------------------*
*& Form SUB_VARIANT_INIT
*&---------------------------------------------------------------------*
* Display default variant
*----------------------------------------------------------------------*
FORM SUB_VARIANT_INIT.
I_VARIANT1-REPORT = SY-REPID.
* Search default variant for the report
CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
EXPORTING
I_SAVE = 'A'
CHANGING
CS_VARIANT = I_VARIANT1
EXCEPTIONS
NOT_FOUND = 2.
*kALAU DEFAULT VARIANT KETEMU, GUNAKAN SBG DEFAULT
*ELSE, GUNAKAN VARIANT LAYOUT1
IF SY-SUBRC = 0.
P_VAR = I_VARIANT-VARIANT.
ELSE.
P_VAR = 'LAYOUT1'.
ENDIF.

ENDFORM.

*&---------------------------------------------------------------------------------
*
*& Form SUB_CHECK_PVAR
*&---------------------------------------------------------------------------------
*
* Once the user has entered variant, check about its existence
*&---------------------------------------------------------------------------------
*

FORM SUB_CHECK_PVAR.
*kALAU AMA VARIABLE GA BLANK, CHECK EXISTENCE
IF NOT P_VAR IS INITIAL.
CLEAR I_VARIANT.
I_VARIANT-REPORT = SY-REPID.
I_VARIANT-VARIANT = P_VAR.

CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'


EXPORTING
I_SAVE = 'A'
CHANGING
CS_VARIANT = I_VARIANT.
*KALAU NO SUH VARIANT FOUND, KASIH ERROR MESSAGE
IF SY-SUBRC NE 0.
MESSAGE E398(00) WITH 'NO SUCH VARIANT EXISTS'.
ELSE.
* KALAU VARIANT EXISS, GUNAKAN NAMA VARIANT UNTUK ISI STRUCTURE
* I_VARIANT1 which will be used for export parameter: IS_VARIANT
* in the function module : REUSE_ALV_GRID_DISPLAY
CLEAR I_VARIANT1.
MOVE P_VAR TO I_VARIANT1-VARIANT.
MOVE SY-REPID TO I_VARIANT1-REPORT.
ENDIF.
ELSE.
CLEAR I_VARIANT.
ENDIF.
ENDFORM.

*&---------------------------------------------------------------------*
*& Form SUB_PREPARE_FIELDCATALOG
*&---------------------------------------------------------------------*
* Prepare field catalog for the main report. State the name of
* the field , name of internal table , various formatting options etc
*----------------------------------------------------------------------*

FORM SUB_PREPARE_FIELDCATALOG.
* First field to appear in ALV list
X_FIELDCAT-COL_POS = 1.
* Name of the internal table field
X_FIELDCAT-FIELDNAME = 'SYM'.
* Name of the internal table
X_FIELDCAT-TABNAME = 'I_TAB'.
* Heading for the field
X_FIELDCAT-SELTEXT_M = 'Stat'.
* The field is going to contain a symbol
x_fieldcat-symbol = 'X'.
* Append the specifications to the internal table for field catalog.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
* Second field to appear in ALV list
X_FIELDCAT-COL_POS = 2.
* Name of the field in the internal table
X_FIELDCAT-FIELDNAME = 'MATNR'.
* Name of the internal table
X_FIELDCAT-TABNAME = 'I_TAB'.
* Heading for the column
X_FIELDCAT-SELTEXT_M = 'MatItem'.
* It is going to be the key field.The color for this field is going to
* be different
X_fieldcat-key = 'X'.
X_fieldcat-key_sel = 'X'.
* Single click on the field will trigger double click event.Also, a hand
* will appear when the cursor navigates to the field
X_fieldcat-hotspot = 'X'.
* The column and those left to it will not scroll
X_fieldcat-fix_column = 'X'.
* F1 help will come as it is referenced to DDIC table
x_fieldcat-ref_tabname = 'MSEG'.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
X_FIELDCAT-COL_POS = 3.
X_FIELDCAT-FIELDNAME = 'MAKTG'.
X_FIELDCAT-TABNAME = 'I_TAB'.
X_FIELDCAT-SELTEXT_M = 'Description'.
* X_FIELDCAT-OUTPUTLEN = 50.
x_fieldcat-hotspot = space.
* The field is centre(C for centre, R and L for left and
* right) justified
x_fieldcat-just = 'C'.
x_fieldcat-key = 'X'.
x_fieldcat-fix_column = 'X'.
* X_fieldcat-no_out = 'X'.
X_fieldcat-fix_column = 'X'.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
X_FIELDCAT-COL_POS = 4.
X_FIELDCAT-FIELDNAME = 'CHARG'.
X_FIELDCAT-TABNAME = 'I_TAB'.
X_FIELDCAT-SELTEXT_M = 'Batch'.
* X_FIELDCAT-OUTPUTLEN = 10.
x_fieldcat-hotspot = space.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
X_FIELDCAT-COL_POS = 5.
X_FIELDCAT-FIELDNAME = 'EBELN'.
X_FIELDCAT-TABNAME = 'I_TAB'.
X_FIELDCAT-SELTEXT_M = 'Purchase Order'.
* X_FIELDCAT-OUTPUTLEN = 14.
* The field will be colored differently(Cxyz)
x_fieldcat-emphasize = 'C511'.
* Initially the field will be hidden
x_fieldcat-no_out = 'X'.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
X_FIELDCAT-COL_POS = 6.
X_FIELDCAT-FIELDNAME = 'MBLNR'.
X_FIELDCAT-TABNAME = 'I_TAB'.
X_FIELDCAT-SELTEXT_M = 'Document no'.
* X_FIELDCAT-OUTPUTLEN = 14.
x_fieldcat-emphasize = 'C711'.
x_fieldcat-no_out = 'X'.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
X_FIELDCAT-COL_POS = 7.
X_FIELDCAT-FIELDNAME = 'WERKS'.
X_FIELDCAT-TABNAME = 'I_TAB'.
X_FIELDCAT-SELTEXT_M = 'Plant'.
* X_FIELDCAT-OUTPUTLEN = 5.
x_fieldcat-emphasize = 'C310'.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
X_FIELDCAT-COL_POS = 8.
X_FIELDCAT-FIELDNAME = 'LGORT'.
X_FIELDCAT-TABNAME = 'I_TAB'.
X_FIELDCAT-SELTEXT_M = 'St.Loc'.
* X_FIELDCAT-OUTPUTLEN = 7.
* X_fieldcat-no_out = 'X'.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
X_FIELDCAT-COL_POS = 9.
X_FIELDCAT-FIELDNAME = 'MENGE'.
X_FIELDCAT-TABNAME = 'I_TAB'.
X_FIELDCAT-SELTEXT_M = 'Quantity'.
X_FIELDCAT-OUTPUTLEN = 12.
* Summation is allowed for this field
x_fieldcat-do_sum = 'X'.
X_FIELDCAT-ref_tabname = 'MSEG'.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
X_FIELDCAT-COL_POS = 10.
X_FIELDCAT-FIELDNAME = 'ICN'.
X_FIELDCAT-TABNAME = 'I_TAB'.
X_FIELDCAT-SELTEXT_M = ''.
X_FIELDCAT-OUTPUTLEN = 2.
x_fieldcat-icon = 'X'.
* X_fieldcat-no_out = 'X'.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
X_FIELDCAT-COL_POS = 11.
X_FIELDCAT-FIELDNAME = 'MEINS'.
X_FIELDCAT-TABNAME = 'I_TAB'.
X_FIELDCAT-SELTEXT_M = 'Unit'.
X_FIELDCAT-OUTPUTLEN = 5.
x_fieldcat-qfieldname = 'MEINS'.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
X_FIELDCAT-COL_POS = 12.
X_FIELDCAT-FIELDNAME = 'DMBTR'.
X_FIELDCAT-TABNAME = 'I_TAB'.
X_FIELDCAT-SELTEXT_M = 'Local curr'.
X_FIELDCAT-OUTPUTLEN = 12.
x_fieldcat-INTTYPE = 'P'.
x_fieldcat-just = 'R'.
x_fieldcat-do_sum = 'X'.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
X_FIELDCAT-COL_POS = 13.
X_FIELDCAT-FIELDNAME = 'EXCPT'.
X_FIELDCAT-TABNAME = 'I_TAB'.
X_FIELDCAT-SELTEXT_M = ''.
X_FIELDCAT-OUTPUTLEN = 3.
append X_fieldcat TO I_FIELDCAT.
clear x_fieldcat.
ENDFORM.

*&---------------------------------------------------------------------*
*& Form SUB_SELECT_RECORD
*&---------------------------------------------------------------------*
* Fetches records from database into table i_tab to be passed as export
* parameter t_outtab in function module : REUSE_ALV_GRID_DISPLAY
*----------------------------------------------------------------------*
form SUB_SELECT_RECORD.
SELECT mblnr A~matnr A~maktg charg
werks lgort menge meins dmbtr ebeln
FROM makt as a join mseg as b
on ( a~matnr = b~matnr )
INTO TABLE I_TAB
where b~bwart = '101' .
endform.

*&---------------------------------------------------------------------*
*& Form SUB_MODIFY_RECORDS
*&---------------------------------------------------------------------*
* Populate stat and icon columns of internal table i_tab with specific
* columns and symbols based on some logic for quantity and value fields.
*----------------------------------------------------------------------*
form SUB_MODIFY_RECORDS.
loop at i_tab.
if i_tab-dmbtr gt 10000.
* Field icn of internal table is going to contain icon . For this column
*icon_allowed is set in the field catalog table. For various icons,see
* type pool <ICON>
i_tab-icn = ''.
modify i_tab transporting icn.
endif.
if i_tab-menge gt 50.
* Field icn of internal table is going to contain symbol . For this
* column symbol_allowed is set in the field catalog table. For various
* icons,see type pool <SYMBOL>
i_tab-sym = 'N'.
modify i_tab transporting sym.
endif.
IF I_TAB-WERKS NE 'SDC1'.
* This field will contain lights , traffic signals : red.yellow,green
* That this field will be used as a light will be specified in the
* column of structure STRUCT_LAYOUT.
I_TAB-EXCPT = '1'.
MODIFY I_TAB TRANSPORTING EXCPT.
endif.
endloop.
endform. " SUB_MODIFY_RECORDS
*&---------------------------------------------------------------------*
*& Form SUB_DETERMINE_ALV_LAYOUT *
*&---------------------------------------------------------------------*
*& Defines the overall structure of the report layout *
*----------------------------------------------------------------------*
form SUB_DETERMINE_ALV_LAYOUT.
* Field EXCPT will show the light signal
STRUCT_LAYOUT-LIGHTS_FIELDNAME = 'EXCPT'.
* Field BOS of the internal table will act as pushbutton and will appear
* at the left of the grid display. User will press that to select a
* record
struct_layout-box_fieldname = 'BOX'.
STRUCT_layout-totals_text = 'Totqty '.
STRUCT_LAYOUT-ZEBRA = 'X'.
struct_layout-confirmation_prompt = 'X'.
struct_layout-detail_titlebar = 'Details of Storing'.
struct_layout-no_sumchoice = 'X'.
struct_layout-totals_only = 'X'.
endform.

*&---------------------------------------------------------------------*
*& Form SUB_DETERMINE_SORT_SEQUENCE
*&---------------------------------------------------------------------*
* Defines the sort sequence of the report
*----------------------------------------------------------------------*
form SUB_DETERMINE_SORT_SEQUENCE.
X_sort-spos = 1. " Sort order
X_sort-fieldname = 'MATNR'.
X_sort-tabname = 'I_TAB'.
X_sort-up = 'X'.
X_sort-subtot = 'X'. " Sub total allowed
append X_sort TO IT_SORT.
clear X_sort.
endform.

*&---------------------------------------------------------------------*
*& Form SUB_SHOW_ALV_LIST
*&---------------------------------------------------------------------*
* Shows ALV list in grid form
*----------------------------------------------------------------------*
form SUB_SHOW_ALV_LIST.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = V_REPID "* Name of the program
I_GRID_TITLE = 'Details of Storing'
"* title
I_callback_pf_status_set = 'PF_STATUS_SET' "* calls
subroutine : PF_STATUS_SET
i_callback_user_command = 'USER_COMMAND' "* Calls subroutine
: user_command
IS_LAYOUT = STRUCT_LAYOUT "*
Overall structure of the report
IT_FIELDCAT = I_FIELDCAT
"* Passes the field catg internal table
IT_SORT = IT_SORT
"* Passes the sort sequence internal table
I_DEFAULT = 'X'
I_SAVE = 'A'
IS_VARIANT = i_variant1
* fetches different events into internal table i_events
it_events = i_events[]
TABLES
* Passes data table for ALV display
T_OUTTAB = I_TAB
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. " SUB_SHOW_ALV_LIST
*&---------------------------------------------------------------------*
*& Form set_status
*&---------------------------------------------------------------------*
* Form used to set the Custom pf-status of the List Display
*----------------------------------------------------------------------*
* rt_extab :
*----------------------------------------------------------------------*
FORM pf_status_set USING i_rt_extab TYPE slis_t_extab.
data : x_extab type slis_extab.
x_extab-fcode = '&LFO'.
append x_extab to i_rt_extab.
* Pf-status STANDARD of program SAPLSALV is copied to ZSTANDARD of the
* current program and the pushbutton for Information (okcode=&LFO) is
* excluded
SET PF-STATUS 'ZSTANDARD' excluding i_rt_extab .
ENDFORM.

*&---------------------------------------------------------------------*
*& Form user_command
*&---------------------------------------------------------------------*
* Form used to handle USER_COMMAND events
*----------------------------------------------------------------------*
* rf_ucomm: Function Code
* rs : Internal Table containing the selection information.
*----------------------------------------------------------------------*
FORM user_command USING rf_ucomm LIKE sy-ucomm
rs TYPE slis_selfield.
data : v_mblnr like mseg-mblnr.
case rf_ucomm.
* A custom pushbutton for record deletion is set in the GUI status. When a record
is selected , the field BOC for that *record becomes 'X'.
* The records are traced and deleted and the fields are refreshed( rs of type
slis_selfield is refreshed)
when '&DEL'. "Print button clicked.
delete i_tab where box = 'X'.
rs-refresh = 'X'.
* When the user selects a row and presses the Select pushbutton ( user defined )
from the application toolbar, the details * of the document will be shown in
another ALV list
when '&SEL'.
PERFORM SUB_SELECT_DOCUMENT.
* set parameter id 'MBN' field i_tab-mblnr.
* call transaction 'MB03'.
* Ok code for double click is &IC1 for ALV report
when '&IC1'.
perform sub_hotspot.
endcase.
ENDFORM.

form SUB_HOTSPOT.
message i398(00) with 'Hello'.
endform. " SUB_HOTSPOT

*&---------------------------------------------------------------------*
*& Form SUB_VARIANT_F4
*&---------------------------------------------------------------------*
* Display a list of various variants of the report when the user presses F4 key in
the variant field
*------------------------------------------------------------------------*
form SUB_VARIANT_F4.
i_variant-report = sy-repid.
* Utilising the name of the report , this function module will search for a list of
variants and will fetch the selected one * into the parameter field for variants
CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
EXPORTING
IS_VARIANT = I_VARIANT
I_SAVE = 'A'
I_DISPLAY_VIA_GRID = 'X'
IMPORTING
ES_VARIANT = I_VARIANT1
EXCEPTIONS
NOT_FOUND = 1
PROGRAM_ERROR = 2
OTHERS = 3.
IF SY-SUBRC = 0.
P_VAR = I_VARIANT1-VARIANT.
ENDIF.
ENDFORM.

*&---------------------------------------------------------------------*
*& Form SUB_SELECT_DOCUMENT
*&---------------------------------------------------------------------*
form SUB_SELECT_DOCUMENT.
data : v_lines type i .
read table i_tab with key box = 'X'.
Select * from mseg INTO TABLE I_DOC WHERE MBLNR = I_TAB-MBLNR.
IF SY-SUBRC EQ 0 .
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = V_REPID
I_INTERNAL_TABNAME = 'I_DOC'
I_STRUCTURE_NAME = 'MSEG'
CHANGING
CT_FIELDCAT = I_FIELDCAT1
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.
clear struct_layout1.
STRUCT_layout1-colwidth_optimize = 'X'.
refresh it_sort.
clear it_sort.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
I_CALLBACK_PROGRAM = V_REPID
I_GRID_TITLE = 'Details of Document'
IS_LAYOUT = STRUCT_LAYOUT1
IT_FIELDCAT = I_FIELDCAT1
i_structure_name = 'MSEG'
I_DEFAULT = 'X'
I_SAVE = 'A'
TABLES
T_OUTTAB = I_DOC
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.

*&---------------------------------------------------------------------*
*& Form SUB_COMMENT_BUILD
*&---------------------------------------------------------------------*
form SUB_COMMENT_BUILD using I_top_of_page TYPE slis_t_listheader.
DATA: ls_line TYPE slis_listheader.
***Header
CLEAR ls_line.
ls_line-typ = 'H'.
* LS_LINE-KEY: not used for this type
ls_line-info = 'Heading list'.
APPEND ls_line TO I_top_of_page.
***Selection
CLEAR ls_line.
ls_line-typ = 'S'.
ls_line-key = 'Key 1'.
ls_line-info = 'Material '.
APPEND ls_line TO i_top_of_page.
ls_line-key = 'Key 2'.
ls_line-info = 'Document no'.
APPEND ls_line TO I_top_of_page.
***Action
CLEAR ls_line.
endform.

*&---------------------------------------------------------------------*
*& Form SUB_EVENTTAB_BUILD
*&---------------------------------------------------------------------*
* Defines the event table
*&---------------------------------------------------------------------*
FORM sub_eventtab_build USING l_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
* Get the different events of the ALV
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = l_events.
* Search the top of page events
READ TABLE l_events WITH KEY name = slis_ev_top_of_page INTO ls_event.
IF sy-subrc = 0.
MOVE 'TOP_OF_PAGE' TO ls_event-form.
APPEND ls_event TO l_events.
ENDIF.
endform.

*&---------------------------------------------------------------------*
* FORM TOP_OF_PAGE *
*&---------------------------------------------------------------------*
* When TOP-OF-PAGE will be fired , this event will be called and it
* will use the contents of i_list_top_of_page for output in the header
*&---------------------------------------------------------------------*
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
i_logo = 'ENJOYSAP_LOGO'
it_list_commentary = i_list_top_of_page.
ENDFORM.

*******************************************************
*&---------------------------------------------------------------------*
*& Report ZPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZPSM_000.

DATA:
GT_DATA TYPE TABLE OF SFLIGHT,
G_GRID TYPE REF TO CL_GUI_ALV_GRID.
CONSTANTS:
C_MAX_ROWS TYPE I VALUE 100.

CALL SCREEN 100.


*PERFORM READ_DATA.
*PERFORM DISPLAY_GRID.

FORM READ_DATA.
SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_DATA
FROM SFLIGHT
UP TO C_MAX_ROWS ROWS.
ENDFORM.

FORM DISPLAY_GRID.
CREATE OBJECT G_GRID
EXPORTING
I_PARENT = CL_GUI_CONTAINER=>DEFAULT_SCREEN.
CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
CHANGING
IT_OUTTAB = GT_DATA
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-MSGV4.
ENDIF.
ENDFORM.

******************************************
*&---------------------------------------------------------------------*
*& Report ZPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZPSM_000.
DATA:
GT_DATA TYPE TABLE OF SFLIGHT
,G_GRID TYPE REF TO CL_GUI_ALV_GRID

.
PARAMETERS:
MROWS TYPE I
,LDT TYPE SY-DATUM
,HDT TYPE SY-DATUM DEFAULT SY-DATUM.

*CALL SCREEN 100.


*PERFORM READ_DATA.
*PERFORM DISPLAY_GRID.

SELECT * INTO CORRESPONDING FIELDS OF TABLE GT_DATA


FROM SFLIGHT
UP TO MROWS ROWS
WHERE FLDATE >= LDT AND FLDATE <= HDT
ORDER BY FLDATE ASCENDING
.

CALL FUNCTION 'REUSE_ALV_POPUP_TO_SELECT'


EXPORTING
I_TABNAME = 'GT_DATA'
I_STRUCTURE_NAME = 'SFLIGHT'
TABLES
T_OUTTAB = GT_DATA
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-MSGV4.
ENDIF.
#####################################################
DAY 4
#####################################################
*&---------------------------------------------------------------------*
*& Report YPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YPSM_000.

TABLES: sflight.

TYPES: BEGIN OF ty_outtab,


fldate type sflight-fldate,
price LIKE sflight-price,

END OF ty_outtab.

DATA: gt_outtab TYPE STANDARD TABLE OF ty_outtab,


gr_table TYPE REF TO cl_salv_table.
*----------------------------------------------------------------------*
* SELECTION-SCREEN *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK gen WITH FRAME.
SELECT-OPTIONS:s_fldate FOR sflight-fldate.
SELECTION-SCREEN END OF BLOCK gen.
*----------------------------------------------------------------------*
* START-OF-SELECTION *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM select_data.
*----------------------------------------------------------------------*
* END-OF-SELECTION *
*----------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM display_fullscreen.
*&---------------------------------------------------------------------*
*& Form select_data
*----------------------------------------------------------------------*
FORM select_data .
SELECT fldate
price

FROM sflight
INTO TABLE gt_outtab
WHERE fldate IN s_fldate
.

ENDFORM. " select_data


*&---------------------------------------------------------------------*
*& Form display_fullscreen
*----------------------------------------------------------------------*
FORM display_fullscreen raising cx_salv_msg.

DATA: lr_content TYPE REF TO cl_salv_form_element. "Create object lr_content of


clsalv_form_element class

cl_salv_table=>factory(
EXPORTING
list_display = 'X'
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = gt_outtab ).

gr_table->set_screen_popup(
start_column = 1
end_column = 100
start_line = 1
end_line = 20 ).

DATA: lr_selections TYPE REF TO cl_salv_selections.

lr_selections = gr_table->get_selections( ).
lr_selections->set_selection_mode(
if_salv_c_selection_mode=>row_column ).

gr_table->display( ).

ENDFORM. " display_fullscreen

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

REPORT YYPSM_000.

START-OF-SELECTION.

DATA: ASDF TYPE I.


ASDF = 2 - 9 * 7.
WRITE :/ ASDF.

***********************************************************************
REPORT YYPSM_000.

PARAMETERS: P_NUM TYPE I


,Q_NUM TYPE I.
DATA : RESULT TYPE I.

START-OF-SELECTION.
RESULT = 3 - P_NUM * Q_NUM.
WRITE:/ 'HASIL = ', RESULT.

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

REPORT YYPSM_000.

*PARAMETERS: P_NUM TYPE I


* ,Q_NUM TYPE I.
DATA v_timezone1 TYPE tznzone VALUE 'GMTUK'. " Greenwich
DATA v_timezone2 TYPE tznzone VALUE 'INDIA'. " Delhi
DATA v_timezone3 TYPE tznzone VALUE 'BRAZIL'. " Brasilia

DATA v_timestamp TYPE tzonref-tstamps.


DATA v_timestamp_string TYPE string.

START-OF-SELECTION.
CONCATENATE sy-datum sy-uzeit INTO v_timestamp_string.
v_timestamp = v_timestamp_string.

WRITE v_timestamp TIME ZONE v_timezone1. NEW-LINE.


WRITE v_timestamp TIME ZONE v_timezone2. NEW-LINE.
WRITE v_timestamp TIME ZONE v_timezone3. NEW-LINE.

**********************************************************************
REPORT YYPSM_000.
DATA: VOWELS_COUNT TYPE I
,VOWELS_TOT TYPE I
,VUSER TYPE SY-UNAME
,IVUSER TYPE I
.

START-OF-SELECTION.
IVUSER = STRLEN( SY-UNAME ).
TRANSLATE VUSER TO UPPER CASE.

FIND ALL OCCURRENCES OF REGEX 'A|E|I|U|O'


IN VUSER MATCH COUNT VOWELS_COUNT.

WRITE IVUSER.

**********************************************************************
REPORT YYPSM_000.
DATA: number type i value 1.

START-OF-SELECTION.
while number <= 100.
if number mod 8 = 0.
write :/ 'The number ', number, 'is a multiple of 8'.
NEW-LINE.
endif.
endwhile.
**********************************************************************

DATA : A TYPE I
,B TYPE I
,RESULT TYPE I
.

PERFORM EQORPOW USING 4 9 CHANGING RESULT.

form eqorpow using A type i B type i


CHANGING result type i.

IF A = B.
RESULT = A ** 2.
WRITE RESULT.
ELSE.
IF A > B.
RESULT = A / B.
WRITE RESULT.
ELSE .
RESULT = B / A.
WRITE RESULT.
ENDIF.

ENDIF.

endform.

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

DATA : A TYPE I "VALUE 3


,B TYPE I "VALUE 6
,RESULT TYPE I
.

*PERFORM EQORPOW USING 3 4 CHANGING RESULT.

*form eqorpow using A type i B type i


* CHANGING result type i.
IF NOT A IS INITIAL AND NOT B IS INITIAL.
IF A = B.
RESULT = A ** 2.
WRITE RESULT.
ELSE.
IF A > B.
RESULT = A / B.
WRITE RESULT.
ELSE .
RESULT = B / A.
WRITE RESULT.
ENDIF.

ENDIF.
ELSE.
MESSAGE E398(00) WITH 'HAI'.
ENDIF.

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

*&---------------------------------------------------------------------*
*& Report YYPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YYPSM_000.

TYPES: BEGIN OF ty_line,


id TYPE c LENGTH 10,
name TYPE string,
value TYPE i,
CDATE TYPE DATE,
END OF ty_line.

TYPES: TY_TABLE TYPE STANDARD TABLE OF TY_LINE.

DATA itab TYPE ty_table.


DATA wa TYPE ty_line.
wa-id = ''.
wa-name = ''.
wa-value = 0.
wa-cdate = '20140727'.

APPEND wa TO itab.

PERFORM COUNTINT USING ITAB.

FORM COUNTINT USING ATY_TABLE TYPE TY_TABLE.


DATA: INT TYPE I VALUE 0
,BTY_TABLE TYPE TY_LINE
.

LOOP AT ATY_TABLE INTO BTY_TABLE.


IF BTY_TABLE-ID IS INITIAL.
INT = INT + 1.
ENDIF.
IF BTY_TABLE-NAME IS INITIAL.
INT = INT + 1.
ENDIF.
IF BTY_TABLE-VALUE IS INITIAL.
INT = INT + 1.
ENDIF.
IF BTY_TABLE-CDATE IS INITIAL.
INT = INT + 1.
ENDIF.
ENDLOOP.
WRITE INT.

ENDFORM.

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

*&-------------------------------------------------------------------
*& Report YPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YPSM_000.

TYPES: BEGIN OF TY_LINE


,COMP1(10) TYPE C
,COMP2 TYPE STRING
,COMP3(5) TYPE C
,END OF TY_LINE
.

TYPES: TY_TT_LINE TYPE TABLE OF TY_LINE.


DATA: I_TAB TYPE TY_TT_LINE
,WA TYPE TY_LINE
.
wa-comp1 = 'ABAP 101'.
wa-comp2 = 'One Two Three Four Five Six Seven Eight Nine'.
wa-comp3 = '12345'.
APPEND wa TO i_tab.
PERFORM REPLACESPACES CHANGING I_TAB.

PERFORM PRINT USING I_TAB.

FORM REPLACESPACES CHANGING CH_ITAB TYPE TY_TT_LINE.


DATA : LWA TYPE TY_LINE.

LOOP AT CH_ITAB INTO LWA.


REPLACE ALL OCCURRENCES OF REGEX '\s' IN LWA-COMP1 WITH '_' IN CHARACTER MODE.
REPLACE ALL OCCURRENCES OF REGEX '[[:space:]]' IN LWA-COMP2 WITH '_' IN
CHARACTER MODE.
REPLACE ALL OCCURRENCES OF REGEX '\s' IN LWA-COMP3 WITH '_' IN CHARACTER MODE.
MODIFY CH_ITAB INDEX SY-TABIX FROM LWA.
ENDLOOP.
ENDFORM.

FORM PRINT USING P_ITAB TYPE TY_TT_LINE.


DATA : LWA TYPE TY_LINE.
LOOP AT P_ITAB INTO LWA.
WRITE: LWA-COMP1 COLOR 1. NEW-LINE.
WRITE: LWA-COMP2 COLOR 1. NEW-LINE.
WRITE: LWA-COMP3 COLOR 1. NEW-LINE.
ENDLOOP.
ENDFORM.

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

*&-------------------------------------------------------------------
*& Report YPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YPSM_000.
PARAMETERS: p_text TYPE string OBLIGATORY.
data: p_len TYPE i.

AT SELECTION-SCREEN ON p_text.

START-OF-SELECTION.
p_len = strlen( p_text ).
DO p_len TIMES.
WRITE: 'Line [', sy-index , ']: ', p_text(sy-index).NEW-LINE.
ENDDO.

********************************************************************
SELECT-OPTIONS SNUM FOR VNUM NO-EXTENSION

*(ADA LOW DAN HIGH)

********************************************************************
PARAMETERS: p_list AS CHECKBOX
,p_econo LIKE P_LIst AS CHECKBOX
.

********************************************************************
PARAMETER p_list TYPE scarr-carrid AS LISTBOX VISIBLE LENGTH 20

********************************************************************
PARAMETERs p_first RADIOBUTTON GROUP grp1 USER-COMMAND action.
PARAMETERs p_busin RADIOBUTTON GROUP grp1.
PARAMETERs p_econo LIKE p_first RADIOBUTTON GROUP grp1.
PARAMETERs p_input TYPE string.

AT SELECTION-SCREEN.
IF sy-ucomm = 'ACTION'.
CLEAR p_input.
ENDIF.

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

118 0f 143

*****************************************************************
*&-------------------------------------------------------------------
*& Report YPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YPSM_000.

PARAMETERs p_first RADIOBUTTON GROUP grp1 USER-COMMAND action.


PARAMETERs p_busin RADIOBUTTON GROUP grp1.
PARAMETERs p_econo RADIOBUTTON GROUP grp1.
PARAMETERs: p_input TYPE string
,P_INPUT2 TYPE STRING
.
DATA ASYUCOMM TYPE SY-UCOMM.

AT SELECTION-SCREEN.
Asyucomm = SY-UCOMM.

AT SELECTION-SCREEN OUTPUT.
IF Asyucomm = 'ACTION'.
CASE 'X'.
WHEN P_FIRST.
LOOP AT SCREEN.
IF SCREEN-NAME = 'P_INPUT' OR SCREEN-NAME = 'P_INPUT2'.
SCREEN-INPUT = 1.
MODIFY SCREEN.
ENDIF.
ENDLOOP.

WHEN P_BUSIN.
LOOP AT SCREEN.
IF SCREEN-NAME = 'P_INPUT'.
SCREEN-REQUIRED = 1.
MODIFY SCREEN.
ENDIF.

IF SCREEN-NAME = 'P_INPUT2'.
SCREEN-INPUT = 0.
MODIFY SCREEN.
ENDIF.
ENDLOOP.

WHEN P_ECONO.
LOOP AT SCREEN.
IF SCREEN-NAME = 'P_INPUT' OR SCREEN-NAME = 'P_INPUT2'.
SCREEN-INPUT = 0.
SCREEN-INVISIBLE = 1.
MODIFY SCREEN.
ENDIF.

ENDLOOP.

ENDCASE.
ENDIF.

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

*&-------------------------------------------------------------------
*& Report YPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YPSM_000.

SELECTION-SCREEN BEGIN OF BLOCK CHAR WITH FRAME.


PARAMETERS: ACHAR TYPE STRING
,BCHAR TYPE STRING.
SELECTION-SCREEN END OF BLOCK CHAR.

SELECTION-SCREEN BEGIN OF BLOCK NUM WITH FRAME.


PARAMETERS: ANUM TYPE I
,BNUM TYPE I.
SELECTION-SCREEN END OF BLOCK NUM.
**********************************************************

REPORT YPSM_000.

PARAMETERS p1 TYPE I .
SELECTION-SCREEN ULINE.
PARAMETERS P2(20) TYPE C.
SELECTION-SCREEN SKIP 1.
PARAMETERS P3 TYPE D.

**********************************************************
*&-------------------------------------------------------------------
*& Report YPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YPSM_000.

DATA : V_LUCK TYPE I


,V_BAD_LUCK TYPE I
,V_FAVOURITE TYPE P LENGTH 10
.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE VPERS.

PARAMETERS: P_NAME TYPE STRING


,P_BORN TYPE D
, P_LAST TYPE T.
SELECTION-SCREEN SKIP 1.

PARAMETERS PMALE RADIOBUTTON GROUP GR1.


PARAMETERS PFEMALE RADIOBUTTON GROUP GR1.

SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS: s_luck FOR v_luck,
s_bad FOR v_bad_luck NO INTERVALS,
s_favo FOR v_favourite NO-EXTENSION.

SELECTION-SCREEN END OF BLOCK B1.

INITIALIZATION.
VPERS = 'ASDF'.
**********************************************************
*&-------------------------------------------------------------------
*& Report YPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YPSM_000.

DATA : V_LUCK TYPE SY-DATUM


,V_BAD_LUCK TYPE I
,V_FAVOURITE TYPE P LENGTH 10
.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE VPERS.

PARAMETERS: P_NAME TYPE STRING


,P_BORN TYPE D
, P_LAST TYPE T.
SELECTION-SCREEN SKIP 1.

PARAMETERS PMALE RADIOBUTTON GROUP GR1.


PARAMETERS PFEMALE RADIOBUTTON GROUP GR1.

SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS: s_luck FOR v_luck,
s_bad FOR v_bad_luck NO INTERVALS,
s_favo FOR v_favourite NO-EXTENSION.

SELECTION-SCREEN END OF BLOCK B1.

INITIALIZATION.
VPERS = 'ASDF'.
S_LUCK-HIGH = SY-DATUM.
APPEND S_LUCK.

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

*&-------------------------------------------------------------------
*& Report YPSM_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YPSM_000.

DATA : V_LUCK TYPE SY-DATUM


,V_BAD_LUCK TYPE SY-UZEIT
,V_FAVOURITE TYPE P LENGTH 10
.

SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE VPERS.

PARAMETERS: P_NAME TYPE STRING


,P_BORN TYPE D
, P_LAST TYPE T.
SELECTION-SCREEN SKIP 1.

PARAMETERS PMALE RADIOBUTTON GROUP GR1.


PARAMETERS PFEMALE RADIOBUTTON GROUP GR1.

SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS: s_luck FOR v_luck,
s_bad FOR v_bad_luck NO-EXTENSION,
s_favo FOR v_favourite NO-EXTENSION.

SELECTION-SCREEN END OF BLOCK B1.

INITIALIZATION.
VPERS = 'ASDF'.
S_LUCK-HIGH = SY-DATUM.
S_BAD = SY-UZEIT.
APPEND S_LUCK.
**********************************************************

*&---------------------------------------------------------------------*
*& Report YYPSM1_000
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT YYPSM1_000.

TABLES: sflight.

TYPES: BEGIN OF ty_outtab,


connid TYPE sflight-connid,
fldate type sflight-fldate,
price type sflight-price,

END OF ty_outtab.

DATA: gt_outtab TYPE STANDARD TABLE OF ty_outtab,


gr_table TYPE REF TO cl_salv_table.
types : BEGIN OF wa,
fldate TYPE sflight-fldate,
carrname TYPE scarr-carrname,
connid TYPE spfli-connid,
END OF wa.

DATA itab TYPE STANDARD TABLE OF wa.

SELECTION-SCREEN BEGIN OF BLOCK gen1 WITH FRAME.


PARAMETERS: p_cityfr TYPE spfli-cityfrom,
p_cityto TYPE spfli-cityto.
SELECTION-SCREEN END OF BLOCK gen1.

*----------------------------------------------------------------------*
* SELECTION-SCREEN *
*----------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK gen WITH FRAME.
SELECT-OPTIONS:s_fldate FOR sflight-fldate.
SELECTION-SCREEN END OF BLOCK gen.
*----------------------------------------------------------------------*
* START-OF-SELECTION *
*----------------------------------------------------------------------*
START-OF-SELECTION.
PERFORM select_data.

INITIALIZATION.
s_fldate-high = sy-datum.
APPEND s_fldate.
*----------------------------------------------------------------------*
* END-OF-SELECTION *
*----------------------------------------------------------------------*
END-OF-SELECTION.
PERFORM display_fullscreen.
*&---------------------------------------------------------------------*
*& Form select_data
*----------------------------------------------------------------------*
FORM select_data .
SELECT connid
fldate
sum( price ) as price

FROM sflight
INTO TABLE gt_outtab
WHERE fldate IN s_fldate
group by connid fldate
ORDER BY fldate
.

SELECT c~carrname p~connid f~fldate


INTO CORRESPONDING FIELDS OF TABLE itab
FROM ( ( scarr AS c
INNER JOIN spfli AS p ON p~carrid = c~carrid
AND p~cityfrom = p_cityfr
AND p~cityto = p_cityto )

INNER JOIN sflight AS f ON f~carrid = p~carrid


AND f~connid = p~connid
).
ENDFORM. " select_data
*&---------------------------------------------------------------------*
*& Form display_fullscreen
*----------------------------------------------------------------------*
FORM display_fullscreen raising cx_salv_msg.

DATA: lr_content TYPE REF TO cl_salv_form_element. "Create object lr_content of


clsalv_form_element class

cl_salv_table=>factory(
EXPORTING
list_display = 'X'
IMPORTING
r_salv_table = gr_table
CHANGING
t_table = itab ).

gr_table->set_screen_popup(
start_column = 1
end_column = 100
start_line = 1
end_line = 20 ).

DATA: lr_selections TYPE REF TO cl_salv_selections.

lr_selections = gr_table->get_selections( ).
lr_selections->set_selection_mode(
if_salv_c_selection_mode=>row_column ).

gr_table->display( ).

ENDFORM. " display_fullscreen


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

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

S-ar putea să vă placă și