‎2006 Jan 09 1:30 PM
How to use the
FM reuse_alv_fieldcatalog_merge
can U plz tell me with an Example
including its declaration
‎2006 Jan 09 1:32 PM
Hi,
Pls go thru the following simple example...
REPORT y_v_rept_alv_so_dtls NO STANDARD PAGE HEADING
LINE-SIZE 132 LINE-COUNT 26(2) MESSAGE-ID y_msg.
************************************************************************
T Y P E S *
************************************************************************
TYPE-POOLS : SLIS.
************************************************************************
T A B L E S *
************************************************************************
TABLES: vbak, " Sales Document Header
vbap, " Sales Document Items
vbrp, " Billing Doument Items
kna1, " Customer master (General)
tvkot. " Sales Organization
************************************************************************
I N T E R N A L T A B L E S *
************************************************************************
DATA : BEGIN OF it_sd_dtls OCCURS 0,
vkorg LIKE vbak-vkorg, " Sales Org.
kunnr LIKE vbak-kunnr, " Customer No.
matnr LIKE vbap-matnr, " Sales Doc. Material
vbeln LIKE vbak-vbeln, " Sales Document No.
vtext LIKE tvkot-vtext, " Sales Org.Text
name1 LIKE kna1-name1, " Customer Name
posnr LIKE vbap-posnr, " Sales Doc. Item No.
arktx LIKE vbap-arktx, " Sales Material Text
netwr LIKE vbap-netwr, " Net Price
ntgew LIKE vbap-ntgew, " Net Weight
END OF it_sd_dtls.
DATA : BEGIN OF it_bd_dtls OCCURS 0,
vbeln LIKE vbrp-vbeln, " Billing Document No.
posnr LIKE vbrp-posnr, " Billing Doc. Item No.
mwsbp LIKE vbrp-mwsbp, " Tax amount in document currency
fbuda LIKE vbrp-fbuda, " Date on which services rendered
END OF it_bd_dtls.
DATA : dt_fldcat TYPE slis_t_fieldcat_alv, " For Field Cat
dt_events TYPE slis_t_event, " For Events In ALV
ds_event TYPE slis_alv_event, " For Events
ds_fldcat TYPE slis_fieldcat_alv. " Field cat. Work area
DT_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE',
DT_END_OF_PAGE TYPE SLIS_FORMNAME VALUE 'END_OF_PAGE',
DS_LAYOUT TYPE SLIS_LAYOUT_ALV,
DS_COLOR TYPE SLIS_SPECIALCOL_ALV.
************************************************************************
G L O B A L V A R I A B L E S *
************************************************************************
DATA : fg_no_data, " NO DATA Indicator
v_matnr LIKE vbap-matnr, " Material No.
v_kunnr LIKE vbak-kunnr, " Customer No.
V_REPID TYPE SY-REPID.
************************************************************************
S E L E C T I O N - S C R E E N *
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-000.
SELECT-OPTIONS : s_vkorg FOR vbak-vkorg, " Sales Organization Seelction
s_kunnr FOR vbak-kunnr. " Customers seletion
SELECTION-SCREEN END OF BLOCK blk1.
************************************************************************
S T A R T - O F - S E L E C T I O N *
************************************************************************
START-OF-SELECTION.
V_REPID = SY-REPID.
PERFORM frm_selection.
************************************************************************
E N D - O F - S E L E C T I O N *
************************************************************************
END-OF-SELECTION.
CHECK fg_no_data IS INITIAL.
PERFORM frm_display_report.
PERFORM FLD_CTLG.
PERFORM EVENTS_FILL.
PERFORM LIST_DISPLAY.
************************************************************************
T O P - O F - P A G E *
************************************************************************
*TOP-OF-PAGE.
*
PERFORM TOP_OF_PAGE. " Page Header
PERFORM frm_disp_col_hdr. " Column Names
************************************************************************
E N D - O F - P A G E *
************************************************************************
END-OF-PAGE.
PERFORM frm_endpage.
************************************************************************
A T L I N E - S E L E C T I O N *
************************************************************************
*AT LINE-SELECTION.
*
CASE sy-lsind.
*
WHEN 1.
*
v_matnr = it_sd_dtls-matnr.
*
v_kunnr = it_sd_dtls-kunnr.
*
PERFORM frm_disp_col_name. " Column Headers
*
PERFORM frm_vline. " Generates Vertical lines
*
PERFORM frm_list_sel_data1. " Displays Secondary List
*
WHEN 2.
*
PERFORM frm_list_sel_data2. " Displays Secondary List
*
ENDCASE.
************************************************************************
TOP OF PAGE DURING L I N E - S E L E C T I O N
************************************************************************
*TOP-OF-PAGE DURING LINE-SELECTION.
*
PERFORM frm_toppage.
*
SKIP 1.
*
************************************************************************
I N I T I A L I Z A T I O N . *
************************************************************************
INITIALIZATION.
s_vkorg-low = '0001'.
APPEND s_vkorg.
************************************************************************
A T S E L E C T I O N - S C R E E N *
************************************************************************
AT SELECTION-SCREEN.
PERFORM sel_scr_vald.
************************************************************************
SUB ROUTINEES *
************************************************************************
&----
*& Form frm_selection
&----
text
----
--> p1 text
<-- p2 text
----
FORM frm_selection.
SELECT v1~vkorg
v1~kunnr
v2~matnr
v1~vbeln
v3~vtext
v4~name1
v2~posnr
v2~arktx
v2~netwr
v2~ntgew
INTO TABLE it_sd_dtls
FROM vbak AS v1 JOIN
vbap AS v2 ON v1vbeln = v2vbeln
JOIN tvkot AS v3 ON v1vkorg = v3vkorg
JOIN kna1 AS v4 ON v1kunnr = v4kunnr
WHERE v1~vkorg IN s_vkorg AND
v1kunnr IN s_kunnr AND v1vbtyp = 'C'
AND v2matnr <> ''. " v1auart = 'OR'.
IF sy-subrc <> 0.
fg_no_data = 'X'.
MESSAGE i000 WITH 'NO DATA FOUND for this Seclection Criteria'.
STOP.
ENDIF.
ENDFORM. " frm_selection
&----
*& Form frm_toppage
&----
text
----
--> p1 text
<-- p2 text
----
FORM frm_toppage.
WRITE : /40 'Intelligroup Asia Pvt.Ltd.'(001),
/47 'Hyderabad'(002).
*
SKIP 1.
*
WRITE : /40 'Sales Document Details' COLOR 5 INVERSE ON.
*
ENDFORM. " frm_toppage
&----
*& Form frm_disp_col_hdr
&----
text
----
--> p1 text
<-- p2 text
----
FORM frm_disp_col_hdr.
SKIP 1.
FORMAT COLOR COL_HEADING.
ULINE AT 1(98).
WRITE : /2 'Material No.'(004),
21 'Custmer No.',
33 'Net Price',
48(19) 'Net Weight',
68(30) 'Customer Name'.
FORMAT RESET.
PERFORM draw_vline. " Generates Vertical Lines
ULINE AT /1(98).
ENDFORM. " frm_disp_col_hdr
&----
*& Form draw_vline
&----
text
----
--> p1 text
<-- p2 text
----
FORM draw_vline.
WRITE : 1 sy-vline,
20 sy-vline,
32 sy-vline,
47 sy-vline,
67 sy-vline,
98 sy-vline.
ENDFORM. " draw_vline
&----
*& Form frm_display_report
&----
text
----
--> p1 text
<-- p2 text
----
FORM frm_display_report.
SORT it_sd_dtls BY kunnr matnr.
LOOP AT it_sd_dtls.
AT NEW kunnr.
READ TABLE it_sd_dtls INDEX sy-tabix.
WRITE : /2 'Sales Organization : ',it_sd_dtls-vtext
COLOR 6 INTENSIFIED OFF.
ULINE AT /1(98).
WRITE : /2 it_sd_dtls-matnr COLOR 5 INTENSIFIED OFF HOTSPOT ON,
21 it_sd_dtls-kunnr COLOR 1 INTENSIFIED OFF,
68 it_sd_dtls-name1+0(30) COLOR 7 INTENSIFIED OFF.
HIDE : it_sd_dtls-matnr , it_sd_dtls-kunnr.
PERFORM draw_vline.
ENDAT.
AT END OF matnr.
SUM.
WRITE : 33 it_sd_dtls-netwr
LEFT-JUSTIFIED COLOR 3 INTENSIFIED OFF,
48 it_sd_dtls-ntgew COLOR 4 INTENSIFIED OFF.
PERFORM draw_vline.
ENDAT.
AT END OF kunnr.
ULINE AT /1(98).
ENDAT.
ENDLOOP.
ULINE AT /1(98).
ENDFORM. " frm_display_report
&----
*& Form frm_endpage
&----
text
----
--> p1 text
<-- p2 text
----
FORM frm_endpage.
WRITE : /80 'Page No. : ',sy-pagno COLOR 2 INTENSIFIED OFF.
ENDFORM. " frm_endpage
&----
*& Form sel_scr_vald
&----
text
----
--> p1 text
<-- p2 text
----
FORM sel_scr_vald.
SELECT SINGLE vkorg INTO s_vkorg-low
FROM vbak WHERE vkorg IN s_vkorg.
IF sy-subrc <> 0.
MESSAGE e000 WITH s_vkorg 'Sales Organization does not exists'.
ENDIF.
SELECT single kunnr INTO s_kunnr-low
FROM vbak WHERE vkorg IN s_kunnr.
IF sy-subrc <> 0.
MESSAGE e000 WITH s_kunnr 'Customer Number does not exists'.
ENDIF.
ENDFORM. " sel_scr_vald
&----
*& Form frm_list_sel_data1
&----
text
----
--> p1 text
<-- p2 text
----
FORM frm_list_sel_data1.
LOOP AT it_sd_dtls.
IF it_sd_dtls-matnr = v_matnr AND it_sd_dtls-kunnr = v_kunnr.
AT NEW matnr.
WRITE : /2 it_sd_dtls-matnr COLOR 5 INTENSIFIED OFF.
PERFORM frm_vline.
ENDAT.
WRITE : /21 it_sd_dtls-vbeln COLOR 1 INTENSIFIED OFF HOTSPOT ON,
33 it_sd_dtls-posnr COLOR 4 INTENSIFIED OFF HOTSPOT ON,
39 it_sd_dtls-netwr COLOR 4 INTENSIFIED OFF.
HIDE : it_sd_dtls-vbeln , it_sd_dtls-posnr.
PERFORM frm_vline.
ENDIF.
ENDLOOP.
ULINE AT /1(59).
ENDFORM. " frm_list_sel_data1
&----
*& Form frm_disp_col_name
&----
text
----
--> p1 text
<-- p2 text
----
FORM frm_disp_col_name.
ULINE AT /1(59).
FORMAT COLOR COL_HEADING.
WRITE : /2 'Material No.',
21 'Sales Doc.',
33 'Item No.',
42(17) 'Net Price'.
FORMAT RESET.
PERFORM frm_vline.
ULINE AT /1(59).
ENDFORM. " frm_disp_col_name
&----
*& Form frm_vline
&----
text
----
--> p1 text
<-- p2 text
----
FORM frm_vline.
WRITE : 1 sy-vline,
20 sy-vline,
32 sy-vline,
40 sy-vline,
59 sy-vline.
ENDFORM. " frm_vline
&----
*& Form frm_list_sel_data2
&----
text
----
--> p1 text
<-- p2 text
----
FORM frm_list_sel_data2.
REFRESH it_bd_dtls.
CLEAR it_bd_dtls.
SELECT SINGLE vbeln
posnr
mwsbp
fbuda
FROM vbrp INTO (it_bd_dtls-vbeln,
it_bd_dtls-posnr,
it_bd_dtls-mwsbp,
it_bd_dtls-fbuda)
WHERE aubel = it_sd_dtls-vbeln
AND aupos = it_sd_dtls-posnr.
IF sy-subrc = 0.
APPEND it_bd_dtls.
CLEAR it_bd_dtls.
FORMAT COLOR 1 .
ULINE AT /1(46).
WRITE : /1 sy-vline,
2 'Bill Doc.',
13 sy-vline,
14 'Item',
19 sy-vline,
20 'Sales Tax',
34 sy-vline,
35 'Doc.Date',
46 sy-vline.
FORMAT RESET.
ULINE AT /1(46).
LOOP AT it_bd_dtls.
WRITE : /1 sy-vline,
2 it_bd_dtls-vbeln COLOR 1 INTENSIFIED OFF,
13 sy-vline,
14 it_bd_dtls-posnr COLOR 5 INTENSIFIED OFF,
19 sy-vline,
20 it_bd_dtls-mwsbp COLOR 3 INTENSIFIED OFF,
34 sy-vline,
35 it_bd_dtls-fbuda COLOR 4 INTENSIFIED OFF,
46 sy-vline.
ENDLOOP.
ULINE AT /1(46).
ELSE.
MESSAGE i000 WITH 'NO DATA found for this selection.'.
ENDIF.
ENDFORM. " frm_list_sel_data2
&----
*& Form FLD_CTLG
&----
text
----
--> p1 text
<-- p2 text
----
form FLD_CTLG.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = V_REPID
I_INTERNAL_TABNAME = 'IT_SD_DTLS'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
I_INCLNAME = V_REPID
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
CHANGING
ct_fieldcat = dt_fldcat
EXCEPTIONS
INCONSISTENT_INTERFACE = 1
PROGRAM_ERROR = 2
OTHERS = 3
.
IF sy-subrc = 0.
LOOP AT dt_fldcat INTO ds_fldcat.
CASE ds_fldcat-fieldname.
WHEN 'VKORG'.
ds_fldcat-seltext_l = 'Sales Org.'.
ds_fldcat-outputlen = 4.
WHEN 'KUNNR'.
ds_fldcat-seltext_l = 'Customer No.'.
ds_fldcat-outputlen = 10.
WHEN 'MATNR'.
ds_fldcat-seltext_l = 'Sales Doc. Material'.
ds_fldcat-outputlen = 18.
WHEN 'VBELN'.
ds_fldcat-seltext_l = 'Sales Document No'.
ds_fldcat-outputlen = 10.
WHEN 'VTEXT'.
ds_fldcat-seltext_l = 'Sales Org.Text'.
ds_fldcat-outputlen = 20.
WHEN 'NAME1'.
ds_fldcat-seltext_l = 'Customer Name'.
ds_fldcat-outputlen = 20.
WHEN 'POSNR'.
ds_fldcat-seltext_l = 'Sales Doc. Item No'.
ds_fldcat-outputlen = 6.
WHEN 'ARKTX'.
ds_fldcat-seltext_l = 'Sales Material Text'.
ds_fldcat-outputlen = 20.
WHEN 'NETWR'.
ds_fldcat-seltext_l = 'Net Price'.
ds_fldcat-outputlen = 15.
WHEN 'NTGEW'.
ds_fldcat-seltext_l = 'Net Weight'.
ds_fldcat-outputlen = 13.
ENDCASE.
MODIFY dt_fldcat FROM ds_fldcat TRANSPORTING seltext_l outputlen.
ENDLOOP.
ENDIF.
endform. " FLD_CTLG
&----
*& Form EVENTS_FILL
&----
text
----
--> p1 text
<-- p2 text
----
form EVENTS_FILL.
REFRESH dt_events.
ds_event-name = 'TOP_OF_PAGE'.
ds_event-form = 'TOP_OF_PAGE' .
APPEND ds_event TO dt_events.
CLEAR ds_event.
endform. " EVENTS_FILL
&----
*& Form TOP_OF_PAGE
&----
List Header
----
FORM TOP_OF_PAGE.
WRITE : /40 'Intelligroup Asia Pvt.Ltd.'(001) color 6,
/47 'Hyderabad'(002) color 6.
SKIP 1.
WRITE : /40 'Sales Document Details' COLOR 5 INVERSE ON.
ENDFORM.
&----
*& Form LIST_DISPLAY
&----
text
----
--> p1 text
<-- p2 text
----
form LIST_DISPLAY.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
*CALL FUNCTION 'REUSE_ALV_LIST_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 = ' '
I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'
I_GRID_TITLE = 'Sales Orders'
I_STRUCTURE_NAME =
IS_LAYOUT =
IT_FIELDCAT = dt_fldcat[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = dt_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 = it_sd_dtls
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. " LIST_DISPLAY
Sreedhar
Message was edited by: Sreedhar Kanchanapalli
‎2006 Jan 09 1:35 PM
‎2006 Jan 09 1:41 PM
My dear Sreedhar,
thanks for Ur quick response
But I think Ur program fails syntactially
in declaration of fieldcatalog variable
and in the merge FM u r not giving Ur fieldcatalog table also
Iam not Criticizing but as a friend iam just telling you
Plz don't take it in other way
Thanks
PAVAN
‎2006 Jan 09 1:35 PM
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = v_repid
i_internal_tabname = 'I_SFLIGHT'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = v_repid
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
changing
ct_fieldcat = i_fieldcat
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.
‎2006 Jan 09 1:37 PM
Hi Pavan
That is used to create the fieldcatalog.
REPORT ZBALVSD02 NO STANDARD PAGE HEADING.
*
* Data to be displayed
DATA: GT_SFLIGHT TYPE TABLE OF SFLIGHT.
type-pools: slis.
*---------------------------------------------------------------------*
* Selection
SELECT * FROM SFLIGHT INTO TABLE GT_SFLIGHT.
DATA: FIELDCATALOG TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE.
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
I_PROGRAM_NAME = sy-repid
I_STRUCTURE_NAME = 'SFLIGHT'
I_INCLNAME = sy-repid
CHANGING
CT_FIELDCAT = FIELDCATalog[]
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.
* Call ABAP List Viewer (ALV)
CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_STRUCTURE_NAME = 'SFLIGHT'
IT_FIELDCAT = FIELDCATALOG[]
TABLES
T_OUTTAB = GT_SFLIGHT.
‎2006 Jan 09 1:38 PM
You can refer to the following program
report y004alv_graph
no standard page heading.
type-pools : slis,
icon.
data : begin of i_sflight occurs 0,
carrid like sflight-carrid,
connid like sflight-connid,
fldate like sflight-fldate,
price like sflight-price,
paymentsum like sflight-paymentsum,
seatsocc like sflight-seatsocc,
id like icon-id,
end of i_sflight.
*TYPES : BEGIN OF T_SFLIGHT,
CARRID TYPE SFLIGHT-CARRID,
CONNID TYPE SFLIGHT-CONNID,
FLDATE TYPE SFLIGHT-FLDATE,
PRICE TYPE SFLIGHT-PRICE,
PAYMENTSUM TYPE SFLIGHT-PAYMENTSUM,
SEATSOCC TYPE SFLIGHT-SEATSOCC,
ID TYPE ICON-ID,
END OF T_SFLIGHT.
*DATA : I_SFLIGHT TYPE STANDARD TABLE OF T_SFLIGHT WITH HEADER LINE.
data : v_carrid type sflight-carrid,
v_connid type sflight-connid,
v_repid type sy-repid,
v_tabix type sy-tabix.
data : v_btyp,
v_mtyp,
v_stat,
v_modval(20),
v_modrow(05),
v_modcol(05).
data : v_top_of_page type slis_formname value 'TOP_OF_PAGE',
v_user_command type slis_formname value 'USER_COMMAND',
v_pf_status_set type slis_formname value 'PF_STATUS_SET'.
data : wa_fieldcat type slis_fieldcat_alv,
i_fieldcat type slis_t_fieldcat_alv." WITH HEADER LINE.
data : wa_event type slis_alv_event,
i_event type slis_t_event.
data : wa_event_exit_struct type slis_event_exit.
data : wa_event_exit type slis_event_exit,
i_event_exit type slis_t_event_exit.
data : wa_comments type slis_listheader,
i_comments type slis_t_listheader.
data : wa_layout type slis_layout_alv.
data : i_columns type slis_t_fieldcat_alv.
data : x_columns type slis_fieldcat_alv occurs 0 with header line.
data : begin of i_graph occurs 0,
field(45) type c,
value type p,
end of i_graph.
select-options : s_carrid for v_carrid,
s_connid for v_connid.
start-of-selection.
perform get_data_from_sflight.
end-of-selection.
perform build_fieldcat.
perform modify_fieldcat.
perform insert_pfstatus.
perform fill_events_exitab.
perform build_comments.
perform set_layout.
perform write_icons.
perform write_alv_report.
*perform get_alv_info.
&----
*& Form GET_DATA_FROM_SFLIGHT
&----
text
----
form get_data_from_sflight.
select carrid
connid
fldate
price
paymentsum
seatsocc
from sflight
into corresponding fields of table i_sflight
where carrid in s_carrid
and connid in s_connid.
endform. " GET_DATA_FROM_SFLIGHT
&----
*& Form BUILD_FIELDCAT
&----
text
----
-->P_I_FIELDCAT text
----
form build_fieldcat.
clear : i_fieldcat[].
v_repid = sy-repid.
I_FIELDCAT-COL_POS = '1'.
I_FIELDCAT-FIELDNAME = 'CARRID'.
I_FIELDCAT-TABNAME = 'I_SFLIGHT'.
I_FIELDCAT-KEY = 'X'.
APPEND I_FIELDCAT.
*
I_FIELDCAT-COL_POS = '2'.
I_FIELDCAT-FIELDNAME = 'CONNID'.
I_FIELDCAT-TABNAME = 'I_SFLIGHT'.
I_FIELDCAT-KEY = 'X'.
APPEND I_FIELDCAT.
*
I_FIELDCAT-COL_POS = '3'.
I_FIELDCAT-FIELDNAME = 'FLDATE'.
I_FIELDCAT-TABNAME = 'I_SFLIGHT'.
I_FIELDCAT-KEY = ' '.
APPEND I_FIELDCAT.
*
I_FIELDCAT-COL_POS = '4'.
I_FIELDCAT-FIELDNAME = 'PRICE'.
I_FIELDCAT-TABNAME = 'I_SFLIGHT'.
I_FIELDCAT-KEY = ' '.
APPEND I_FIELDCAT.
*
I_FIELDCAT-COL_POS = '5'.
I_FIELDCAT-FIELDNAME = 'PAYMENTSUM'.
I_FIELDCAT-TABNAME = 'I_SFLIGHT'.
I_FIELDCAT-KEY = 'X'.
APPEND I_FIELDCAT.
CLEAR I_FIELDCAT.
*
I_FIELDCAT-COL_POS = '6'.
I_FIELDCAT-FIELDNAME = 'SEATSOCC'.
I_FIELDCAT-TABNAME = 'I_SFLIGHT'.
I_FIELDCAT-KEY = ' '.
APPEND I_FIELDCAT.
CLEAR I_FIELDCAT.
call function 'REUSE_ALV_FIELDCATALOG_MERGE'
exporting
i_program_name = v_repid
i_internal_tabname = 'I_SFLIGHT'
I_STRUCTURE_NAME =
I_CLIENT_NEVER_DISPLAY = 'X'
i_inclname = v_repid
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE =
changing
ct_fieldcat = i_fieldcat
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.
endform. " BUILD_FIELDCAT
&----
*& Form WRITE_ALV_REPORT
&----
text
----
form write_alv_report.
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 = v_pf_status_set
i_callback_user_command = v_user_command
I_STRUCTURE_NAME =
is_layout = wa_layout
it_fieldcat = i_fieldcat[]
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER = I_FILTER
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'X'
IS_VARIANT =
it_events = i_event
it_event_exit = i_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 = i_sflight
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. " WRITE_ALV_REPORT
&----
*& Form MODIFY_FIELDCAT
&----
text
----
form modify_fieldcat.
loop at i_fieldcat into wa_fieldcat.
clear v_tabix.
v_tabix = sy-tabix.
case wa_fieldcat-fieldname.
when 'CARRID'.
wa_fieldcat-col_pos = '1'.
wa_fieldcat-ddictxt = 'L'.
wa_fieldcat-seltext_l = 'Carrier Id'.
wa_fieldcat-just = 'M'.
when 'PRICE'.
wa_fieldcat-do_sum = 'X'.
wa_fieldcat-icon = 'X'.
when 'PAYMENTSUM'.
if wa_fieldcat-key = 'X'.
wa_fieldcat-key = ' '.
endif.
when 'ID'.
wa_fieldcat-icon = 'X'.
wa_fieldcat-do_sum = 'X'.
endcase.
modify i_fieldcat from wa_fieldcat index v_tabix.
clear wa_fieldcat.
endloop.
endform. " MODIFY_FIELDCAT
&----
*& Form BUILD_GRAPHS
&----
text
----
form build_graphs.
CALL FUNCTION 'GRAPH_2D'
EXPORTING
AUTO_CMD_1 = ' '
AUTO_CMD_2 = ' '
TYPE = ' '
DISPLAY_TYPE = ' '
INBUF = ' '
INFORM = '7'
MAIL_ALLOW = 'X'
PWDID = ' '
SET_FOCUS = 'x'
SMFONT = ' '
SO_CONTENTS = ' '
SO_RECEIVER = ' '
SO_SEND = ' '
SO_TITLE = ' '
STAT = 'V_STAT'
SUPER = ' '
TIMER = ' '
TITL = ' '
VALT = ' '
WDID = ' '
WINID = ' '
WINPOS = ' '
WINSZX = '50'
WINSZY = '50'
X_OPT = ' '
NOTIFY = ' '
IMPORTING
B_KEY =
B_TYP = V_BTYP
CUA_ID =
MOD_COL = V_MODROW
MOD_ROW = V_MODCOL
MOD_VAL = V_MODVAL
M_TYP = V_MTYP
RBUFF =
RWNID =
TABLES
data = I_SFLIGHT
EXCEPTIONS
GUI_REFUSE_GRAPHIC = 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. " BUILD_GRAPHS
&----
*& Form TOP_OF_PAGE
&----
text
----
form top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_comments
I_LOGO =
I_END_OF_LIST_GRID =
.
endform. " TOP_OF_PAGE
&----
*& Form insert_pfstatus
&----
text
----
form insert_pfstatus.
data : v_tabix1 type sy-tabix.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = i_event
exceptions
list_type_wrong = 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.
read table i_event with key name = slis_ev_top_of_page
into wa_event.
clear v_tabix1.
v_tabix1 = sy-tabix.
if sy-subrc = 0.
wa_event-form = v_top_of_page.
modify i_event from wa_event index v_tabix1.
endif.
read table i_event with key name = slis_ev_user_command
into wa_event.
clear v_tabix1.
v_tabix1 = sy-tabix.
if sy-subrc = 0.
wa_event-form = v_user_command.
modify i_event from wa_event index v_tabix1.
endif.
read table i_event with key name = slis_ev_pf_status_set
into wa_event.
clear v_tabix1.
v_tabix1 = sy-tabix.
if sy-subrc = 0.
wa_event-form = v_pf_status_set.
modify i_event from wa_event index v_tabix1.
endif.
read table i_event with key name = slis_ev_end_of_list
into wa_event.
clear v_tabix1.
v_tabix1 = sy-tabix.
if sy-subrc = 0.
wa_event-form = 'END_OF_PAGE'.
modify i_event from wa_event index v_tabix1.
endif.
endform. " insert_pfstatus
&----
*& Form PF_STATUS_SET
&----
text
----
form pf_status_set using extab type slis_t_extab.
set pf-status 'STANDARD_FULLSCREEN'.
endform. " PF_STATUS_SET
&----
*& Form FILL_EVENTS_EXITAB
&----
text
----
form fill_events_exitab.
wa_event_exit_struct-ucomm = 'DISPLAYGRA'.
wa_event_exit_struct-after = 'X'.
append wa_event_exit_struct to i_event_exit.
clear wa_event_exit_struct.
endform. " FILL_EVENTS_EXITAB
&----
*& Form BUILD_COMMENTS
&----
text
----
form build_comments.
clear : i_comments,
i_comments[].
wa_comments-typ = 'S'.
wa_comments-info = 'RAVIKANTH'.
append wa_comments to i_comments.
endform. " BUILD_COMMENTS
&----
*& Form USER_COMMAND
&----
text
----
form user_command using p_ucomm like sy-ucomm
rs_selfield type slis_selfield.
data : v_ucomm type sy-ucomm.
rs_selfield-refresh = space.
v_ucomm = sy-ucomm.
p_ucomm = v_ucomm.
clear v_ucomm.
data : l_row type c.
case p_ucomm.
when 'DISPLAYGRA'.
perform get_alv_info.
x_columns[] = i_columns[].
loop at i_sflight.
read table x_columns with key fieldname = 'PRICE'.
if sy-subrc = 0.
i_graph-field = 'PRICE'.
i_graph-value = i_sflight-price.
append i_graph.
clear i_graph.
endif.
read table x_columns with key fieldname = 'PAYMENTSUM'.
if sy-subrc = 0.
i_graph-field = 'PAYMENTSUM'.
i_graph-value = i_sflight-paymentsum.
append i_graph.
clear i_graph.
endif.
endloop.
call function 'GRAPH_2D'
exporting
AUTO_CMD_1 = ' '
AUTO_CMD_2 = ' '
TYPE = ' '
DISPLAY_TYPE = ' '
INBUF = ' '
inform = '7'
MAIL_ALLOW = 'X'
PWDID = ' '
SET_FOCUS = 'x'
SMFONT = ' '
SO_CONTENTS = ' '
SO_RECEIVER = ' '
SO_SEND = ' '
SO_TITLE = ' '
STAT = V_STAT
SUPER = ' '
TIMER = ' '
TITL = ' '
VALT = ' '
WDID = ' '
WINID = ' '
WINPOS = ' '
WINSZX = '50'
WINSZY = '50'
X_OPT = ' '
NOTIFY = ' '
importing
B_KEY =
b_typ = v_btyp
CUA_ID =
mod_col = v_modcol
mod_row = v_modrow
mod_val = v_modval
m_typ = v_mtyp
RBUFF =
RWNID =
tables
data = i_graph
EXCEPTIONS
GUI_REFUSE_GRAPHIC = 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.
endcase.
endform. " USER_COMMAND
&----
*& Form SET_LAYOUT
&----
text
----
form set_layout.
clear wa_layout.
wa_layout-box_fieldname = 'CHECK'.
wa_layout-info_fieldname = 'COLOR'.
wa_layout-zebra = 'X'.
endform. " SET_LAYOUT
&----
*& Form WRITE_ICONS
&----
text
----
form write_icons.
data : begin of i_icon occurs 0,
id like icon-id,
end of i_icon.
field-symbols : <i>.
select id
from icon
into table i_icon
where id = icon_checked.
" AND ID = ICON_INCOMPLETE.
ASSIGN (I_ICON-ID) TO <I>.
loop at i_sflight.
if i_sflight-price > i_sflight-paymentsum.
i_sflight-id = '@01@'.
i_sflight-id = '@01@'.
modify i_sflight transporting id.
else.
i_sflight-id = '@02@'.
modify i_sflight transporting id.
endif.
endloop.
endform. " WRITE_ICONS
&----
*& Form get_alv_info
&----
text
----
form get_alv_info.
call function 'REUSE_ALV_GRID_LAYOUT_INFO_GET'
importing
es_layout = wa_layout
et_fieldcat = i_fieldcat
ET_SORT =
ET_FILTER =
ES_GRID_SCROLL =
ES_VARIANT =
et_marked_columns = i_columns
ET_FILTERED_ENTRIES =
ET_FIELDCAT_BACKEND =
ES_PRINT =
exceptions
no_infos = 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.
endform. " get_alv_info
&----
*& Form TOP_OF_PAGE
&----
text
----
form end_of_list.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_comments
I_LOGO =
I_END_OF_LIST_GRID =
.
endform. " END_OF_LIST
Reward points if it works