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

re: classical reporting

Former Member
0 Likes
653

Hi ,

can any one send good classical report (real time exmpale) first explain the functionality clearly, and explain the selection creteria, and about the output.

Thanks&regards

Sashi

3 REPLIES 3
Read only

Former Member
0 Likes
618

Classical Reports:

These are the most simple reports. Programmers learn this one first. It is just an output of data using the Write statement inside a loop.

Classical reports are normal reports. These reports are not having any sub reports. IT IS HAVING ONLY ONE SCREEN/LIST FOR OUTPUT.

Events In Classical Reports:

INTIALIZATION: This event triggers before selection screen display.

AT-SELECTION-SCREEN: This event triggers after proccesing user input still selection screen is in active mode.

START OF SELECTION: Start of selection screen triggers after proceesing selection screen.

END-OF-SELECTION: It is for Logical Database Reporting.

CLASSICAL REPORTS

Events in Classical report

Events associated with classical report are as follows and each one will be discussed in detail.

• INITIALIZATION

• AT SELECTION-SCREEN

• AT SELECTION-SCREEN ON <field>

• START-OF-SELECTION

• TOP-OF-PAGE

• END-OF-PAGE

• END-OF-SELECTION

In this case first three events are associated with selection screen. Rest of the events are associated with your list.

• INITIALIZATION

We have already seen how to fill default values for the selection criteria. But in many cases you need to calculate the value and then put it in selection criteria. For example, say, you are accepting date from user and you need to fill in the default value for lower range as sy-datum – 30 days and sy-datum for higher range. In this case you are calculating lower range and then filling the criteria. This can be done in INITIALIZATION event. Piece of code to do the above task would look like the following:

Tables: Sflight.

Select-options: fldate1 for sflight-fldate.

INITIALIZATION.

Data: date1 like SY-DATUM.

Date1 = sy-datum – 30.

Fldate1-low = date1.

Fldate1-high = sy-datum.

Append fldate1.

  • Here appending is required because fldate1 is int’ table

This event is triggered when you execute your program for the first time i.e., before selection screen is displayed.

• AT SELECTION-SCREEN

When user enters the values in the fields of selection screen and clicks on execute button, this event gets triggered. This event is basically for checking the values entered by the user for the fields of the selection screen i.e., data validity checking. This event is for entire selection screen. For example:

You are accepting carrid, connid, fldate from user and you don’t want to proceed if user enters no value for carrid and fldate. Using AT SELECTION-SCREEN can do this.

Select-options: carrid1 for sflight-carrid,

Connid1 for sflight-connid,

F1date1 for sflight-f1date.

AT SELECTION-SCREEN.

If carrid1-low ne ‘ ’ and fldate1-low = ‘ ’.

Error message.

Endif.

In this case, if both the fields are entered blank, then the user gets error message.

Basically, this event is for many fields on selection screen. Usually, it is for the fields which are logically related.

• AT SELECTION-SCREEN ON <field>

When you want to check for specific value of a field. For example, carrid should be in the range of ‘LH’ and ‘SQ’. This can be done in this event. Basically, this event is for checking individual fields. You can have many AT selection-screen events in your program (i.e., for each field specified in the Select-Options).

Select-Options carrid1 for sflight-carrid.

AT SELECTION-SCREEN.

If carrid1-low ne ‘LH’ and carrid1-high ne ‘SQ’.

Error message.

Endif.

Here the system will not proceed on entering wrong values.

• START-OF-SELECTION

This is the first event for your list. Once all the events are triggered for selection screen, the data is retrieved from database. Data declaration, select statements are done in this event. Consider the following example:

START-OF-SELECTION.

Data: mtype i.

Tables: sflight.

Select * from sflight where carrid = ‘LH’.

Write: / sflight-carrid,sflight-connid.

Endselect.

• TOP-OF-PAGE

This event is triggered with first WRITE statement or whenever new page is triggered. Advantage of using this event is that, whatever you write under this event, is applicable to all the pages. If you don’t have any write statement before TOP-OF-PAGE or in START-OF-SELECTION, this event is not triggered at all. For example, if you want the name of company and column headers for all the pages, it can be written in this event.

TOP-OF-PAGE

Write: / ‘INTELLIGROUP ASIA PVT. LTD.’

Write : / 10 ‘carrid’, 20 ‘connid’, 30 ‘fldate’.

• END-OF-PAGE

This event is triggered at the end of page.

End-of-page.

Write : / ‘page number’, sy-pagno.

In this case page number will be written on every page.

Conditional triggering of EOP

Consider the following case.

REPORT ZDEMO1 line-count 15(3).

Top-of-page.

Write: ‘this line is written by top-of-page event’.

Start-of-selection.

Write: ‘this line is written by start-of-selection event’.

End-of-page.

Write : ‘this line is written by end-of-page event’.

In this case EOP will never be triggered, as end of page is never reached. The total Line-count defined for page = 15 in which 3 lines are for footer area. The output of the above code will be

This line is written by top of page event.

This line is written by start of selection event.

In output screen, only two lines are written and cursor remains still on 3rd line, the end-of-page event is not triggered. To trigger end of page event, cursor should reach at the last position, in this case on 11th line.

Such cases are quite common, and could be overcome by conditional triggering of end of page.

Sy-linct is the system variable, which gives total line count of a list.

Sy-linno is the system variable, which gives the current line number where the cursor is placed on the list.

Consider the following case:

Report zdemo1 line count 20(1).

Start-of-selection.

Data: m type i.

Write: / ‘this is first line’.

Do 5 times.

Write: / ‘the number is’, sy-index.

Enddo.

M = sy-linct, sy-linno – 1.

Skip x.

End-of-page.

Write: / ‘page end’.

The output of above example is as follows :

This is first line.

The number is 1

The number is 2

The number is 3

The number is 4

The number is 5

After skipping 10 lines

Page end

In this case, with all write statement, you don’t reach to the end of page. After all write statement, m is calculated in this case:

M = 20 – 8 – 1, So m is 12. And 11 lines are skipped after write statement and end of page is reached. (In this case you have 6 write statement so 6 lines + 1 line for page number and 1 horizontal line which is displayed for any list. So cursor is on 8th line and is subtracted from total line count i.e, 20.)

Common errors that user commits

Stating of another event denotes the end of any event. If you forget to mention the next event then everything is included in the same event. Consider the following case:

AT SELECTION-SCREEN.

If carrid1-low ne ‘ ‘.

Err. or message.

Endif.

Write: / ‘INTELLIGROUP ASIA P. LTD.’

WRITE: / 10 ‘CARRID’, 20 ‘CONNID’, 30 ‘FLDATE’.

START-OF-SELECTION.

….….

….

In this case all the write statement are included in the `at selection screen’ as top-of-page is not specified. The end of `at selection-screen’ is denoted by the starting of start-of-selection.

Though the sequence of events in program is immaterial, it is a good programming practice to write all the events in the order specified above.

Using Variants with selection criteria

In many cases you need report to execute report at regular interval for certain fixed values of selection criteria. That means each times you execute the report you need to enter its values again and again. ABAP/4 provides the facility by which you can define the values for selection screen and store it. Using VARIANTS can do this. It can be defined as group of values used for selection criteria while executing report. For a particular report, you create a variant which means variant created for particular report cannot be used for another report. The group of values for the selection criteria is saved and assigned a variant name. So every time you call a report, you need not specify the values for selection criteria but instead call the variant thus avoiding extra typing. User can have many variants for a single report. Each of them can be used as different type of information. For example, if a manager wants to see how an employee in personnel department or admin department has performed. He need not enter the department, one has to just execute the report with variant. In case he doesn’t know about the variant, which is available, he can display list of variants attached to the report and values assigned to each variant.

Creating variant

• Execute the report program. The selection screen is displayed.

• Enter the values for selection screen and click on saves.

- System displays the variant screen

• Enter the variant name and description for it.

• Save it.

Usually the variants are useful when you need to execute the report in background, which will be discussed in background processing.

also refer to the following links

http://wiki.ittoolbox.com/index.php/FAQ:How_many_types_of_reports_are_there_in_ABAP_and_what_is_the_...

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

http://www.sapmaterial.com/?gclid=CN322K28t4sCFQ-WbgodSGbK2g

Pls do reward points.

Read only

0 Likes
618

REPORT YMS_ALVDEMO .

TYPE-POOLS : SLIS.

TABLES : QALS.

DATA : BEGIN OF T_OUT OCCURS 0,

MATNR LIKE QALS-MATNR, "MATERIAL

WERK LIKE QALS-WERK, "PLANT

ART LIKE QALS-ART, "Inspaction Lot Type

OBJNR LIKE QALS-OBJNR, "Object Number

END OF T_OUT.

DATA : I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

I_LAYOUT TYPE SLIS_LAYOUT_ALV,

GS_LAYOUT TYPE LVC_S_LAYO,

G_REPID TYPE SY-REPID,

LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

SELECT-OPTIONS:S_PRFLOS FOR QALS-PRUEFLOS.

INITIALIZATION.

G_REPID = SY-REPID.

I_LAYOUT-ZEBRA = 'X'.

I_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

START-OF-SELECTION.

PERFORM FETCH_DATA.

END-OF-SELECTION.

PERFORM FILL_FIELDCAT.

PERFORM DISPLAY_ALV.

&----


*& Form FETCH_DATA

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM FETCH_DATA .

SELECT MATNR WERK ART OBJNR

FROM QALS

INTO TABLE T_OUT

WHERE PRUEFLOS IN S_PRFLOS.

ENDFORM. " FETCH_DATA

&----


*& Form FILL_FIELDCAT

&----


  • text

----


FORM FILL_FIELDCAT .

REFRESH I_FIELDCAT[].

CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

EXPORTING

I_PROGRAM_NAME = G_REPID

I_INTERNAL_TABNAME = 'T_OUT'

I_INCLNAME = G_REPID

CHANGING

CT_FIELDCAT = I_FIELDCAT[]

EXCEPTIONS

INCONSISTENT_INTERFACE = 1

PROGRAM_ERROR = 2

OTHERS = 3.

ENDFORM. " FILL_FIELDCAT

&----


*& Form display_alv

&----


  • text

----


FORM DISPLAY_ALV .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

IS_LAYOUT = I_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

TABLES

T_OUTTAB = T_OUT

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

ENDFORM. " display_alv

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

For Classical Report Example refer to link,

http://www.sapmaterial.com/?gclid=CN322K28t4sCFQ-WbgodSGbK2g

For Interactive Report check the following Example,

Check this sample code which provides exact info.

REPORT YMS_ALVINTER1.

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

TABLE DECLARATION

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

TABLES: vbak , "Sales Document: Header Data

vbap , "Sales Document: Item Data

makt , "Material Descriptions

lips . "SD document: Delivery: Item data

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

DECLARATION OF TYPE-POOL

*THIS TYPE-POOL CONTAINS THE EVENTS,

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

TYPE-POOLS : slis.

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

DECLARATION OF EVENTS

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

DATA: i_event TYPE slis_t_event.

DATA: t_event TYPE slis_alv_event.

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

DECLARATION OF LIST HEADER

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

DATA: i_listheader TYPE slis_t_listheader.

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

DECLARATION OF FIELD CATALOG FOR SCREEN 1

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

DATA: i_fldcat TYPE slis_t_fieldcat_alv WITH HEADER LINE.

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

DECLARATION OF FIELD CATALOG FOR SCREEN 2

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

DATA: i_fldcat2 TYPE slis_t_fieldcat_alv WITH HEADER LINE.

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

DECLARATION OF FIELD LAYOUT

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

DATA: i_layout TYPE slis_layout_alv.

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

SORTING OF OUTPUT

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

DATA: i_sort TYPE slis_t_sortinfo_alv.

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

*DATA DECLARATION

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

DATA: v_auart TYPE tvak-auart,

v_vkorg TYPE tvko-vkorg,

v_kunnr TYPE kna1-kunnr,

v_matnr TYPE mara-matnr ,

v_spart TYPE tvta-spart .

TYPES: BEGIN OF it_so ,

vbeln TYPE vbeln_va , "SALES ORDER NO.

auart TYPE auart , "SALES DOC. TYPE

vkorg TYPE vkorg , "SALES ORG.

spart TYPE spart , "DIVISION

kunnr TYPE kunag , "SOLD TO PARTY

posnr TYPE posnr_va , "SALES DOC. ITEM

matnr TYPE matnr , "MATERIAL NO

maktx TYPE maktx , "DESCRIPTION

kwmeng TYPE kwmeng , "QUANTITY

vrkme TYPE vrkme , "SALES UNIT

line_color(4) TYPE c ,

END OF it_so .

TYPES: BEGIN OF it_del ,

vbeln TYPE vbeln_vl , "SALES ORDER NO.

posnr TYPE posnr_vl , "SALES DOC. ITEM

matnr TYPE matnr , "MATERIAL NO

werks TYPE werks_d , "PLANT

lgort TYPE lgort_d , "STORAGE LOCATION

charg TYPE charg_d , "BATCH NO.

lfimg TYPE lfimg , "ACTUAL DELIVERY QTY.

vrkme TYPE vrkme , "SALES UNIT

END OF it_del .

TYPES: BEGIN OF type_vbfa ,

vbelv TYPE vbeln_von , "Preceding sales and distribution document

posnv TYPE posnr_von , "Preceding item of an SD document

vbeln TYPE vbeln_nach, "Subsequent sales and distribution document

posnn TYPE posnr_nach, "Document category of subsequent document

vbtyp_n TYPE vbtyp_n ,

END OF type_vbfa .

DATA: it_so1 TYPE STANDARD TABLE OF it_so ,

it_del1 TYPE STANDARD TABLE OF it_del ,

it_vbfa TYPE STANDARD TABLE OF type_vbfa,

it_del_ful TYPE STANDARD TABLE OF it_del.

DATA: wa_so TYPE it_so ,

wa_del TYPE it_del ,

wa_vbfa TYPE type_vbfa,

wa_it_del_ful TYPE it_del.

DATA: i_title_vbfa TYPE lvc_title VALUE 'SALES ORDER LIST DISPLAYED'.

DATA: i_title_vbpa TYPE lvc_title VALUE

'DELIVERY DETAILS DISPLAYED AGAINST GIVEN SALES ORDER'.

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

*SELECTION SCREEN *

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

SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-004 .

SELECT-OPTIONS: s_vbeln FOR vbak-vbeln ,

s_auart FOR v_auart ,

s_vkorg FOR v_vkorg ,

s_spart FOR v_spart ,

s_kunnr FOR v_kunnr ,

s_matnr FOR v_matnr .

SELECTION-SCREEN END OF BLOCK blk1 .

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

*AT SELECTION SCREEN *

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

AT SELECTION-SCREEN.

SELECT SINGLE vbeln

FROM vbak INTO vbak-vbeln

WHERE vbeln IN s_vbeln.

IF sy-subrc <> 0.

MESSAGE e202.

ENDIF.

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

*START OF SELECTION *

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

START-OF-SELECTION .

PERFORM data_select.

PERFORM t_sort USING i_sort .

PERFORM event_cat USING i_event .

PERFORM fld_cat USING i_fldcat[] .

PERFORM t_layout USING i_layout .

PERFORM fld_cat2 USING i_fldcat2[] .

PERFORM call_alv.

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

  • DATA SELECT *

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

&----


*& Form DATA_SELECT

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM data_select .

REFRESH: it_vbfa, it_so1, it_del_ful ,it_del1 .

  • BREAK-POINT.

SELECT

a~vbeln

a~auart

a~vkorg

a~spart

a~kunnr

b~posnr

b~matnr

c~maktx

b~kwmeng

b~vrkme

INTO TABLE it_so1 FROM vbak AS a

JOIN vbap AS b ON bvbeln = avbeln

JOIN makt AS c ON cmatnr = bmatnr

AND c~spras = sy-langu

WHERE a~vbeln IN s_vbeln .

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

  • COLURING DISPLAY *

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

DATA: ld_color(1) TYPE c .

LOOP AT it_so1 INTO wa_so.

  • 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_so-line_color.

  • wa_ekko-line_color = 'C410'.

MODIFY it_so1 FROM wa_so.

ENDLOOP .

IF sy-subrc = 0.

SELECT vbelv

posnv

vbeln

posnn

vbtyp_n

INTO TABLE it_vbfa

FROM vbfa

FOR ALL ENTRIES IN it_so1

WHERE vbelv = it_so1-vbeln

AND posnn = it_so1-posnr

AND vbtyp_n ='J' .

IF sy-subrc = 0.

SELECT vbeln

posnr

matnr

werks

lgort

charg

lfimg

vrkme

FROM lips INTO TABLE it_del_ful

FOR ALL ENTRIES IN it_vbfa

WHERE vbeln = it_vbfa-vbeln

AND posnr = it_vbfa-posnn.

ENDIF.

ENDIF.

ENDFORM. " DATA_SELECT

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

                                • EVENT CATALOG ****************************************

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

&----


*& Form EVENT_CAT

&----


  • text

----


  • -->P_I_EVENT text

----


FORM event_cat USING p_i_event TYPE slis_t_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

.

  • 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_i_event WITH KEY name = slis_ev_top_of_page INTO t_event.

IF sy-subrc = 0.

MOVE 'TOP_OF_PAGE' TO t_event-form.

MODIFY p_i_event FROM t_event INDEX sy-tabix TRANSPORTING form.

ENDIF.

CLEAR t_event .

ENDFORM. " EVENT_CAT

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

*********FORM FOR EVENT TOP_OF_PAGE*********************************

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

FORM top_of_page .

REFRESH i_listheader.

DATA: t_header TYPE slis_listheader.

DATA: v_text(50).

WRITE sy-datum TO v_text.

CLEAR t_header.

t_header-typ = 'S'.

t_header-key = 'Date'.

t_header-info = v_text.

APPEND t_header TO i_listheader.

CLEAR t_header.

CLEAR v_text.

  • WRITE: 'SALES ORDER REPORT ' TO v_text .

  • t_header-typ = 'S'.

  • t_header-key = 'TITLE'.

  • t_header-info = v_text.

  • APPEND t_header TO i_listheader.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

it_list_commentary = i_listheader

I_LOGO = 'ENJOYSAP_LOGO' .

  • I_END_OF_LIST_GRID =

ENDFORM. "TOP_OF_PAGE

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

                • FIRST ALV GRID DISPLAY ***************************************

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

&----


*& Form CALL_ALV

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM call_alv .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

  • I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

i_callback_user_command = 'USER_COMMAND1'

i_callback_top_of_page = 'TOP_OF_PAGE'

  • I_BACKGROUND_ID = 'ALV_BACKGROUND'

i_grid_title = i_title_vbfa

is_layout = i_layout

it_fieldcat = i_fldcat[]

it_sort = i_sort

it_events = i_event

TABLES

t_outtab = it_so1

.

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

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

                            • FIRST FIELDCATALOG *************************************

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

&----


*& Form FLD_CAT

&----


  • text

----


  • -->P_I_FLDCAT[] text

----


FORM fld_cat USING p_i_fldcat TYPE slis_t_fieldcat_alv.

CLEAR i_fldcat.

i_fldcat-fieldname = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'."TABLE NAME

i_fldcat-seltext_m = 'SALES ORDER NO.'.

i_fldcat-col_pos = 1. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'AUART'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'."TABLE NAME

i_fldcat-seltext_m = 'SALES DOC. TYPE'.

i_fldcat-col_pos = 2. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'VKORG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SALES ORG.'.

i_fldcat-col_pos = 3. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 12. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'SPART'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'DIVISION'.

i_fldcat-col_pos = 4. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 10. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'KUNNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SOLD TO PARTY'.

i_fldcat-col_pos = 5. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SALES DOC. ITEM'.

i_fldcat-col_pos = 6. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 17. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'MATERIAL NO.'.

i_fldcat-col_pos = 7. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'MAKTX'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'DESCRIPTION'.

i_fldcat-col_pos = 8. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'KWMENG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'QUANTITY'.

i_fldcat-col_pos = 9. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 15. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-do_sum = 'X'. " For doing "SUM"

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

CLEAR i_fldcat.

i_fldcat-fieldname = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat-tabname = 'IT_SO1'.

i_fldcat-seltext_m = 'SALES UNIT'.

i_fldcat-col_pos = 10. " POSITION OF THE COLUMN.

i_fldcat-outputlen = 10. " SET THE OUTPUT LENGTH.

i_fldcat-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat-just(1) = 'C'.

APPEND i_fldcat.

ENDFORM. " FLD_CAT

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

                                    • ALV SORTING ***************************************

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

&----


*& Form SORT

&----


  • text

----


  • -->P_I_SORT text

----


FORM t_sort USING p_i_sort TYPE slis_t_sortinfo_alv .

DATA: i_sort TYPE slis_sortinfo_alv .

REFRESH p_i_sort .

CLEAR i_sort.

i_sort-spos = 1.

i_sort-tabname = 'IT_SO1'.

i_sort-fieldname = 'VBELN'.

i_sort-up = 'X'.

i_sort-subtot = 'X'.

i_sort-group = '*'.

APPEND i_sort TO p_i_sort.

ENDFORM. " SORT

*FORM SET_PF_STATUS USING rt_extab TYPE slis_t_extab.

  • SET PF-STATUS 'ZSTANDARD'.

*ENDFORM. "Set_pf_status

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

**********FORM FOR EVENT USER_COMMAND1*******************************

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

FORM user_command1 USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

*CASE R_UCOMM .

  • WHEN '&IC1' .

*

  • IF rs_selfield-FIELDNAME = 'VBELN' .

*

  • ENDIF .

*

  • WHEN OTHERS .

*

  • ENDCASE .

CLEAR wa_so.

REFRESH: it_del1 .

IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND

rs_selfield-value IS NOT INITIAL.

READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.

IF sy-subrc = 0.

LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = wa_so-vbeln

AND posnv = wa_so-posnr.

READ TABLE it_del_ful INTO wa_it_del_ful

WITH KEY vbeln = wa_vbfa-vbelv

posnr = wa_vbfa-posnn.

IF sy-subrc = 0.

CLEAR wa_del.

MOVE wa_it_del_ful TO wa_del.

APPEND wa_del TO it_del1.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

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

                  • SECOND ALV GRID DISPLAY ***********************************

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

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

i_callback_program = sy-repid

  • I_CALLBACK_PF_STATUS_SET = 'SET_PF_STATUS'

i_callback_user_command = 'USER_COMMAND2'

i_callback_top_of_page = 'TOP_OF_PAGE'

  • I_BACKGROUND_ID = 'ALV_BACKGROUND'

i_grid_title = i_title_vbpa

it_fieldcat = i_fldcat2[]

it_sort = i_sort

TABLES

t_outtab = it_del_ful

.

  • 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_COMMAND1

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

                    • FORM FOR EVENT USER_COMMAND 2 ******************************

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

FORM user_command2 USING r_ucomm LIKE sy-ucomm

rs_selfield TYPE slis_selfield.

CLEAR wa_so.

REFRESH: it_del1 .

IF r_ucomm = '&IC1' AND rs_selfield-fieldname = 'VBELN' AND

rs_selfield-value IS NOT INITIAL.

READ TABLE it_so1 INTO wa_so INDEX rs_selfield-tabindex.

  • IF SY-SUBRC = 0.

*

  • LOOP AT it_vbfa INTO wa_vbfa WHERE vbelv = WA_SO-vbeln

  • AND posnv = WA_SO-posnr.

READ TABLE it_del_ful INTO wa_it_del_ful

WITH KEY vbeln = rs_selfield-value

posnr = wa_vbfa-posnn.

IF rs_selfield-fieldname = 'VBELN'.

SET PARAMETER ID 'VL' FIELD wa_vbfa-vbeln .

CALL TRANSACTION 'VL03' AND SKIP FIRST SCREEN.

ENDIF .

  • ENDLOOP.

  • ENDIF.

ENDIF.

ENDFORM . "USER_COMMAND2

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

                  • SECOND FIELDCATALOG ******************************************

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

&----


*& Form FLD_CAT2

&----


  • text

----


  • -->P_I_FLDCAT2[] text

----


FORM fld_cat2 USING p_i_fldcat2 TYPE slis_t_fieldcat_alv .

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'VBELN'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-tabname = 'IT_DEL_FUL'."TABLE NAME

i_fldcat2-seltext_m = 'DELIVERY NO.'.

i_fldcat2-col_pos = 1. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-hotspot = 'X'.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'POSNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'DELIVERY ITEM'.

i_fldcat2-col_pos = 2. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'MATNR'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'MATERIAL NO.'.

i_fldcat2-col_pos = 3. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'WERKS'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'PLANT.'.

i_fldcat2-col_pos = 4. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'LGORT'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'ST. LOCATION'.

i_fldcat2-col_pos = 5. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'CHARG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'BATCH NO.'.

i_fldcat2-col_pos = 6. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'LFIMG'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'ACT. DEL. QTY.'.

i_fldcat2-col_pos = 7. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

CLEAR i_fldcat2.

i_fldcat2-fieldname = 'VRKME'. "FIELD FOR WHICH CATALOG ID FILLED

i_fldcat2-seltext_m = 'SALES UNIT.'.

i_fldcat2-col_pos = 8. " POSITION OF THE COLUMN.

i_fldcat2-outputlen = 20. " SET THE OUTPUT LENGTH.

i_fldcat2-emphasize = 'X'. " COLOR OF THIS COLUMN.

i_fldcat2-key = 'X'. " SO THAT THIS FIELD IS NOT

"SCROLLABLE AND HIDDABLE.

i_fldcat2-just(1) = 'C'.

APPEND i_fldcat2.

ENDFORM. " FLD_CAT2

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

                                  • ALV LAYOUT *******************************************

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

&----


*& Form LAYOUT

&----


  • text

----


  • -->P_I_LAYOUT text

----


FORM t_layout USING p_i_layout TYPE slis_layout_alv .

p_i_layout-zebra = 'X'.

p_i_layout-totals_text = 'GRAND TOTAL ='.

  • p_i_layout-CONFIRMATION_PROMPT = 'X'.

  • p_i_layout-DEF_STATUS = ' '.

p_i_layout-info_fieldname = 'LINE_COLOR'.

ENDFORM. " LAYOUT

This is the sample report for ALV INTERACTIVE .

REPORT YMS_ALVINTERSAMPLE NO STANDARD PAGE HEADING LINE-SIZE 650

MESSAGE-ID ZZ_9838.

TYPE-POOLS: SLIS.

*type declaration for values from ekko

TYPES: BEGIN OF I_EKKO,

EBELN LIKE EKKO-EBELN,

AEDAT LIKE EKKO-AEDAT,

BUKRS LIKE EKKO-BUKRS,

BSART LIKE EKKO-BSART,

LIFNR LIKE EKKO-LIFNR,

END OF I_EKKO.

DATA: IT_EKKO TYPE STANDARD TABLE OF I_EKKO INITIAL SIZE 0,

WA_EKKO TYPE I_EKKO.

*type declaration for values from ekpo

TYPES: BEGIN OF I_EKPO,

EBELN LIKE EKPO-EBELN,

EBELP LIKE EKPO-EBELP,

MATNR LIKE EKPO-MATNR,

MENGE LIKE EKPO-MENGE,

MEINS LIKE EKPO-MEINS,

NETPR LIKE EKPO-NETPR,

END OF I_EKPO.

DATA: IT_EKPO TYPE STANDARD TABLE OF I_EKPO INITIAL SIZE 0,

WA_EKPO TYPE I_EKPO .

*variable for Report ID

DATA: V_REPID LIKE SY-REPID .

*declaration for fieldcatalog

DATA: I_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV.

DATA: IT_LISTHEADER TYPE SLIS_T_LISTHEADER.

  • declaration for events table where user comand or set PF status will

  • be defined

DATA: V_EVENTS TYPE SLIS_T_EVENT,

WA_EVENT TYPE SLIS_ALV_EVENT.

  • declartion for layout

DATA: ALV_LAYOUT TYPE SLIS_LAYOUT_ALV.

  • declaration for variant(type of display we want)

DATA: I_VARIANT TYPE DISVARIANT,

I_VARIANT1 TYPE DISVARIANT,

I_SAVE(1) TYPE C.

*PARAMETERS : p_var TYPE disvariant-variant.

*Title displayed when the alv list is displayed

DATA: I_TITLE_EKKO TYPE LVC_TITLE VALUE 'FIRST LIST DISPLAYED'.

DATA: I_TITLE_EKPO TYPE LVC_TITLE VALUE 'SECONDRY LIST DISPLAYED'.

INITIALIZATION.

V_REPID = SY-REPID.

PERFORM BUILD_FIELDCATLOG.

PERFORM EVENT_CALL.

PERFORM POPULATE_EVENT.

START-OF-SELECTION.

PERFORM DATA_RETRIEVAL.

PERFORM BUILD_LISTHEADER USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_REPORT.

&----


*& Form BUILD_FIELDCATLOG

&----


  • Fieldcatalog has all the field details from ekko

----


FORM BUILD_FIELDCATLOG.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'AEDAT'.

WA_FIELDCAT-SELTEXT_M = 'DATE.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'COMPANY CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'BUKRS'.

WA_FIELDCAT-SELTEXT_M = 'DOCMENT TYPE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKKO'.

WA_FIELDCAT-FIELDNAME = 'LIFNR'.

WA_FIELDCAT-NO_OUT = 'X'.

WA_FIELDCAT-SELTEXT_M = 'VENDOR CODE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG

&----


*& Form EVENT_CALL

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_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.

ENDFORM. "EVENT_CALL

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'USER_COMMAND'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'USER_COMMAND'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-NAME.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form data_retrieval

&----


  • retreiving values from the database table ekko

----


FORM DATA_RETRIEVAL.

SELECT EBELN AEDAT BUKRS BSART LIFNR FROM EKKO INTO TABLE IT_EKKO.

ENDFORM. "data_retrieval

&----


*& Form bUild_listheader

&----


  • text

----


  • -->I_LISTHEADEtext

----


FORM BUILD_LISTHEADER USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA HLINE TYPE SLIS_LISTHEADER.

HLINE-INFO = 'this is my first alv pgm'.

HLINE-TYP = 'H'.

ENDFORM. "build_listheader

&----


*& Form display_alv_report

&----


  • text

----


FORM DISPLAY_ALV_REPORT.

V_REPID = SY-REPID.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = V_REPID

  • I_CALLBACK_PF_STATUS_SET = ' '

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

I_CALLBACK_TOP_OF_PAGE = 'TOP_OF_PAGE'

I_GRID_TITLE = I_TITLE_EKKO

  • I_GRID_SETTINGS =

  • IS_LAYOUT = ALV_LAYOUT

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • i_default = 'ZLAY1'

I_SAVE = 'A'

  • is_variant = i_variant

IT_EVENTS = V_EVENTS

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 TOP_OF_PAGE

&----


  • text

----


FORM TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

RS_SELFIELD TYPE SLIS_SELFIELD.

CASE R_UCOMM.

WHEN '&IC1'.

READ TABLE IT_EKKO INTO WA_EKKO INDEX RS_SELFIELD-TABINDEX.

PERFORM BUILD_FIELDCATLOG_EKPO.

PERFORM EVENT_CALL_EKPO.

PERFORM POPULATE_EVENT_EKPO.

PERFORM DATA_RETRIEVAL_EKPO.

PERFORM BUILD_LISTHEADER_EKPO USING IT_LISTHEADER.

PERFORM DISPLAY_ALV_EKPO.

ENDCASE.

ENDFORM. "user_command

&----


*& Form BUILD_FIELDCATLOG_EKPO

&----


  • text

----


FORM BUILD_FIELDCATLOG_EKPO.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELN'.

WA_FIELDCAT-SELTEXT_M = 'PO NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'IT_EKPO'.

WA_FIELDCAT-FIELDNAME = 'EBELP'.

WA_FIELDCAT-SELTEXT_M = 'LINE NO'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MATNR'.

WA_FIELDCAT-SELTEXT_M = 'MATERIAL NO.'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MENGE'.

WA_FIELDCAT-SELTEXT_M = 'QUANTITY'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'MEINS'.

WA_FIELDCAT-SELTEXT_M = 'UOM'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

WA_FIELDCAT-TABNAME = 'I_EKPO'.

WA_FIELDCAT-FIELDNAME = 'NETPR'.

WA_FIELDCAT-SELTEXT_M = 'PRICE'.

APPEND WA_FIELDCAT TO I_FIELDCAT.

CLEAR WA_FIELDCAT.

ENDFORM. "BUILD_FIELDCATLOG_EKPO

&----


*& Form event_call_ekpo

&----


  • we get all events - TOP OF PAGE or USER COMMAND in table v_events

----


FORM EVENT_CALL_EKPO.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

EXPORTING

I_LIST_TYPE = 0

IMPORTING

ET_EVENTS = V_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.

ENDFORM. "event_call_ekpo

&----


*& Form POPULATE_EVENT

&----


  • Events populated for TOP OF PAGE & USER COMAND

----


FORM POPULATE_EVENT_EKPO.

READ TABLE V_EVENTS INTO WA_EVENT WITH KEY NAME = 'TOP_OF_PAGE'.

IF SY-SUBRC EQ 0.

WA_EVENT-FORM = 'TOP_OF_PAGE'.

MODIFY V_EVENTS FROM WA_EVENT TRANSPORTING FORM WHERE NAME =

WA_EVENT-FORM.

ENDIF.

ENDFORM. "POPULATE_EVENT

&----


*& Form TOP_OF_PAGE

&----


  • text

----


FORM F_TOP_OF_PAGE.

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = IT_LISTHEADER

  • i_logo =

  • I_END_OF_LIST_GRID =

.

ENDFORM. "TOP_OF_PAGE

&----


*& Form USER_COMMAND

&----


  • text

----


  • -->R_UCOMM text

  • -->, text

  • -->RS_SLEFIELDtext

----


*retreiving values from the database table ekko

FORM DATA_RETRIEVAL_EKPO.

SELECT EBELN EBELP MATNR MENGE MEINS NETPR FROM EKPO INTO TABLE IT_EKPO.

ENDFORM.

FORM BUILD_LISTHEADER_EKPO USING I_LISTHEADER TYPE SLIS_T_LISTHEADER.

DATA: HLINE1 TYPE SLIS_LISTHEADER.

HLINE1-TYP = 'H'.

HLINE1-INFO = 'CHECKING PGM'.

ENDFORM.

FORM DISPLAY_ALV_EKPO.

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 = 'F_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_TITLE_EKPO

  • I_GRID_SETTINGS =

  • IS_LAYOUT =

IT_FIELDCAT = I_FIELDCAT[]

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT =

I_SAVE = 'A'

  • IS_VARIANT =

IT_EVENTS = V_EVENTS

TABLES

T_OUTTAB = IT_EKPO

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.

Please give me reward points if it is useful...

Read only

Former Member
0 Likes
618

hi,

could you please give u r mail id, such that i can forward you the documments

regards,

pavan