Application Development and Automation 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: 
Read only

Urgent

Former Member
0 Likes
857

Hi,

Pls send me a simple code for OO ALV?

Thanks in advance.

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
795

Hi,

&----


*& Report ZJE_ALV_GRID

*&

&----


*&

*&

&----


REPORT zje_alv_grid.

TABLES: kna1,vbak.

DATA: it_vbak TYPE TABLE OF vbak,

wa_vbak TYPE vbak.

DATA: obj_ctrl TYPE REF TO cl_gui_custom_container,

obj_alv TYPE REF TO cl_gui_alv_grid.

SELECT-OPTIONS: s_kunnr FOR kna1-kunnr DEFAULT 1 TO 1000.

START-OF-SELECTION.

SELECT *

FROM vbak

INTO TABLE it_vbak

WHERE kunnr IN s_kunnr.

CALL SCREEN '318' .

&----


*& Module STATUS_0318 OUTPUT

&----


  • text

----


MODULE status_0318 OUTPUT.

SET PF-STATUS 'ALV_STATUS'.

  • SET TITLEBAR 'xxx'.

CREATE OBJECT obj_ctrl

EXPORTING

container_name = 'CUSTOM'.

CREATE OBJECT obj_alv

EXPORTING

i_parent = obj_ctrl.

ENDMODULE. " STATUS_0318 OUTPUT

&----


*& Module ALV OUTPUT

&----


  • text

----


MODULE alv OUTPUT.

CALL METHOD obj_alv->set_table_for_first_display

EXPORTING

  • i_buffer_active =

  • i_bypassing_buffer =

  • i_consistency_check =

i_structure_name = 'VBAK'

  • 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 = it_vbak

  • it_fieldcatalog =

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

ENDMODULE. " ALV OUTPUT

&----


*& Module CONTROL INPUT

&----


  • text

----


MODULE control INPUT.

CALL METHOD obj_ctrl->free

EXCEPTIONS

cntl_error = 1

cntl_system_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.

CASE SY-UCOMM.

WHEN 'BACK'.

LEAVE PROGRAM.

WHEN 'EXIT'.

LEAVE PROGRAM.

WHEN 'CANCEL'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. " CONTROL INPUT

Refer this link.

Regards,

Jagadish

7 REPLIES 7
Read only

Former Member
0 Likes
796

Hi,

&----


*& Report ZJE_ALV_GRID

*&

&----


*&

*&

&----


REPORT zje_alv_grid.

TABLES: kna1,vbak.

DATA: it_vbak TYPE TABLE OF vbak,

wa_vbak TYPE vbak.

DATA: obj_ctrl TYPE REF TO cl_gui_custom_container,

obj_alv TYPE REF TO cl_gui_alv_grid.

SELECT-OPTIONS: s_kunnr FOR kna1-kunnr DEFAULT 1 TO 1000.

START-OF-SELECTION.

SELECT *

FROM vbak

INTO TABLE it_vbak

WHERE kunnr IN s_kunnr.

CALL SCREEN '318' .

&----


*& Module STATUS_0318 OUTPUT

&----


  • text

----


MODULE status_0318 OUTPUT.

SET PF-STATUS 'ALV_STATUS'.

  • SET TITLEBAR 'xxx'.

CREATE OBJECT obj_ctrl

EXPORTING

container_name = 'CUSTOM'.

CREATE OBJECT obj_alv

EXPORTING

i_parent = obj_ctrl.

ENDMODULE. " STATUS_0318 OUTPUT

&----


*& Module ALV OUTPUT

&----


  • text

----


MODULE alv OUTPUT.

CALL METHOD obj_alv->set_table_for_first_display

EXPORTING

  • i_buffer_active =

  • i_bypassing_buffer =

  • i_consistency_check =

i_structure_name = 'VBAK'

  • 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 = it_vbak

  • it_fieldcatalog =

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

ENDMODULE. " ALV OUTPUT

&----


*& Module CONTROL INPUT

&----


  • text

----


MODULE control INPUT.

CALL METHOD obj_ctrl->free

EXCEPTIONS

cntl_error = 1

cntl_system_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.

CASE SY-UCOMM.

WHEN 'BACK'.

LEAVE PROGRAM.

WHEN 'EXIT'.

LEAVE PROGRAM.

WHEN 'CANCEL'.

LEAVE PROGRAM.

ENDCASE.

ENDMODULE. " CONTROL INPUT

Refer this link.

Regards,

Jagadish

Read only

Former Member
0 Likes
795

HI,

see these examples


DATA:t_mara TYPE TABLE OF mara.
DATA:FCAT TYPE LVC_T_FCAT.

DATA:G_CONTAINER TYPE SCRFNAME VALUE 'TABC',"TABC is the container name in screen 101
     GRID  TYPE REF TO CL_GUI_ALV_GRID,
     G_CUSTOM_CONTAINER TYPE REF TO CL_GUI_CUSTOM_CONTAINER.

set screen 101.

MODULE STATUS_0101 output.
  IF G_CUSTOM_CONTAINER IS INITIAL.
    CREATE OBJECT G_CUSTOM_CONTAINER   "CREATING OBJECT FOR CUSTOM CONTAINER
           EXPORTING CONTAINER_NAME = G_CONTAINER.
    CREATE OBJECT GRID    "CREATING GRID IN WRKBNCH SCREEN
           EXPORTING I_PARENT = G_CUSTOM_CONTAINER.
    CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
      EXPORTING
        I_STRUCTURE_NAME = 'MARA'
      CHANGING
        CT_FIELDCAT      = FCAT[].

    SELECT * from mara into table t_mara.

    CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
      CHANGING
        IT_FIELDCATALOG = FCAT[]
        IT_OUTTAB       = t_MARA.
  ENDIF.
ENDMODULE.

flow logic of screen 101:



PROCESS BEFORE OUTPUT.
 MODULE STATUS_0101.

PROCESS AFTER INPUT.

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


DATA:G_DOCKING_CONTAINER_1 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
     g_grid TYPE REF TO CL_GUI_ALV_GRID.

DATA:itab like sflight occurs 0 with header line,
      okcode like sy-ucomm.

select * from sflight into table itab.

set screen 101.

MODULE STATUS_0101 OUTPUT.
  SET PF-STATUS 'MENU'.
  SET TITLEBAR 'TIT'.
  perform create_and_init_controls.
ENDMODULE.                 " STATUS_0101  OUTPUT


FORM create_and_init_controls .
  CREATE OBJECT G_DOCKING_CONTAINER_1
    EXPORTING
      REPID       = sy-repid
      DYNNR       = '101'
      SIDE        = cl_gui_docking_container=>DOCK_AT_top
      EXTENSION   = 100.

  CREATE OBJECT G_GRID
    EXPORTING
      I_PARENT          = G_DOCKING_CONTAINER_1.

  CALL METHOD G_GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      I_STRUCTURE_NAME              = 'SFLIGHT'
    CHANGING
    IT_OUTTAB                     = itab[].
ENDFORM.                    " create_and_init_controls


MODULE user_command_0101 INPUT.
  CASE okcode.
    WHEN 'BACK'.
      SET SCREEN 0.
  ENDCASE.
ENDMODULE.                 " user_command_0101  INPUT

flow logic of screen 101:


PROCESS BEFORE OUTPUT.
 MODULE STATUS_0101.

PROCESS AFTER INPUT.
 MODULE user_command_0101.

rgds,

bharat.

Read only

Former Member
0 Likes
795

Hi

Check this sample code.

REPORT ztest1234 MESSAGE-ID zz .
 
DATA: g_grid TYPE REF TO cl_gui_alv_grid. "First
 
DATA: l_valid TYPE c,
      v_flag,
      v_data_change,
      v_row TYPE lvc_s_row,
      v_column TYPE lvc_s_col,
      v_row_num TYPE lvc_s_roid.
DATA: ok_code LIKE sy-ucomm,
      save_ok LIKE sy-ucomm,
g_container1 TYPE scrfname VALUE 'CON', "First Container
gs_layout TYPE lvc_s_layo.
 
DATA:BEGIN OF itab OCCURS 0,
      vbeln LIKE likp-vbeln,
      posnr LIKE lips-posnr,
      lfdat LIKE lips-vfdat,
      box(1),
      handle_style TYPE lvc_t_styl,
END OF itab.
 
*----------------------------------------------------------------------*
*       CLASS lcl_event_handler DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler DEFINITION .
  PUBLIC SECTION .
    METHODS:
**Hot spot Handler
    handle_hotspot_click FOR EVENT hotspot_click OF cl_gui_alv_grid
    IMPORTING e_row_id e_column_id es_row_no,
**Double Click Handler
    handle_double_click FOR EVENT double_click OF cl_gui_alv_grid
    IMPORTING e_row e_column es_row_no.
 
ENDCLASS. "lcl_event_handler DEFINITION
 
*----------------------------------------------------------------------*
*       CLASS lcl_event_handler IMPLEMENTATION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
CLASS lcl_event_handler IMPLEMENTATION.
*Handle Hotspot Click
  METHOD handle_hotspot_click .
    CLEAR: v_row,v_column,v_row_num.
    v_row = e_row_id.
    v_column = e_column_id.
    v_row_num = es_row_no.
    MESSAGE i000 WITH v_row 'clicked'.
  ENDMETHOD. "lcl_event_handler
 
*Handle Double Click
  METHOD handle_double_click.
    CLEAR: v_row,v_column,v_row_num.
    v_row = e_row.
    v_column = e_column.
    v_row_num = es_row_no.
 
    IF e_column = 'VBELN'.
      read table itab into itab index v_row.
      SET PARAMETER ID 'VL' FIELD itab-vbeln.
      CALL TRANSACTION 'VL03N' AND SKIP FIRST SCREEN.
 
    ENDIF.
    IF e_column = 'POSNR'.
 
      MESSAGE i000 WITH 'Click on POSNR row number ' e_row.
      "with this row num you can get the data
    ENDIF.
  ENDMETHOD. "handle_double_click
 
ENDCLASS. "LCL_EVENT_HANDLER IMPLEMENTATION
 
DATA: g_custom_container TYPE REF TO cl_gui_custom_container,"Container1
      g_handler TYPE REF TO lcl_event_handler. "handler
 
*fieldcatalog for first and second report
data: it_fieldcat TYPE lvc_t_fcat,
      x_fieldcat TYPE lvc_s_fcat,
      ls_vari TYPE disvariant.
 
 
START-OF-SELECTION.
 
  SELECT vbeln
  posnr
  FROM lips
  UP TO 20 ROWS
  INTO CORRESPONDING FIELDS OF TABLE itab.
 
END-OF-SELECTION.
  IF NOT itab[] IS INITIAL.
    CALL SCREEN 100.
  ELSE.
    MESSAGE i002 WITH 'NO DATA FOR THE SELECTION'(004).
  ENDIF.
 
*&---------------------------------------------------------------------*
*&      Form  create_and_init_alv
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM create_and_init_alv .
  DATA: lt_exclude TYPE ui_functions.
  "First Grid
  CREATE OBJECT g_custom_container
  EXPORTING container_name = g_container1.
  CREATE OBJECT g_grid
  EXPORTING i_parent = g_custom_container.
 
*  SET a TITLEBAR for the grid control
  CLEAR gs_layout.
  gs_layout-grid_title = text-003.
  gs_layout-zebra = space.
  gs_layout-cwidth_opt = 'X'.
  gs_layout-no_rowmark = 'X'.
  gs_layout-box_fname = 'BOX'.
  gs_layout-ctab_fname = 'CELLCOLOR'.
  gs_layout-stylefname = 'HANDLE_STYLE'.
 
  CREATE OBJECT g_handler.
  SET HANDLER g_handler->handle_double_click FOR g_grid.
 
  SET HANDLER g_handler->handle_hotspot_click FOR g_grid.
 
  DATA: ls_outatb LIKE LINE OF itab,
  v_index TYPE sy-tabix.
  DATA: ls_edit TYPE lvc_s_styl,
  lt_edit TYPE lvc_t_styl.
 
  LOOP AT itab INTO ls_outatb WHERE posnr = '000010'.
    v_index = sy-tabix.
    ls_edit-fieldname = 'VBELN'.
    ls_edit-style = cl_gui_alv_grid=>mc_style_disabled.
    ls_edit-style2 = space.
    ls_edit-style3 = space.
    ls_edit-style4 = space.
    ls_edit-maxlen = 8.
    INSERT ls_edit INTO TABLE lt_edit.
    INSERT lines of lt_edit INTO TABLE ls_outatb-handle_style.
    MODIFY itab INDEX v_index FROM ls_outatb TRANSPORTING
    handle_style.
  ENDLOOP.
 
 
*  setting focus for created grid control
  CALL METHOD cl_gui_control=>set_focus
    EXPORTING
      control = g_grid.
 
*  build fieldcat and set editable for date and reason code
*  edit enabled.
*  ASSIGN a handle for the dropdown listbox.
  PERFORM build_fieldcat.
 
*  optionally restrict generic functions to 'change only'.
*  (the user shall not be able to add new lines).
  PERFORM exclude_tb_functions CHANGING lt_exclude.
**Vaiant to save the layout
  ls_vari-report = sy-repid.
  ls_vari-handle = space.
  ls_vari-log_group = space.
  ls_vari-username = space.
  ls_vari-variant = space.
  ls_vari-text = space.
  ls_vari-dependvars = space.
 
 
 
**Calling the Method for ALV output for First Grid
  CALL METHOD g_grid->set_table_for_first_display
    EXPORTING
      it_toolbar_excluding = lt_exclude
      is_variant           = ls_vari
      is_layout            = gs_layout
      i_save               = 'A'
    CHANGING
      it_fieldcatalog      = it_fieldcat
      it_outtab            = itab[].
 
 
ENDFORM. "CREATE_AND_INIT_ALV
 
*&---------------------------------------------------------------------*
*&      Form  exclude_tb_functions
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->PT_EXCLUDE text
*----------------------------------------------------------------------*
FORM exclude_tb_functions CHANGING pt_exclude TYPE ui_functions.
 
*  only allow to change data not to create new entries (exclude
*  generic functions).
  DATA ls_exclude TYPE ui_func.
 
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy.
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_cut.
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste.
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_paste_new_row.
  APPEND ls_exclude TO pt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_loc_undo.
  APPEND ls_exclude TO pt_exclude.
ENDFORM. " EXCLUDE_TB_FUNCTIONS
 
*&---------------------------------------------------------------------*
*&      Form  build_fieldcat
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM build_fieldcat .
  DATA: l_pos TYPE i.
  l_pos = l_pos + 1.
 
  x_fieldcat-scrtext_m = 'Delivery'(024).
  x_fieldcat-fieldname = 'VBELN'.
  x_fieldcat-tabname = 'ITAB'.
  x_fieldcat-col_pos = l_pos.
  x_fieldcat-no_zero = 'X'.
  x_fieldcat-outputlen = '10'.
 
  APPEND x_fieldcat TO it_fieldcat.
  CLEAR x_fieldcat.
  l_pos = l_pos + 1.
 
  x_fieldcat-scrtext_m = 'Item'(025).
  x_fieldcat-fieldname = 'POSNR'.
  x_fieldcat-tabname = 'ITAB'.
  x_fieldcat-col_pos = l_pos.
  x_fieldcat-outputlen = '5'.
  APPEND x_fieldcat TO it_fieldcat.
  CLEAR x_fieldcat.
  l_pos = l_pos + 1.
  x_fieldcat-scrtext_m = 'Del Date'(015).
  x_fieldcat-fieldname = 'LFDAT'.
  x_fieldcat-tabname = 'ITAB'.
  x_fieldcat-col_pos = l_pos.
  x_fieldcat-outputlen = '10'.
  APPEND x_fieldcat TO it_fieldcat.
  CLEAR x_fieldcat.
  l_pos = l_pos + 1.
ENDFORM. " build_fieldcat
 
*----------------------------------------------------------------------*
*  MODULE status_0100 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE status_0100 OUTPUT.
  SET PF-STATUS 'MAIN100'.
  SET TITLEBAR 'MAIN100'.
  IF g_custom_container IS INITIAL.
**Initializing the grid and calling the fm to Display the O/P
    PERFORM create_and_init_alv.
  ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
 
*& Module USER_COMMAND_0100 INPUT
 
MODULE user_command_0100 INPUT.
  CASE sy-ucomm.
    WHEN 'BACK'.
      LEAVE TO SCREEN 0.
  ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPU

Read only

Former Member
0 Likes
795

HI

Check the following link

[url] http://www.saptechnical.com/Tutorials/ALV/Styles/demo.htm

Thanks

Edited by: Anurodh Jindal on May 27, 2008 8:52 AM

Read only

Former Member
0 Likes
795

REPORT zbcalv_grid_test .

CLASS :cl_gui_alv_grid DEFINITION LOAD,

cl_gui_custom_container DEFINITION LOAD.

DATA: BEGIN OF itab OCCURS 0,

matnr TYPE mara-matnr,

mtart TYPE mara-mtart,

END OF itab.

***SCREEN VARIABLE

DATA: ok_code LIKE sy-ucomm,

gv_valid(1) TYPE c.

*****ALV DATA DECLARATION

DATA : gs_layout TYPE lvc_s_layo,

container TYPE REF TO cl_gui_custom_container,

g_grid TYPE REF TO cl_gui_alv_grid.

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

START-OF-SELECTION.

CALL SCREEN 1000.

&----


*& Module STATUS_1000 OUTPUT

&----


text

-


MODULE status_1000 OUTPUT.

SET PF-STATUS 'STATUS1'.

SET TITLEBAR 'xxx'.

SELECT matnr mtart

FROM mara UP TO 10 ROWS

INTO TABLE itab.

IF sy-subrc = 0.

CREATE OBJECT container

EXPORTING

PARENT =

container_name = 'CONTAINER'

EXCEPTIONS

cntl_error = 1

cntl_system_error = 2

create_error = 3

lifetime_error = 4

lifetime_dynpro_dynpro_link = 5

OTHERS = 6.

gs_layout-cwidth_opt = 'X'.

CREATE OBJECT g_grid

EXPORTING

I_SHELLSTYLE = 0

I_LIFETIME =

i_parent = container

I_APPL_EVENTS = space

I_PARENTDBG =

I_APPLOGPARENT =

I_GRAPHICSPARENT =

I_NAME =

EXCEPTIONS

error_cntl_create = 1

error_cntl_init = 2

error_cntl_link = 3

error_dp_create = 4

OTHERS = 5.

CALL METHOD g_grid->set_table_for_first_display

EXPORTING

I_BUFFER_ACTIVE =

I_BYPASSING_BUFFER =

I_CONSISTENCY_CHECK =

i_structure_name = 'MARA'

IS_VARIANT =

I_SAVE =

I_DEFAULT = 'X'

is_layout = gs_layout

IS_PRINT =

IT_SPECIAL_GROUPS =

IT_TOOLBAR_EXCLUDING =

IT_HYPERLINK =

IT_ALV_GRAPHICS =

IT_EXCEPT_QINFO =

CHANGING

it_outtab = itab[]

IT_FIELDCATALOG = T_FIELDCAT

IT_SORT =

IT_FILTER =

EXCEPTIONS

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

OTHERS = 4.

ENDIF.

ENDMODULE. " STATUS_1000 OUTPUT

&----


*& Module USER_COMMAND_1000 INPUT

&----


text

-


module USER_COMMAND_1000 input.

***USER INTERATION ON SCREEN 100

CASE ok_code.

WHEN '&F03'.

LEAVE program.

WHEN OTHERS.

LEAVE TO SCREEN 0.

ENDCASE.

endmodule. " USER_COMMAND_1000 INPUT

Or

Reward points..

Read only

Former Member
0 Likes
795

Hi,

Please find the example code.

REPORT ZTEST_ALV.

data : dntab type STANDARD TABLE OF dntab,

wa_dntab TYPE dntab,

dref TYPE REF TO data.

data: i_fcat type lvc_t_fcat,

wa_fcat type lvc_s_fcat,

tab_name TYPE ddobjname,

gr_table TYPE REF TO cl_salv_table.

FIELD-SYMBOLS : <newtab> TYPE table.

PARAMETERS: table type ddobjname.

tab_name = table.

START-OF-SELECTION.

CALL FUNCTION 'NAMETAB_GET'

EXPORTING

LANGU = SY-LANGU

  • ONLY = ' '

TABNAME = tab_name

  • IMPORTING

  • HEADER =

  • RC =

TABLES

NAMETAB = dntab.

  • EXCEPTIONS

  • INTERNAL_ERROR = 1

  • TABLE_HAS_NO_FIELDS = 2

  • TABLE_NOT_ACTIV = 3

  • NO_TEXTS_FOUND = 4

  • OTHERS = 5

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

LOOP AT dntab INTO wa_dntab.

wa_fcat-fieldname = wa_dntab-fieldname.

wa_fcat-ref_field = wa_dntab-fieldname.

wa_fcat-ref_table = wa_dntab-tabname.

APPEND wa_fcat TO i_fcat .

ENDLOOP.

*CALL METHOD cl_alv_table_create=>create_dynamic_table

*EXPORTING

*it_fieldcatalog = i_fcat

*IMPORTING

*ep_table = dref.

ASSIGN dref-> TO <newtab>.

CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE

EXPORTING

  • I_STYLE_TABLE =

IT_FIELDCATALOG = i_fcat

  • I_LENGTH_IN_BYTE =

IMPORTING

EP_TABLE = dref.

  • E_STYLE_FNAME =

  • EXCEPTIONS

  • GENERATE_SUBPOOL_DIR_FULL = 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.

assign dref->* to <newtab>.

select * from (tab_name) into table <newtab> UP TO 25 ROWS.

TRY.

CALL METHOD CL_SALV_TABLE=>FACTORY

EXPORTING

LIST_DISPLAY = IF_SALV_C_BOOL_SAP=>false

  • R_CONTAINER =

  • CONTAINER_NAME =

IMPORTING

R_SALV_TABLE = gr_table

CHANGING

T_TABLE = <newtab>.

.

CATCH CX_SALV_MSG .

ENDTRY.

CALL METHOD GR_TABLE->DISPLAY

thanks,

anil

Read only

Former Member
0 Likes
795

&----


*& Include ZHR_BIKE_TRANSFER_TOP

&----


TABLES : ZCLUB_WORK_TAB,pa0001,t001p,t500p,tvv1t,tvv2t,tvv3t,tvgrt,tvkbt,PA0040,PA0000,PA0002.

data : messg type ref to IF_HRPA_MESSAGE_HANDLER.

DATA : it_icm TYPE TABLE OF ZICM_CALENDAR,

wa_icm TYPE ZICM_CALENDAR.

DATA: monthd TYPE p,

days1 TYPE i .

DATA: no_cal_day TYPE i.

DATA : it_p0040 TYPE TABLE OF pa0040,

wa_p0040 TYPE pa0040.

DATA : l_space(10) TYPE N." value space.

DATA : C(10),

flag,

flag1,flg,flg1.

DATA : year type gjahr,

pernr(8),

CYCLE(2).

DATA : count(2),count1 type i,count2 type i.

DATA : date type D,DATE1 TYPE D.

DATA : it_club TYPE TABLE OF ZCLUB_WORK_TAB,

wa_club TYPE ZCLUB_WORK_TAB.

DATA : it_p0001 TYPE TABLE OF pa0001,

wa_p0001 TYPE pa0001.

DATA : it_p0000 TYPE TABLE OF pa0000,

wa_p0000 TYPE pa0000.

DATA : it_t500p TYPE TABLE OF t500p,

wa_t500p TYPE t500p,

it_t001p TYPE TABLE OF t001p,

wa_t001p TYPE t001p.

DATA : TOTAL TYPE I.

*data : GROSS TYPE I.

TYPES : BEGIN OF it_disp1,

pernr TYPE persno, " Personal No

ename TYPE EMNAM,

werks TYPE WERKS,

btrtl TYPE BTRTL,

NAME1 TYPE PBTXT,

BTEXT TYPE BTRTX,

gjahr type gjahr,

pernr1 TYPE persno, " Personal No

gjahr1 type gjahr,

gtext(20),

sbu TYPE ZSBU,

area TYPE ZAREA,

region TYPE ZREGION,

vkbur TYPE vkbur,

vkgrp TYPE vkgrp,

doj TYPE begda,

los(4),

days(4)," TYPE i,

gross1 type i,

gross2 type i,

gross3 type i,

gross4 type i,

gross5 type i,

gross6 type i,

gross7 type i,

gross8 type i,

gross9 type i,

gross10 type i,

gross11 type i,

gross12 type i,

gross13 type i,

  • make TYPE zmake,

  • model TYPE zmodel,

  • regno TYPE zregno,

  • engno TYPE zengno,

  • chno TYPE zchno,

  • cost TYPE zcost,

  • tdate TYPE begda,

  • gross1(5),

  • gross2(5),

  • gross3(5),

  • gross4(5),

  • gross5(5),

  • gross6(5),

  • gross7(5),

  • gross8(5),

  • gross9(5),

  • gross10(5),

  • gross11(5),

  • gross12(5),

  • gross13(5),

total type i,

count type i,

color(4),

END OF it_disp1.

DATA : it_disp TYPE TABLE OF it_disp1,

wa_disp TYPE it_disp1.

*TYPES:BEGIN OF ty_sales,

  • pernr LIKE zhrsales-pernr,

  • vbeln LIKE zhrsales-vbeln,

  • posnr LIKE zhrsales-posnr,

  • fkdat LIKE zhrsales-fkdat,

  • fkimg LIKE zhrsales-fkimg,

  • END OF ty_sales.

*

*DATA:it_sales TYPE STANDARD TABLE OF ty_sales.

*DATA:wa_sales LIKE LINE OF it_sales.

*

*TYPES:BEGIN OF ty_month,

  • pernr(10),

  • fkimg LIKE zhrsales-fkimg,

  • days TYPE i,

  • END OF ty_month.

*

*DATA:it_month TYPE STANDARD TABLE OF ty_month.

*

*DATA:wa_month LIKE LINE OF it_month.

DATA :g_repid LIKE sy-repid.

*& Declaration for position

DATA: pos TYPE i,

text(255).

*

**& Alv declarations

*TYPE-POOLS: slis.

*DATA: t_fieldcat TYPE slis_t_fieldcat_alv,

  • g_repid LIKE sy-repid,

  • t_listevents TYPE slis_t_event,

  • t_listevents1 TYPE slis_t_event,

  • t_listheader TYPE slis_t_listheader,

  • t_listheader1 TYPE slis_t_listheader,

  • d_tabix LIKE sy-tabix,

  • ls_fieldcat TYPE slis_fieldcat_alv,

  • wa_listevents TYPE slis_alv_event,

  • wa_listevents1 TYPE slis_alv_event,

  • wa_listheader TYPE slis_listheader,

  • wa_listheader1 TYPE slis_listheader,

  • gd_layout TYPE slis_layout_alv,

  • g_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE',

  • g_top_of_page1 TYPE slis_formname VALUE 'TOP_OF_PAGE1',

  • it_sort TYPE TABLE OF slis_sortinfo_alv,

  • ls_sort LIKE LINE OF it_sort,

  • set_pf_status TYPE slis_formname.

*----


OOPS

----


  • Declaration for ALV catolog and layout.

----


DATA : t_layout TYPE lvc_s_layo,

wa_field TYPE lvc_s_fcat,

t_field TYPE lvc_t_fcat.

----


  • Declaration for view ALV catolog and layout.

----


DATA : t_layout1 TYPE lvc_s_layo,

t_field1 TYPE lvc_t_fcat,

wa_field1 TYPE lvc_s_fcat.

----


  • Data declarations

----


DATA : ok_code TYPE sy-ucomm,

save_ok LIKE ok_code.

DATA : v_custom_cont TYPE REF TO cl_gui_custom_container.

DATA : v_dyndoc_id TYPE REF TO cl_dd_document.

DATA : v_splitter TYPE REF TO cl_gui_splitter_container.

DATA : v_top_cont TYPE REF TO cl_gui_container.

DATA : v_grid_cont TYPE REF TO cl_gui_container.

*data : V_handler TYPE REF TO lcl_event_handler. "handle

DATA : v_alv TYPE REF TO cl_gui_alv_grid.

DATA : v_container1 TYPE REF TO cl_gui_custom_container.

DATA : v_alv1 TYPE REF TO cl_gui_alv_grid.

DATA : O_DYNDOC_ID TYPE REF TO CL_DD_DOCUMENT.

DATA: w_idx LIKE sy-tabix,

w_sno type i,

w_lin type i.

DATA: w_invno LIKE rseg-belnr,

w_gjahr LIKE rseg-gjahr,

w_awkey LIKE bkpf-awkey.

DATA: t_fieldcat TYPE lvc_t_fcat WITH HEADER LINE,

t_sort TYPE lvc_t_sort WITH HEADER LINE,

wa_text TYPE SDYDO_TEXT_ELEMENT,

wa_ldat(10) type c,

wa_hdat(10) type c,

wa_text1 type SDYDO_TEXT_ELEMENT,

wa_end type SDYDO_TEXT_ELEMENT,

wa_desc type SDYDO_TEXT_ELEMENT,

wa_lin(20) type c,

w_low like sy-datum,

w_high like sy-datum,

w_events type CNTL_SIMPLE_EVENTS.

*----


END

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS : P_PERNR TYPE ZCLUB_WORK_TAB-PERNR OBLIGATORY MATCHCODE OBJECT premn .

SELECT-OPTIONS : p_mon FOR pa0002-gbmon NO INTERVALS NO-EXTENSION OBLIGATORY,

P_GJAHR FOR ZCLUB_WORK_TAB-GJAHR NO INTERVALS NO-EXTENSION OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

PARAMETERS : R1 RADIOBUTTON GROUP rb1,

R2 RADIOBUTTON GROUP rb1.

SELECTION-SCREEN END OF BLOCK b2.

*&----


**& Report ZHR_BIKE_TRANSFER_REPORT

**&

*&----


**&

**&

*&----


*

REPORT ZHR_BIKE_TRANSFER_REPORT1.

INCLUDE ZHR_BIKE_TRANSFER_TOP1.

----


  • I N I T I A L I Z A T I O N

----


INITIALIZATION.

g_repid = sy-repid.

----


  • CLASS handle_event DEFINITION

----


CLASS handle_event DEFINITION.

PUBLIC SECTION.

METHODS: top_of_page FOR EVENT top_of_page OF cl_gui_alv_grid

IMPORTING e_dyndoc_id.

ENDCLASS.

----


  • CLASS handle_event IMPLEMENTATION

----


CLASS handle_event IMPLEMENTATION.

METHOD top_of_page.

  • Top-of-page event

PERFORM event_top_of_page USING v_dyndoc_id.

ENDMETHOD. "top_of_page

ENDCLASS.

DATA : handler_event TYPE REF TO handle_event.

----


  • Start of selection.

----


START-OF-SELECTION.

PERFORM fetch_data.

PERFORM display_data.

CALL SCREEN 9001.

END-OF-SELECTION.

----


  • MODULE STATUS_9001 OUTPUT *

----


MODULE status_9001 OUTPUT.

SET PF-STATUS '001'.

PERFORM create_top_con.

PERFORM create_grid_con.

CALL METHOD v_dyndoc_id->initialize_document

EXPORTING

background_color = cl_dd_area=>col_textarea.

  • Processing events

CALL METHOD v_alv->list_processing_events

EXPORTING

i_event_name = 'TOP_OF_PAGE'

i_dyndoc_id = v_dyndoc_id.

ENDMODULE. " STATUS_9001 OUTPUT

*&----


*

*& Module USER_COMMAND_9001 INPUT

*&----


MODULE user_command_9001 INPUT.

*

  • save_ok = ok_code.

*

  • CLEAR ok_code.

CASE sy-ucomm.

WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.

LEAVE TO SCREEN 0.

ENDCASE.

ENDMODULE. " USER_COMMAND_9001 INPUT

&----


*& Form fetch_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form fetch_data .

CONCATENATE P_GJAHR-LOW P_MON-LOW '01' INTO DATE.

CALL FUNCTION 'HR_JP_MONTH_BEGIN_END_DATE'

EXPORTING

iv_date = DATE

IMPORTING

EV_MONTH_END_DATE = DATE1.

SELECT SINGLE * FROM PA0040 INTO WA_P0040 WHERE PERNR = P_PERNR AND SUBTY = '27'

AND BEGDA BETWEEN DATE AND DATE1.

IF sy-subrc = 0.

SELECT SINGLE * FROM PA0000 WHERE PERNR = P_PERNR

AND stat2 = '3'.

IF sy-subrc = 0.

  • REFRESH it_sales.

  • SELECT pernr vbeln posnr fkdat fkimg

  • FROM zhrsales

  • INTO TABLE it_sales

  • WHERE pernr EQ p_pernr.

SELECT * from zclub_work_tab INTO TABLE it_club WHERE pernr = P_pernr.

CASE sy-subrc.

WHEN '0'.

SELECT * from zicm_calendar INTO TABLE it_icm FOR ALL ENTRIES IN it_club

WHERE zcycle = it_club-cycle

AND gjahr = it_club-gjahr.

ENDCASE.

ENDIF.

ENDIF.

SORT it_club ascending by gjahr cycle.

*----


no of months with bike

CLEAR no_cal_day.

CALL FUNCTION 'HR_SGPBS_YRS_MTHS_DAYS'

EXPORTING

beg_da = wa_p0040-begda

end_da = wa_p0040-endda

IMPORTING

no_cal_day = no_cal_day

EXCEPTIONS

DATEINT_ERROR = 1

OTHERS = 2.

  • .

  • LOOP AT it_sales INTO wa_sales WHERE fkdat BETWEEN wa_p0040-begda AND wa_p0040-endda.

  • wa_month-pernr = wa_sales-pernr.

  • wa_month-fkimg = wa_sales-fkimg.

  • wa_month-days = no_cal_day.

  • COLLECT wa_month INTO it_month.

  • CLEAR :wa_month.

  • CLEAR wa_sales.

  • ENDLOOP.

CLEAR cycle.

*----


FLAG = 1.

FLAG1 = 1.

FLG1 = 1.

LOOP AT IT_CLUB INTO WA_CLUB." WHERE pernr = wa_p0040-pernr.

IF flg1 = 1.

PERNR = WA_CLUB-PERNR.

FLAG = 1.

ENDIF.

IF PERNR <> WA_CLUB-PERNR.

flg = 1.

FLAG = 1.

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

FLAG1 = 1.

**********

ENDIF.

IF flg = 1.

PERNR = WA_CLUB-PERNR.

clear cycle.

ENDIF.

IF FLAG1 = 1.

YEAR = WA_CLUB-GJAHR.

endif.

if flag = 1.

if year = WA_CLUB-GJAHR.

PERFORM format_data.

else.

clear year.

year = WA_CLUB-GJAHR.

flag = 2.

clear cycle.

ENDIF.

endif.

if flag = 2.

if year = WA_CLUB-GJAHR.

PERFORM format_data1.

else.

clear year.

year = WA_CLUB-GJAHR.

flag = 3.

clear cycle.

endif.

endif.

if flag = 3.

PERFORM format_data1.

ENDIF..

CLEAR : flg1,flg,flag1,wa_club,wa_icm,WA_DISP.

ENDLOOP.

*-----calculations for LOS and other

c = 1.

LOOP AT it_disp INTO wa_disp.

IF c = 1.

wa_disp-total = wa_disp-gross1 + wa_disp-gross2 + wa_disp-gross3 + wa_disp-gross4 + wa_disp-gross5 + wa_disp-gross6 +

wa_disp-gross7 + wa_disp-gross8 + wa_disp-gross9 + wa_disp-gross10 + wa_disp-gross11 + wa_disp-gross12

+ wa_disp-gross13.

total = wa_disp-total.

*----bike details.

  • wa_disp-make = wa_p0040-zzmake.

  • wa_disp-model = wa_p0040-zzmodel.

  • wa_disp-regno = wa_p0040-zzregno.

  • wa_disp-engno = wa_p0040-zzengno.

  • wa_disp-chno = wa_p0040-zzchno.

  • wa_disp-cost = wa_p0040-zzcost.

  • IF wa_p0040-zzdate IS NOT INITIAL.

  • wa_disp-tdate = wa_p0040-zzdate.

  • ELSE.

  • wa_disp-tdate = wa_p0040-endda.

*

  • ENDIF.

*

  • wa_disp-make = wa_p0040-zzmake.

*--hire date

CALL FUNCTION 'HR_ECM_GET_HIRE_DATE'

EXPORTING

pernr = wa_disp-pernr

SELECTION_END_DATE = '99991231'

message_handler = messg

IMPORTING

HIRE_DATE = wa_disp-doj.

*--pa0001 informations

SELECT SINGLE * FROM pa0001 WHERE pernr = wa_disp-pernr AND endda = '99991231'.

wa_disp-ename = pa0001-ename.

wa_disp-werks = pa0001-werks.

wa_disp-btrtl = pa0001-btrtl.

wa_disp-sbu = pa0001-zzsbu.

wa_disp-area = pa0001-zzarea.

wa_disp-region = pa0001-zzregion.

SELECT single * FROM t500p WHERE persa = wa_disp-werks AND BUKRS = 'EFL'.

wa_disp-name1 = t500p-name1.

SELECT single * FROM t001p WHERE btrtl = wa_disp-btrtl AND molga = '40'.

wa_disp-btext = t001p-btext.

SELECT single * FROM zclub_work_tab WHERE pernr = wa_disp-pernr.

wa_disp-vkbur = zclub_work_tab-vkbur.

wa_disp-vkgrp = zclub_work_tab-vkgrp.

*----calculating LOS in months

CLEAR monthd.

CALL FUNCTION 'HR_ECM_GET_NUMBER_OF_MONTHS'

EXPORTING

begda = wa_p0040-begda

endda = wa_p0040-endda

days_min = '15'

message_handler = messg

IMPORTING

months = monthd.

wa_disp-los = monthd.

  • IF monthd IS NOT INITIAL.

  • READ TABLE it_month INTO wa_month WITH KEY pernr = wa_disp-pernr.

  • IF sy-subrc = 0.

days1 = no_cal_day / 30.

wa_disp-days = days1.

  • wa_final-fkimg = wa_month-fkimg.

  • wa_final-avgsale = wa_month-fkimg * 30 / wa_month-days.

  • ENDIF.

  • ENDIF.

WA_DISP-COLOR = 'C200'.

MODIFY it_disp FROM wa_disp TRANSPORTING total doj ename werks btrtl sbu area region name1

btext vkbur vkgrp los days COLOR." make model regno engno chno cost tdate.

ELSEIF c = 2 OR c = 3.

wa_disp-total = wa_disp-gross1 + wa_disp-gross2 + wa_disp-gross3 + wa_disp-gross4 + wa_disp-gross5 + wa_disp-gross6 +

wa_disp-gross7 + wa_disp-gross8 + wa_disp-gross9 + wa_disp-gross10 + wa_disp-gross11 + wa_disp-gross12

+ wa_disp-gross13 + total.

IF c = 2.

WA_DISP-COLOR = 'C210'.

ELSE.

WA_DISP-COLOR = 'C200'.

ENDIF.

wa_disp-gjahr = wa_disp-gjahr1.

MODIFY it_disp FROM wa_disp TRANSPORTING total gjahr COLOR.

CLEAR total.

total = wa_disp-total.

ENDIF.

c = c + 1.

CLEAR wa_disp.

ENDLOOP.

endform. " fetch_data

----


  • FORM display_data *

----


FORM display_data.

PERFORM field_catalog.

PERFORM field_layout.

ENDFORM.

&----


*& Form format_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form format_data .

*-------cycle1

IF wa_club-cycle = '01' AND count LT 25.

IF cycle = space .

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '01'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross1 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross1 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

count = count + 1.

IF r1 = 'X'.

wa_disp-gross1 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross1 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross1 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross1 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

ENDIF.

PERFORM cal_cycle1.

*-------cycle2

ELSEIF wa_club-cycle = '02' AND count LT 25.

IF cycle = space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '02'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross2 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross2 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

count = count + 1.

IF r1 = 'X'.

wa_disp-gross2 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross2 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross2 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross2 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

ENDIF.

PERFORM cal_cycle2.

*----


CYCLE-3

ELSEIF wa_club-cycle = '03' AND count LT 25.

IF cycle = space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '03'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross3 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross3 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

count = count + 1.

IF r1 = 'X'.

wa_disp-gross3 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross3 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross3 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross3 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

ENDIF.

PERFORM cal_cycle3.

*------cycle 4

ELSEIF wa_club-cycle = '04' AND count LT 25.

IF cycle eq space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '04'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross4 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross4 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF r1 = 'X'.

wa_disp-gross4 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross4 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross4 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross4 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

count = count + 1.

ENDIF.

PERFORM cal_cycle4.

*------cycle 5

ELSEIF wa_club-cycle = '05' AND count LT 25.

IF cycle eq space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '05'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross5 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross5 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross5 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross5 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross5 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross5 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

count = count + 1.

ENDIF.

PERFORM cal_cycle5.

*------cycle 6

ELSEIF wa_club-cycle = '06' AND count LT 25.

IF cycle eq space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '06'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross6 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross6 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross6 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross6 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross6 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross6 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

count = count + 1.

ENDIF.

PERFORM cal_cycle6.

*------cycle 7

ELSEIF wa_club-cycle = '07' AND count LT 25.

IF cycle eq space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '07'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross7 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross7 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross7 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross7 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross7 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross7 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

count = count + 1.

ENDIF.

PERFORM cal_cycle7.

*------cycle 8

ELSEIF wa_club-cycle = '08' AND count LT 25.

IF cycle eq space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '08'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross8 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross8 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross8 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross8 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross8 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross8 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

count = count + 1.

ENDIF.

PERFORM cal_cycle8.

*------cycle 9

ELSEIF wa_club-cycle = '09' AND count LT 25.

IF cycle eq space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '09'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross9 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross9 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross9 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross9 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross9 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross9 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

count = count + 1.

ENDIF.

PERFORM cal_cycle9.

*------cycle 10

ELSEIF wa_club-cycle = '10' AND count LT 25.

IF cycle eq space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '10'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross10 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross10 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross10 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross10 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross10 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross10 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

count = count + 1.

ENDIF.

PERFORM cal_cycle10.

*------cycle 11

ELSEIF wa_club-cycle = '11' AND count LT 25.

IF cycle eq space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '11'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross11 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross11 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross11 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross11 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross11 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross11 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

count = count + 1.

ENDIF.

PERFORM cal_cycle11.

*------cycle 12

ELSEIF wa_club-cycle = '12' AND count LT 25.

IF cycle eq space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '12'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross12 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross12 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross12 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross12 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross12 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross12 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

count = count + 1.

ENDIF.

PERFORM cal_cycle12.

*------cycle 13

ELSEIF wa_club-cycle = '13' AND count LT 25.

IF cycle eq space.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '13'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross13 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross13 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross13 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross13 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross13 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross13 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

count = count + 1.

ENDIF.

PERFORM cal_cycle13.

ENDIF.

endform. " format_data

&----


*& Form format_data1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form format_data1 .

*-------cycle1

IF wa_club-cycle = '01' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '01'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross1 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross1 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '01'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross1 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross1 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross1 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross1 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross1 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross1 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '01'.

count = count + 1.

ENDIF.

PERFORM cal_cycle1.

*-------cycle2

ELSEIF wa_club-cycle = '02' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '01'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross2 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross2 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '02'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross2 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross2 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross2 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross2 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross2 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross2 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '02'.

count = count + 1.

ENDIF.

PERFORM cal_cycle2.

*----


CYCLE-3

ELSEIF wa_club-cycle = '03' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '03'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross1 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross3 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '03'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross3 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross3 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross3 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross3 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross3 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross3 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '03'.

count = count + 1.

ENDIF.

PERFORM cal_cycle3.

*------cycle 4

ELSEIF wa_club-cycle = '04' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '04'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross4 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross4 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '04'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross4 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross4 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross4 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross4 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross4 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross4 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '04'.

count = count + 1.

ENDIF.

PERFORM cal_cycle4.

*------cycle 5

ELSEIF wa_club-cycle = '05' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '05'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross5 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross5 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '05'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross5 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross5 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross5 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross5 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross5 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross5 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '05'.

count = count + 1.

ENDIF.

PERFORM cal_cycle5.

*------cycle 6

ELSEIF wa_club-cycle = '06' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '06'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross6 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross6 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '01'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross6 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross6 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross6 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross6 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross6 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross6 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '06'.

count = count + 1.

ENDIF.

PERFORM cal_cycle6.

*------cycle 7

ELSEIF wa_club-cycle = '07' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '07'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross7 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross7 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '07'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross7 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross7 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross7 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross7 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross7 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross7 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '07'.

count = count + 1.

ENDIF.

PERFORM cal_cycle7.

*------cycle 8

ELSEIF wa_club-cycle = '08' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '08'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross8 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross8 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '08'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross8 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross8 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross8 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross8 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross8 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross8 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '08'.

count = count + 1.

ENDIF.

PERFORM cal_cycle8.

*------cycle 9

ELSEIF wa_club-cycle = '09' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '09'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross9 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross9 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '09'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross9 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross9 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross9 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross9 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross9 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross9 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '09'.

count = count + 1.

ENDIF.

PERFORM cal_cycle9.

*------cycle 10

ELSEIF wa_club-cycle = '10' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '10'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross10 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross10 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '10'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross10 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross10 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross10 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross10 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross10 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross10 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '10'.

count = count + 1.

ENDIF.

PERFORM cal_cycle10.

*------cycle 11

ELSEIF wa_club-cycle = '11' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '11'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross11 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross11 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '11'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross11 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross11 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross11 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross11 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross11 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross11 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '11'.

count = count + 1.

ENDIF.

PERFORM cal_cycle11.

*------cycle 12

ELSEIF wa_club-cycle = '12' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '12'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross12 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross12 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '12'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross12 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross12 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross12 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross12 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross12 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross12 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

cycle = '12'.

count = count + 1.

ENDIF.

PERFORM cal_cycle12.

*------cycle 13

ELSEIF wa_club-cycle = '13' AND count LE 23.

IF cycle = space AND it_disp[] IS INITIAL.

READ TABLE it_icm INTO wa_icm WITH KEY zcycle = wa_club-cycle

gjahr = wa_club-gjahr.

IF sy-subrc = 0.

IF ( wa_p0040-begda BETWEEN wa_icm-guebg AND wa_icm-gueen ).

wa_disp-pernr = wa_club-pernr.

wa_disp-gjahr = wa_club-gjahr.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '13'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross13 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross13 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ENDIF.

ENDIF.

ELSEIF cycle = space AND it_disp[] IS NOT INITIAL.

wa_disp-pernr1 = wa_club-pernr.

wa_disp-gjahr1 = wa_club-gjahr.

CYCLE = '13'.

count = count + 1.

IF r1 = 'X'.

wa_disp-gtext = 'NetSelf'.

wa_disp-gross13 = wa_club-netsalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ELSEIF r2 = 'X'.

wa_disp-gtext = 'GrossSelf'.

wa_disp-gross13 = wa_club-grosssalesself.

APPEND wa_disp TO it_disp.

clear : wa_disp-pernr, wa_disp-gjahr.

ENDIF.

ELSE.

IF r1 = 'X'.

wa_disp-gross13 = wa_club-netsalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross13 WHERE gtext = 'NetSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ELSE.

wa_disp-gross13 = wa_club-grosssalesself.

MODIFY it_disp FROM wa_disp TRANSPORTING gross13 WHERE gtext = 'GrossSelf' AND GJAHR1 = year AND PERNR1 = PERNR.

ENDIF.

count = count + 1.

cycle = '13'.

ENDIF.

PERFORM cal_cycle13.

ENDIF.

*

*

endform. " format_data1

&----


*& Form cal_cycle1

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle1 .

IF count le 12.

count1 = wa_disp-gross1 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross1 + count2.

ENDIF.

endform. " cal_cycle1

&----


*& Form cal_cycle2

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle2 .

IF count le 12.

count1 = wa_disp-gross2 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross2 + count2.

ENDIF.

endform. " cal_cycle2

&----


*& Form cal_cycle3

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle3 .

IF count le 12.

count1 = wa_disp-gross3 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross3 + count2.

ENDIF.

endform. " cal_cycle3

&----


*& Form cal_cycle4

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle4 .

IF count le 12.

count1 = wa_disp-gross4 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross4 + count2.

ENDIF.

endform. " cal_cycle4

&----


*& Form cal_cycle5

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle5 .

IF count le 12.

count1 = wa_disp-gross5 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross5 + count2.

ENDIF.

endform. " cal_cycle5

&----


*& Form cal_cycle6

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle6 .

IF count le 12.

count1 = wa_disp-gross6 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross6 + count2.

ENDIF.

endform. " cal_cycle6

&----


*& Form cal_cycle7

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle7 .

IF count le 12.

count1 = wa_disp-gross7 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross7 + count2.

ENDIF.

endform. " cal_cycle7

&----


*& Form cal_cycle8

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle8 .

IF count le 12.

count1 = wa_disp-gross8 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross8 + count2.

ENDIF.

endform. " cal_cycle8

&----


*& Form cal_cycle9

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle9 .

IF count le 12.

count1 = wa_disp-gross9 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross9 + count2.

ENDIF.

endform. " cal_cycle9

&----


*& Form cal_cycle10

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle10 .

IF count le 12.

count1 = wa_disp-gross10 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross10 + count2.

ENDIF.

endform. " cal_cycle10

&----


*& Form cal_cycle11

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle11 .

IF count le 12.

count1 = wa_disp-gross11 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross11 + count2.

ENDIF.

endform. " cal_cycle11

&----


*& Form cal_cycle12

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle12 .

IF count le 12.

count1 = wa_disp-gross12 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross12 + count2.

ENDIF.

endform. " cal_cycle12

&----


*& Form cal_cycle3

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form cal_cycle13 .

IF count le 12.

count1 = wa_disp-gross13 + count1.

ELSEIF count GT 12.

count2 = wa_disp-gross13 + count2.

ENDIF.

endform. " cal_cycle13

**************************************************************8

*&----


*

*& Form field_catalog

*&----


*

FORM field_catalog.

wa_field-fieldname = 'PERNR'.

wa_field-reptext = 'Personal No'.

  • wa_field-checkbox = 'X'.

  • wa_field-edit = 'X'.

wa_field-outputlen = '13'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'ENAME'.

wa_field-reptext = 'Name'.

wa_field-outputlen = '20'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'WERKS'.

wa_field-reptext = 'PA'.

wa_field-outputlen = '4'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'NAME1'.

wa_field-reptext = 'Personal Area'.

wa_field-outputlen = '15'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'BTRTL'.

wa_field-reptext = 'PSA'.

wa_field-outputlen = '4'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'BTEXT'.

wa_field-reptext = 'Personal Subarea'.

wa_field-outputlen = '18'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'REGION'.

wa_field-reptext = 'Region'.

wa_field-outputlen = '8'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'SBU'.

wa_field-reptext = 'Sbu'.

wa_field-outputlen = '4'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'AREA'.

wa_field-reptext = 'Area'.

wa_field-outputlen = '4'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'VKBUR'.

wa_field-reptext = 'SO'.

wa_field-outputlen = '4'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'VKGRP'.

wa_field-reptext = 'SG'.

wa_field-outputlen = '4'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'DOJ'.

wa_field-reptext = 'DOJ'.

wa_field-outputlen = '10'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'LOS'.

wa_field-reptext = 'LOS In Months'.

wa_field-outputlen = '10'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'DAYS'.

wa_field-reptext = 'No Of Months With Bike'.

wa_field-outputlen = '13'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GJAHR'.

wa_field-reptext = 'Year'.

wa_field-outputlen = '10'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GTEXT'.

wa_field-outputlen = '13'.

wa_field-reptext = 'Description'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS1'.

wa_field-reptext = 'Cycle 1'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS2'.

wa_field-reptext = 'Cycle 2'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS3'.

wa_field-reptext = 'Cycle 3'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS4'.

wa_field-reptext = 'Cycle 4'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS5'.

wa_field-reptext = 'Cycle 5'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS6'.

wa_field-reptext = 'Cycle 6'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS7'.

wa_field-reptext = 'Cycle 7'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS8'.

wa_field-reptext = 'Cycle 8'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS9'.

wa_field-reptext = 'Cycle 9'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS10'.

wa_field-reptext = 'Cycle 10'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS11'.

wa_field-reptext = 'Cycle 11'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS12'.

wa_field-reptext = 'Cycle 12'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

wa_field-fieldname = 'GROSS13'.

wa_field-reptext = 'Cycle 13'.

wa_field-outputlen = '7'.

APPEND wa_field TO t_field.

CLEAR wa_field.

ENDFORM. " field_catalog

*&----


*

*& Form field_layout

*&----


*

FORM field_layout.

T_LAYOUT-ZEBRA = 'X'.

  • t_layout-no_rowmark = 'X'.

*

  • t_layout-info_fname = 'COLOR'.

t_layout-grid_title = 'Bike Transfer Performance Check Report'.

ENDFORM. " field_layout

*----


FORM event_top_of_page USING dg_dyndoc_id TYPE REF TO cl_dd_document.

DATA : dl_text(255) TYPE c. "Text

DATA : TEXT(225),

count3(25),

count4(25),date12(10).

count3 = count1.

count4 = count2.

CALL METHOD dg_dyndoc_id->add_text

EXPORTING

text = 'Bike Transfer Performance Check Report'

sap_style = cl_dd_area=>heading

sap_fontsize = cl_dd_area=>large

sap_color = cl_dd_area=>list_heading_int.

*----for new line1

CALL METHOD dg_dyndoc_id->new_line.

CALL METHOD dg_dyndoc_id->new_line.

CLEAR : dl_text.

  • program ID

dl_text = 'Employee No :'.

CALL METHOD dg_dyndoc_id->add_gap.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = p_pernr.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

CALL METHOD dg_dyndoc_id->add_gap

EXPORTING

width = 100.

dl_text = 'Date Of Issue Year :'.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

concatenate wa_p0040-begda6(2) wa_p0040-begda4(2) wa_p0040-begda+0(4) INTO date12 SEPARATED By '.'.

dl_text = DATE12.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

*---new line 2

CALL METHOD dg_dyndoc_id->new_line.

CLEAR : dl_text.

dl_text = 'Month :'.

CALL METHOD dg_dyndoc_id->add_gap.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = p_mon-LOW.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

CALL METHOD dg_dyndoc_id->add_gap

EXPORTING

width = 128.

dl_text = 'Make :'.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = wa_p0040-zzmake.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

*---new line 3

CALL METHOD dg_dyndoc_id->new_line.

CLEAR : dl_text.

dl_text = 'Bike Issue Year :'.

CALL METHOD dg_dyndoc_id->add_gap.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = p_gjahr-LOW.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

CALL METHOD dg_dyndoc_id->add_gap

EXPORTING

width = 106.

dl_text = 'Model :'.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = wa_p0040-zzmodel.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

*---new line 4

CALL METHOD dg_dyndoc_id->new_line.

CLEAR : dl_text.

dl_text = 'Total For First 12 Cycles :'.

CALL METHOD dg_dyndoc_id->add_gap.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = count3.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

CALL METHOD dg_dyndoc_id->add_gap

EXPORTING

width = 96.

dl_text = 'Register No :'.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = wa_p0040-zzregno.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

*---new line 5

CALL METHOD dg_dyndoc_id->new_line.

CLEAR : dl_text.

dl_text = 'Total For Last 12 Cycles :'.

CALL METHOD dg_dyndoc_id->add_gap.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = count4.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

CALL METHOD dg_dyndoc_id->add_gap

EXPORTING

width = 96.

dl_text = 'Engine No :'.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = wa_p0040-zzengno.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

*---new line 6

CALL METHOD dg_dyndoc_id->new_line.

CLEAR : dl_text.

clear count3.

count3 = count1 + count2.

dl_text = 'Total For 24 Months :'.

CALL METHOD dg_dyndoc_id->add_gap.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = count3.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

CALL METHOD dg_dyndoc_id->add_gap

EXPORTING

width = 102.

dl_text = 'Chasis No :'.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = wa_p0040-zzchno.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

clear count4.

count4 = 360 - count3.

*---new line 7

CALL METHOD dg_dyndoc_id->new_line.

CLEAR : dl_text.

dl_text = 'Balance To Be Achieved :'.

CALL METHOD dg_dyndoc_id->add_gap.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = count4.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

CALL METHOD dg_dyndoc_id->add_gap

EXPORTING

width = 93.

dl_text = 'Cost in INR :'.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

dl_text = wa_p0040-zzcost.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

*---new line 8

CALL METHOD dg_dyndoc_id->new_line.

CLEAR : dl_text.

dl_text = 'Note :'.

CALL METHOD dg_dyndoc_id->add_gap.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

IF count3 = 360.

dl_text = 'Performance Norms Met Transfer Bike'.

ELSEIF count3 LT 360.

dl_text = 'Performance Norms Not Met Extend OYBS Period'.

ENDIF.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

CALL METHOD dg_dyndoc_id->add_gap

EXPORTING

width = 46.

dl_text = 'Date Of Transfer :'.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_heading_int.

CLEAR : dl_text.

CLEAR date12.

IF wa_p0040-zzdate IS NOT INITIAL.

concatenate wa_p0040-zzdate6(2) wa_p0040-zzdate4(2) wa_p0040-zzdate+0(4) INTO date12 SEPARATED By '.'.

dl_text = date12.

ELSE.

concatenate wa_p0040-endda6(2) wa_p0040-endda4(2) wa_p0040-endda+0(4) INTO date12 SEPARATED By '.'.

dl_text = date12.

ENDIF.

CALL METHOD v_dyndoc_id->add_text

EXPORTING

text = dl_text.

  • sap_emphasis = cl_dd_area=>heading

  • sap_color = cl_dd_area=>list_negative_inv.

CLEAR : dl_text.

*----


  • CALL METHOD dg_dyndoc_id->add_gap

*

  • EXPORTING

*

  • width = 200.

*

*

  • CALL METHOD v_dyndoc_id->add_picture

*

  • EXPORTING

*

  • picture_id = 'ENJOYSAP_LOGO'.

*

*

    • Add new-line

*

  • CALL METHOD dg_dyndoc_id->new_line.

*

*

    • CALL METHOD dg_dyndoc_id->new_line.

*

*

*

  • CLEAR : dl_text.

*

*

    • program ID

*

    • dl_text = 'Program Name :'.

*

**

*

    • CALL METHOD dg_dyndoc_id->add_gap.

*

**

*

    • CALL METHOD v_dyndoc_id->add_text

*

    • EXPORTING

*

    • text = dl_text

*

    • sap_emphasis = cl_dd_area=>heading

*

    • sap_color = cl_dd_area=>list_heading_int.

*

**

*

    • CLEAR dl_text.

*

**

*

    • dl_text = sy-repid.

*

**

*

    • CALL METHOD v_dyndoc_id->add_text

*

    • EXPORTING

*

    • text = dl_text

*

    • sap_emphasis = cl_dd_area=>heading

*

    • sap_color = cl_dd_area=>list_negative_inv.

*

*

    • Add new-line

*

  • CALL METHOD dg_dyndoc_id->new_line.

*

*

*

  • CLEAR : dl_text.

*

*

*

  • CLEAR : dl_text.

*

*

    • program ID

*

  • dl_text = 'User Name :'.

*

*

  • CALL METHOD dg_dyndoc_id->add_gap.

*

*

  • CALL METHOD v_dyndoc_id->add_text

*

  • EXPORTING

*

  • text = dl_text

*

  • sap_emphasis = cl_dd_area=>heading.

*

    • sap_color = cl_dd_area=>list_heading_int.

*

*

  • CLEAR dl_text.

*

*

  • dl_text = sy-uname.

*

*

  • CALL METHOD v_dyndoc_id->add_text

*

  • EXPORTING

*

  • text = dl_text

*

  • sap_emphasis = cl_dd_area=>heading

*

  • sap_color = cl_dd_area=>list_negative_inv.

*

*

    • Add new-line

*

  • CALL METHOD dg_dyndoc_id->new_line.

*

*

*

  • CLEAR : dl_text.

*

*

    • Run Date

*

  • dl_text = 'Run Date :'.

*

*

  • CALL METHOD dg_dyndoc_id->add_gap.

*

*

  • CALL METHOD v_dyndoc_id->add_text

*

  • EXPORTING

*

  • text = dl_text

*

  • sap_emphasis = cl_dd_area=>heading

*

  • sap_color = cl_dd_area=>list_heading_int.

*

*

  • CLEAR dl_text.

*

*

    • Move date

*

  • WRITE sy-datum TO dl_text.

*

*

  • CALL METHOD v_dyndoc_id->add_text

*

  • EXPORTING

*

  • text = dl_text

*

  • sap_emphasis = cl_dd_area=>heading

*

  • sap_color = cl_dd_area=>list_negative_inv.

*

*

    • Add new-line

*

  • CALL METHOD dg_dyndoc_id->new_line.

*

*

  • CLEAR : dl_text.

*

*

**Time

*

  • dl_text = 'Time :'.

*

*

  • CALL METHOD dg_dyndoc_id->add_gap.

*

*

  • CALL METHOD v_dyndoc_id->add_text

*

  • EXPORTING

*

  • text = dl_text

*

  • sap_emphasis = cl_dd_area=>heading

*

  • sap_color = cl_dd_area=>list_heading_int.

*

*

  • CLEAR dl_text.

*

*

    • Move time

*

  • WRITE sy-uzeit TO dl_text.

*

*

  • CALL METHOD v_dyndoc_id->add_text

*

  • EXPORTING

*

  • text = dl_text

*

  • sap_emphasis = cl_dd_area=>heading

*

  • sap_color = cl_dd_area=>list_negative_inv.

*

*

    • Add new-line

*

  • CALL METHOD dg_dyndoc_id->new_line.

*

*

CALL METHOD v_dyndoc_id->display_document

EXPORTING

  • REUSE_CONTROL = 'X'

reuse_registration = 'X'

parent = v_top_cont.

*PERFORM DISPLAY.

ENDFORM. " EVENT_TOP_OF_PAGE

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

*&----


*

*& Form create_top_con

*&----


FORM create_top_con.

  • DATA: g_grid TYPE REF TO cl_gui_alv_grid.

CREATE OBJECT v_custom_cont

EXPORTING container_name = 'CUSTOM'.

  • Create TOP-Document

CREATE OBJECT v_dyndoc_id

EXPORTING style = 'ALV_GRID'.

  • Create Splitter for custom_container

CREATE OBJECT v_splitter

EXPORTING parent = v_custom_cont

rows = 2

columns = 1.

CALL METHOD v_splitter->get_container

EXPORTING

row = 1

column = 1

RECEIVING

container = v_top_cont.

CALL METHOD v_splitter->get_container

EXPORTING

row = 2

column = 1

RECEIVING

container = v_grid_cont.

  • Set height for g_parent_html

CALL METHOD v_splitter->set_row_height

EXPORTING

id = 1

height = 35.

ENDFORM. " create_top_con

*&----


*

*& Form create_grid_con

*&----


*

FORM create_grid_con.

*

  • CREATE OBJECT v_container

*

  • EXPORTING

*

  • container_name = 'CUSTOM'.

CREATE OBJECT v_alv

EXPORTING

i_parent = v_grid_cont.

CREATE OBJECT handler_event.

SET HANDLER handler_event->top_of_page FOR v_alv.

  • CALL METHOD v_alv->set_table_for_first_display

*

  • EXPORTING

*

    • I_BYPASSING_BUFFER =

*

    • I_BUFFER_ACTIVE =

*

    • I_CONSISTENCY_CHECK =

*

    • I_STRUCTURE_NAME =

*

    • IS_VARIANT =

*

  • i_save = 'A'

*

    • I_DEFAULT = 'X'

*

  • is_layout = t_layout

*

    • IS_PRINT =

*

    • T_SPECIAL_GROUPS =

*

    • T_TOOLBAR_EXCLUDING =

*

    • T_HYPERLINK =

*

    • T_ALV_GRAPHICS =

*

  • CHANGING

*

  • it_outtab = It_disp[]

*

  • it_fieldcatalog = t_field[]

*

    • T_SORT =

*

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

call method v_alv->set_table_for_first_display

exporting

  • is_variant = w_variant

i_save = 'X'

i_default = 'X'

is_layout = t_layout

  • it_toolbar_excluding = w_exclude1

changing

it_outtab = it_disp[]

it_fieldcatalog = t_field[]

  • it_sort = t_sort[]

exceptions

invalid_parameter_combination = 1

program_error = 2

too_many_lines = 3

others = 4.

ENDFORM. " create_grid_con

if it is usefull Plz Reward

Regards

Anbu