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 interactive program

Former Member
0 Likes
1,290

Hi please send any example on alv interactive program

Regards

8 REPLIES 8
Read only

Former Member
0 Likes
1,034

Hi

Goto SE38 and type BCALV and click F4 button. All are examples of ALV programs.

Best regards,

Prashant

Read only

Former Member
0 Likes
1,034

Hi

report yh645_secndry_alv.

type-pools: slis.

data: fieldcat type slis_t_fieldcat_alv,

fieldcat_ln like line of fieldcat,

fs_layout type slis_layout_alv,

t_layoout like standard table

of fs_layout.

data: begin of fs_spfli,

carrid type spfli-carrid,

connid type spfli-connid,

countryfr type spfli-countryfr,

cityfrom type spfli-cityfrom,

airpfrom type spfli-airpfrom,

countryto type spfli-countryto,

cityto type spfli-cityto,

airpto type spfli-airpto,

fltime type spfli-fltime,

deptime type spfli-deptime,

arrtime type spfli-arrtime,

distance type spfli-distance,

distid type spfli-distid,

fltype type spfli-fltype,

period type spfli-period,

checkbox,

color(3),

end of fs_spfli.

data:

begin of fs_table,

carrid type spfli-carrid,

connid type spfli-connid,

end of fs_table.

data: begin of fs_sflight,

check,

color(3).

include type sflight.

data:end of fs_sflight.

data:

begin of fs_table1,

carrid type sflight-carrid,

connid type sflight-connid,

fldate type sflight-fldate,

end of fs_table1.

data:

t_spfli like standard table

of fs_spfli.

data:

t_table like standard table

of fs_table.

data:

t_table1 like standard table

of fs_table1.

data:

t_sflight like standard table

of fs_sflight.

data:

t_sbook like standard table

of sbook.

data t_layout type slis_layout_alv.

select *

into corresponding fields of table t_spfli

from spfli.

perform start_list_viewer.

perform get_spfli_details.

&----


*& Form SUB1

&----


  • text

----


  • -->RT_EXTAB text

----


form sub1 using rt_extab type slis_t_extab.

data: flight type slis_extab.

flight-fcode = 'SFLIGHT'.

append flight to rt_extab.

set pf-status 'SFLIGHT'. " EXCLUDING RT_EXTAB.

endform. "SUB1

&----


*& Form START_LIST_VIEWER

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form start_list_viewer .

data: pgm like sy-repid.

pgm = sy-repid.

fs_layout-box_fieldname = 'CHECKBOX'.

fs_layout-info_fieldname = 'COLOR'.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

i_callback_program = pgm

i_callback_pf_status_set = 'SUB1'

i_callback_user_command = 'USER_COMMAND'

i_structure_name = 'SPFLI'

is_layout = fs_layout

tables

t_outtab = t_spfli

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. " START_LIST_VIEWER

*******Process Call Back Events (Begin)**************************

form user_command using ucomm like sy-ucomm

selfield type slis_selfield.

case ucomm.

when 'SFLIGHT'.

selfield-refresh = 'X'.

perform get_spfli_details.

select *

from sflight

into corresponding fields of table t_sflight

for all entries in t_table

where carrid eq t_table-carrid

and connid eq t_table-connid.

perform display_sflight.

when 'SBOOK'.

selfield-refresh = 'X'.

perform get_sflight_details.

select *

from sbook

into corresponding fields of table t_sbook

for all entries in t_table1

where carrid eq t_table1-carrid

and connid eq t_table1-connid

and fldate eq t_table1-fldate.

perform display_sbook.

endcase.

endform. "USER_COMMAND

&----


*& Form SUB2

&----


  • text

----


  • -->RT_EXTAB text

----


form sub2 using rt_extab type slis_t_extab.

data: flight type slis_extab.

flight-fcode = 'SBOOK'.

append flight to rt_extab.

set pf-status 'SBOOK'. " EXCLUDING RT_EXTAB.

endform. "SUB2

&----


*& Form DISPLAY_SFLIGHT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form display_sflight .

data: pgm like sy-repid.

pgm = sy-repid.

clear t_layout.

fs_layout-box_fieldname = 'CHECK'.

fs_layout-info_fieldname = 'COLOR'.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

i_callback_program = pgm

i_callback_pf_status_set = 'SUB2'

i_callback_user_command = 'USER_COMMAND'

i_structure_name = 'SFLIGHT'

is_layout = fs_layout

tables

t_outtab = t_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. " DISPLAY_SFLIGHT

&----


*& Form GET_SPFLI_DETAILS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_spfli_details .

loop at t_spfli into fs_spfli.

if fs_spfli-checkbox = 'X'.

fs_spfli-color = 'C51'.

fs_spfli-checkbox = '1'.

fs_table-carrid = fs_spfli-carrid.

fs_table-connid = fs_spfli-connid.

append fs_table to t_table.

modify t_spfli from fs_spfli.

endif.

endloop.

endform. " GET_SFLIGHT_DETAILS

&----


*& Form GET_SFLIGHT_DETAILS

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form get_sflight_details .

loop at t_sflight into fs_sflight.

if fs_sflight-check = 'X'.

fs_sflight-color = 'C71'.

fs_sflight-check = '1'.

fs_table1-carrid = fs_sflight-carrid.

fs_table1-connid = fs_sflight-connid.

fs_table1-fldate = fs_sflight-fldate.

append fs_table1 to t_table1.

modify t_sflight from fs_sflight.

endif.

endloop.

endform. " GET_SFLIGHT_DETAILS

&----


*& Form DISPLAY_SBOOK

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form display_sbook .

data: pgm like sy-repid.

pgm = sy-repid.

call function 'REUSE_ALV_LIST_DISPLAY'

exporting

i_callback_program = pgm

i_structure_name = 'SBOOK'

tables

t_outtab = t_sbook

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_SBOOK

Reward points if useful

Regards

Anji

Read only

Former Member
0 Likes
1,034

hi,

ALV

http://www.geocities.com/mpioud/Abap_programs.html

http://www.sapdevelopment.co.uk/reporting/reportinghome.htm

Simple ALV report

http://www.sapgenie.com/abap/controls/alvgrid.htm

http://wiki.ittoolbox.com/index.php/Code:Ultimate_ALV_table_toolbox

ALV

1. Please give me general info on ALV.

http://www.sapfans.com/forums/viewtopic.php?t=58286

http://www.sapfans.com/forums/viewtopic.php?t=76490

http://www.sapfans.com/forums/viewtopic.php?t=20591

http://www.sapfans.com/forums/viewtopic.php?t=66305 - this one discusses which way should you use - ABAP Objects calls or simple function modules.

2. How do I program double click in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=11601

http://www.sapfans.com/forums/viewtopic.php?t=23010

3. How do I add subtotals (I have problem to add them)...

http://www.sapfans.com/forums/viewtopic.php?t=20386

http://www.sapfans.com/forums/viewtopic.php?t=85191

http://www.sapfans.com/forums/viewtopic.php?t=88401

http://www.sapfans.com/forums/viewtopic.php?t=17335

4. How to add list heading like top-of-page in ABAP lists?

http://www.sapfans.com/forums/viewtopic.php?t=58775

http://www.sapfans.com/forums/viewtopic.php?t=60550

http://www.sapfans.com/forums/viewtopic.php?t=16629

5. How to print page number / total number of pages X/XX in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=29597 (no direct solution)

6. ALV printing problems. The favourite is: The first page shows the number of records selected but I don't need this.

http://www.sapfans.com/forums/viewtopic.php?t=64320

http://www.sapfans.com/forums/viewtopic.php?t=44477

7. How can I set the cell color in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=52107

8. How do I print a logo/graphics in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=81149

http://www.sapfans.com/forums/viewtopic.php?t=35498

http://www.sapfans.com/forums/viewtopic.php?t=5013

9. How do I create and use input-enabled fields in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=84933

http://www.sapfans.com/forums/viewtopic.php?t=69878

10. How can I use ALV for reports that are going to be run in background?

http://www.sapfans.com/forums/viewtopic.php?t=83243

http://www.sapfans.com/forums/viewtopic.php?t=19224

11. How can I display an icon in ALV? (Common requirement is traffic light icon).

http://www.sapfans.com/forums/viewtopic.php?t=79424

http://www.sapfans.com/forums/viewtopic.php?t=24512

12. How can I display a checkbox in ALV?

http://www.sapfans.com/forums/viewtopic.php?t=88376

http://www.sapfans.com/forums/viewtopic.php?t=40968

http://www.sapfans.com/forums/viewtopic.php?t=6919

Go thru these programs they may help u to try on some hands on

ALV Demo program

BCALV_DEMO_HTML

BCALV_FULLSCREEN_DEMO ALV Demo: Fullscreen Mode

BCALV_FULLSCREEN_DEMO_CLASSIC ALV demo: Fullscreen mode

BCALV_GRID_DEMO Simple ALV Control Call Demo Program

BCALV_TREE_DEMO Demo for ALV tree control

BCALV_TREE_SIMPLE_DEMO

BC_ALV_DEMO_HTML_D0100

Rgds

Reshma

Read only

Former Member
0 Likes
1,034

hi ravi...

this is a simple ALV Interactive Report

<u><b>AIM</b></u>

Design a Report that would take display all the Sales Order between 2 dates. When the user double clicks on a sales order the report would then display additional details on that Sales Order

1) Use Select Options for the range of dates (VBAK-ERDAT).

2) Display the following fields for the Report from the Sales Document Header (VBAK). Customer name can be found in table (KNA1).

<b>

1)Document No.

2)Creation User Name

3) Creation Date

4) Customer Name</b>

3) Display the following for the drill down Report from the Sales Document Item (VBAP). Material Description can be found in table (MAKT).

<b>

1) Material No.

2) Material Description.

3) Batch Number.

4) Item type</b>

The program should handle exceptions and display proper error message where required.

<u><b>CODING</b></u>

REPORT sales_report NO STANDARD PAGE HEADING .

TABLES :  vbak .

TYPES : BEGIN OF st_vbak ,

        vbeln TYPE vbak-vbeln ,
        ernam TYPE vbak-ernam ,
        erdat TYPE vbak-erdat ,
        name1 TYPE kna1-name1 ,
        END OF st_vbak .

TYPES :  BEGIN OF st_vbap ,
        matnr TYPE vbap-matnr ,
        maktx TYPE makt-maktx ,
        charg TYPE vbap-charg ,
        posar TYPE vbap-posar ,
        END OF st_vbap .

DATA :  it_vbak TYPE TABLE OF st_vbak ,
        wa_vbak TYPE st_vbak ,
        it_vbap TYPE TABLE OF st_vbap ,
        wa_vbap  TYPE st_vbap .

TOP-OF-PAGE .
  WRITE :4 sy-vline .
  WRITE AT 5(125) sy-uline.
  WRITE :130 sy-vline .
  WRITE :/4 sy-vline  ,
          10 Document No.,
          39 sy-vline ,
          40 Creation User Name,
          69 sy-vline ,
          70 Creation Date,
          89 sy-vline ,
          90 Customer Name,
          130 sy-vline.

  WRITE :/130 sy-vline .
  WRITE  AT 5(125) sy-uline.
  WRITE :4 sy-vline ,130 sy-vline .

<b>TOP-OF-PAGE DURING LINE-SELECTION .

  WRITE :4 sy-vline .
  WRITE AT 5(125) sy-uline.
  WRITE :130 sy-vline .
  WRITE :/4 sy-vline  ,
          10 Material No.,
          39 sy-vline ,
          40 Material Description,
          69 sy-vline ,
          70 Batch Number.,
          89 sy-vline ,
          90 Item type,
         130 sy-vline.

  WRITE :/130 sy-vline .
  WRITE  AT 5(125) sy-uline.
  WRITE :4   sy-vline ,
         130 sy-vline .

</b>

&----


*& S E L E C T - O P T I O N S

&----


SELECTION-SCREEN BEGIN OF BLOCK sales WITH FRAME TITLE text-009.
  SELECT-OPTIONS put_date FOR vbak-erdat  .
  SELECTION-SCREEN END OF BLOCK sales .

<b>AT LINE-SELECTION .</b>
  PERFORM select_and_write_vbap .

START-OF-SELECTION.

  PERFORM sales_document .

END-OF-SELECTION.

&----


*& Form select_and_write_vbap

&----


  • text

----


FORM select_and_write_vbap .
  SELECT

        vbap~matnr
        makt~maktx
        vbap~charg
        vbap~posar

  FROM ( vbap INNER JOIN makt ON vbap~matnr = makt~matnr )
  INTO CORRESPONDING FIELDS OF TABLE IT_VBAP
  WHERE vbap~vbeln = wa_vbak-vbeln AND spras = 'EN' .

  IF sy-subrc EQ 0 .
    LOOP AT it_vbap INTO wa_vbap .

      WRITE :/4 sy-vline        ,
      10 wa_vbap-matnr ,
      39 sy-vline       ,
      40 wa_vbap-maktx ,
      69 sy-vline       ,
      70 wa_vbap-charg ,
      89 sy-vline       ,
      90 wa_vbap-posar ,
      130 sy-vline      .

    ENDLOOP.
    WRITE :/4 sy-vline.
    WRITE AT 5(125) sy-uline.
    WRITE 130 sy-vline.
  ELSE .
    MESSAGE s000(zginni) .
  ENDIF .

ENDFORM    . 

"select_vbap

&----


*& Form sales_document

&----


  • text

*---------------------------------------------------------------------*
FORM sales_document .

  IF put_date-low IS INITIAL AND put_date-high IS NOT INITIAL .
    SELECT
            vbak~vbeln
            vbak~ernam
            vbak~erdat
            kna1~name1

      FROM ( kna1 INNER JOIN vbak ON vbak~kunnr = kna1~kunnr )  INTO
      CORRESPONDING FIELDS OF TABLE IT_VBAK

       WHERE vbak~erdat  <= put_date-high.
    IF sy-subrc EQ 0 .
      PERFORM looping_wa_vbak .
    ELSE .
      MESSAGE s000(zginni) .
    ENDIF .
  ENDIF .

  IF put_date-low IS NOT INITIAL AND put_date-high IS INITIAL .
    SELECT      vbeln
                vbak~ernam
                vbak~erdat
                kna1~name1

         FROM ( kna1 INNER JOIN vbak ON vbak~kunnr = kna1~kunnr )  INTO
          CORRESPONDING FIELDS OF TABLE IT_VBAK

           WHERE vbak~erdat EQ put_date-low .
    IF sy-subrc EQ 0 .
      PERFORM looping_wa_vbak .
    ELSE .
      MESSAGE s000(zginni) .
    ENDIF .
  ENDIF .

  IF put_date-high IS INITIAL AND put_date-low IS INITIAL .

    MESSAGE s000(zginni) .

  ELSE .

    SELECT

          vbak~vbeln
          vbak~ernam
          vbak~erdat
          kna1~name1

    FROM ( kna1 INNER JOIN vbak ON vbak~kunnr = kna1~kunnr )  INTO
    CORRESPONDING FIELDS OF TABLE IT_VBAK

     WHERE vbak~erdat  BETWEEN put_date-low AND put_date-high.
    IF sy-subrc EQ 0 .
      PERFORM looping_wa_vbak .
    ELSE .
      MESSAGE s000(zginni) .
    ENDIF .

  ENDIF .


ENDFORM .   

"sales_document

&----


*& Form looping_wa_vbak

&----


  • text

----


FORM  looping_wa_vbak .

 LOOP AT it_vbak INTO wa_vbak .

    <b>WRITE :/4 sy-vline           ,
            10 wa_vbak-vbeln .
    HIDE wa_vbak-vbeln .</b>    
WRITE:  39 sy-vline          ,
            40 wa_vbak-ernam ,
            69 sy-vline          ,
            70 wa_vbak-erdat ,
            89 sy-vline          ,
            90 wa_vbak-name1 ,
           130 sy-vline         .
  ENDLOOP.
  WRITE :/4 sy-vline.
  WRITE AT 5(125) sy-uline .
  WRITE 130 sy-vline.

ENDFORM.

"looping_wa_vbak

Read only

Former Member
0 Likes
1,034

<b><< SAMPLE INTERACTIVE ALV PROGRAM>> </b> .

<b>THIS WOULD HELP YOU IN UNDERSTANDING INTERACTIVE ALV</b>

TABLES: ZAMITCT.",ZAMITFT.

DATA: BEGIN OF T_AMIT_CT OCCURS 0,

NAME TYPE ZAMITCT-NAME,

EMPID TYPE ZAMITCT-EMPID,

AGE TYPE ZAMITCT-AGE,

ROW_NO TYPE I VALUE 0,

END OF T_AMIT_CT.

DATA T_AMIT_FT LIKE TABLE OF ZAMITFT WITH HEADER LINE.

TYPE-POOLS: SLIS.

CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.

DATA: WS_TITLE TYPE LVC_TITLE VALUE 'Double click on Name or Empid',

FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

W_FIELDCAT LIKE LINE OF FIELDCAT,

GD_TAB_GROUP TYPE SLIS_T_SP_GROUP_ALV WITH HEADER LINE,

GD_LAYOUT TYPE SLIS_LAYOUT_ALV,

GD_EVENTS TYPE SLIS_T_EVENT,

GD_SORT TYPE SLIS_T_SORTINFO_ALV,

GS_PRINT TYPE SLIS_PRINT_ALV,

GD_REPID LIKE SY-REPID.

START-OF-SELECTION.

PERFORM RETRIEVE_DATA.

PERFORM BUILD_FIELD.

PERFORM EVENTTAB_BUILD USING GD_EVENTS.

PERFORM BUILD_LAYOUT CHANGING GD_LAYOUT.

PERFORM DISPLAY.

&----


*& Form retrieve_data

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM RETRIEVE_DATA .

DATA: LIN TYPE I.

SELECT * FROM ZAMITCT INTO CORRESPONDING FIELDS OF TABLE T_AMIT_CT.

DESCRIBE TABLE T_AMIT_CT LINES LIN.

IF LIN GT 0.

SORT T_AMIT_CT BY NAME EMPID ASCENDING.

LOOP AT T_AMIT_CT.

T_AMIT_CT-ROW_NO = SY-TABIX.

MODIFY T_AMIT_CT.

ENDLOOP.

ELSE.

SUBMIT ZAMITBIKES2.

ENDIF.

ENDFORM. " retrieve_data

&----


*& Form build_field

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM BUILD_FIELD .

GD_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = GD_REPID

  • I_INTERNAL_TABNAME = 't_amit_ct'

I_STRUCTURE_NAME = 'ZAMITBIKE'

  • I_CLIENT_NEVER_DISPLAY = 'X'

  • I_INCLNAME =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = 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.

LOOP AT FIELDCAT INTO W_FIELDCAT.

W_FIELDCAT-JUST = 'C'.

CASE W_FIELDCAT-FIELDNAME.

WHEN 'ROW_NO'.

W_FIELDCAT-SELTEXT_M = 'ROW_NO'.

W_FIELDCAT-COL_POS = 0.

W_FIELDCAT-KEY = 'X'.

WHEN 'NAME' .

W_FIELDCAT-SELTEXT_M = 'NAME'.

W_FIELDCAT-COL_POS = 1.

W_FIELDCAT-KEY = 'X'.

WHEN 'EMPID'.

W_FIELDCAT-SELTEXT_M = 'EMPID'.

W_FIELDCAT-COL_POS = 2.

W_FIELDCAT-KEY = 'X'.

W_FIELDCAT-HOTSPOT = 'X'.

WHEN 'AGE'.

W_FIELDCAT-SELTEXT_M = 'AGE'.

W_FIELDCAT-COL_POS = 3.

W_FIELDCAT-EMPHASIZE = 'C710'.

W_FIELDCAT-HOTSPOT = 'X'.

ENDCASE.

MODIFY FIELDCAT FROM W_FIELDCAT.

ENDLOOP.

ENDFORM. " build_field

&----


*& Form eventtab_build

&----


  • text

----


  • -->P_GD_EVENTS text

----


FORM EVENTTAB_BUILD USING P_EVENTS TYPE SLIS_T_EVENT.

DATA: LS_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = P_EVENTS

  • 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 P_EVENTS WITH KEY NAME = SLIS_EV_END_OF_LIST INTO LS_EVENT.

IF SY-SUBRC = 0.

MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.

MODIFY P_EVENTS FROM LS_EVENT INDEX SY-TABIX.

ENDIF.

ENDFORM. " eventtab_build

&----


*& Form top_of_page

&----


  • text

----


FORM TOP_OF_PAGE.

DATA : P_REPORT_HEADER TYPE SLIS_T_LISTHEADER,

P_REPORT_FOOTER TYPE SLIS_T_LISTHEADER,

GS_LINE TYPE LINE OF SLIS_T_LISTHEADER,

FS_LINE TYPE LINE OF SLIS_T_LISTHEADER.

GS_LINE-TYP = 'H' .

GS_LINE-INFO = 'Employee Details'.

APPEND GS_LINE TO P_REPORT_HEADER.

CLEAR GS_LINE.

GS_LINE-TYP = 'S' .

GS_LINE-INFO = 'Thanks for visiting'.

APPEND GS_LINE TO P_REPORT_HEADER.

CLEAR GS_LINE.

FS_LINE-TYP = 'S' .

FS_LINE-INFO = 'Thanks for visiting'.

APPEND FS_LINE TO P_REPORT_FOOTER.

CLEAR FS_LINE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = P_REPORT_HEADER

I_LOGO = 'WIPROLOGO'

  • I_END_OF_LIST_GRID = 'X'

.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = P_REPORT_FOOTER

I_LOGO = 'WIPRO_LOGO'

I_END_OF_LIST_GRID = 'X'.

ENDFORM. "top_of_page

&----


*& Form build_layout

&----


  • text

----


  • <--P_GD_LAYOUT text

----


FORM BUILD_LAYOUT CHANGING P_GD_LAYOUT.

GD_LAYOUT-NO_INPUT = ''.

GD_LAYOUT-ZEBRA = 'X'.

GD_LAYOUT-HEADER_TEXT = 'My ALV'.

GD_LAYOUT-TOTALS_TEXT = 'Total'(201).

GD_LAYOUT-DETAIL_POPUP = 'X'.

GD_LAYOUT-DETAIL_TITLEBAR = 'Detail List Titlebar'.

ENDFORM. " build_layout

&----


*& Form DISPLAY

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM DISPLAY .

GD_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = GD_REPID

I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

I_STRUCTURE_NAME = 't_amit_ct'

  • I_BACKGROUND_ID = 't_amit_ct'

I_GRID_TITLE = WS_TITLE

  • I_GRID_SETTINGS =

IS_LAYOUT = GD_LAYOUT

IT_FIELDCAT = FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

I_DEFAULT = 'X'

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = GD_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 = T_AMIT_CT

  • 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

&----


*& Form user_command

&----


  • text

----


  • -->R_UCOMM text

  • -->RS_SELFIELD text

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM RS_SELFIELD TYPE

SLIS_SELFIELD.

CASE SY-UCOMM.

WHEN 'PRV'.

LEAVE TO SCREEN 0.

ENDCASE.

CASE RS_SELFIELD-FIELDNAME.

WHEN 'NAME'.

SELECT * FROM ZAMITFT INTO TABLE T_AMIT_FT WHERE NAME =

RS_SELFIELD-VALUE.

WHEN 'EMPID'.

SELECT * FROM ZAMITFT INTO TABLE T_AMIT_FT WHERE EMPID =

RS_SELFIELD-VALUE.

ENDCASE.

CLEAR: FIELDCAT[],FIELDCAT.

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = GD_REPID

I_INTERNAL_TABNAME = 't_amit_ft'

I_STRUCTURE_NAME = 'ZAMITFT'

  • I_CLIENT_NEVER_DISPLAY = 'X'

  • I_INCLNAME =

  • I_BYPASSING_BUFFER =

  • I_BUFFER_ACTIVE =

CHANGING

CT_FIELDCAT = 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.

LOOP AT FIELDCAT INTO W_FIELDCAT.

W_FIELDCAT-JUST = 'C'.

CASE W_FIELDCAT-FIELDNAME.

WHEN 'NAME'.

W_FIELDCAT-SELTEXT_S = 'NAME'.

W_FIELDCAT-KEY = 'X'.

W_FIELDCAT-COL_POS = 0.

WHEN 'EMPID' .

W_FIELDCAT-SELTEXT_S = 'EMPID'.

W_FIELDCAT-KEY = 'X'.

W_FIELDCAT-COL_POS = 1.

WHEN 'SALARY' .

W_FIELDCAT-SELTEXT_S = 'SALARY'.

W_FIELDCAT-COL_POS = 2.

WHEN 'CITY' .

W_FIELDCAT-SELTEXT_S = 'CITY'.

W_FIELDCAT-COL_POS = 3.

ENDCASE.

ENDLOOP.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

I_CALLBACK_PROGRAM = GD_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 = 't_amit_ft'

I_BACKGROUND_ID = 'BLUE.GIF'

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

IS_LAYOUT = GD_LAYOUT

IT_FIELDCAT = FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

I_DEFAULT = 'X'

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = GD_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 = T_AMIT_FT

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

&----


*& Form PF_STATUS

&----


  • text

----


  • -->R_STATUS_SET text

----


FORM PF_STATUS USING R_STATUS_SET.

SET PF-STATUS 'STANDARD'.

ENDFORM. "PF_STATUS<b></b><b></b>

Read only

uwe_schieferstein
Active Contributor
0 Likes
1,034

Hello Ravi

I have posted several simplified sample reports in the <i>ABAP Objects</i> forum showing various aspects of ALV programming. Simply search for <b>ZUS_SDN</b>.

Example:

Regards

Uwe

Read only

Former Member
0 Likes
1,034

hi,

internal table with header line.

data : begin of itab_mara,

matnr like mara-matnr,

enum like mara-enum,

end of itab_mara.

data : begin of itab_marc,

matnr like marc-matnr,

werks like marc-werks.

data : begin of itab_final,

data : d_fieldcat type slis_t_fieldcat_alv,

d_fieldcat_wa type slis_fieldcat_alv.

selection-screen : begin of block blk1 with frame title text-001.

select-options : s_matnr for mara-matnr,

s_werks for marc-werks.

selection-screen : end of block blk1.

d_fieldcat_wa-fieldname = 'MATNR'.

d_fieldcat_seltext_l = 'material number'.

d_fieldcat_wa-col_pos = 1.

append d_fieldcat_wa to t_fieldcat.

clear d_fieldcat_wa.

d_fieldcat_wa-fieldname = 'WERKS'.

d_fieldcat_seltext_l = 'plants'.

d_fieldcat_wa-col_pos = 2.

append d_fieldcat_wa to t_fieldcat.

clear d_fieldcat_wa.

data :gd_repid like sy-repid.

gd_repid = sy-repid.

call function module reuse_grid_display_alv.

exporting.

proramname = gd_repid.

fieldcat = d_fieldcat.

importing.

t_outtab = itab_final.

exceptions.

reward with points if helpful.

Read only

Former Member
0 Likes
1,034

Hi

see this link you will find all types of ALV programs

Type-pools : slis.
Tables : vbap.



types: begin of t_vbap,

VBELN type	VBELN_VA,
POSNR	type POSNR_VA,
MATNR type	MATNR,
MATWA	type MATWA,
PMATN	type PMATN,
CHARG	type CHARG_D,

       end of t_vbap.






  DATA :  i_vbap  type standard table of t_VBAP,
          i_fldcat type  standard table of slis_fieldcat_alv,
          wa_fldcat type slis_fieldcat_alv,
*          layout type  slis_layout_alv,
          i_header type slis_t_listheader,
          wa_header type slis_listheader,
          I_EVENTS TYPE STANDARD TABLE OF SLIS_alv_EVENT,
          WA_EVENTS TYPE SLIS_ALV_EVENT.



select-options: so_vbeln for VBAP-vbeln .

perform get_data.

perform build_fieldcatalog.
PERFORM EVENTS.
*perform buil_layout.
perform display_data.

*&---------------------------------------------------------------------*
*&      Form  get_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form get_data .

select

  VBELN
  POSNR
  MATNR
  MATWA
  PMATN
  CHARG


into corresponding fields of table i_vbap
from VBAP where vbeln in so_vbeln.
endform.                    " get_data


*&---------------------------------------------------------------------*
*&      Form  build_fieldcatalog
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form build_fieldcatalog .

 wa_fldcat-fieldname   = 'VBELN'.
  wa_fldcat-seltext_m   = 'sales Order'.
  wa_fldcat-col_pos     = 0.
  wa_fldcat-outputlen   = 10.
  wa_fldcat-emphasize   = 'X'.
*  wa_fldcat-key         = 'X'.

append wa_fldcat to i_fldcat.
clear wa_fldcat.

wa_fldcat-fieldname   = 'POSNR'.
  wa_fldcat-seltext_l   = 'position number'.
  wa_fldcat-col_pos     = 1.
  wa_fldcat-outputlen   = 6.
  wa_fldcat-emphasize   = 'X'.
  wa_fldcat-key         = 'X'.

append wa_fldcat to i_fldcat.
clear wa_fldcat.

wa_fldcat-fieldname   = 'MATNR'.
  wa_fldcat-seltext_l   = 'Material Number'.
  wa_fldcat-col_pos     = 2.
  wa_fldcat-outputlen   = 18.
  wa_fldcat-emphasize   = 'X'.
  wa_fldcat-key         = 'X'.

append wa_fldcat to i_fldcat.
clear wa_fldcat.


wa_fldcat-fieldname   = 'MATWA'.
  wa_fldcat-seltext_l   = 'Material entered'.
  wa_fldcat-col_pos     = 3.
  wa_fldcat-outputlen   = 18.
  wa_fldcat-emphasize   = 'X'.
  wa_fldcat-key         = 'X'.

append wa_fldcat to i_fldcat.
clear wa_fldcat.


 wa_fldcat-fieldname   = 'PMATN'.
  wa_fldcat-seltext_l   = 'Pricing reference'.
  wa_fldcat-col_pos     = 4.
  wa_fldcat-outputlen   = 18.
  wa_fldcat-emphasize   = 'X'.
  wa_fldcat-key         = 'X'.

append wa_fldcat to i_fldcat.
clear wa_fldcat.


wa_fldcat-fieldname   = 'CHARG'.
  wa_fldcat-seltext_l   = 'Batch Number'.
  wa_fldcat-col_pos     = 5.
  wa_fldcat-outputlen   = 10.
  wa_fldcat-emphasize   = 'X'.
  wa_fldcat-key         = 'X'.

append wa_fldcat to i_fldcat.
clear wa_fldcat.

endform.                    " build_fieldcatalog
*&---------------------------------------------------------------------*
*&      Form  buil_layout
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
*form buil_layout .
*
*  layout-no_hotspot = 'X'.
*
*  layout-no_input          = 'X'.
*  layout-colwidth_optimize = 'X'.
*  layout-totals_text       = 'Totals'(201).
*  layout-totals_only        = 'X'.
**  layout-header_text       = 'helllllo'.
*
*
*endform.                    " buil_layout

*-------------------------------------------------------------*
*&      Form  EVENTS
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form EVENTS .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
 EXPORTING
   I_LIST_TYPE           = 0
 IMPORTING
   ET_EVENTS             = I_EVENTS
* 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_events INTO wa_events WITH KEY name = 'TOP_OF_PAGE'.
  IF sy-subrc = 0.
    wa_events-form = 'TOP_OF_PAGE'.
    MODIFY i_events FROM wa_events TRANSPORTING form  WHERE name = wa_events-name.
  ENDIF.

  CLEAR: wa_events.

endform.
                  " EVENTS


*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*

FORM TOP_OF_PAGE.

 wa_header-typ  = 'H'.
  wa_header-info = 'ORDER DISPATCH DETAILS'.
  append wa_header to i_header.
  clear wa_header.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
  EXPORTING
    it_list_commentary       = I_HEADER
   I_LOGO                   = 'CAPGEMINI'
*   I_END_OF_LIST_GRID       =
*   I_ALV_FORM               =


  .
ENDFORM.



*&---------------------------------------------------------------------*
*&      Form  display_data
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  -->  p1        text
*  <--  p2        text
*----------------------------------------------------------------------*
form display_data .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
 EXPORTING
*   I_INTERFACE_CHECK                 = ' '
*   I_BYPASSING_BUFFER                = ' '
*   I_BUFFER_ACTIVE                   = ' '
   I_CALLBACK_PROGRAM                = 'Z_GD_ALV'
*   I_CALLBACK_PF_STATUS_SET          =
*   I_CALLBACK_USER_COMMAND           = ' '
   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                          = layout
   IT_FIELDCAT                        = i_fldcat
*   IT_EXCLUDING                      =
*   IT_SPECIAL_GROUPS                 =
*   IT_SORT                           =
*   IT_FILTER                         =
*   IS_SEL_HIDE                       =
*   I_DEFAULT                         = 'X'
*   I_SAVE                            = ' '
*   IS_VARIANT                        =
   IT_EVENTS                         = I_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
*   I_HTML_HEIGHT_TOP                 = 0
*   I_HTML_HEIGHT_END                 = 0
*   IT_ALV_GRAPHICS                   =
*   IT_HYPERLINK                      =
*   IT_ADD_FIELDCAT                   =
*   IT_EXCEPT_QINFO                   =
*   IR_SALV_FULLSCREEN_ADAPTER        =
* IMPORTING
*   E_EXIT_CAUSED_BY_CALLER           =
*   ES_EXIT_CAUSED_BY_USER            =
  TABLES
    t_outtab                          = i_vbap
* 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_data

<b>Reward if usefull</b>