‎2007 Aug 29 7:02 AM
How do we do ALV interactive and what is the syntax for that? Anyone can send the sample code ?
‎2007 Aug 29 7:04 AM
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>
‎2007 Aug 29 7:11 AM
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
‎2007 Aug 29 7:14 AM