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

ALV COLOR PROGRAM

Former Member
0 Likes
1,357

Hi,

Please send me a sample prgm for colouring a single cell in an alv report.

1 ACCEPTED SOLUTION
Read only

anversha_s
Active Contributor
0 Likes
1,305

hi,

1. declare one field say color in the output table of type SLIS_T_SPECIALCOL_ALV.

2. Also declare a table color like 
DATA COLOR TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE. 

3. After you have filled the field catalog do like this,

LOOP AT IT_ALV_DATA.
IF SY-TABIX = 2.
COLOR-FIELDNAME = 'POSNR'.
COLOR-COLOR-COL = 6.
COLOR-COLOR-INT = 0.
APPEND COLOR.
IT_ALV_DATA-COLOR = COLOR[].
MODIFY IT_ALV_DATA.
ENDIF.
ENDLOOP.

Rgds

Anversha

10 REPLIES 10
Read only

Former Member
0 Likes
1,305

hi,

check this example..


* Macro definition
DEFINE m_fieldcat.
  add 1 to ls_fieldcat-col_pos.
  ls_fieldcat-fieldname   = &1.
  ls_fieldcat-ref_tabname = &2.
  append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.

TYPE-POOLS: slis.                      " ALV Global types

TYPES:
  BEGIN OF ty_vbak,
    vkorg TYPE vbak-vkorg,             " Sales organization
    kunnr TYPE vbak-kunnr,             " Sold-to party
    vbeln TYPE vbak-vbeln,             " Sales document
    netwr TYPE vbak-netwr,             " Net Value of the Sales Order
    line_color(4),                     " Line color
  END OF ty_vbak.

DATA:
* Data displayed
  gt_vbak TYPE TABLE OF ty_vbak.

START-OF-SELECTION.

  PERFORM f_read_data.

  PERFORM f_fill_color.

  PERFORM f_display_data.

*---------------------------------------------------------------------*
*      Form  f_read_data
*---------------------------------------------------------------------*
FORM f_read_data.

  SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_vbak
           FROM vbak UP TO 100 ROWS.

ENDFORM.                               " F_READ_DATA
*--------------------------------------------------------------------*
*      Form  f_fill_color
*--------------------------------------------------------------------*
FORM f_fill_color.

  DATA l_rnd_value TYPE integer2.

  FIELD-SYMBOLS <vbak> TYPE ty_vbak.

  LOOP AT gt_vbak ASSIGNING <vbak>.

*   Random value
    CALL FUNCTION 'RANDOM_I2'
      EXPORTING
        rnd_min   = 0
        rnd_max   = 3
      IMPORTING
        rnd_value = l_rnd_value.

    CASE l_rnd_value.
      WHEN 0.
        <vbak>-line_color = 'C100'.   " Blue.
      WHEN 1.
        <vbak>-line_color = 'C300'.   " Yellow.
      WHEN 2.
        <vbak>-line_color = 'C500'.   " Green.
      WHEN 3.
        <vbak>-line_color = 'C600'.   " Red.
    ENDCASE.

  ENDLOOP.

ENDFORM.                               " F_FILL_COLOR
*---------------------------------------------------------------------*
*      Form  f_display_data
*---------------------------------------------------------------------*
FORM f_display_data.

  DATA:
    ls_layout   TYPE slis_layout_alv,
    ls_fieldcat TYPE slis_fieldcat_alv,
    lt_fieldcat TYPE slis_t_fieldcat_alv.

* Build the field catalog
  m_fieldcat 'VKORG' 'VBAK'.
  m_fieldcat 'KUNNR' 'VBAK'.
  m_fieldcat 'VBELN' 'VBAK'.
  m_fieldcat 'NETWR' 'VBAK'.

* Fill Layout - Name of the field with color
  ls_layout-info_fieldname = 'LINE_COLOR'.

* Display the list
  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
      is_layout   = ls_layout
      it_fieldcat = lt_fieldcat
    TABLES
      t_outtab    = gt_vbak.

ENDFORM.                               " F_DISPLAY_DATA

Thanks

Naren

Read only

Former Member
0 Likes
1,305

ALV grid display

The follow program demonstrates how to change the colour of individual rows of an ALV grid. Changes required

from a basic ALV grid include adding a new field to ALV grid data table(it_ekko), Populating this field with color

attribute and adding an entry to layout control table.

*&---------------------------------------------------------------------*
*& Report  ZDEMO_ALVGRID                                               *
*&                                                                     *
*&---------------------------------------------------------------------*
*&                                                                     *
*& Example of a simple ALV Grid Report                                 *
*& ...................................                                 *
*&                                                                     *
*& The basic ALV grid, Enhanced to display each row in a different     *
*& colour                                                              *
*&---------------------------------------------------------------------*

REPORT  zdemo_alvgrid                 .

TABLES:     ekko.

type-pools: slis.                                 "ALV Declarations
*Data Declaration
*----------------
TYPES: BEGIN OF t_ekko,
  ebeln TYPE ekpo-ebeln,
  ebelp TYPE ekpo-ebelp,
  statu TYPE ekpo-statu,
  aedat TYPE ekpo-aedat,
  matnr TYPE ekpo-matnr,
  menge TYPE ekpo-menge,
  meins TYPE ekpo-meins,
  netpr TYPE ekpo-netpr,
  peinh TYPE ekpo-peinh,
  line_color(4) type c,     "Used to store row color attributes
 END OF t_ekko.

DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
      wa_ekko TYPE t_ekko.

*ALV data declarations
data: fieldcatalog type slis_t_fieldcat_alv with header line,
      gd_tab_group type slis_t_sp_group_alv,
      gd_layout    type slis_layout_alv,
      gd_repid     like sy-repid.


************************************************************************
*Start-of-selection.
START-OF-SELECTION.

perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
perform display_alv_report.


*&---------------------------------------------------------------------*
*&      Form  BUILD_FIELDCATALOG
*&---------------------------------------------------------------------*
*       Build Fieldcatalog for ALV Report
*----------------------------------------------------------------------*
form build_fieldcatalog.

* There are a number of ways to create a fieldcat.
* For the purpose of this example i will build the fieldcatalog manualy
* by populating the internal table fields individually and then
* appending the rows. This method can be the most time consuming but can
* also allow you  more control of the final product.

* Beware though, you need to ensure that all fields required are
* populated. When using some of functionality available via ALV, such as
* total. You may need to provide more information than if you were
* simply displaying the result
*               I.e. Field type may be required in-order for
*                    the 'TOTAL' function to work.

  fieldcatalog-fieldname   = 'EBELN'.
  fieldcatalog-seltext_m   = 'Purchase Order'.
  fieldcatalog-col_pos     = 0.
  fieldcatalog-outputlen   = 10.
  fieldcatalog-emphasize   = 'X'.
  fieldcatalog-key         = 'X'.
*  fieldcatalog-do_sum      = 'X'.
*  fieldcatalog-no_zero     = 'X'.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'EBELP'.
  fieldcatalog-seltext_m   = 'PO Item'.
  fieldcatalog-col_pos     = 1.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'STATU'.
  fieldcatalog-seltext_m   = 'Status'.
  fieldcatalog-col_pos     = 2.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'AEDAT'.
  fieldcatalog-seltext_m   = 'Item change date'.
  fieldcatalog-col_pos     = 3.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'MATNR'.
  fieldcatalog-seltext_m   = 'Material Number'.
  fieldcatalog-col_pos     = 4.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'MENGE'.
  fieldcatalog-seltext_m   = 'PO quantity'.
  fieldcatalog-col_pos     = 5.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'MEINS'.
  fieldcatalog-seltext_m   = 'Order Unit'.
  fieldcatalog-col_pos     = 6.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'NETPR'.
  fieldcatalog-seltext_m   = 'Net Price'.
  fieldcatalog-col_pos     = 7.
  fieldcatalog-outputlen   = 15.
  fieldcatalog-datatype     = 'CURR'.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.

  fieldcatalog-fieldname   = 'PEINH'.
  fieldcatalog-seltext_m   = 'Price Unit'.
  fieldcatalog-col_pos     = 8.
  append fieldcatalog to fieldcatalog.
  clear  fieldcatalog.
endform.                    " BUILD_FIELDCATALOG


*&---------------------------------------------------------------------*
*&      Form  BUILD_LAYOUT
*&---------------------------------------------------------------------*
*       Build layout for ALV grid report
*----------------------------------------------------------------------*
form build_layout.
  gd_layout-no_input          = 'X'.
  gd_layout-colwidth_optimize = 'X'.
  gd_layout-totals_text       = 'Totals'(201).
* Set layout field for row attributes(i.e. color) 
  gd_layout-info_fieldname =      'LINE_COLOR'.
*  gd_layout-totals_only        = 'X'.
*  gd_layout-f2code            = 'DISP'.  "Sets fcode for when double
*                                         "click(press f2)
*  gd_layout-zebra             = 'X'.
*  gd_layout-group_change_edit = 'X'.
*  gd_layout-header_text       = 'helllllo'.
endform.                    " BUILD_LAYOUT


*&---------------------------------------------------------------------*
*&      Form  DISPLAY_ALV_REPORT
*&---------------------------------------------------------------------*
*       Display report using ALV grid
*----------------------------------------------------------------------*
form display_alv_report.
  gd_repid = sy-repid.
  call function 'REUSE_ALV_GRID_DISPLAY'
       exporting
            i_callback_program      = gd_repid
*            i_callback_top_of_page   = 'TOP-OF-PAGE'  "see FORM
*            i_callback_user_command = 'USER_COMMAND'
*            i_grid_title           = outtext
            is_layout               = gd_layout
            it_fieldcat             = fieldcatalog[]
*            it_special_groups       = gd_tabgroup
*            IT_EVENTS                = GT_XEVENTS
            i_save                  = 'X'
*            is_variant              = z_template

       tables
            t_outtab                = it_ekko
       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.                    " DISPLAY_ALV_REPORT


*&---------------------------------------------------------------------*
*&      Form  DATA_RETRIEVAL
*&---------------------------------------------------------------------*
*       Retrieve data form EKPO table and populate itab it_ekko
*----------------------------------------------------------------------*
form data_retrieval.
data: ld_color(1) type c.

select ebeln ebelp statu aedat matnr menge meins netpr peinh
 up to 10 rows
  from ekpo
  into table it_ekko.

*Populate field with color attributes
loop at it_ekko into wa_ekko.
* Populate color variable with colour properties
* Char 1 = C (This is a color property)
* Char 2 = 3 (Color codes: 1 - 7)
* Char 3 = Intensified on/off ( 1 or 0 )
* Char 4 = Inverse display on/off ( 1 or 0 )
*           i.e. wa_ekko-line_color = 'C410'
  ld_color = ld_color + 1.

* Only 7 colours so need to reset color value
  if ld_color = 8.
    ld_color = 1.
  endif.
  concatenate 'C' ld_color '10' into wa_ekko-line_color.
*  wa_ekko-line_color = 'C410'.
  modify it_ekko from wa_ekko.
endloop.
endform.                    " DATA_RETRIEVAL

 

Reward points if it is usefull ..

Girish

Read only

anversha_s
Active Contributor
0 Likes
1,306

hi,

1. declare one field say color in the output table of type SLIS_T_SPECIALCOL_ALV.

2. Also declare a table color like 
DATA COLOR TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE. 

3. After you have filled the field catalog do like this,

LOOP AT IT_ALV_DATA.
IF SY-TABIX = 2.
COLOR-FIELDNAME = 'POSNR'.
COLOR-COLOR-COL = 6.
COLOR-COLOR-INT = 0.
APPEND COLOR.
IT_ALV_DATA-COLOR = COLOR[].
MODIFY IT_ALV_DATA.
ENDIF.
ENDLOOP.

Rgds

Anversha

Read only

Former Member
0 Likes
1,305

hi,

Try to use emphasie in your Fieldcatalog... please look at type pool : slis for more help....

i.e. when you are writing the code for populating the fieldcatalog table use a field emphasize .. along with it... it has got diffrent numbers for diff. colors....

Please look at this...

  • 0 = background color *

  • 1 = blue *

  • 2 = gray *

  • 3 = yellow *

  • 4 = blue/gray *

  • 5 = green *

  • 6 = red *

  • 7 = orange *

fieldcatalog-fieldname = 'EBELN'.

fieldcatalog-seltext_m = 'Purchase Order No'.

fieldcatalog-col_pos = 1.

fieldcatalog-emphasize = 'C310'. " intensive yellow, 'C510' = intensive green

append fieldcatalog .

clear fieldcatalog.

Report YSDBALV.

tables: ekko , ekpo .

type-pools: slis .

  • Table for Display Header

data:i_header type slis_t_listheader with header line.

*Fieldcat Declaration

data:fieldcatalog type slis_T_fieldcat_alv WITH HEADER LINE.

*Table of Events

data:i_event type slis_t_event with header line .

  • For Layout

data:i_layout type slis_layout_alv .

data: text(30) .

*Internal Table Declaration

data: begin of it_final occurs 0 ,

ebeln like ekko-ebeln , "Purchasing Document No.

bedat like ekko-bedat , "Purchasing Document Date

matnr like ekpo-matnr , "Material No.

netwr like ekpo-netwr , "Net Order Value in PO Currancy

meins like ekpo-meins , "UOM

chk(1) ,

light(1) ,

change like ekpo-menge ,

end of it_final .

**select option Declaration

selection-screen begin of block block.

select-options: s_ebeln for ekko-ebeln .

selection-screen end of block block .

selection-screen begin of block block1 .

parameters:grid radiobutton group r .

parameters:list radiobutton group r .

selection-screen end of block block1 .

    • at selection screen

at selection-screen .

select single * from ekko where ebeln in s_ebeln .

if sy-subrc <> 0 .

message e000(8I) WITH 'No Data Exists' .

endif .

start-of-selection .

if grid = 'X' .

perform get_data .

perform event using i_event[] .

perform field using fieldcatalog[] .

perform layout using i_layout .

perform grid_display .

endif .

&----


*& Form get_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_data .

*DATA Retrieval from tables

SELECT EKKO~EBELN

EKKO~BEDAT

EKPO~EBELP

EKPO~MATNR

EKPO~NETWR

EKPO~MEINS

EKPO~MENGE

EKPO~BPRME

INTO CORRESPONDING FIELDS OF table IT_FINAL

FROM EKKO INNER JOIN EKPO ON EKKOEBELN = EKPOEBELN

WHERE EKKO~EBELN IN S_EBELN.

APPEND IT_FINAL.

endform. " get_data

*Getting the Event for Top of Page display.

&----


*& Form event

&----


  • text

----


  • -->P_I_event[] text

----


form event using p_i_event type slis_t_event.

clear p_i_event .

refresh p_i_event .

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = p_i_event

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2

read table p_i_event with key name = slis_ev_top_of_page into i_event.

if sy-subrc = 0.

move 'TOP_OF_PAGE_PO' to i_event-form.

modify p_i_event from i_event index sy-tabix transporting form.

endif.

clear i_event.

endform. " event

*Display Top-of –Page Details and Logo

form top_of_page_po .

clear i_header .

refresh i_header .

write sy-datum to text.

i_header-typ = 'H'.

i_header-info = 'PURCHASE OREDER DETAILS'.

append i_header.

*Logo Display

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = i_header[]

I_LOGO = 'ENJOYSAPLOGO'.

endform .

*Field Catalog Append

&----


*& Form field

&----


  • text

----


  • -->P_fieldCATALOG[] text

----


form field using p_fieldcatalog type slis_t_fieldcat_alv.

  • clear fieldcatalog.

fieldcatalog-fieldname = 'EBELN'.

fieldcatalog-emphasize = 'C311'.

fieldcatalog-seltext_m = 'Purchase Order No'.

fieldcatalog-col_pos = 1.

append fieldcatalog .

clear fieldcatalog.

fieldcatalog-fieldname = 'BEDAT'.

fieldcatalog-seltext_m = 'PO Date'.

fieldcatalog-col_pos = 2.

append fieldcatalog .

clear fieldcatalog.

fieldcatalog-fieldname = 'MATNR'.

fieldcatalog-seltext_m = 'Material No'.

fieldcatalog-emphasize = 'C511'.

fieldcatalog-col_pos = 4.

fieldcatalog-outputlen = 20.

append fieldcatalog .

clear fieldcatalog.

fieldcatalog-fieldname = 'NETWR'.

fieldcatalog-seltext_m = 'Net Value '.

fieldcatalog-col_pos = 5.

fieldcatalog-outputlen = 20.

fieldcatalog-do_sum = 'X'.

append fieldcatalog .

clear fieldcatalog.

fieldcatalog-fieldname = 'MEINS'.

fieldcatalog-seltext_m = 'Units'.

fieldcatalog-col_pos = 6.

fieldcatalog-outputlen = 4.

append fieldcatalog .

clear fieldcatalog.

endform. " field

&----


*& Form layout

&----


  • text

form layout using p_i_layout TYPE SLIS_LAYOUT_ALV .

i_layout-zebra = 'X'.

i_layout-lights_fieldname = 'LIGHT'.

i_layout-lights_tabname = 'IT_FINAL'.

i_layout-box_fieldname = 'CHK'.

i_layout-box_tabname = 'IT_FINAL'.

i_layout-edit = ' '.

endform.

*To display Buttons in the MENU BAR if needed

FORM SET_PO_PF_STATUS USING P_I_EXTAB TYPE

SLIS_T_EXTAB.

SET PF-STATUS 'MENUPO'.

ENDFORM.

*Event for Interactive display of ALV report

form USER_COMMAND using r_ucomm like sy-ucomm

rs_selfield type slis_selfield .

if r_ucomm = '&IC1'.

READ TABLE IT_FINAL index rs_selfield-tabindex.

write:/ IT_FINAL-ebeln.

endif.

endform .

*Parameters of FM REUSE_ALV_GRID_DISPLAY

&----


*& Form grid_display

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form grid_display .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = 'SET_PO_PF_STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = FIELDCATALOG[]

IT_EVENTS = I_EVENT[]

TABLES

t_outtab = IT_FINAL.

endform. " grid_display

Read only

Former Member
0 Likes
1,305

HI,

program for coloring rows:

TABLES:LFA1.

SELECT-OPTIONS:LIFNR FOR LFA1-LIFNR.

DATA:BEGIN OF ITAB OCCURS 0,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

LAND1 LIKE LFA1-LAND1,

ORT01 LIKE LFA1-ORT01,

REGIO LIKE LFA1-REGIO,

SORTL LIKE LFA1-SORTL,

CFIELD(4) TYPE C,

END OF ITAB.

data:col(4).

data:num value '1'.

SELECT * FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE ITAB WHERE LIFNR

IN LIFNR.

LOOP AT ITAB.

concatenate 'C' num '10' into col .

ITAB-CFIELD = col.

num = num + 1.

if num = '8'.

num = '1'.

endif.

MODIFY ITAB.

ENDLOOP.

TYPE-POOLS:SLIS.

DATA:FCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA:LAYOUT TYPE SLIS_LAYOUT_ALV.

DATA:SORT TYPE slis_t_sortinfo_alv WITH HEADER LINE.

DATA:EVE TYPE SLIS_T_EVENT WITH HEADER LINE.

LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

LAYOUT-WINDOW_TITLEBAR = 'VENDORS DETAILS SCREEN'.

LAYOUT-EDIT = 'X'.

LAYOUT-info_fieldname = 'CFIELD'.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

I_INCLNAME = SY-REPID

CHANGING

CT_FIELDCAT = FCAT.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FCAT

TABLES

T_OUTTAB = ITAB.

program for coloring cols:

REPORT ZBHCOLOR_COLS.

TABLES:LFA1.

SELECT-OPTIONS:C_LIFNR FOR LFA1-LIFNR. " FOR GRID ONLY

PARAMETERS:LIST RADIOBUTTON GROUP ALV DEFAULT 'X',

GRID RADIOBUTTON GROUP ALV.

DATA:BEGIN OF ITAB OCCURS 0,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

LAND1 LIKE LFA1-LAND1,

ORT01 LIKE LFA1-ORT01,

SORTL LIKE LFA1-SORTL,

REGIO LIKE LFA1-REGIO,

COL TYPE LVC_T_SCOL,

END OF ITAB.

DATA:COLR TYPE LVC_S_SCOL.

SELECT * FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE ITAB.

LOOP AT ITAB.

IF ITAB-LIFNR IN C_LIFNR.

COLR-FNAME = 'NAME1'.

COLR-COLOR-COL = '5'.

COLR-COLOR-INT = '1'.

COLR-COLOR-INV = '0'.

COLR-NOKEYCOL = 'X'.

APPEND COLR TO ITAB-COL.

COLR-FNAME = 'LIFNR'.

APPEND COLR TO ITAB-COL.

MODIFY ITAB.

ENDIF.

ENDLOOP.

TYPE-POOLS:SLIS.

DATA:FCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA:LAYOUT TYPE SLIS_LAYOUT_ALV.

LAYOUT-ZEBRA = 'X'.

layout-coltab_fieldname = 'COL'.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

  • I_STRUCTURE_NAME =

  • I_CLIENT_NEVER_DISPLAY = 'X'

I_INCLNAME = SY-REPID

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = FCAT

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

IF LIST = 'X'.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_STRUCTURE_NAME =

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = ITAB

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ELSEIF GRID = 'X'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = SY-REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

  • I_CALLBACK_USER_COMMAND = ' '

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FCAT

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

T_OUTTAB = ITAB

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

.

IF SY-SUBRC <> 0.

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

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

ENDIF.

ENDIF.

rgds,

bharat.

Read only

Former Member
0 Likes
1,305

*&----


REPORT zsd_sales_prodgroup

LINE-SIZE 351

NO STANDARD PAGE HEADING

LINE-COUNT 65

MESSAGE-ID 00.

INCLUDE zcommon_part.

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

  • TABLES *

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

TABLES: vbrk, "Billing Document: Header Data

vbrp, "Billing Document: Item Data

zsd_national, "Table for National level reports

mara, "General Material Data

t179t. "P

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

  • INTERNAL TABLES AND STRUCTURES *

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

DATA: BEGIN OF it_data OCCURS 0.

INCLUDE STRUCTURE zsd_national.

  • vkbur like zsd_national-vkbur,

  • SUMMERY like zsd_national-SUMMERY,

  • sum_text like zsd_national-sum_text,

  • sqno like zsd_national-sqno,

DATA: vbeln LIKE vbrk-vbeln,

matnr LIKE vbrp-matnr,

q1(20)," like vbrp-fkimg,

q2(20)," like vbrp-fkimg,

q3(20)," like vbrp-fkimg,

q4(20)," like vbrp-fkimg,

wk1(20)," like vbrp-fkimg,

wk2(20)," like vbrp-fkimg,

wk3(20)," like vbrp-fkimg,

wk4(20)," like vbrp-fkimg,

wk5(20)," like vbrp-fkimg,

wk6(20)," like vbrp-fkimg,

wk7(20)," like vbrp-fkimg,

wk8(20)," like vbrp-fkimg,

wk9(20)," like vbrp-fkimg,

wk10(20)," like vbrp-fkimg,

wk11(20)," like vbrp-fkimg,

wk12(20)," like vbrp-fkimg,

wk13(20)," like vbrp-fkimg,

wk_tot(20)," like vbrp-fkimg,

fkimg(20)," like vbrp-fkimg,

tot_week(20)," like vbrp-fkimg,

ason_total(20)," like vbrp-fkimg,

ly_total(20)," like vbrp-fkimg,

allindia(20)," like vbrp-fklmg,

goly TYPE i,

tons LIKE vbrp-fkimg,

  • allindia like vbrp-fkimg,

color TYPE lvc_t_scol,

END OF it_data.

DATA: BEGIN OF it_vbrp OCCURS 0,

fkdat LIKE vbrk-fkdat,

vkorg LIKE vbrk-vkorg,

vtweg LIKE vbrk-vtweg,

fkart LIKE vbrk-fkart,

fkimg LIKE vbrp-fkimg,

umvkz LIKE vbrp-umvkz,

umvkn LIKE vbrp-umvkn,

fklmg LIKE vbrp-fklmg,

vkbur LIKE vbrp-vkbur,

vbeln LIKE vbrp-vbeln,

matnr LIKE vbrp-matnr,

prodh LIKE vbrp-prodh,

matkl LIKE vbrp-matkl,

END OF it_vbrp.

DATA: BEGIN OF it_vbeln OCCURS 0,

vbeln LIKE vbrk-vbeln,

fkart LIKE vbrk-fkart,

fkdat LIKE vbrk-fkdat,

vkorg LIKE vbrk-vkorg,

vtweg LIKE vbrk-vtweg,

END OF it_vbeln.

DATA: BEGIN OF it_prmatnr OCCURS 0,

ntgew LIKE mara-ntgew, "netweight

matnr LIKE mvke-matnr,

prodh LIKE mvke-prodh,

vkorg LIKE mvke-vkorg,

vtweg LIKE mvke-vtweg,

END OF it_prmatnr.

DATA: it_data_temp LIKE it_data OCCURS 0 WITH HEADER LINE.

DATA: color TYPE TABLE OF lvc_s_scol WITH HEADER LINE.

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

*ALV VARIABLES AND INTERNAL TABLES *

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

TYPE-POOLS: slis.

DATA: v_repid LIKE sy-repid,

st_layout TYPE slis_layout_alv,

it_fieldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE,

it_listheader TYPE slis_t_listheader,

it_event TYPE slis_t_event.

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

*VARIABLES *

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

DATA: v_pc LIKE t009b-periv VALUE 'PC',

v_wc LIKE t009b-periv VALUE 'WC',

v_date LIKE sy-datum,

v_ly_date LIKE sy-datum,

v_qtr_fir_date LIKE sy-datum,

v_yr_fir_date LIKE sy-datum,

v_yr_last_date LIKE sy-datum,

v_month LIKE t009b-poper,

v_lastmonth LIKE t009b-poper,

v_back_months LIKE t009b-poper,

v_curweek LIKE t009b-poper,

v_fdate LIKE sy-datum,

v_cyfd LIKE sy-datum,

v_lyfd LIKE sy-datum,

v_ldate LIKE sy-datum,

v_year LIKE t009b-bdatj,

v_last_year LIKE t009b-bdatj,

v_fkimg(20), " like vbrp-fkimg ,

v_fkimg1(20) ,

v_goly_lyfkimg LIKE vbrp-fkimg ,

v_goly_cyfkimg LIKE vbrp-fkimg ,

vtext LIKE t179t-vtext,

v_cnt(2) TYPE c, "For Counter

v_fld(6) TYPE c, " For Field name

v_qtr LIKE t009b-poper,

l_pos TYPE i VALUE 1, "Position indicator for

v_wk(4),

v_fldtxt(15) TYPE c, "fieldcatalog

v_last_qtr LIKE t009b-poper,

v_curpc TYPE n,

v_colposi(2) TYPE n,

v_currqtr LIKE t009b-poper,

v_next_qtr LIKE t009b-poper,

v_fpc LIKE t009b-poper,

v_lpc LIKE t009b-poper,

v_unit LIKE mara-meins.

INITIALIZATION.

v_repid = sy-repid.

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

*SELECTION SCREEN DEFINITIONS *

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

SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE text-000.

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

PARAMETERS: p_date TYPE sy-datum OBLIGATORY.

SELECT-OPTIONS: s_prodh FOR mara-prdha OBLIGATORY.

SELECTION-SCREEN END OF BLOCK b1.

  • selection-screen skip.

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

SELECT-OPTIONS: s_vkorg FOR vbrk-vkorg,

s_vtweg FOR vbrk-vtweg.

PARAMETERS : p_spart TYPE vbrk-spart.

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.

SELECT-OPTIONS : so_rev FOR vbrk-fkart NO INTERVALS.

SELECTION-SCREEN END OF BLOCK b3.

SELECTION-SCREEN END OF BLOCK b.

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

*START-OF-SELECTION

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

START-OF-SELECTION.

perform check_background using sy-batch sy-uname.

PERFORM find_qtr.

PERFORM get_vbrk-vbrp.

PERFORM get_data.

PERFORM get_ly_data.

PERFORM add_data.

*TO add the Speciality details in the speciality sales total column.

perform add_data_speciality.

  • PERFORM delete_data.

PERFORM color_data.

IF it_data[] IS NOT INITIAL.

PERFORM output_data.

ELSE.

MESSAGE i012(zmsg).

ENDIF.

END-OF-SELECTION.

TOP-OF-PAGE.

PERFORM alv_events USING it_event.

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

*END-OF-SELECTION

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

&----


*& Form find_qtr

&----


FORM find_qtr .

CLEAR v_date.

CLEAR v_month.

CLEAR v_date.

v_date = p_date.

*Finding the period from selected date.

PERFORM get_period USING v_date v_pc CHANGING v_month v_year .

IF v_month >= '001' AND v_month <= '003'.

v_qtr = 1.

v_month = '001'.

PERFORM get_first_day

USING v_date v_pc v_month

CHANGING v_qtr_fir_date.

ELSEIF v_month >= '004' AND v_month <= '006'.

v_qtr = 2.

v_month = '004'.

PERFORM get_first_day

USING v_date v_pc v_month

CHANGING v_qtr_fir_date.

ELSEIF v_month >= '007' AND v_month <= '009'.

v_qtr = 3.

v_month = '007'.

PERFORM get_first_day

USING v_date v_pc v_month

CHANGING v_qtr_fir_date.

ELSEIF v_month >= '010' AND v_month <= '012'.

v_qtr = 4.

v_month = '010'.

PERFORM get_first_day

USING v_date v_pc v_month

CHANGING v_qtr_fir_date.

ENDIF.

*Getting data for 2 years(present and previous).

v_ly_date = v_date.

v_back_months = 12.

PERFORM go_months_back USING v_date v_back_months CHANGING v_ly_date.

v_month = '001'.

PERFORM get_first_day

USING v_ly_date v_pc v_month

CHANGING v_yr_fir_date.

v_month = '012'.

PERFORM get_last_day

USING v_date v_pc v_month

CHANGING v_yr_last_date.

ENDFORM. " find_qtr

&----


*& Form get_vbrk-vbrp

&----


FORM get_vbrk-vbrp .

SELECT * FROM zsd_national

INTO CORRESPONDING FIELDS OF TABLE it_data .

SORT it_data BY sqno.

  • SELECT * INTO CORRESPONDING FIELDS OF TABLE it_vbeln

  • FROM vbrk

  • WHERE fkdat >= v_yr_fir_date AND

  • fkdat <= v_yr_last_date AND

  • vkorg IN s_vkorg AND

  • vtweg IN s_vtweg AND

  • spart = p_spart AND

  • fkart NOT IN ('G2','ZG2','F8','ZF8').

  • IF it_vbeln[] IS NOT INITIAL.

  • SELECT * INTO CORRESPONDING FIELDS OF TABLE it_vbrp FROM vbrp

  • FOR ALL ENTRIES IN it_vbeln WHERE

  • vbeln = it_vbeln-vbeln

  • AND vkbur <> ' '

  • AND prodh IN s_prodh

  • AND pstyv NOT IN ('TANN','RENN','ZENN', 'ZRNN' ) .

  • and matnr = p_matnr.

  • ENDIF.

  • SORT it_vbeln BY vbeln.

  • SORT it_vbrp BY vbeln.

  • LOOP AT it_vbeln.

  • LOOP AT it_vbrp WHERE vbeln = it_vbeln-vbeln.

  • MOVE-CORRESPONDING it_vbeln TO it_vbrp.

  • MODIFY it_vbrp.

  • CLEAR it_vbrp.

  • ENDLOOP.

  • ENDLOOP.

*Selecting Product Heirarchy Materials.

  • SELECT * INTO CORRESPONDING FIELDS OF TABLE it_prmatnr FROM mvke AS a

  • INNER JOIN mara AS b ON amatnr = bmatnr WHERE

  • a~prodh IN s_prodh AND

  • a~vkorg IN s_vkorg AND

  • a~vtweg IN s_vtweg.

*

*Get billing doc's for last year first day to current year last day

SELECT Avbeln Afkdat Avkorg Avtweg A~fkart

Bfkimg Bumvkz Bumvkn Bfklmg Bvkbur Bmatnr Bprodh Bmatkl

INTO CORRESPONDING FIELDS OF TABLE it_VBRP

FROM vbrk AS A

INNER JOIN VBRP AS B ON Avbeln = Bvbeln

WHERE A~fkdat >= v_yr_fir_date AND

A~fkdat <= v_yr_last_date AND

A~vkorg IN s_vkorg AND

A~vtweg IN s_vtweg AND

A~spart = p_spart AND

A~fkart NOT IN ('G2','ZG2','F8','ZF8') AND

B~vkbur <> ' ' AND

B~prodh IN s_prodh AND

B~pstyv NOT IN ('TANN','RENN','ZENN', 'ZRNN' ) .

*Get materials for sales area and product hier

SELECT matnr prodh vkorg vtweg

INTO CORRESPONDING FIELDS OF TABLE it_prmatnr

FROM mvke

WHERE prodh IN s_prodh AND

vkorg IN s_vkorg AND

vtweg IN s_vtweg.

LOOP AT it_prmatnr.

*Get material net weight

SELECT SINGLE ntgew INTO it_prmatnr-ntgew

FROM mara

WHERE matnr = it_prmatnr-matnr.

MODIFY it_prmatnr.

CLEAR it_prmatnr.

ENDLOOP.

SORT it_vbrp BY matnr.

SORT it_prmatnr BY matnr.

LOOP AT it_vbrp.

clear it_prmatnr.

READ TABLE it_prmatnr WITH KEY matnr = it_vbrp-matnr

vkorg = it_vbrp-vkorg

vtweg = it_vbrp-vtweg.

IF sy-subrc <> 0.

DELETE it_vbrp.

CONTINUE.

ENDIF.

ENDLOOP.

ENDFORM. " get_vbrk-vbrp

&----


*& Form get_data

&----


FORM get_data .

LOOP AT it_data WHERE vkbur <> ' '.

DO 4 TIMES.

CLEAR it_data-fkimg.

*Finding current quarter to get first and last day of this quarter

----


CLEAR v_fkimg.

IF sy-index = 1 AND v_qtr <> sy-index.

v_fpc = 001.

v_lpc = 003.

CLEAR v_fkimg.

CLEAR v_fdate.

CLEAR v_ldate.

PERFORM get_first_last_date.

PERFORM get_fkimg.

PERFORM fill_week USING 'QTR'.

ELSEIF sy-index = 2 AND v_qtr <> sy-index.

v_fpc = 004.

v_lpc = 006.

CLEAR v_fkimg.

CLEAR v_ldate.

CLEAR v_fdate.

PERFORM get_first_last_date.

PERFORM get_fkimg.

PERFORM fill_week USING 'QTR'.

ELSEIF sy-index = 3 AND v_qtr <> sy-index.

v_fpc = 007.

v_lpc = 009.

CLEAR v_ldate.

CLEAR v_fdate.

CLEAR v_fkimg.

PERFORM get_first_last_date.

PERFORM get_fkimg.

PERFORM fill_week USING 'QTR'.

ELSEIF sy-index = 4 AND v_qtr <> sy-index.

v_fpc = 010.

v_lpc = 012.

CLEAR v_ldate.

CLEAR v_fdate.

CLEAR v_fkimg.

PERFORM get_first_last_date.

PERFORM get_fkimg.

PERFORM fill_week USING 'QTR'.

ENDIF.

  • Get the value for fkimg (Invoiced Quantity).

----


  • perform get_fkimg.

  • perform fill_week using 'WK'.

  • Moving value for fkimg

----


ENDDO.

PERFORM get_period

USING v_qtr_fir_date v_wc

CHANGING v_curweek v_year.

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

*Calling subroutines to create fieldcatalog,fill fieldcatalog and

*intenal table dynamicaly based on user selected date(Quarter).

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

DO 13 TIMES.

  • Calling subroutine to get first date of current week

----


CLEAR v_fkimg.

PERFORM get_first_day

USING v_date v_wc v_curweek

CHANGING v_fdate.

  • Calling subroutine to get last date of current week

----


PERFORM get_last_day

USING v_date v_wc v_curweek

CHANGING v_ldate.

PERFORM get_fkimg.

PERFORM fill_week USING 'WK'.

v_curweek = v_curweek + 1.

CLEAR v_fkimg.

ENDDO.

  • CALCULATE TOTAL FOR AS ON DATE YEAR

----


v_fdate = v_cyfd.

v_ldate = sy-datum.

PERFORM get_fkimg.

it_data-ason_total = v_fkimg.

  • CALCULATE TOTAL FOR PREVIOUS YEAR

----


PERFORM get_first_day

USING v_date v_pc '001'

CHANGING v_fdate.

v_cyfd = v_fdate. "current year first day

"(will be used in as on date)

v_back_months = 12.

PERFORM go_months_back USING v_fdate v_back_months CHANGING v_fdate.

v_lyfd = v_fdate. "last year first day(will be used in goly).

PERFORM get_last_day

USING v_lyfd v_pc '012'

CHANGING v_ldate.

  • To be checked

  • v_yr_fir_date = v_lyfd.

  • v_yr_last_date = v_ldate.

  • perform get_vbrk-vbrp.

CLEAR v_fkimg.

PERFORM get_fkimg.

it_data-ly_total = v_fkimg.

  • CALCULATION FOR GOLY

----


*Calculating fkimg for last year.

*Dates passed are last year first date and 12 months back from present

*date.

v_fdate = v_lyfd.

v_ldate = sy-datum.

v_back_months = 12.

PERFORM go_months_back USING v_ldate v_back_months CHANGING v_ldate.

PERFORM get_fkimg.

v_goly_lyfkimg = v_fkimg.

IF v_goly_lyfkimg <> 0 .

*Calculating fkimg for present year (this will be same as 'As On

*Total')

v_goly_cyfkimg = it_data-ason_total.

it_data-goly =

( ( v_goly_cyfkimg - v_goly_lyfkimg ) / v_goly_lyfkimg ) * 100.

ELSEIF v_goly_lyfkimg = 0 .

it_data-goly = 100.

ENDIF.

MODIFY it_data.

CLEAR it_data.

ENDLOOP.

ENDFORM. " get_data

&----


*& Form get_first_last_date

&----


  • text

----


FORM get_first_last_date .

*Calling inlude prog subroutine to get first date of Quarter

----


PERFORM get_first_day

USING v_date v_pc v_fpc

CHANGING v_fdate.

  • Calling inlude prog subroutine to get last date of month

  • -------------------------------------------------------------------*

PERFORM get_last_day

USING v_date v_pc v_lpc

CHANGING v_ldate.

ENDFORM. " get_first_last_date

&----


*& Form get_fkimg

&----


FORM get_fkimg .

SORT it_vbrp BY vkbur.

CLEAR v_fkimg.

LOOP AT it_vbrp WHERE fkdat >= v_fdate AND fkdat <= v_ldate

AND vkbur = it_data-vkbur.

PERFORM get_unit USING it_vbrp-matkl CHANGING v_unit.

READ TABLE it_prmatnr WITH KEY matnr = it_vbrp-matnr.

  • if sy-subrc <> 0.

  • it_vbrp-fkimg = it_vbrp-fkimg * ( it_vbrp-umvkz /

  • it_vbrp-umvkn ).

IF v_unit = 'CV'.

PERFORM convert_to_cv USING it_vbrp-matnr

it_vbrp-fklmg

'CS'

CHANGING it_vbrp-fklmg.

ELSEIF v_unit = 'PAC'.

PERFORM convert_to_cv USING it_vbrp-matnr

it_vbrp-fklmg

'PAK'

CHANGING it_vbrp-fklmg.

----


  • added on 12.03.2007 as per the requirement.

----


ELSEIF v_unit = 'TAB'.

PERFORM convert_to_cv USING it_vbrp-matnr

it_vbrp-fklmg

'TAB'

CHANGING it_vbrp-fklmg.

----


*AS PER THE REQUIREMENT THE QTY IS DIVIDED BY 1000

----


it_vbrp-fklmg = it_vbrp-fklmg / 1000.

----


ELSEIF v_unit = 'TON'.

it_vbrp-fklmg = ( it_vbrp-fklmg * it_prmatnr-ntgew ) /

1000000.

ENDIF.

*Deducting sales return invoice quantity

  • IF ( it_vbrp-fkart = 'RE' OR

  • it_vbrp-fkart = 'ZRE' OR

  • it_vbrp-fkart = 'ZRE1' OR

  • it_vbrp-fkart = 'ZFR' OR

  • it_vbrp-fkart = 'S1' ).

IF it_vbrp-fkart IN so_rev.

v_fkimg = v_fkimg - it_vbrp-fklmg.

ELSE.

v_fkimg = v_fkimg + it_vbrp-fklmg.

ENDIF.

ENDLOOP.

IF v_unit = 'EA'.

WRITE v_fkimg TO v_fkimg1 DECIMALS 0.

ELSE.

v_fkimg1 = v_fkimg.

ENDIF.

ENDFORM. " get_fkimg

&----


*& Form fill_week

&----


FORM fill_week USING value(v_wkqc).

IF v_wkqc = 'WK'.

CASE sy-index.

WHEN 1.

it_data-wk1 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 2.

it_data-wk2 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 3.

it_data-wk3 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 4.

it_data-wk4 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 5.

it_data-wk5 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 6.

it_data-wk6 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 7.

it_data-wk7 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 8.

it_data-wk8 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 9.

it_data-wk9 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 10.

it_data-wk10 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 11.

it_data-wk11 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 12.

it_data-wk12 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

WHEN 13.

it_data-wk13 = v_fkimg1.

it_data-tot_week = it_data-tot_week + v_fkimg1.

ENDCASE.

ELSEIF v_wkqc = 'QTR'.

CASE sy-index.

WHEN 1.

  • if sy-index = 1 and v_qtr <> sy-index.

  • elseif sy-index = 2 and v_qtr <> sy-index.

  • elseif sy-index = 3 and v_qtr <> sy-index.

  • elseif sy-index = 4 and v_qtr <> sy-index.

  • endif.

it_data-q1 = v_fkimg1.

WHEN 2.

it_data-q2 = v_fkimg1.

WHEN 3.

it_data-q3 = v_fkimg1.

WHEN 4.

it_data-q4 = v_fkimg1.

ENDCASE.

ENDIF.

ENDFORM. " fill_week

&----


*& Form add_data

&----


FORM add_data .

MOVE it_data[] TO it_data_temp[].

SORT it_data BY sqno.

SORT it_data_temp BY sqno.

LOOP AT it_data WHERE summery <> ' ' AND summery <> 'N'.

IF it_data-summery = 'X' .

LOOP AT it_data_temp

WHERE sqno >= it_data-fr AND sqno <= it_data-upto.

PERFORM add_fields.

ENDLOOP.

ENDIF.

*if it_data-ason_total = 0 .

  • delete it_data.

  • continue.

*endif.

MODIFY it_data.

CLEAR it_data.

ENDLOOP.

MOVE it_data[] TO it_data_temp[].

LOOP AT it_data WHERE summery <> ' ' AND summery <> 'N'.

IF it_data-summery = 'A'.

READ TABLE it_data_temp WITH KEY sqno = it_data-fr.

IF sy-subrc = 0.

PERFORM add_fields.

ENDIF.

READ TABLE it_data_temp WITH KEY sqno = it_data-upto.

IF sy-subrc = 0.

PERFORM add_fields.

ENDIF.

ENDIF.

MODIFY it_data.

CLEAR it_data.

ENDLOOP.

ENDFORM. " add_data

&----


*& Form add_fields

&----


FORM add_fields .

it_data-q1 = it_data-q1 + it_data_temp-q1.

it_data-q2 = it_data-q2 + it_data_temp-q2.

it_data-q3 = it_data-q3 + it_data_temp-q3.

it_data-q4 = it_data-q4 + it_data_temp-q4.

it_data-wk1 = it_data-wk1 + it_data_temp-wk1.

it_data-wk2 = it_data-wk2 + it_data_temp-wk2.

it_data-wk3 = it_data-wk3 + it_data_temp-wk3.

it_data-wk4 = it_data-wk4 + it_data_temp-wk4.

it_data-wk5 = it_data-wk5 + it_data_temp-wk5.

it_data-wk6 = it_data-wk6 + it_data_temp-wk6.

it_data-wk7 = it_data-wk7 + it_data_temp-wk7.

it_data-wk8 = it_data-wk8 + it_data_temp-wk8.

it_data-wk9 = it_data-wk9 + it_data_temp-wk9.

it_data-wk10 = it_data-wk10 + it_data_temp-wk10.

it_data-wk11 = it_data-wk11 + it_data_temp-wk11.

it_data-wk12 = it_data-wk12 + it_data_temp-wk12.

it_data-wk13 = it_data-wk13 + it_data_temp-wk13.

it_data-tot_week = it_data-tot_week + it_data_temp-tot_week.

it_data-ly_total = it_data-ly_total + it_data_temp-ly_total.

it_data-ason_total = it_data-ason_total + it_data_temp-ason_total.

it_data-allindia = it_data-allindia + it_data_temp-allindia.

ENDFORM. " add_fields

&----


*& Form color_data

&----


  • text

----


FORM color_data.

LOOP AT it_data.

  • Color

CLEAR color.

REFRESH color.

  • IF NOT it_data-summery IS INITIAL.

IF it_data-summery <> ' ' and it_data-summery <> 'N'.

color-color-col = '5'.

color-color-int = '1'.

color-color-inv = '1'.

  • color-nokeycol = 'X'.

color-fname = 'Q1'. APPEND color.

color-fname = 'Q2'. APPEND color.

color-fname = 'Q3'. APPEND color.

color-fname = 'Q4'. APPEND color.

color-fname = 'TOT_WEEK'. APPEND color.

color-fname = 'WK1'. APPEND color.

color-fname = 'WK2'. APPEND color.

color-fname = 'WK3'. APPEND color.

color-fname = 'WK4'. APPEND color.

color-fname = 'WK5'. APPEND color.

color-fname = 'WK6'. APPEND color.

color-fname = 'WK7'. APPEND color.

color-fname = 'WK8'. APPEND color.

color-fname = 'WK9'. APPEND color.

color-fname = 'WK10'. APPEND color.

color-fname = 'WK11'. APPEND color.

color-fname = 'WK12'. APPEND color.

color-fname = 'WK13'. APPEND color.

color-fname = 'SUM_TEXT'. APPEND color.

color-fname = 'LY_TOTAL'. APPEND color.

color-fname = 'ASON_TOTAL'. APPEND color.

color-fname = 'GOLY'. APPEND color.

it_data-color = color[].

MODIFY it_data.

ENDIF.

ENDLOOP.

ENDFORM. "color_data

&----


*& Form output_data

&----


FORM output_data .

*To delete the GR Punjab And UP West

loop at it_data.

if it_data-SQNO = '3' or it_data-SQNO = '6'.

delete it_data.

endif.

endloop.

PERFORM fill_layout_structure.

PERFORM fill_listheader USING it_listheader.

PERFORM fill_fieldcatalog USING 'SUM_TEXT' 'Sales Office' 10

'IT_DATA' .

IF v_qtr = 1.

PERFORM fill_fieldcatalog USING :

'WK1' 'WK1' 10 'IT_DATA' ,

'WK2' 'WK2' 10 'IT_DATA' ,

'WK3' 'WK3' 10 'IT_DATA' ,

'WK4' 'WK4' 10 'IT_DATA' ,

'WK5' 'WK5' 10 'IT_DATA' ,

'WK6' 'WK6' 10 'IT_DATA' ,

'WK7' 'WK7' 10 'IT_DATA' ,

'WK8' 'WK8' 10 'IT_DATA',

'WK9' 'WK9' 10 'IT_DATA' ,

'WK10' 'WK10' 10 'IT_DATA' ,

'WK11' 'WK11' 10 'IT_DATA' ,

'WK12' 'WK12' 10 'IT_DATA' ,

'WK13' 'WK13' 10 'IT_DATA' ,

'TOT_WEEK' 'Weekly Total' 10 'IT_DATA' ,

'Q2' 'Q2 CY' 10 'IT_DATA' ,

'Q3' 'Q3 CY' 10 'IT_DATA' ,

'Q4' 'Q4 CY' 10 'IT_DATA' .

ELSEIF v_qtr = 2.

PERFORM fill_fieldcatalog USING :

'Q1' 'Q1 CY' 10 'IT_DATA' ,

'WK1' 'WK1' 10 'IT_DATA' ,

'WK2' 'WK2' 10 'IT_DATA' ,

'WK3' 'WK3' 10 'IT_DATA' ,

'WK4' 'WK4' 10 'IT_DATA' ,

'WK5' 'WK5' 10 'IT_DATA' ,

'WK6' 'WK6' 10 'IT_DATA' ,

'WK7' 'WK7' 10 'IT_DATA' ,

'WK8' 'WK8' 10 'IT_DATA' ,

'WK9' 'WK9' 10 'IT_DATA',

'WK10' 'WK10' 10 'IT_DATA' ,

'WK11' 'WK11' 10 'IT_DATA' ,

'WK12' 'WK12' 10 'IT_DATA' ,

'WK13' 'WK13' 10 'IT_DATA' ,

'TOT_WEEK' 'Weekly Total' 10 'IT_DATA' ,

'Q3' 'Q3 CY' 10 'IT_DATA' ,

'Q4' 'Q4 CY' 10 'IT_DATA' .

ELSEIF v_qtr = 3.

PERFORM fill_fieldcatalog USING :

'Q1' 'Q1 CY' 10 'IT_DATA' ,

'Q2' 'Q2 CY' 10 'IT_DATA' ,

'WK1' 'WK1' 10 'IT_DATA' ,

'WK2' 'WK2' 10 'IT_DATA' ,

'WK3' 'WK3' 10 'IT_DATA' ,

'WK4' 'WK4' 10 'IT_DATA' ,

'WK5' 'WK5' 10 'IT_DATA' ,

'WK6' 'WK6' 10 'IT_DATA' ,

'WK7' 'WK7' 10 'IT_DATA' ,

'WK8' 'WK8' 10 'IT_DATA' ,

'WK9' 'WK9' 10 'IT_DATA' ,

'WK10' 'WK10' 10 'IT_DATA' ,

'WK11' 'WK11' 10 'IT_DATA' ,

'WK12' 'WK12' 10 'IT_DATA' ,

'WK13' 'WK13' 10 'IT_DATA' ,

'TOT_WEEK' 'Weekly Total' 10 'IT_DATA' ,

'Q4' 'Q4 CY' 10 'IT_DATA' .

ELSEIF v_qtr = 4.

PERFORM fill_fieldcatalog USING :

'Q1' 'Q1 CY' 10 'IT_DATA' ,

'Q2' 'Q2 CY' 10 'IT_DATA' ,

'Q3' 'Q3 CY' 10 'IT_DATA' ,

'WK1' 'WK1' 10 'IT_DATA' ,

'WK2' 'WK2' 10 'IT_DATA' ,

'WK3' 'WK3' 10 'IT_DATA' ,

'WK4' 'WK4' 10 'IT_DATA' ,

'WK5' 'WK5' 10 'IT_DATA' ,

'WK6' 'WK6' 10 'IT_DATA' ,

'WK7' 'WK7' 10 'IT_DATA' ,

'WK8' 'WK8' 10 'IT_DATA' ,

'WK9' 'WK9' 10 'IT_DATA' ,

'WK10' 'WK10' 10 'IT_DATA' ,

'WK11' 'WK11' 10 'IT_DATA' ,

'WK12' 'WK12' 10 'IT_DATA' ,

'WK13' 'WK13' 10 'IT_DATA' ,

'TOT_WEEK' 'Weekly Total' 10 'IT_DATA' .

ENDIF.

PERFORM fill_fieldcatalog USING :

'LY_TOTAL' 'LY TOTAL' 10 'IT_DATA' ,

'ASON_TOTAL' 'AS ON TOTAL' 10 'IT_DATA',

'GOLY' 'GOLY %' 10 'IT_DATA'.

.

PERFORM alv_list_display.

ENDFORM. "output_data

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

*FORM TO FILL FIELDCATALOG *

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

FORM fill_fieldcatalog USING f d o t .

DATA wa_fieldcat TYPE slis_fieldcat_alv.

STATICS pos LIKE sy-index VALUE 1.

pos = pos + 1.

CLEAR wa_fieldcat.

MOVE : 1 TO wa_fieldcat-row_pos,

pos TO wa_fieldcat-col_pos,

f TO wa_fieldcat-fieldname,

d TO wa_fieldcat-seltext_l,

o TO wa_fieldcat-outputlen,

t TO wa_fieldcat-tabname.

APPEND wa_fieldcat TO it_fieldcat.

ENDFORM. "FILL_FIELDCATALOG

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

*FORM FOR FILLING LISTHEADER

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

FORM fill_listheader USING it_listheader TYPE slis_t_listheader.

SELECT SINGLE vtext INTO vtext FROM t179t WHERE prodh IN s_prodh.

DATA : wa_listheader TYPE slis_listheader,

v_variantname LIKE varit-vtext.

CLEAR wa_listheader.

wa_listheader-typ = 'H'.

wa_listheader-info ='Quarter Sales Product Group Report'.

APPEND wa_listheader TO it_listheader.

  • CLEAR wa_listheader.

  • wa_listheader-typ = 'S'.

  • wa_listheader-key = 'Date:'.

  • write v_date to wa_listheader-info.

  • APPEND wa_listheader to it_listheader.

CLEAR wa_listheader.

wa_listheader-typ = 'S'.

wa_listheader-key = 'Product Heirarchy'.

WRITE vtext TO wa_listheader-info.

APPEND wa_listheader TO it_listheader.

*To print the variantname as the report header

*----


PERFORM get_variant_name USING sy-repid sy-slset

CHANGING v_variantname.

IF NOT v_variantname IS INITIAL.

CLEAR wa_listheader.

wa_listheader-typ = 'S'.

wa_listheader-key = 'Variant '.

wa_listheader-info = v_variantname.

APPEND wa_listheader TO it_listheader.

ENDIF.

**Displaying Sales Organisation

*----


  • IF s_vkorg-low IS NOT INITIAL AND s_vkorg-high IS NOT INITIAL.

*

  • CLEAR wa_listheader.

  • wa_listheader-typ = 'S '.

  • wa_listheader-key = 'Sales Organisation:'.

  • CONCATENATE '' s_vkorg-low 'To'

*s_vkorg-high

  • INTO

  • wa_listheader-info SEPARATED BY space.

  • APPEND wa_listheader TO it_listheader.

*

  • ELSEIF s_vkorg-low IS NOT INITIAL .

*

  • CLEAR wa_listheader.

  • wa_listheader-typ = 'S'.

  • wa_listheader-key = 'Sales Organisation:'.

  • CONCATENATE '' s_vkorg-low INTO

  • wa_listheader-info.

  • APPEND wa_listheader TO it_listheader.

*

  • ELSEIF s_vkorg-low IS INITIAL AND s_vkorg-high IS INITIAL.

*

  • CLEAR wa_listheader.

  • wa_listheader-typ = 'S'.

  • wa_listheader-info = 'Sales Organisation: *'.

  • APPEND wa_listheader TO it_listheader.

*

  • ENDIF.

*

**Displaying Distribution Channel

*----


  • IF s_vtweg-low IS NOT INITIAL AND s_vtweg-high IS NOT INITIAL.

*

  • CLEAR wa_listheader.

  • wa_listheader-typ = 'S '.

  • wa_listheader-key = 'Distribution Channel:'.

*

*CONCATENATE '' s_vtweg-low 'To'

*s_vtweg-high

  • INTO

  • wa_listheader-info SEPARATED BY space.

  • APPEND wa_listheader TO it_listheader.

*

  • ELSEIF s_vtweg-low IS NOT INITIAL .

*

  • CLEAR wa_listheader.

  • wa_listheader-typ = 'S'.

  • wa_listheader-key = 'Distribution Channel:'.

  • CONCATENATE '' s_vtweg-low

*INTO

  • wa_listheader-info.

  • APPEND wa_listheader TO it_listheader.

*

  • ELSEIF s_vtweg-low IS INITIAL AND s_vtweg-high IS INITIAL.

*

  • CLEAR wa_listheader.

  • wa_listheader-typ = 'S'.

  • wa_listheader-info = 'Distribution Channel: *'.

  • APPEND wa_listheader TO it_listheader.

*

  • ENDIF.

*

  • if p_spart is not initial.

*

  • CLEAR wa_listheader.

  • wa_listheader-typ = 'S'.

  • wa_listheader-key = 'Division: '.

  • write p_spart to wa_listheader-info.

  • APPEND wa_listheader to it_listheader.

*

  • elseif p_spart is initial.

*

  • clear wa_listheader.

  • wa_listheader-typ = 'S'.

  • wa_listheader-key = 'Division: '.

  • write '*' to wa_listheader-info.

  • APPEND wa_listheader to it_listheader.

  • endif.

ENDFORM. "fill_listheader

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

*FORM FOR ALV LAYOUT STRUCTURE

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

FORM fill_layout_structure .

CLEAR st_layout.

st_layout-colwidth_optimize = 'X'.

st_layout-zebra = 'X'.

*For Coloring the Cells in the output display

MOVE 'COLOR' TO st_layout-coltab_fieldname.

*<< Modified

  • st_layout-f2code = '%C1'.

  • st_layout-detail_popup = 'X'.

*<< Modified

ENDFORM. "fill_layout_structure

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

*FORM FOR ALV FUNCTIONS

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

FORM alv_list_display.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

i_callback_program = v_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

  • i_callback_user_command = 'CALLTCODE'

i_callback_top_of_page = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST =

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

is_layout = st_layout

it_fieldcat = it_fieldcat[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

i_save = 'A'

  • IS_VARIANT =

it_events = it_event[]

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

TABLES

t_outtab = it_data

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

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

*FORM FOR ALV EVENT *

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

FORM alv_events USING events TYPE slis_t_event.

DATA : wa_events TYPE slis_alv_event.

CLEAR wa_events.

wa_events-name = 'TOP-OF-PAGE'.

wa_events-form = 'TOP-OF-PAGE'.

APPEND wa_events TO it_event.

ENDFORM. "ALV_EVENTS

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

*FORM FOR TO FO PAGE

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

FORM top_of_page.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = it_listheader.

ENDFORM. "TOP_OF_PAGE

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

*FORM FOR GET_EVENT

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

FORM get_event USING it_event TYPE slis_t_event.

DATA : wa_event TYPE slis_alv_event.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

i_list_type = 0

IMPORTING

et_events = it_event.

.

READ TABLE it_event WITH KEY name = slis_ev_top_of_page INTO wa_event.

IF sy-subrc = 0.

MOVE 'TOP_OF_PAGE' TO wa_event-form.

APPEND wa_event TO it_event.

ENDIF.

ENDFORM. "get_event

&----


*& Form get_ly_data

&----


FORM get_ly_data .

CLEAR v_fkimg.

LOOP AT it_data.

  • CALCULATE TOTAL FOR PREVIOUS YEAR

----


v_fdate = v_yr_fir_date. "current year first day(will be used in as

"on date)

PERFORM get_last_day

USING v_fdate v_pc '012'

CHANGING v_ldate.

PERFORM get_fkimg.

it_data-ly_total = v_fkimg.

  • CALCULATION FOR GOLY

----


*Calculating fkimg for last year.

*Dates passed are last year first date and 12 months back from present

*date.

v_fdate = v_lyfd.

v_ldate = sy-datum.

v_back_months = 12.

PERFORM go_months_back USING v_ldate v_back_months CHANGING v_ldate.

PERFORM get_fkimg.

v_goly_lyfkimg = v_fkimg.

IF v_goly_lyfkimg <> 0 .

*Calculating fkimg for present year (this will be same as 'As On Total')

v_goly_cyfkimg = it_data-ason_total.

it_data-goly =

( ( v_goly_cyfkimg - v_goly_lyfkimg ) / v_goly_lyfkimg ) * 100.

ELSEIF v_goly_lyfkimg = 0 .

it_data-goly = 100.

ENDIF.

MODIFY it_data.

CLEAR it_data.

ENDLOOP.

ENDFORM. " get_ly_data

&----


*& Form delete_data

&----


FORM delete_data .

DELETE it_data WHERE summery = 'N'.

ENDFORM. " delete_data

&----


*& Form CALL_TCODE

&----


*FORM calltcode USING r_ucomm ls_selfield.

  • CASE r_ucomm.

  • WHEN '&IC1'.

  • CALL TRANSACTION 'ZPGQTR'.

  • ENDCASE.

*ENDFORM. " CALL_TCODE

&----


*& Form add_data_speciality

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


*TO add the Speciality details in the speciality sales total column.

FORM add_data_speciality .

  • data: i_data_tmp like it_data occurs 0 with header line.

  • clear i_data_tmp.

  • refresh i_data_tmp.

data: wa like it_data.

clear it_data.

clear wa.

SORT it_data BY sqno.

loop at it_data where summery = 'N'.

wa-q1 = wa-q1 + it_data-q1.

wa-q2 = wa-q2 + it_data-q2.

wa-q3 = wa-q3 + it_data-q3.

wa-q4 = wa-q4 + it_data-q4.

wa-wk1 = wa-wk1 + it_data-wk1.

wa-wk2 = wa-wk2 + it_data-wk2.

wa-wk3 = wa-wk3 + it_data-wk3.

wa-wk4 = wa-wk4 + it_data-wk4.

wa-wk5 = wa-wk5 + it_data-wk5.

wa-wk6 = wa-wk6 + it_data-wk6.

wa-wk7 = wa-wk7 + it_data-wk7.

wa-wk8 = wa-wk8 + it_data-wk8.

wa-wk9 = wa-wk9 + it_data-wk9.

wa-wk10 = wa-wk10 + it_data-wk10.

wa-wk11 = wa-wk11 + it_data-wk11.

wa-wk12 = wa-wk12 + it_data-wk12.

wa-wk13 = wa-wk13 + it_data-wk13.

wa-tot_week = wa-tot_week + it_data-tot_week.

wa-ly_total = wa-ly_total + it_data-ly_total.

wa-ason_total = wa-ason_total + it_data-ason_total.

wa-allindia = wa-allindia + it_data-allindia.

endloop.

  • read table it_data with key sqno = '63'.

loop at it_data where sqno = '63'.

if sy-subrc = 0.

it_data-q1 = wa-q1.

it_data-q2 = wa-q2.

it_data-q3 = wa-q3.

it_data-q4 = wa-q4.

it_data-wk1 = wa-wk1.

it_data-wk2 = wa-wk2.

it_data-wk3 = wa-wk3.

it_data-wk4 = wa-wk4.

it_data-wk5 = wa-wk5.

it_data-wk6 = wa-wk6.

it_data-wk7 = wa-wk7.

it_data-wk8 = wa-wk8.

it_data-wk9 = wa-wk9.

it_data-wk10 = wa-wk10.

it_data-wk11 = wa-wk11.

it_data-wk12 = wa-wk12.

it_data-wk13 = wa-wk13.

it_data-tot_week = wa-tot_week.

it_data-ly_total = wa-ly_total.

it_data-ason_total = wa-ason_total.

it_data-allindia = wa-allindia.

modify it_data.

endif.

endloop.

ENDFORM. " add_data_speciality

CHECK THIS ALSO.

regards

prabhu

Read only

Former Member
0 Likes
1,305

Hi

I want to color a single cell in a row but not the entire row or entire column

Plz send me sample prg which is very short.

Thanks & Regards,

Amar

Read only

Former Member
0 Likes
1,305

HI,

see this simple program if u select a vendor number corresponding name will be coloured in different color.

TABLES:LFA1.

parameters:C_LIFNR like LFA1-LIFNR.

DATA:BEGIN OF ITAB OCCURS 0,

LIFNR LIKE LFA1-LIFNR,

NAME1 LIKE LFA1-NAME1,

LAND1 LIKE LFA1-LAND1,

ORT01 LIKE LFA1-ORT01,

SORTL LIKE LFA1-SORTL,

REGIO LIKE LFA1-REGIO,

COL TYPE LVC_T_SCOL,

END OF ITAB.

DATA:COLR TYPE LVC_S_SCOL.

SELECT * FROM LFA1 INTO CORRESPONDING FIELDS OF TABLE ITAB.

LOOP AT ITAB.

IF ITAB-LIFNR EQ C_LIFNR.

COLR-FNAME = 'NAME1'.

COLR-COLOR-COL = '5'.

COLR-COLOR-INT = '1'.

COLR-COLOR-INV = '0'.

COLR-NOKEYCOL = 'X'.

APPEND COLR TO ITAB-COL.

MODIFY ITAB.

ENDIF.

ENDLOOP.

TYPE-POOLS:SLIS.

DATA:FCAT TYPE SLIS_T_FIELDCAT_ALV.

DATA:LAYOUT TYPE SLIS_LAYOUT_ALV.

layout-coltab_fieldname = 'COL'.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = SY-REPID

I_INTERNAL_TABNAME = 'ITAB'

I_INCLNAME = SY-REPID

CHANGING

CT_FIELDCAT = FCAT.

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = SY-REPID

IS_LAYOUT = LAYOUT

IT_FIELDCAT = FCAT

TABLES

T_OUTTAB = ITAB.

rgds,

bharat.

Read only

Former Member
0 Likes
1,305

Hi

Check this link <a href=" http://help.sap.com/saphelp_nw04/helpdata/en/7f/e477e5fba211d2b48f006094192fe3/frameset.htm ">http://help.sap.com/saphelp_nw04/helpdata/en/7f/e477e5fba211d2b48f006094192fe3/frameset.htm</a>

Regards

Raj

Read only

Former Member
0 Likes
1,305

Hi

It is displaying dump and the error im getting is nested internal tables not supported.