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

Former Member
0 Likes
516

How do we do ALV interactive and what is the syntax for that? Anyone can send the sample code ?

3 REPLIES 3
Read only

varma_narayana
Active Contributor
0 Likes
484

Hii

Try this sample code.. You will get the solution..

report yacpr0008.

  • This must be included in order to create the fieldcatalog.

type-pools: slis.

parameters: p_dummy type c.

types: begin of ty_data,

select type c,

f1 type i,

f2 type i,

f3 type i,

color_line(4) type c, " Line color

color_cell type lvc_t_scol, " Cell color

end of ty_data.

constants: c_true type boolean_flg value 'X',

c_false type boolean_flg value space.

data: i_data type table of ty_data,

i_field_cat type slis_t_fieldcat_alv,

s_layout type slis_layout_alv.

start-of-selection.

perform f_create_field_cat.

perform f_set_layout.

perform f_create_data.

end-of-selection.

perform f_display_grid.

&----


*& @FORMS

&----


&----


*& Form f_create_data

&----


  • Create some sample data. Specify colors here.

----


form f_create_data.

data: lw_data type ty_data,

lw_color_cell like line of lw_data-color_cell.

**/ Check out how to change the colors.

do 15 times.

clear lw_data.

lw_data-f1 = sy-index.

case sy-index.

when 3.

  • If its the whole line we only have a single value.

lw_data-color_line = 'C410'.

when 8.

  • If it is just a cell. Specify the fieldname and the colour. Note

  • that multiple cells in the same field can be coloured.

lw_color_cell-color-col = 6.

lw_color_cell-fname = 'F1'.

append lw_color_cell to lw_data-color_cell.

endcase.

lw_data-f2 = sy-index * 2.

lw_data-f3 = lw_data-f1 + lw_data-f2.

append lw_data to i_data.

enddo.

*/ .

endform. "f_create_data

&----


*& Form f_create_field_cat

&----


  • Create the fieldcatalog. This needs to contain a minimum of

  • the names of the fields you wish to display. However there are

  • numerous other things which can be added such as position, colour etc.

----


form f_create_field_cat.

**/ Append the field catalog data.

perform f_append_row using: 'F1' 'field one' 3,

'F2' 'field two' 2,

'F3' 'field three' 1. "/ .

endform. "f_create_field_cat

&----


*& Form f_append_row

&----


  • Append a single row to the field catalog.

----


  • -->lv_NAME The name of the field to be added.

  • -->lv_DESC The description for the column heading.

  • -->lv_POS The column number for the field.

----


form f_append_row using pv_name type any

pv_desc type any

pv_pos type any.

data: lw_field_cat like line of i_field_cat.

**/ Put the field cat record into the table.

lw_field_cat-fieldname = pv_name.

lw_field_cat-seltext_l = pv_desc.

lw_field_cat-col_pos = pv_pos.

append lw_field_cat to i_field_cat. "/ .

endform. "f_append_row

&----


*& Form f_create_layout

&----


  • Set the name of the field for the color.

----


form f_set_layout.

s_layout-colwidth_optimize = space.

s_layout-no_colhead = space.

s_layout-zebra = space.

s_layout-no_vline = space.

**/ Field that identify color line in internal table

s_layout-info_fieldname = 'COLOR_LINE'.

  • Field that identify cell color in inetrnal table

s_layout-coltab_fieldname = 'COLOR_CELL'.

*/ .

endform. "f_create_layout

&----


*& Form f_display_grid

&----


  • Call the function to display the grid.

----


form f_display_grid.

data: lv_repid like sy-repid.

lv_repid = sy-repid.

**/ You need to pass in a minimum of the fieldcatalog and the table of data

call function 'REUSE_ALV_GRID_DISPLAY'

exporting

*/ .

  • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = ' '

  • I_BUFFER_ACTIVE = ' '

**/ Enter the program and subroutine name to call back

i_callback_program = lv_repid

  • I_CALLBACK_PF_STATUS_SET = ' '

i_callback_user_command = 'F_USER_COMMAND'

*/ .

  • I_CALLBACK_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

  • I_CALLBACK_HTML_END_OF_LIST = ' '

  • I_STRUCTURE_NAME =

  • I_BACKGROUND_ID = ' '

  • I_GRID_TITLE =

  • I_GRID_SETTINGS =

is_layout = s_layout

**/ the field catalog. Tells SAP what to display

it_fieldcat = i_field_cat

*/ .

  • IT_EXCLUDING =

  • IT_SPECIAL_GROUPS =

  • IT_SORT =

  • IT_FILTER =

  • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = ' '

  • IS_VARIANT =

  • IT_EVENTS =

  • IT_EVENT_EXIT =

  • IS_PRINT =

  • IS_REPREP_ID =

  • I_SCREEN_START_COLUMN = 0

  • I_SCREEN_START_LINE = 0

  • I_SCREEN_END_COLUMN = 0

  • I_SCREEN_END_LINE = 0

  • IT_ALV_GRAPHICS =

  • IT_HYPERLINK =

  • IT_ADD_FIELDCAT =

  • IT_EXCEPT_QINFO =

  • I_HTML_HEIGHT_TOP =

  • I_HTML_HEIGHT_END =

  • IMPORTING

  • E_EXIT_CAUSED_BY_CALLER =

  • ES_EXIT_CAUSED_BY_USER =

**/ The table of data and exceptions

tables

t_outtab = i_data

exceptions

program_error = 1

others = 2

*/ .

.

if sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

endif.

endform. "f_display_grid

&----


*& Form F_USER_COMMAND

&----


  • Perform event handling here.

  • This subroutine changes the value of the field which is double clicked

  • to 9999999.

----


form f_user_command using r_ucomm like sy-ucomm

rs_selfield type slis_selfield.

field-symbols: <fs> type ty_data,

<fs_field> type any.

case r_ucomm.

when '&IC1'.

**/ Read the table index the user clicked on. If the user double clicks a column

  • the value will be 0.

read table i_data assigning <fs> index rs_selfield-tabindex.

if sy-subrc = 0.

  • Assign the field name that was clicked on and change the value.

assign component rs_selfield-fieldname of structure <fs> to <fs_field>.

if sy-subrc <> 0.

exit.

else.

<fs_field> = 9999999.

  • Make sure you refresh the list otherwise the value won't change.

rs_selfield-refresh = 'X'.

endif.

endif.

*/ .

endcase.

endform. "f_user_command

<b>Reward if Helpful</b>

Read only

Former Member
0 Likes
484

Its reuse_alv_events_get

Go through the code..

REPORT ZFI_RK_ACTIVE_VENDORS LINE-COUNT 70

LINE-SIZE 250

NO STANDARD PAGE HEADING..

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

TABLES: DISVARIANT, EKPO.

TYPE-POOLS: SLIS.

  • Tables

TABLES: BSAK, " Accounting secondary index for vendor( cleared)

BSIK, " Accounting secondary index for vendor( opened)

LFA1, " vendor master table

WYT3, "Partner Functions

LFM1, "Vendor master record purchasing organization data

LFB1. "Vendor Master (Company Code)

DATA:V_EKORG LIKE WYT3-EKORG. " purchase organisation

  • vendor tax id table

TYPES : BEGIN OF TY_RTAB ,

BUKRS TYPE BSAK-BUKRS,

STCD1 TYPE LFA1-STCD1,

STCD2 TYPE LFA1-STCD2,

LIFNR TYPE LFA1-LIFNR,

NAME1 TYPE LFA1-NAME1,

NAME2 TYPE LFA1-NAME2,

STRAS TYPE LFA1-STRAS,

ORT01 TYPE LFA1-ORT01,

PSTLZ TYPE LFA1-PSTLZ,

PFACH TYPE LFA1-PFACH,

PFORT TYPE LFA1-PFORT,

PSTL2 TYPE LFA1-PSTL2,

REGIO TYPE LFA1-REGIO,

SPERM TYPE LFA1-SPERM, "ASI

QSREC TYPE LFB1-QSREC,

QSSKZ TYPE LFB1-QSSKZ,

SPERR TYPE LFB1-SPERR,

EBELN TYPE EKKO-EBELN, "ASI

BELNR TYPE BSIK-BELNR,

END OF TY_RTAB.

  • report data

TYPES : BEGIN OF TY_DTAB,

BUKRS TYPE BSAK-BUKRS,

LIFNR TYPE LFA1-LIFNR,

EBELN TYPE EKKO-EBELN, "ASI

END OF TY_DTAB.

TYPES : BEGIN OF TY_DTAB2 ,

EBELN TYPE EKKO-EBELN,

LIFN2 TYPE EKPA-LIFN2,

END OF TY_DTAB2.

TYPES: BEGIN OF TY_DTAB3, OCCURS, 0,

  • EBELN LIKE EKKO-EBELN,

BELNR TYPE BSAK-BELNR,

END OF TY_DTAB3.

PARAMETERS : REPT(1)." OBLIGATORY.

SELECT-OPTIONS: COMPANY FOR BSAK-BUKRS," OBLIGATORY,

POSTDATE FOR BSAK-BUDAT," OBLIGATORY,

VENDOR FOR LFA1-LIFNR ,

VenName for lfa1-name1.

PARAMETERS: P_VARI LIKE DISVARIANT-REPORT.

PARAMETERS: P_Count AS CHECKBOX.

PARAMETERS: P_DETAIL AS CHECKBOX.

----


DATA : RTAB TYPE STANDARD TABLE OF TY_RTAB WITH HEADER LINE,

DTAB TYPE STANDARD TABLE OF TY_DTAB WITH HEADER LINE,

DTAB2 TYPE STANDARD TABLE OF TY_DTAB2 WITH HEADER LINE,

DTAB3 TYPE STANDARD TABLE OF ty_dtab3 WITH HEADER LINE.

DATA: TITLE(30) VALUE 'Active vendors listing'.

DATA: TITLE2(30) VALUE 'Non Active vendors listing'.

DATA: TAX_COUNT(5) TYPE N.

DATA: COUNT(6) TYPE N.

DATA: LIN TYPE I.

DATA: GX_VARIANT LIKE DISVARIANT,

G_VARIANT LIKE DISVARIANT.

DATA: LAYOUT TYPE SLIS_LAYOUT_ALV,

L_F TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,

GROUP TYPE SLIS_T_SP_GROUP_ALV WITH HEADER LINE,

COLOR TYPE SLIS_T_SPECIALCOL_ALV WITH HEADER LINE.

DATA: LT_TOP_OF_PAGE TYPE SLIS_T_LISTHEADER,

LS_LINE TYPE SLIS_LISTHEADER,

T_EVENTS TYPE SLIS_T_EVENT.

CONSTANTS: FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE 'TOP_OF_PAGE'.

----


INITIALIZATION.

PERFORM EVENTTAB_AUFBAUEN USING T_EVENTS[].

PERFORM VARIANT_INIT.

  • Get default variant

GX_VARIANT = G_VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'

EXPORTING

I_SAVE = 'A'

CHANGING

CS_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 0.

P_VARI = GX_VARIANT-VARIANT.

ENDIF.

AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_VARI.

PERFORM VARIANT_INPUTHELP_F14.

START-OF-SELECTION.

LS_LINE-TYP = 'S'.

WRITE SY-DATUM TO LS_LINE-INFO DD/MM/YY.

WRITE SY-UZEIT TO LS_LINE-INFO+10.

WRITE SY-UNAME TO LS_LINE-INFO+20.

IF REPT = 'A'.

WRITE TITLE TO LS_LINE-INFO+30.

ELSE.

WRITE TITLE2 TO LS_LINE-INFO+30.

ENDIF.

APPEND LS_LINE TO LT_TOP_OF_PAGE.

PERFORM FIELDS.

IF NOT P_VARI IS INITIAL.

PERFORM PAI_OF_SELECTION_SCREEN.

ELSE.

CALL FUNCTION 'REUSE_ALV_VARIANT_SELECT'

EXPORTING

I_DIALOG = ' '

I_USER_SPECIFIC = 'A'

I_DEFAULT = ' '

  • I_TABNAME_HEADER =

  • I_TABNAME_ITEM =

IT_DEFAULT_FIELDCAT = L_F[]

I_LAYOUT = LAYOUT

IMPORTING

  • E_EXIT =

ET_FIELDCAT = L_F[]

  • ET_SORT =

  • ET_FILTER =

CHANGING

CS_VARIANT = DISVARIANT

EXCEPTIONS

WRONG_INPUT = 1

FC_NOT_COMPLETE = 2

NOT_FOUND = 3

PROGRAM_ERROR = 4

OTHERS = 5.

ENDIF.

PERFORM MAIN_SELECT.

IF P_DETAIL = 'X'.

PERFORM GET_DETAIL.

ENDIF.

IF REPT = 'A'.

MOVE TITLE TO LAYOUT-WINDOW_TITLEBAR.

ELSE.

MOVE TITLE2 TO LAYOUT-WINDOW_TITLEBAR.

ENDIF.

IF P_COUNT = 'X'. "ASI

WRITE: 'Count:', LIN. "ASI

ELSE. "ASI

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'

EXPORTING

I_CALLBACK_PROGRAM = 'ZFUS0109'

I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

IS_LAYOUT = LAYOUT

IT_FIELDCAT = L_F[]

IT_SPECIAL_GROUPS = GROUP[]

I_SAVE = 'A'

IS_VARIANT = G_VARIANT

IT_EVENTS = T_EVENTS

TABLES

T_OUTTAB = RTAB

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

ENDIF. "ASI

----


  • FORM FIELDS *

----


FORM FIELDS.

L_F-FIELDNAME = 'BUKRS'.

L_F-OUTPUTLEN = 4.

L_F-SELTEXT_L = 'Co.'.

L_F-REPTEXT_DDIC = 'Co.'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'STCD1'.

L_F-OUTPUTLEN = 9.

L_F-SELTEXT_L = 'Tax id 1'.

L_F-REPTEXT_DDIC = 'Tax id 1'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'STCD2'.

L_F-OUTPUTLEN = 9.

L_F-SELTEXT_L = 'Tax id 2'.

L_F-REPTEXT_DDIC = 'Tax id 2'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'LIFNR'.

L_F-OUTPUTLEN = 10.

L_F-SELTEXT_L = 'Vendor No.'.

L_F-REPTEXT_DDIC = 'Vendor No.'.

L_F-REF_TABNAME = 'LFA1'.

L_F-SP_GROUP = 'A'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'NAME1'.

L_F-OUTPUTLEN = 35.

L_F-SELTEXT_L = 'Name1'.

L_F-REPTEXT_DDIC = 'Name1'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFA1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'NAME2'.

L_F-OUTPUTLEN = 35.

L_F-SELTEXT_L = 'Name2'.

L_F-REPTEXT_DDIC = 'Name2'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFA1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'STRAS'.

L_F-OUTPUTLEN = 35.

L_F-SELTEXT_L = 'Street'.

L_F-REPTEXT_DDIC = 'Street'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFA1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'ORT01'.

L_F-OUTPUTLEN = 35.

L_F-SELTEXT_L = 'City'.

L_F-REPTEXT_DDIC = 'City'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFA1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'PSTLZ'.

L_F-OUTPUTLEN = 10.

L_F-SELTEXT_L = 'Zip code'.

L_F-REPTEXT_DDIC = 'Zip code'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFA1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'PFACH'.

L_F-OUTPUTLEN = 10.

L_F-SELTEXT_L = 'P.O. box'.

L_F-REPTEXT_DDIC = 'P.O. box'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFA1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'PFORT'.

L_F-OUTPUTLEN = 35.

L_F-SELTEXT_L = 'P.O. box City'.

L_F-REPTEXT_DDIC = 'P.O. box City'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFA1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'PSTL2'.

L_F-OUTPUTLEN = 10.

L_F-SELTEXT_L = 'Zip code'.

L_F-REPTEXT_DDIC = 'Zip code'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFA1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'REGIO'.

L_F-OUTPUTLEN = 3.

L_F-SELTEXT_L = 'State'.

L_F-REPTEXT_DDIC = 'State'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFA1'.

APPEND L_F. CLEAR L_F.

  • Start of code Change - 11/14/2001 - ASI

L_F-FIELDNAME = 'QSREC'.

L_F-OUTPUTLEN = 13.

L_F-SELTEXT_L = 'Recipent Type'.

L_F-REPTEXT_DDIC = 'Recipent Type'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFB1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'QSSKZ'.

L_F-OUTPUTLEN = 10.

L_F-SELTEXT_L = 'W.Tax Code'.

L_F-REPTEXT_DDIC = 'W.Tax Code'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFB1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'SPERR'.

L_F-OUTPUTLEN = 16.

L_F-SELTEXT_L = 'Co.Code Post Block'.

L_F-REPTEXT_DDIC = 'Co.Code Post Block'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFB1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'SPERM'.

L_F-OUTPUTLEN = 11.

L_F-SELTEXT_L = 'Purch Block'.

L_F-REPTEXT_DDIC = 'Purch Block'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'LFA1'.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'BELNR'.

L_F-OUTPUTLEN = 18.

L_F-SELTEXT_L = 'Document Number'.

L_F-REPTEXT_DDIC = 'Document Number'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = ' '.

APPEND L_F. CLEAR L_F.

L_F-FIELDNAME = 'EBELN'.

L_F-OUTPUTLEN = 11.

L_F-SELTEXT_L = 'Purchase order'.

L_F-REPTEXT_DDIC = 'Purchase order'.

L_F-REF_TABNAME = 'RTAB'.

L_F-SP_GROUP = 'A'.

L_F-REF_TABNAME = 'EKKO '.

*end of code change - 11/14/2001 - asi

  • Start of code Change - 10/22/2001 -T53K934213 - ASI

  • l_f-fieldname = 'EKORG'.

  • l_f-outputlen = 4.

  • l_f-seltext_l = 'POrg'.

  • l_f-reptext_ddic = 'POrg'.

  • l_f-ref_tabname = 'RTAB'.

  • l_f-sp_group = 'A'.

  • l_f-ref_tabname = 'WYT3'.

  • append l_f. clear l_f.

  • End of code Change - 10/22/2001 -T53K934213 - ASI

  • l_f-fieldname = 'QSSKZ'.

  • l_f-outputlen = 2.

  • l_f-seltext_l = 'WTC'.

  • l_f-reptext_ddic = 'WTC'.

  • l_f-ref_tabname = 'WTC'.

  • l_f-sp_group = 'A'.

  • l_f-ref_tabname = 'LFB1'.

  • append l_f. clear l_f.

  • l_f-fieldname = 'WRBTR'.

  • l_f-seltext_l = 'Amount'.

  • l_f-reptext_ddic = 'Amount'.

  • l_f-ref_tabname = 'RTAB'.

  • l_f-sp_group = 'A'.

  • l_f-ref_tabname = 'BSAK'.

  • l_f-ref_fieldname = 'WRBTR'.

  • l_f-do_sum = 'X'.

  • append l_f. clear l_f.

  • l_f-fieldname = 'BELNR'.

  • l_f-outputlen = 10.

  • l_f-seltext_l = 'Document'.

  • l_f-reptext_ddic = 'Document'.

  • l_f-ref_tabname = 'RTAB'.

  • l_f-sp_group = 'A'.

  • l_f-ref_tabname = 'BSAK'.

  • append l_f. clear l_f.

ENDFORM.

----


  • FORM MAIN_SELECT *

----


FORM MAIN_SELECT.

SELECT BUKRS STCD1 STCD2 LFB1~LIFNR NAME1 NAME2 STRAS ORT01 PSTLZ

PFACH PFORT PSTL2 REGIO LFA1SPERM QSREC QSSKZ LFB1SPERR

INTO TABLE RTAB

FROM ( LFB1 INNER JOIN LFA1

ON LFB1LIFNR = LFA1LIFNR )

WHERE BUKRS IN COMPANY AND "asi added 'and'

LFA1~LIFNR IN VENDOR AND "asi

LFA1~NAME1 IN VENNAME AND

NOT LFB1~LOEVM = 'X'.

SELECT DISTINCT BUKRS LIFNR

INTO TABLE DTAB

FROM BSAK FOR ALL ENTRIES IN RTAB

WHERE LIFNR = RTAB-LIFNR

AND BUKRS = RTAB-BUKRS

AND BUDAT IN POSTDATE.

SELECT DISTINCT BUKRS LIFNR

APPENDING TABLE DTAB

FROM BSIK FOR ALL ENTRIES IN RTAB

WHERE LIFNR = RTAB-LIFNR

AND BUKRS = RTAB-BUKRS

AND BUDAT IN POSTDATE.

SELECT DISTINCT BUKRS LIFNR EBELN

APPENDING TABLE DTAB

FROM EKKO FOR ALL ENTRIES IN RTAB

WHERE LIFNR = RTAB-LIFNR

AND BUKRS = RTAB-BUKRS

AND BEDAT IN POSTDATE.

SELECT DISTINCT LIFN2 "ASI

APPENDING TABLE DTAB2

FROM EKPA FOR ALL ENTRIES IN DTAB

WHERE EBELN = DTAB-EBELN AND "ASI

PARVW = 'PI'. "ASI

LOOP AT DTAB2.

MOVE DTAB2-LIFN2 TO DTAB-LIFNR.

APPEND DTAB.

ENDLOOP.

DELETE ADJACENT DUPLICATES FROM DTAB COMPARING LIFNR.

IF REPT = 'A'.

LOOP AT RTAB.

READ TABLE DTAB WITH KEY LIFNR = RTAB-LIFNR.

IF SY-SUBRC NE 0.

DELETE RTAB.

ENDIF.

ENDLOOP.

IF P_COUNT = 'X'. "ASI

DESCRIBE TABLE RTAB LINES LIN.

ENDIF. "ASI

ELSE.

IF REPT = 'N'.

LOOP AT RTAB.

READ TABLE DTAB WITH KEY LIFNR = RTAB-LIFNR.

IF SY-SUBRC EQ 0.

DELETE RTAB.

ENDIF.

ENDLOOP.

IF P_COUNT = 'X'. "ASI

DESCRIBE TABLE RTAB LINES LIN.

ENDIF. "ASI

ENDIF.

ENDIF.

ENDFORM. "

----


  • FORM VARIANT_INPUTHELP_F14 *

----


FORM VARIANT_INPUTHELP_F14.

DATA: G_EXIT(1) TYPE C.

CALL FUNCTION 'REUSE_ALV_VARIANT_F4'

EXPORTING

IS_VARIANT = G_VARIANT

I_SAVE = 'A' " g_save

  • it_default_fieldcat =

IMPORTING

E_EXIT = G_EXIT

ES_VARIANT = GX_VARIANT

EXCEPTIONS

NOT_FOUND = 2.

IF SY-SUBRC = 2.

MESSAGE ID SY-MSGID TYPE 'S' NUMBER SY-MSGNO

WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ELSE.

IF G_EXIT = SPACE.

P_VARI = GX_VARIANT-VARIANT.

ENDIF.

ENDIF.

ENDFORM.

----


  • FORM USER_COMMAND *

----


----


  • --> UCOMM *

  • --> SELFIELD *

----


FORM USER_COMMAND USING UCOMM LIKE SY-UCOMM SELFIELD TYPE SLIS_SELFIELD.

IF UCOMM EQ '&IC1'.

IF SELFIELD-TABINDEX <= 0.

  • MESSAGE S108.

EXIT.

ENDIF.

IF SELFIELD-SEL_TAB_FIELD CS 'LIFNR'.

SET PARAMETER ID 'LIF' FIELD SELFIELD-VALUE.

CALL TRANSACTION 'XK05'.

ELSEIF SELFIELD-SEL_TAB_FIELD CS 'BELNR'.

SET PARAMETER ID 'BES' FIELD SELFIELD-VALUE.

CALL TRANSACTION 'ME23N'.

  • read table itab index selfield-tabindex.

  • call transaction 'MB03'.

ENDIF.

CLEAR SY-UCOMM. CLEAR UCOMM.

ENDIF.

ENDFORM.

----


  • FORM TOP_OF_PAGE *

----


FORM TOP_OF_PAGE.

*

CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

EXPORTING

IT_LIST_COMMENTARY = LT_TOP_OF_PAGE.

ENDFORM.

----


  • FORM EVENTTAB_AUFBAUEN *

----


  • --> P_T_EVENTS *

----


FORM EVENTTAB_AUFBAUEN USING P_T_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_T_EVENTS.

READ TABLE P_T_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

INTO LS_EVENT.

IF SY-SUBRC = 0.

MOVE FORMNAME_TOP_OF_PAGE TO LS_EVENT-FORM.

APPEND LS_EVENT TO P_T_EVENTS.

ENDIF.

ENDFORM. " EVENTTAB_AUFBAUEN

----


  • FORM PAI_OF_SELECTION_SCREEN *

----


  • ........ *

----


FORM PAI_OF_SELECTION_SCREEN.

IF NOT P_VARI IS INITIAL.

MOVE G_VARIANT TO GX_VARIANT.

MOVE P_VARI TO GX_VARIANT-VARIANT.

CALL FUNCTION 'REUSE_ALV_VARIANT_EXISTENCE'

EXPORTING

I_SAVE = 'A' " g_save

CHANGING

CS_VARIANT = GX_VARIANT.

G_VARIANT = GX_VARIANT.

ELSE.

PERFORM VARIANT_INIT.

ENDIF.

ENDFORM. " PAI_OF_SELECTION_SCREEN

----


  • FORM VARIANT_INIT *

----


  • ........ *

----


FORM VARIANT_INIT.

*

CLEAR G_VARIANT.

G_VARIANT-REPORT = 'ZFUS0108'.

ENDFORM. " VARIANT_INIT

&----


*& Form GET_DETAIL

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


FORM GET_DETAIL.

SELECT BELNR

INTO TABLE DTAB3

FROM BSAK

WHERE LIFNR IN VENDOR

AND BUKRS IN COMPANY

AND BUDAT IN POSTDATE.

SELECT BELNR

APPENDING TABLE DTAB3

FROM BSIK

WHERE LIFNR IN VENDOR

AND BUKRS IN COMPANY

AND BUDAT IN POSTDATE.

SELECT EKKO~EBELN

APPENDING TABLE DTAB3

FROM ( EKKO INNER JOIN EKPO

ON EKKOEBELN = EKPOEBELN )

WHERE ( LIFNR IN VENDOR OR

LIFRE IN VENDOR )

AND EKKO~BUKRS IN COMPANY

AND BEDAT IN POSTDATE AND

NOT EKPO~ELIKZ = 'X'.

DELETE ADJACENT DUPLICATES FROM DTAB3 COMPARING BELNR.

LOOP AT DTAB3.

MOVE DTAB3-BELNR TO RTAB-BELNR.

APPEND RTAB.

ENDLOOP.

ENDFORM. " GET_DETAIL

reward if helpful

Read only

Former Member
0 Likes
484

Hi

Kindly check Vijay's post in the following link:

best regards,

Thangesh