‎2008 May 06 8:05 AM
Please help me to create ALV list to display Vendors master data.
Design a selection screen where user have option to enter range of vendor number based on the given vendor number get its master data from LFA1.
Output fields:
Account Number of Vendor or Creditor
Country Key
Name 1
City
Postal Code
House number and street
Vendor account group
‎2008 May 06 8:13 AM
This is like ur requirement.....have a look
*&---------------------------------------------------------------------*
*& Report ZFI_RK_ACTIVE_VENDORS. *
*& *
*&---------------------------------------------------------------------*
*& Program Name : ZFI_RK_ACTIVE_VENDORS *
*& Developer : Mrunalini *
*& Date Created : 11/17/2006 *
*& Date Ended : 11/18/2006 *
*& Description : Program to display the active and inactive Vendors. *
*&---------------------------------------------------------------------*
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 LFA1~SPERM QSREC QSSKZ LFB1~SPERR
INTO TABLE RTAB
FROM ( LFB1 INNER JOIN LFA1
ON LFB1~LIFNR = LFA1~LIFNR )
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 EKKO~EBELN = EKPO~EBELN )
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
‎2008 May 06 8:14 AM
hi,
all the fields u require r from lfa1 only. so u dont need to create a report again. if u want to see the output as alv list then
goto se11 ,give table name lfa1 - display ,goto utilities- settings - data browser and select radio button alv list.
if u want only specific fields goto settings - list format - choose fields and select the fields u reqiure in output.
reward if helpful.
‎2008 May 06 8:14 AM
hi,
all the fields u require r from lfa1 only. so u dont need to create a report again. if u want to see the output as alv list then
goto se11 ,give table name lfa1 - display ,goto utilities- settings - data browser and select radio button alv list.
if u want only specific fields goto settings - list format - choose fields and select the fields u reqiure in output.
reward if helpful.
‎2008 May 06 8:15 AM
Hi,
design selection scren
select-options:s_lifnr for lfa1-lifnr.
based on that retrieve records to internal table .
pass that internal table to function module .
see this example.
REPORT ZTUFI091 .
&----
*& Report ZDEMO_ALVGRID *
*& *
&----
*& *
*& Example of a simple ALV Grid Report *
*& ................................... *
*& *
*& The basic requirement for this demo is to display a number of *
*& fields from the EKKO table. *
&----
*REPORT zdemo_alvgrid .
TABLES: ekko.
type-pools: slis. "ALV Declarations
*Data Declaration
*----
TYPES: BEGIN OF t_ekko,
ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
statu TYPE ekpo-statu,
aedat TYPE ekpo-aedat,
matnr TYPE ekpo-matnr,
menge TYPE ekpo-menge,
meins TYPE ekpo-meins,
netpr TYPE ekpo-netpr,
peinh TYPE ekpo-peinh,
END OF t_ekko.
DATA: it_ekko TYPE STANDARD TABLE OF t_ekko INITIAL SIZE 0,
wa_ekko TYPE t_ekko.
*ALV data declarations
data: fieldcatalog type slis_t_fieldcat_alv with header line,
gd_tab_group type slis_t_sp_group_alv,
gd_layout type slis_layout_alv,
gd_repid like sy-repid,
gt_events type slis_t_event,
gd_prntparams type slis_print_alv.
************************************************************************
*Start-of-selection.
START-OF-SELECTION.
perform data_retrieval.
perform build_fieldcatalog.
perform build_layout.
perform build_events.
perform build_print_params.
perform display_alv_report.
&----
*& Form BUILD_FIELDCATALOG
&----
Build Fieldcatalog for ALV Report
----
form build_fieldcatalog.
There are a number of ways to create a fieldcat.
For the purpose of this example i will build the fieldcatalog manualy
by populating the internal table fields individually and then
appending the rows. This method can be the most time consuming but can
also allow you more control of the final product.
Beware though, you need to ensure that all fields required are
populated. When using some of functionality available via ALV, such as
total. You may need to provide more information than if you were
simply displaying the result
I.e. Field type may be required in-order for
the 'TOTAL' function to work.
fieldcatalog-fieldname = 'EBELN'.
fieldcatalog-seltext_m = 'Purchase Order'.
fieldcatalog-col_pos = 0.
fieldcatalog-outputlen = 10.
fieldcatalog-emphasize = 'X'.
fieldcatalog-key = 'X'.
fieldcatalog-do_sum = 'X'.
fieldcatalog-no_zero = 'X'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'EBELP'.
fieldcatalog-seltext_m = 'PO Item'.
fieldcatalog-col_pos = 1.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'STATU'.
fieldcatalog-seltext_m = 'Status'.
fieldcatalog-col_pos = 2.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'AEDAT'.
fieldcatalog-seltext_m = 'Item change date'.
fieldcatalog-col_pos = 3.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MATNR'.
fieldcatalog-seltext_m = 'Material Number'.
fieldcatalog-col_pos = 4.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MENGE'.
fieldcatalog-seltext_m = 'PO quantity'.
fieldcatalog-col_pos = 5.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'MEINS'.
fieldcatalog-seltext_m = 'Order Unit'.
fieldcatalog-col_pos = 6.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'NETPR'.
fieldcatalog-seltext_m = 'Net Price'.
fieldcatalog-col_pos = 7.
fieldcatalog-outputlen = 15.
fieldcatalog-datatype = 'CURR'.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
fieldcatalog-fieldname = 'PEINH'.
fieldcatalog-seltext_m = 'Price Unit'.
fieldcatalog-col_pos = 8.
append fieldcatalog to fieldcatalog.
clear fieldcatalog.
endform. " BUILD_FIELDCATALOG
&----
*& Form BUILD_LAYOUT
&----
Build layout for ALV grid report
----
form build_layout.
gd_layout-no_input = 'X'.
gd_layout-colwidth_optimize = 'X'.
gd_layout-totals_text = 'Totals'(201).
gd_layout-totals_only = 'X'.
gd_layout-f2code = 'DISP'. "Sets fcode for when double
"click(press f2)
gd_layout-zebra = 'X'.
gd_layout-group_change_edit = 'X'.
gd_layout-header_text = 'helllllo'.
endform. " BUILD_LAYOUT
&----
*& Form DISPLAY_ALV_REPORT
&----
Display report using ALV grid
----
form display_alv_report.
gd_repid = sy-repid.
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = gd_repid
i_callback_top_of_page = 'TOP-OF-PAGE' "see FORM
i_callback_user_command = 'USER_COMMAND'
i_grid_title = outtext
is_layout = gd_layout
it_fieldcat = fieldcatalog[]
it_special_groups = gd_tabgroup
it_events = gt_events
is_print = gd_prntparams
i_save = 'X'
is_variant = z_template
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 DATA_RETRIEVAL
&----
Retrieve data form EKPO table and populate itab it_ekko
----
form data_retrieval.
select ebeln ebelp statu aedat matnr menge meins netpr peinh
up to 10 rows
from ekpo
into table it_ekko.
endform. " DATA_RETRIEVAL
----
Form TOP-OF-PAGE *
----
ALV Report Header *
----
Form top-of-page.
*ALV Header declarations
data: t_header type slis_t_listheader,
wa_header type slis_listheader,
t_line like wa_header-info,
ld_lines type i,
ld_linesc(10) type c.
Title
wa_header-typ = 'H'.
wa_header-info = 'EKKO Table Report'.
append wa_header to t_header.
clear wa_header.
Date
wa_header-typ = 'S'.
wa_header-key = 'Date: '.
CONCATENATE sy-datum+6(2) '.'
sy-datum+4(2) '.'
sy-datum(4) INTO wa_header-info. "todays date
append wa_header to t_header.
clear: wa_header.
Total No. of Records Selected
describe table it_ekko lines ld_lines.
ld_linesc = ld_lines.
concatenate 'Total No. of Records Selected: ' ld_linesc
into t_line separated by space.
wa_header-typ = 'A'.
wa_header-info = t_line.
append wa_header to t_header.
clear: wa_header, t_line.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = t_header.
i_logo = 'Z_LOGO'.
endform.
----
FORM USER_COMMAND *
----
--> R_UCOMM *
--> RS_SELFIELD *
----
FORM user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield.
Check function code
CASE r_ucomm.
WHEN '&IC1'.
Check field clicked on within ALVgrid report
IF rs_selfield-fieldname = 'EBELN'.
Read data table, using index of row user clicked on
READ TABLE it_ekko INTO wa_ekko INDEX rs_selfield-tabindex.
Set parameter ID for transaction screen field
SET PARAMETER ID 'BES' FIELD wa_ekko-ebeln.
Sxecute transaction ME23N, and skip initial data entry screen
CALL TRANSACTION 'ME23N' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
&----
*& Form BUILD_EVENTS
&----
Build events table
----
form build_events.
data: ls_event type slis_alv_event.
call function 'REUSE_ALV_EVENTS_GET'
exporting
i_list_type = 0
importing
et_events = gt_events[].
read table gt_events with key name = slis_ev_end_of_page
into ls_event.
if sy-subrc = 0.
move 'END_OF_PAGE' to ls_event-form.
append ls_event to gt_events.
endif.
read table gt_events with key name = slis_ev_end_of_list
into ls_event.
if sy-subrc = 0.
move 'END_OF_LIST' to ls_event-form.
append ls_event to gt_events.
endif.
endform. " BUILD_EVENTS
&----
*& Form BUILD_PRINT_PARAMS
&----
Setup print parameters
----
form build_print_params.
gd_prntparams-reserve_lines = '3'. "Lines reserved for footer
gd_prntparams-no_coverpage = 'X'.
endform. " BUILD_PRINT_PARAMS
&----
*& Form END_OF_PAGE
&----
form END_OF_PAGE.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
write: sy-uline(50).
skip.
write:/40 'Page:', sy-pagno .
endform.
&----
*& Form END_OF_LIST
&----
form END_OF_LIST.
data: listwidth type i,
ld_pagepos(10) type c,
ld_page(10) type c.
skip.
write:/40 'Page:', sy-pagno .
endform.
‎2008 May 06 8:20 AM
Hi,
parameters : P_lifnr like lfa1-lifnr.
DATA : begin of it_lfa1 occurs 0 ,
lifnt like lfa1-lifnr,
name1 like lfa1-name1,
ort01 like lfa1-ort01,
...
end of it_lfa1.
select lifnr land1 name1 ort01 pstlz stras from lfa1 into table it_lfa1 where
lifnr = p_lifnr.
Perform fieldcat1 using 'LIFNR' 1 'LIFNR' 'Vendor number'
'it_lfa1' .
Perform fieldcat1 using 'NAME1' 2 'NAME1' 'Name'
'it_lfa1' .
Perform fieldcat1 using 'ORT01' 3 'ORT01' 'city'
'it_lfa1' .
Perform fieldcat1 using 'PSTLZ' 4 'PSTLZ' 'Postal code'
'it_lfa1' .
Perform fieldcat1 using 'STRAS' 5 'STRAS' 'House no'
'it_lfa1' .
FORM fieldcat1 USING fname TYPE slis_fieldname
pos LIKE sy-cucol
reffield LIKE dd03p-fieldname
seltext LIKE dd03p-scrtext_l
tabname TYPE slis_tabname.
clear ls_fieldcat.
ls_fieldcat-fieldname = fname.
ls_fieldcat-col_pos = pos.
ls_fieldcat-ref_fieldname = reffield.
ls_fieldcat-seltext_l = seltext.
ls_fieldcat-tabname = tabname.
APPEND ls_fieldcat TO lt_fieldcat.
ENDFORM.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = sy-repid
IT_FIELDCAT = lt_fieldcat
TABLES
T_OUTTAB = it_lfa1
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2.
test it.
give reward if useful,
Regards,
Narasimha
Edited by: narasimha marella on May 6, 2008 9:26 AM