‎2007 Jun 19 5:25 AM
Hi,
Please send me a sample prgm for colouring a single cell in an alv report.
‎2007 Jun 19 5:28 AM
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
‎2007 Jun 19 5:26 AM
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
‎2007 Jun 19 5:27 AM
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
‎2007 Jun 19 5:28 AM
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
‎2007 Jun 19 5:28 AM
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
‎2007 Jun 19 5:28 AM
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.
‎2007 Jun 19 5:36 AM
*&----
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
‎2007 Jun 19 7:02 AM
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
‎2007 Jun 19 7:12 AM
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.
‎2007 Jun 19 7:12 AM
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
‎2007 Jun 19 7:24 AM
Hi
It is displaying dump and the error im getting is nested internal tables not supported.