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

Former Member
0 Likes
694

How to use the

FM reuse_alv_fieldcatalog_merge

can U plz tell me with an Example

including its declaration

6 REPLIES 6
Read only

Former Member
0 Likes
668

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

Read only

0 Likes
668

Hi ,

please refer to programs BALV* in the system.

Shobana

Read only

0 Likes
668

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

Read only

Former Member
0 Likes
667

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.

Read only

Former Member
0 Likes
667

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.

Read only

Former Member
0 Likes
667

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