Hello abapers
i am working on alv report.i want to know how to get end_of_page (summary at the bottom)in the list
Hi,
I am sending sample coding for the ALV REPORT. Kindly go through it.
REPORT YMS_EXDET MESSAGE-ID E4 NO STANDARD PAGE HEADING LINE-SIZE 350.
*REPORT ZMM_EXIN_DOC_ALV_HEADER .
TABLES : J_1IEXCHDR, " header table
J_1IEXCDTL, " item table
J_1IPART1, " Excise part I detials
J_1IPART2, " Excise Part II details
LFA1, " vendor master table
J_1IMOVEND, " vendor excise details table
MSEG, " Document Segment: Material
MKPF, " Header: Material Document
DD07T, " domain text table
T001W. " Plant and Branch Details
DATA : BEGIN OF IT_CHDR OCCURS 100,
SERIALNO LIKE J_1IPART1-SERIALNO,
DOCNO LIKE J_1IEXCHDR-DOCNO,
DOCYR LIKE J_1IEXCHDR-DOCYR,
EXNUM LIKE J_1IEXCHDR-EXNUM,
EXDAT LIKE J_1IEXCHDR-EXDAT,
WERKS LIKE J_1IEXCHDR-WERKS,
EXBED LIKE J_1IEXCHDR-EXBED,
EXCCD LIKE J_1IEXCHDR-EXCCD,
ECS LIKE J_1IEXCHDR-ECS,
STATUS LIKE J_1IEXCHDR-STATUS, "CHALLAN STATUS
END OF IT_CHDR.
DATA : BEGIN OF IT_CDTL OCCURS 100,
SERIALNO LIKE J_1IPART1-SERIALNO,
DOCYR LIKE J_1IEXCDTL-DOCYR,
DOCNO LIKE J_1IEXCDTL-DOCNO,
EXNUM LIKE J_1IEXCDTL-EXNUM,
EXDAT LIKE J_1IEXCDTL-EXDAT,
LIFNR LIKE J_1IEXCDTL-LIFNR,
MATNR LIKE J_1IEXCDTL-MATNR,
MAKTX LIKE J_1IEXCDTL-MAKTX,
CHAPID LIKE J_1IEXCDTL-CHAPID,
EXBAS LIKE J_1IEXCDTL-EXBAS,
EXBED LIKE J_1IEXCDTL-EXBED,
ECS LIKE J_1IEXCDTL-ECS,
MENGE LIKE J_1IEXCDTL-MENGE,
MEINS LIKE J_1IEXCDTL-MEINS,
RDOC2 LIKE J_1IEXCDTL-RDOC2,
EXGRP LIKE J_1IEXCDTL-EXGRP,
RDOC1 LIKE J_1IEXCDTL-RDOC1,
STATUS LIKE J_1IEXCDTL-STATUS, "CHALLAN STATUS
END OF IT_CDTL.
DATA TEXT(10).
DATA : BEGIN OF IT_OUT OCCURS 0,
SERIALNO LIKE J_1IPART1-SERIALNO,
TEXT1 LIKE TEXT,
EXNUM LIKE J_1IEXCDTL-EXNUM,
EXDAT LIKE J_1IEXCDTL-EXDAT,
NAME LIKE LFA1-NAME1,
DDTEXT LIKE DD07T-DDTEXT,
EXCCD LIKE J_1IEXCHDR-EXCCD,
BUDAT LIKE MKPF-BUDAT,
EXBAS LIKE IT_CDTL-EXBAS,
EXBED LIKE IT_CDTL-EXBED,
ECS LIKE IT_CDTL-ECS,
MATNR LIKE IT_CDTL-MATNR,
MAKTX LIKE IT_CDTL-MAKTX,
CHAPID LIKE IT_CDTL-CHAPID,
MENGE LIKE IT_CDTL-MENGE,
MEINS LIKE IT_CDTL-MEINS,
DEL_IND(1),
END OF IT_OUT.
DATA IT_PART2 LIKE J_1IPART1 OCCURS 0 WITH HEADER LINE.
DATA S_NO(4) .
DATA DB_CNT LIKE SY-TABIX.
DATA EBELN_T LIKE MSEG-EBELN .
TYPE-POOLS : SLIS.
DATA : AFIELD TYPE SLIS_FIELDCAT_ALV.
DATA : LIST_HEADER TYPE SLIS_T_LISTHEADER,
FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
LS_FTCAT TYPE LVC_S_FCAT,
SORTCAT TYPE SLIS_T_SORTINFO_ALV,
SORTCAT_LN LIKE LINE OF SORTCAT,
G_REPID LIKE SY-REPID,
G_BACK_GROUND(70), "like bapibds01-objkey,
GS_VARIANT LIKE DISVARIANT,
G_SAVE ,
GT_EVENTS TYPE SLIS_T_EVENT,
ALV_EVENT TYPE SLIS_ALV_EVENT,
EVENTCAT TYPE SLIS_T_EVENT,
EVENTCAT_LN LIKE LINE OF EVENTCAT,
LAYOUT_IN TYPE SLIS_LAYOUT_ALV,
LAYOUT_IN1 TYPE SLIS_LAYOUT_ALV.
CONSTANTS : GC_FORMNAME_TOP_OF_PAGE TYPE SLIS_FORMNAME VALUE
'TOP_OF_PAGE',
GC_FORMNAME_USER_COMMAND TYPE SLIS_FORMNAME VALUE
'USER_COMMAND',
GC_FORMNAME_BEFORE_OUTPUT TYPE SLIS_FORMNAME VALUE
'BEFORE_OUTPUT'.
ALV_EVENT TYPE SLIS_ALV_EVENT,
DATA EX_NO LIKE IT_CHDR-EXNUM VALUE 0.
DATA REGTYP_1 LIKE J_1IPART1-REGTYP.
SELECTION-SCREEN BEGIN OF BLOCK B WITH FRAME.
PARAMETERS WERKS TYPE J_1IEXCHDR-WERKS.
SELECT-OPTIONS : BUDAT FOR J_1IEXCHDR-EXDAT.
PARAMETERS : R1 RADIOBUTTON GROUP GRP DEFAULT 'X',
R2 RADIOBUTTON GROUP GRP.
SELECTION-SCREEN END OF BLOCK B.
INITIALIZATION.
G_REPID = SY-REPID.
G_SAVE = 'A'.
PERFORM BUILD_EVENT USING GT_EVENTS[].
PERFORM ALV_EVENT_INIT.
AT SELECTION-SCREEN.
REFRESH LIST_HEADER.
PERFORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER.
START-OF-SELECTION.
PERFORM ALV_EVENT_INIT.
G_REPID = SY-REPID.
G_BACK_GROUND = ' ' .
IF R1 = 'X'.
CLEAR R2. CLEAR : REGTYP_1.
REGTYP_1 = 'A'.
set titlebar 'BALAJI' with DB_CNT.
ELSEIF R2 = 'X'.
CLEAR R1.CLEAR : REGTYP_1.
REGTYP_1 = 'C'.
set titlebar 'BALAJI1' with DB_CNT.
ENDIF.
SELECT * FROM J_1IPART1
INTO CORRESPONDING FIELDS OF TABLE IT_PART2
WHERE REGTYP = REGTYP_1 AND
TRNTYP = 'GRPO'.
AND BUDAT IN BUDAT.
DOCYR = IT_CDTL-DOCYR AND
DOCNO = IT_CDTL-DOCNO.
LOOP AT IT_PART2.
SELECT SINGLE * FROM J_1IEXCHDR
INTO CORRESPONDING FIELDS OF IT_CHDR
WHERE TRNTYP = 'GRPO' AND
STATUS NE ' ' AND
STATUS EQ ' ' AND
DOCYR = IT_PART2-DOCYR AND
DOCNO = IT_PART2-DOCNO AND
WERKS = WERKS AND
EXDAT IN BUDAT.
ORDER BY EXDAT.
IF SY-SUBRC = 0.
APPEND IT_CHDR.
ELSE.
CONTINUE.
ENDIF.
IF SY-SUBRC <> 0.
MESSAGE E084.
ENDIF.
ENDLOOP.
*******************SPD****************
SELECT * INTO CORRESPONDING FIELDS OF IT_CDTL FROM J_1IEXCDTL WHERE
TRNTYP = 'GRPO' AND WERKS = WERKS AND
EXDAT IN BUDAT AND STATUS NE 'B'.
SELECT SINGLE * FROM J_1IPART1 WHERE DOCNO = IT_CDTL-DOCNO AND
DOCYR = IT_CDTL-DOCYR AND
REGTYP = REGTYP_1.
IF SY-SUBRC EQ 0.
SELECT SINGLE * FROM J_1IPART2 WHERE DOCNO = IT_CDTL-DOCNO AND
DOCYR = IT_CDTL-DOCYR.
IF SY-SUBRC NE 0.
IT_CDTL-SERIALNO = J_1IPART1-SERIALNO.
APPEND IT_CDTL.
ENDIF.
ENDIF.
ENDSELECT.
***************SPD********************
SELECT BDOCNO BDOCYR BEXNUM BEXDAT BWERKS BEXBED B~EXCCD
B~ECS
B~STATUS
A~SERIALNO
FROM J_1IPART1 AS A INNER JOIN J_1IEXCHDR AS B
ON ADOCYR = BDOCYR AND ADOCNO = BDOCNO INTO CORRESPONDING
FIELDS OF TABLE IT_CHDR WHERE B~TRNTYP = 'GRPO' AND
BWERKS = WERKS AND BEXDAT IN BUDAT AND
B~STATUS = ' ' AND
B~STATUS = 'C' AND
A~REGTYP = REGTYP_1.
SORT IT_PART2 BY SERIALNO.
LOOP AT IT_CHDR.
SELECT * FROM J_1IEXCDTL
INTO CORRESPONDING FIELDS OF IT_CDTL
FOR ALL ENTRIES IN IT_CHDR
WHERE
TRNTYP = 'GRPO' AND
STATUS EQ ' ' AND
STATUS EQ 'C' AND
STATUS NE 'P' AND
DOCNO = IT_CHDR-DOCNO AND
DOCYR = IT_CHDR-DOCYR AND
EXNUM = IT_CHDR-EXNUM AND
EXDAT = IT_CHDR-EXDAT AND
WERKS = IT_CHDR-WERKS.
IF SY-SUBRC = 0.
APPEND IT_CDTL.
CLEAR IT_CDTL.
ELSE.
CONTINUE.
ENDIF.
ENDSELECT.
MODIFY IT_CDTL INDEX SY-TABIX.
CLEAR IT_CDTL.
ENDLOOP.
*****spd change**********
*LOOP AT IT_CDTL.
*SELECT SINGLE * FROM J_1IPART2 WHERE DOCNO = IT_CDTL-DOCNO AND
DOCYR = IT_CDTL-DOCYR.
*IF SY-SUBRC = 0.
DELETE IT_CDTL INDEX SY-TABIX.
*ENDIF.
*ENDLOOP.
**SELECT
*******spd ****************
SORT IT_CDTL BY EXNUM EXDAT.
DELETE ADJACENT DUPLICATES FROM IT_CDTL COMPARING MATNR EXNUM EXDAT.
LOOP AT IT_CDTL.
CLEAR TEXT.
DB_CNT = DB_CNT + 1.
READ TABLE IT_CHDR WITH KEY EXNUM = IT_CDTL-EXNUM DOCNO =
IT_CDTL-DOCNO.
READ TABLE IT_PART2 WITH KEY DOCNO = IT_CDTL-DOCNO .
IT_OUT-SERIALNO = IT_PART2-SERIALNO.
SELECT SINGLE NAME1 FROM LFA1
INTO IT_OUT-NAME
WHERE LIFNR = IT_CDTL-LIFNR.
SELECT SINGLE * FROM LFA1
WHERE LIFNR = IT_CDTL-LIFNR.
IF LFA1-LAND1 EQ 'IN'.
TEXT = 'INVOICE'.
IT_OUT-TEXT1 = TEXT.
ELSE.
TEXT = 'BOE'.
IT_OUT-TEXT1 = TEXT.
ENDIF.
SELECT SINGLE * FROM J_1IMOVEND
WHERE LIFNR = IT_CDTL-LIFNR.
SELECT SINGLE * FROM DD07T
INTO IT_OUT-DDTEXT
WHERE DOMNAME = 'J_1IVTYP' AND
DDLANGUAGE = 'EN' AND
DOMVALUE_L = J_1IMOVEND-J_1IVTYP.
IF DD07T-DDTEXT = 'First Stage Dealer of indigenous excisable goods'
OR
DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisablegoods'.
DD07T-DDTEXT = 'Dealer'.
ENDIF.
IT_OUT-DDTEXT = DD07T-DDTEXT.
ELSEIF DD07T-DDTEXT = 'Second Stage Dealer of indigenous excisable
*goods'.
DD07T-DDTEXT =
CLEAR EBELN_T.
SELECT SINGLE LFBNR FROM MSEG
INTO EBELN_T
WHERE MBLNR = IT_CDTL-RDOC2 .
SELECT SINGLE * FROM MSEG
WHERE BWART EQ '106' AND
LFBNR = EBELN_T ."and
ebeln = ebeln_t.
IF SY-SUBRC = 0.
IT_OUT-DEL_IND = 'X'.
ELSE.
IT_OUT-DEL_IND = ' '.
ENDIF.
SELECT SINGLE BUDAT FROM MKPF
INTO IT_OUT-BUDAT
WHERE MBLNR = EBELN_T ."MSEG-LFBNR.
IT_OUT-EXNUM = IT_CDTL-EXNUM.
IT_OUT-EXDAT = IT_CDTL-EXDAT.
IT_OUT-EXCCD = IT_CHDR-EXCCD.
IT_OUT-SERIALNO = IT_CHDR-SERIALNO.
IT_OUT-SERIALNO = IT_CDTL-SERIALNO.
IT_OUT-EXBAS = IT_CDTL-EXBAS.
IT_OUT-EXBED = IT_CDTL-EXBED.
IT_OUT-ECS = IT_CDTL-ECS.
IT_OUT-MATNR = IT_CDTL-MATNR.
IT_OUT-MAKTX = IT_CDTL-MAKTX.
IT_OUT-CHAPID = IT_CDTL-CHAPID.
IT_OUT-MENGE = IT_CDTL-MENGE.
IT_OUT-MEINS = IT_CDTL-MEINS.
APPEND IT_OUT.
EX_NO = IT_CDTL-EXNUM.
ENDLOOP.
Title Portion
IF REGTYP_1 = 'A'.
SET TITLEBAR 'BALAJI' WITH DB_CNT.
ELSEIF REGTYP_1 = 'C'.
SET TITLEBAR 'BALAJI1' WITH DB_CNT.
ENDIF.
AFIELD-COL_POS = 1.
AFIELD-FIELDNAME = 'SERIALNO'.
AFIELD-SELTEXT_L = 'SERIAL NO.'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 2.
AFIELD-FIELDNAME = 'TEXT1'.
AFIELD-SELTEXT_L = 'TYPE OF DOC'.
AFIELD-JUST = 'L'.
AFIELD-DECIMALS_OUT = '0'.
AFIELD-NO_ZERO = 'X'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 3.
AFIELD-FIELDNAME = 'EXNUM'.
AFIELD-SELTEXT_L = 'DOC.NO'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 4.
AFIELD-FIELDNAME = 'EXDAT'.
AFIELD-SELTEXT_L = 'DOC.DATE'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 5.
AFIELD-FIELDNAME = 'NAME'.
AFIELD-SELTEXT_L = 'NAME OF THE SUPPLIER'.
AFIELD-NO_ZERO = 'X'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 6.
AFIELD-FIELDNAME = 'DDTEXT'.
AFIELD-SELTEXT_L = 'TYPE-OF-SUPPLIER'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 7.
AFIELD-FIELDNAME = 'EXCCD'.
AFIELD-SELTEXT_L = 'ECC OF THE SUPPLIER'.
AFIELD-NO_ZERO = 'X'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 8.
AFIELD-FIELDNAME = 'BUDAT'.
AFIELD-SELTEXT_L = 'INPUT RECV DATE'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 9.
AFIELD-FIELDNAME = 'EXBAS'.
AFIELD-SELTEXT_L = 'ASSESSABLE-VALUE'.
AFIELD-DO_SUM = 'X'.
AFIELD-JUST = 'R'.
AFIELD-DECIMALS_OUT = '2'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 10.
AFIELD-FIELDNAME = 'EXBED'.
AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN CENVAT'.
AFIELD-JUST = 'R'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 11.
AFIELD-FIELDNAME = 'ECS'.
AFIELD-SELTEXT_L = 'DET OF CREDIT TAKEN E-CESS'.
AFIELD-JUST = 'R'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 12.
AFIELD-FIELDNAME = 'MATNR'.
AFIELD-SELTEXT_L = 'MATERIAL-CODE'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 13.
AFIELD-FIELDNAME = 'MAKTX'.
AFIELD-SELTEXT_L = 'DESCRIPTION'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 14.
AFIELD-FIELDNAME = 'CHAPID'.
AFIELD-SELTEXT_L = 'TARIFF-ID'.
AFIELD-JUST = 'L'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 15.
AFIELD-FIELDNAME = 'MENGE'.
AFIELD-SELTEXT_L = 'QUANTITY'.
AFIELD-JUST = 'R'.
AFIELD-DO_SUM = ' '.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 16.
AFIELD-FIELDNAME = 'MEINS'.
AFIELD-SELTEXT_L = 'UOM'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 17.
AFIELD-FIELDNAME = 'DEL_IND'.
AFIELD-SELTEXT_L = 'Deleted'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.
AFIELD-COL_POS = 18.
AFIELD-FIELDNAME = 'PO NO'.
AFIELD-SELTEXT_L = 'PURDOCNO'.
AFIELD-JUST = 'C'.
APPEND AFIELD TO FIELDCAT.
* LAYOUT FOR ZEBRA CATLOG
LAYOUT_IN-COLWIDTH_OPTIMIZE = 'X'.
LAYOUT_IN-ZEBRA = 'X'.
LAYOUT_IN-GET_SELINFOS = 'X'.
LAYOUT_IN-CONFIRMATION_PROMPT = 'X'.
LAYOUT_IN-DETAIL_POPUP = 'X' .
SORTCAT-decimals = '0'.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_SAVE = G_SAVE
IS_VARIANT = GS_VARIANT
IT_FIELDCAT = FIELDCAT
IT_SORT = SORTCAT
IS_LAYOUT = LAYOUT_IN
IT_EVENTS = EVENTCAT
I_BACKGROUND_ID = g_back_ground
TABLES
T_OUTTAB = IT_OUT.
*& Form TOP_OF_PAGE_LIST_HEADER
text
-->LIST_HEADERtext
FORM TOP_OF_PAGE_LIST_HEADER USING LIST_HEADER TYPE SLIS_T_LISTHEADER.
DATA : HLINE TYPE SLIS_LISTHEADER,
TEXT(60) TYPE C.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
SELECT SINGLE * FROM T001W WHERE WERKS = WERKS.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE 'PLANT :' TO TEXT.
WRITE WERKS TO TEXT+8.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE T001W-NAME1 TO TEXT.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE T001W-STRAS TO TEXT.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE T001W-ORT01 TO TEXT.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
CLEAR : HLINE,TEXT.
HLINE-TYP = 'H'.
WRITE 'DATE :' TO TEXT.
WRITE BUDAT-LOW TO TEXT+7.
IF BUDAT-HIGH NE ''.
WRITE 'TO' TO TEXT+18.
WRITE BUDAT-HIGH TO TEXT+22.
ENDIF.
HLINE-INFO = TEXT.
APPEND HLINE TO LIST_HEADER.
ENDFORM. "TOP_OF_PAGE_LIST_HEADER
*& Form ALV_EVENT_INIT
text
FORM ALV_EVENT_INIT .
CLEAR ALV_EVENT.
ALV_EVENT-NAME = SLIS_EV_TOP_OF_PAGE.
ALV_EVENT-FORM = 'ALV_TOP_OF_PAGE'.
APPEND ALV_EVENT TO EVENTCAT.
CLEAR ALV_EVENT.
ALV_EVENT-NAME = SLIS_EV_TOP_OF_LIST.
ALV_EVENT-FORM = 'ALV_TOP_OF_LIST'.
APPEND ALV_EVENT TO EVENTCAT.
CLEAR ALV_EVENT.
ALV_EVENT-NAME = SLIS_EV_END_OF_LIST.
ALV_EVENT-FORM = 'ALV_END_OF_LIST'.
APPEND ALV_EVENT TO GT_EVENTS.
CLEAR ALV_EVENT.
ALV_EVENT-NAME = SLIS_EV_END_OF_PAGE.
ALV_EVENT-FORM = 'ALV_END_OF_PAGE'.
APPEND ALV_EVENT TO GT_EVENTS.
ENDFORM. "ALV_EVENT_INIT
*& Form ALV_TOP_OF_PAGE
text
FORM ALV_TOP_OF_PAGE.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = LIST_HEADER
I_LOGO = 'ENJOYSAP_LOGO'.
ENDFORM. "ALV_TOP_OF_PAGE
*& Form BUILD_EVENT
text
-->P_GT_EVENTS[] text
FORM BUILD_EVENT USING P_EVENTS TYPE SLIS_T_EVENT.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = P_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND INTO
ALV_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_USER_COMMAND TO ALV_EVENT-FORM.
APPEND ALV_EVENT TO P_EVENTS.
ENDIF.
READ TABLE P_EVENTS WITH KEY NAME = SLIS_EV_BEFORE_LINE_OUTPUT INTO
ALV_EVENT.
IF SY-SUBRC = 0.
MOVE GC_FORMNAME_BEFORE_OUTPUT TO ALV_EVENT-FORM.
APPEND ALV_EVENT TO P_EVENTS.
ENDIF.
ENDFORM. " BUILD_EVENT
Thanks,
Shankar
Similar Messages
-
Need help in using a Secondary Index of a GL Table
Hello ABAPers,
Good morning/afternoon!
I was wondering if anyone could give me a hand on this issue.
To give you a brief background, I need to retrieve Open and Cleared items in the last 24 hours, that is, from 11 am yesterday till 10:59:59 today. The criteria is to pull the information using Entry Date (CPUDT) and Entry Time (CPUTM) from BKPF and using BELNR, retrieve the postings in BSIS and BSAS. as you can see in the piece of code. However, this process takes soooooo long to run.
Below is the code snippet.
We use 46C and MS SQL database.
The index fields of BKPF~ZB2 are: MANDT, CPUDT and BLART.
The index fields of BSIS~Z01are: BUKRS, GJAHr, HKONT, PRCTR, GSBER
TYPES: BEGIN OF i_bseg,
bukrs LIKE bkpf-bukrs,
hkont LIKE bsis-hkont,
gjahr LIKE bkpf-gjahr,
belnr LIKE bkpf-belnr,
buzei LIKE bsis-buzei,
bldat LIKE bsis-bldat,
budat LIKE bsis-budat,
waers LIKE bsis-waers,
monat LIKE bsis-monat,
shkzg LIKE bsis-shkzg,
gsber LIKE bsis-gsber,
dmbtr LIKE bsis-dmbtr,
wrbtr LIKE bsis-wrbtr,
cpudt LIKE bkpf-cpudt,
cputm LIKE bkpf-cputm,
END OF i_bseg.
*Internal Tables
DATA:
i_bkpf TYPE TABLE OF bkpf,
i_bseg TYPE STANDARD TABLE OF i_bseg.
Select records from yesterday's entry date.
SELECT bukrs belnr gjahr monat budat cpudt cputm waers
FROM bkpf INTO CORRESPONDING FIELDS OF TABLE i_bkpf
WHERE ( cpudt = so_date2-low AND
cputm >= so_cputm-low AND
cputm <= so_cputm-high )
OR ( cpudt = so_date2-high AND
cputm >= so_time2-low AND
cputm <= so_time2-high )
%_HINTS MSSQLNT 'INDEX("BKPF" "BKPF~ZB2")'.
IF sy-subrc NE 0.
MESSAGE e006 WITH 'BKPF'.
ENDIF.
Select Open Items***
SELECT bukrs hkont gjahr belnr buzei budat bldat
waers monat shkzg gsber dmbtr wrbtr
FROM bsis
APPENDING CORRESPONDING FIELDS OF TABLE i_bseg
FOR ALL ENTRIES IN i_bkpf
WHERE bukrs = i_bkpf-bukrs
AND gjahr = i_bkpf-gjahr
AND hkont IN so_saknr
AND belnr = i_bkpf-belnr
%_HINTS MSSQLNT 'INDEX("BSIS" "BSIS~Z01")'.
Also get any cleared items ***
SELECT bukrs hkont gjahr belnr buzei budat bldat
waers monat shkzg gsber dmbtr wrbtr
FROM bsas
APPENDING CORRESPONDING FIELDS OF TABLE i_bseg
FOR ALL ENTRIES IN i_bkpf
WHERE bukrs IN so_bukrs
AND hkont IN so_saknr
AND gjahr = sp_gjahr
AND belnr = i_bkpf-belnr.
Many thanks,
RosemarieThanks for your response.
The date and time fields are defined in my selection screen and the default values pre-set in the INITIALIZATION, so the dates and times are already stored as a range.
The problem is why is the process taking so long. Is the syntax for the INDEX correct?
PARAMETERS:p_not RADIOBUTTON GROUP pass.
SELECT-OPTIONS:
so_date2 FOR bkpf-cpudt, " Entry Date
so_cputm FOR sy-uzeit, " Entry Time
so_time2 for sy-uzeit. " Entry Time 2
INITIALIZATION.
RANGES: so_time2 FOR sy-uzeit.
g_date = sy-datum - 1.
g_year = sy-datum+0(4).
sp_gjahr = g_year.
CONCATENATE sp_gjahr '0101' INTO g_from_date.
g_from_time = '110000'.
g_24_hour = '235959'.
g_time_diff = g_24_hour - g_from_time.
g_to_time = g_from_time + g_time_diff.
g_to_time2 = g_from_time - 1.
MOVE: 'I' TO so_cpudt-sign,
'BT' TO so_cpudt-option,
g_from_date TO so_cpudt-low,
sy-datum TO so_cpudt-high.
APPEND so_cpudt.
MOVE: 'I' TO so_date2-sign,
'BT' TO so_date2-option,
g_date TO so_date2-low,
sy-datum TO so_date2-high.
APPEND so_date2.
MOVE: 'I' TO so_cputm-sign,
'BT' TO so_cputm-option,
g_from_time TO so_cputm-low,
g_to_time TO so_cputm-high.
APPEND so_cputm.
MOVE: 'I' TO so_time2-sign,
'BT' TO so_time2-option,
'000000' TO so_time2-low,
g_to_time2 TO so_time2-high.
APPEND so_time2. -
How to call a maintenance view from a program
Hello Abapers,
Can anybody explain with some examples. How to call a mainetenance view from a program.
Thanks
Ranjith.Use FM 'VIEW_MAINTENANCE_CALL'.
REPORT zmaintaintest.
VARIABLES / CONSTANTS
CONSTANTS:
c_action(1) TYPE c VALUE 'U', "Update
c_viewname TYPE tabname value 'ZEMP_EXAMPLE', "View Name
c_field(6) TYPE c VALUE 'EMPNO'. "Field Name
INTERNAL TABLES
DATA: itab_rangetab TYPE STANDARD TABLE OF vimsellist,
v_empno TYPE zempno,
wa_rangetab TYPE vimsellist.
SELECTION SCREEN
PARAMETERS: p_empno TYPE zempno OBLIGATORY. "Emplyee ID
AT SELECTION-SCREEN
AT SELECTION-SCREEN.
Chcking the existence of the user in EMPLOYEE table
PERFORM validate_employee.
START_OF_SELECTION
START-OF-SELECTION.
This will restrict the user view so that user can only view/change
Table data corresponding to his/her Employee ID
PERFORM define_limited_data_area.
Displaying table maintenance view for a particular employee ID
PERFORM call_view_maintenance.
*& Form validate_employee
Validate plant entered in the selection screen
FORM validate_employee.
SELECT SINGLE empno u201CEmployee ID
FROM zemp_example u201CEmployee Table
INTO v_empno
WHERE empno = p_empno.
IF sy-subrc <> 0.
MESSAGE 'Not an Valid User' TYPE 'I'.
ENDIF.
ENDFORM. "validate_employee
*& Form DEFINE_LIMITED_DATA_AREA
To restrict the user view so that user can see/change table data
corresponding to his employee ID. Here one internal table is
getting populated with field name as u201CEMPNOu201D (Key field of the table)
And value as given by user in Selection Screen and this is passed as
Parameter in function module 'VIEW_MAINTENANCE_CALL'
FORM define_limited_data_area.
CLEAR wa_rangetab.
wa_rangetab-viewfield = c_field.
wa_rangetab-operator = 'EQ'.
wa_rangetab-value = p_empno.
APPEND wa_rangetab TO itab_rangetab.
ENDFORM. "define_limited_data_area
*& Form CALL_VIEW_MAINTENANCE.
Displaying table maintenance view for a particular employee ID
FORM call_view_maintenance.
CALL FUNCTION 'VIEW_MAINTENANCE_CALL'
EXPORTING
action = c_action
view_name = c_viewname
TABLES
dba_sellist = itab_rangetab.
ENDFORM. "call_view_maintenance
Regards,
Joy. -
Error while posting the parked document in ECC 6.0
Hello ABAPers,
After upgrade from R/3 4.6c to ECC 6.0, when we try to post the parked documents ,It calls FM :POSTING_INTERFACE_DOCUMENT".
Inside it a call transaction is done using FBVB which throws error while posting for more than 4 withholding tax types.
Error : Field WITH_DIALG-WT_BASE(5) does not exist in the screen SAPLFWTD 0100.
On running BDC in foreground mode ,Error is happening when the withholding dialog opens and screen seems to be small to input all the tax codes i.e it shows only 4-5 rows and hence only 4 tax types passes to the screen and remaining is left out and error is thrown. This results in document not getting posted.
But in 4.6 c a bigger screen pops up and no error is thrwon.
We are not able to check FBVB directly, since it does'nt allow Direct call to this transaction.
We have checked lots of thread and notes ,But nothing seems to be relevant or helpful in our case.
Could you please help us in resolving this issue/ let us know if any configuration/ screen variant change is required?
Thanks!
Regards,
M M Jaffer.Hello Nabheet ,
It is a standard code. We are calling the FM 'PRELIMINIARY_POSTING_POST_ALL' for posting the parked document. The FM calls internally another FM 'POSTING_INTERFACE_DOCUMENT'. This calls the transaction FBVB where we get the above error.
Thanks. -
Problem in Creation of implementaton for Badi FAGL_DERIVE_SEGMENT
Hello Abapers,
I am facing problem when creating a implementaion for BADI FAGL_DERIVE_SEGMENT,
FAGL_DERIVE_PSEGMENT,
The error is when i am going to save any of BADI implemenations, Specify filter types..
The badi is very important to meet my requirement.So How to solve this problem.
Waiting for your favourable replies.
Thanks & Regards
Maruthi.KHi,
Implementing a Filter-Dependent Business Add-In
If you want to use a filter-dependent Business Add-In, you will need an implementation for each relevant filter value. Multiple filter values may use the same implementation, however.
When implementing a filter-dependent Business Add-In, proceed as follows:
Create an implementation by referring to the corresponding Business Add-In definition.
Enter a characteristic filter value for the implementation, or choose F4 and select a value from the list of possible entries displayed. In principle, it is possible to define multiple characteristic filter values for each implementation.
Use the Class Editor to fill the interface method.
In the string conversion example, you would make the following entries for each country:
BRD:
translate parameter to upper case.
Ireland:
translate parameter to lower case.
Italy:
translate ...
Repeat steps 1-3 for each implementation that you create.
Activate your implementations.
Now, whenever you execute the report program described above, different country-specific implementations are executed.
Regards -
Data is not coming in internal table
Hello Abapers,
Data is not coming in my internal table.
Plz tell me where I m wrong
SELECTION-SCREEN BEGIN OF BLOCK blk.
PARAMETERS: compcode LIKE vbrk-bukrs OBLIGATORY.
PARAMETERS: billtype LIKE vbrk-fkart OBLIGATORY.
SELECT-OPTIONS: billdate FOR vbrk-fkdat OBLIGATORY.
PARAMETERS : acgrpc LIKE vbrk-ktgrd OBLIGATORY.
PARAMETERS: acgrpm LIKE vbrp-ktgrm OBLIGATORY.
PARAMETERS: taxcode LIKE konv-mwsk1 OBLIGATORY.
SELECT-OPTIONS: plant FOR vbrp-werks .
SELECT-OPTIONS: bussarea FOR vbrp-gsber .
SELECTION-SCREEN END OF BLOCK blk.
START-OF-SELECTION.
SELECT avbeln afkart aknumv afkdat abelnr aktgrd abukrs axblnr
amwsbk bgsber bwerks bktgrm
FROM ( vbrk AS a INNER JOIN vbrp AS b ON
avbeln EQ bvbeln )
INTO CORRESPONDING FIELDS OF TABLE vbrk_vbrp
WHERE ( a~fkart EQ billtype ) AND
( a~fkdat IN billdate ) AND
( a~ktgrd EQ acgrpc ) AND
( a~bukrs EQ compcode ) AND
( b~gsber EQ bussarea ) and
( b~werks EQ plant ) AND
( b~ktgrm EQ acgrpm ) .
RaviHi,
write ur query this way :
SELECT avbeln afkart aknumv afkdat abelnr aktgrd abukrs axblnr amwsbk bgsber bwerks bktgrm
FROM ( vbrk AS a INNER JOIN vbrp AS b ON
avbeln EQ bvbeln )
INTO CORRESPONDING FIELDS OF TABLE vbrk_vbrp
WHERE ( a~fkart EQ billtype ) AND
( a~fkdat IN billdate ) AND
( a~ktgrd EQ acgrpc ) AND
( a~bukrs EQ compcode ) AND
( b~gsber IN bussarea ) and
( b~werks IN plant ) AND
( b~ktgrm EQ acgrpm ) .
even plz check then internal table ' vbrk_vbrp ' if they have all the fields of select query and even the order is same as select , since you are using ' into corresponding fields of table ' clause in select statement.
hope this helps.
thanx,
dhanashri.
Edited by: Dhanashri Pawar on Aug 26, 2008 6:14 AM -
Report for Customer Condition Records
Hello ABAPers,
I want to write ABAP report to list out Material,Customer,Tax type and Tax amount. The data is available in tables A005 and KONP and the joining condition would be A005-KNUMH and KONP-KNUMH.
But since A005 s a Pooled table am not able to write a correct join condition.
Can any one guide me on how we can write this join condition?
I tried with FOR ALL ENTRIES IN TABLE but the output was not reading the value of Amount(KONP-KBETR).The amount is coming as zero always.
The code i'm using is:
SELECT MATNR KUNNR VKORG VTWEG KSCHL KNUMH INTO TABLE ITAB_JEXP FROM A005 WHERE KSCHL = 'JEXP'.
IF NOT ITAB_JEXP IS INITIAL.
SELECT KNUMH KOPOS KSCHL KBETR INTO TABLE ITAB FROM KONP FOR ALL ENTRIES IN ITAB_JEXP
WHERE KNUMH = ITAB_JEXP-KNUMH AND KSCHL = ITAB_JEXP-KSCHL.
APPEND ITAB.
ENDIF.
LOOP AT ITAB_JEXP.
MOVE-CORRESPONDING ITAB_JEXP TO ITAB.
APPEND ITAB.
ENDLOOP.
Thanks,
B P Shah
Message was edited by:
Bhavin P ShahHi,
Use FOR ALL ENTRIES for that joins are not allowed on cluster n pooled tables
refere these
LOOP AT it_kjmseg INTO wa_kjmseg.
lv_index = sy-tabix.
*--Select condition record number from table A006
SELECT SINGLE
knumh
FROM a006
INTO lv_knumh
WHERE kappl EQ 'V'
AND kschl EQ 'ZR00'
AND vkorg EQ '0010'
AND vtweg EQ '00'
AND pltyp EQ '01'
AND waerk EQ 'USD'
AND matnr EQ wa_kjmseg-matnr
AND datbi GT wa_kjmseg-fkdat.
IF sy-subrc NE 0.
*--Select condition record number from table A004
SELECT SINGLE
knumh
FROM a004
INTO lv_knumh
WHERE kappl EQ 'V'
AND kschl EQ 'ZR00'
AND vkorg EQ '0010'
AND vtweg EQ '00'
AND matnr EQ wa_kjmseg-matnr
AND datbi GT wa_kjmseg-fkdat.
ENDIF.
Regards,
Prashant -
How to make a clip art (diagram )interactive report?
Hello ABAPers,
I want help from you. I have a requirement like ..when i am excuteing a report i should get a clip art and the clipart which i got i have to double click on it there by i should get the details of that clip art. I have succeed till getting the clip art and from here i am not getting the idea how to make the clipart(diagram) active so tht when i am doubleing it i should get the details.
The code that i am using to get the clip art just copy and execute you will get the output till clipart.
*& Report ZCLIPART_IR *
REPORT ZCLIPART_IR.
START OF DO NOT CHANGE***********************************
DATA: docking TYPE REF TO cl_gui_docking_container,
picture_control_1 TYPE REF TO cl_gui_picture,
url(256) TYPE c .
DATA: query_table LIKE w3query OCCURS 1 WITH HEADER LINE,
html_table LIKE w3html OCCURS 1,
return_code LIKE w3param-ret_code,
content_type LIKE w3param-cont_type,
content_length LIKE w3param-cont_len,
pic_data LIKE w3mime OCCURS 0,
pic_size TYPE i.
END OF DO NOT CHANGE***********************
DATA : sum(4) , num1(4) , num2(4).
PARAMETERS: p_dummy(4) DEFAULT '4' .
PARAMETERS: p_dummy1(4) DEFAULT '5' .
AT SELECTION-SCREEN OUTPUT.
PERFORM show_pic.
START-OF-SELECTION.
*& Form show_pic
FORM show_pic.
DATA: repid LIKE sy-repid.
repid = sy-repid.
CREATE OBJECT picture_control_1 EXPORTING parent = docking.
CHECK sy-subrc = 0.
CALL METHOD picture_control_1->set_3d_border
EXPORTING
border = 5.
CALL METHOD picture_control_1->set_display_mode
EXPORTING
display_mode = cl_gui_picture=>display_mode_stretch.
CALL METHOD picture_control_1->set_position
EXPORTING
height = 50
left = 40
top = 30
width = 190.
CHANGE POSITION AND SIZE ABOVE****************
IF url IS INITIAL.
REFRESH query_table.
query_table-name = '_OBJECT_ID'.
CHANGE IMAGE NAME BELOW UPLOADED IN SWO0*****************
query_table-value = 'ENJOYSAP_LOGO'.
APPEND query_table.
CALL FUNCTION 'WWW_GET_MIME_OBJECT'
TABLES
query_string = query_table
html = html_table
mime = pic_data
CHANGING
return_code = return_code
content_type = content_type
content_length = content_length
EXCEPTIONS
object_not_found = 1
parameter_not_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
CALL FUNCTION 'DP_CREATE_URL'
EXPORTING
type = 'image'
subtype = cndp_sap_tab_unknown
size = pic_size
lifetime = cndp_lifetime_transaction
TABLES
data = pic_data
CHANGING
url = url
EXCEPTIONS
OTHERS = 1.
ENDIF.
CALL METHOD picture_control_1->load_picture_from_url
EXPORTING
url = url.
ENDFORM.
Thks and waiting for your replies.Hi ataran,
in case, your version of iMovie is able to import the footage, have a read here:
http://www.apple.com/ilife/tutorials/imovie/ -
How to draw a line in smartforms!
Hello ABAPers,
In smartform, I am having a table. Every 3 rows I want to draw a line. How can I do that in Smartforms?
Thanks,hi Naren,
Check these links out
drawing line in smartforms
Re: Smartforms - Line Height
Re: smartforms blank line
Regards,
Santosh -
BAPI_CUSTOMERQUOTATION_CHANGE for changing VC info
Hello ABAPers:
I am using BAPI_CUSTOMERQUOTATION_CHANGE for changing Variant Configuration information on quotes. I am filling the table quotation_item_inx with quotation_item_inx-UPDATEFLAG = 'U' quotation_item_inx-CONFIG_ID = 'X' and other VC tables QUOTATION_CFGS_REF, QUOTATION_CFGS_INST, and QUOTATION_CFGS_VALUE. It updates other header and item fields except the config info. Has anybody tried updating Variant Configuration info on quotes?
Thanks for your time.Hello Andrew,
Yes I am filling in quotation_item_in table with the following info.
sd_item_it-itm_number = '000030'.
sd_item_it-hg_lv_item = '000000'.
sd_item_it-material= '10435-5562'.
sd_item_it-alt_to_itm = '000000'.
sd_item_it-dlv_group = '000'.
sd_item_it-target_qty = '1'.
sd_item_it-target_qu = 'EA'.
sd_item_it-t_unit_iso = 'EA'.
sd_item_it-po_itm_no = '000030'.
sd_item_it-PMNTTRMS = 'NT45'.
sd_item_it-CONFIG_ID = '000001'.
sd_item_it-inst_id = '00000001'.
append sd_item_IT.
quotation_item_inx is filled with
sd_item_x_it-itm_number = '000030'.
sd_item_x_it-updateflag = 'U'.
sd_item_x_it-PMNTTRMS = 'X'.
APPEND sd_item_x_it.
QUOTATION_CFGS_REF is filled with
q_cfgs_ref-posex = '000030'.
q_cfgs_ref-config_id = '000001'.
q_cfgs_ref-root_id = '00000001'.
q_cfgs_ref-complete = 'T'.
q_cfgs_ref-consistent = 'T'.
append q_cfgs_ref.
QUOTATION_CFGS_INST is filled with
q_cfgs_inst-config_id = '000001'.
q_cfgs_inst-inst_id = '00000001'.
q_cfgs_inst-obj_type = 'MARA'.
q_cfgs_inst-class_type = '300'.
q_cfgs_inst-OBJ_KEY = '10435-5562'.
q_cfgs_inst-quantity = '1'.
q_cfgs_inst-quantity_unit = 'EA'.
q_cfgs_inst-complete = 'T'.
q_cfgs_inst-consistent = 'T'.
append q_cfgs_inst.
QUOTATION_CFGS_VALUE is filled with
q_cfgs_value-config_id = '000001'.
q_cfgs_value-inst_id = '00000001'.
q_cfgs_value-charc = 'ART_REFERENCE'.
q_cfgs_value-charc_txt = 'Art Reference'.
q_cfgs_value-value = 'B'.
append q_cfgs_value.
As you can see config_id id matching. I am filling in the quote number in salesdocument and the update_flag in quotation_header_inx is set to 'U'.
In the above situation, I am able Payment terms on the item but not config info. -
To make table cell as read-only based on some condition
Hello ABAPers,
I have a requirement to make the cell in the table of a Web Dynpro component read-only. There are 4 fields in the Table of a view which is mapped to the Context attribute, i.e. function, Number, Description etc. When the value of the Field 'Function' is
'0000016', I have to make the Number field as READ-ONLY(non-editable).
As suggested in SDN forums, I have created the sub-node to the main node in Context and added an attribute 'READ_ONLY'. I have made the cardinality as 1:1. I have also created the Supply Function Method(ZREADONLY) for sub-node that I have created and also set the context binding to the Read only property of the field 'Number' in the View Layout.
PFB the coding I have done in supply function method for setting the read-only attribute for the number field, but it is not working. Could anyone let me know what is the change I have to make this work?
DATA ls_parent_attributes TYPE wd_this->element_partner_h.
DATA l_partner LIKE ls_parent_attributes-partner _fct
Constants c_parent LIKE ls_parent_attributes-partner_fct VALUE '000016'.
DATA ls_zread_only TYPE wd_this->element_zreadonly
parent_element->get_static_attributes(
IMPORTING
static_attributes = ls_parent_attributes).
CLEAR l_partner.
l_partner = ls_parent_attributes-partner_fct.
IF l_partner = c_partner.
ls_zread_only-readonly = abap_true.
node->bind_structure(
new_item = ls_zread_only
set_initial_elements = abap_true ).
ELSE.
CLEAR ls_zread_only-readonly.
ls_zread_only-readonly = abap_false.
node->bind_structure(
new_item = ls_zread_only
set_initial_elements = abap_false ).
ENDIF.
Thanks for your time!
Regards,
M M JafferHi,
the solution is quite simple.
Bind the property reaonly in the layout editor to the property readonly of the context-attribute.
Therfore you have to click at the binding button of the celleditor of the property read-only.
Then you select the radiobutton in front of Bind to the property of the selected Attribute and choose Property R.
In you coding you have to fo the following in case you do that after binding the itab to the context:
node->bind_table( .... ).
data lt_elements type wdr_context_element_set.
lt_elements = node->get_elements( ).
LOOP at lt_elements into element.
element->get_attribute(
exporting
name = 'PARTNERFCT'
importing
value = lv_partnerfct
if lv_partnerfct eq c_partner.
call method lo_el_position->set_attribute_property
exporting
attribute_name = 'PARTNERFCT'
property = element->e_property-required
value = 'X'.
else.
call method lo_el_position->set_attribute_property
exporting
attribute_name = 'PARTNERFCT'
property = element->e_property-read_only
value = ''.
endif.
endloop.
Of corse you have to modify the coding and i didn´t checked the syntax, baut this should help.
Best regards, Matthias -
Migo & Miro Accounting Documents Report
Hello Abapers,
I have made the new ALV report as shown below :-
Report zaccounting no standard page heading line-size 300 line-count 40.
tables : mkpf, "Header: Material Document
mseg, "Document Segment: Material
bkpf, "Accounting Document Header
ekbe. "PO History Table
type-pools slis.
*DATA DECLARATION
data : pos type i,
l_layout type slis_layout_alv.
data gt_fieldcat type slis_t_fieldcat_alv.
data gt_sort type slis_t_sortinfo_alv.
data ls_fieldcat type slis_fieldcat_alv.
data is_print type slis_print_alv.
data it_events type slis_alv_event occurs 5.
data gs_variant type disvariant.
data t_list_top_of_page type slis_t_listheader.
data title like sy-title.
data : l_title(105) type c,
l_list(105) type c, "Store the Top-of-page headings
l_date(10) type c, "Store date in top-of-page
l_time(8) type c, "Store time in top-of-page
title1 like sy-title,
title2 like sy-title,
title3 like sy-title.
*-- Data Declaration
data : repid like sy-repid.
constants: x type c value 'X'.
data zawkey like bkpf-awkey.
types : begin of x_mkpf,
mblnr like mkpf-mblnr,
mjahr like mkpf-mjahr,
budat like mkpf-budat,
ebeln like mseg-ebeln,
ebelp like mseg-ebelp,
bwart like mseg-bwart,
matnr like mseg-matnr,
gsber like mseg-gsber,
werks like mseg-werks,
bukrs like bkpf-bukrs,
belnr like bkpf-belnr,
gjahr like bkpf-gjahr,
bukrs1 like bkpf-bukrs,
belnr1 like bkpf-belnr,
gjahr1 like bkpf-gjahr,
belnr2 like bkpf-belnr,
gjahr2 like bkpf-gjahr,
end of x_mkpf.
data : t_mkpf type standard table of x_mkpf with header line.
S E L E C T I O N - S C R E E N *
selection-screen begin of block b1 with frame title text-009.
select-options: s_budat for mkpf-budat obligatory.
select-options: s_bwart for mseg-bwart.
select-options: s_matnr for mseg-matnr.
select-options: s_gsber for mseg-gsber.
select-options: s_werks for mseg-werks.
selection-screen end of block b1.
start-of-selection.
break abapdev1.
select msegmblnr msegmjahr mkpf~budat
msegebeln msegebelp msegbwart msegmatnr mseggsber msegwerks
into table t_mkpf
from mkpf inner join mseg
on mkpfmblnr = msegmblnr
where budat in s_budat
and bwart in s_bwart
and matnr in s_matnr
and gsber in s_gsber
and werks in s_werks.
loop at t_mkpf.
select single belnr gjahr into (t_mkpf-belnr, t_mkpf-gjahr) from ekbe where ebeln = t_mkpf-ebeln
and ebelp = t_mkpf-ebelp
and lfbnr = t_mkpf-mblnr
and lfgja = t_mkpf-mjahr
and bewtp = 'Q'.
modify t_mkpf transporting belnr gjahr.
endloop.
loop at t_mkpf.
clear : zawkey.
concatenate t_mkpf-mblnr t_mkpf-mjahr into zawkey.
select single belnr gjahr into (t_mkpf-belnr1,t_mkpf-gjahr1) from bkpf
where awtyp = 'MKPF'
and awkey = zawkey.
break abapdev1.
clear : zawkey.
concatenate t_mkpf-belnr t_mkpf-gjahr into zawkey.
select single belnr gjahr into (t_mkpf-belnr2,t_mkpf-gjahr2) from bkpf
where awtyp = 'RMRP'
and awkey = zawkey.
modify t_mkpf transporting belnr1 gjahr1 belnr2 gjahr2.
endloop.
ls_fieldcat-col_pos = '1'.
ls_fieldcat-fieldname = 'BUDAT'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'BUDAT'.
ls_fieldcat-ref_tabname = 'MKPF'.
ls_fieldcat-seltext_l = 'PSG DATE'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '2'.
ls_fieldcat-fieldname = 'MBLNR'.
ls_fieldcat-tabname = 'X_MSEG'.
ls_fieldcat-ref_fieldname = 'MBLNR'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIGO MAT DOCNO.'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '3'.
ls_fieldcat-fieldname = 'BELNR1'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'BELNR1'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'FI DocNo.'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '4'.
ls_fieldcat-fieldname = 'GJAHR1'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'GJAHR1'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'FI FiscalYr'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '2'.
ls_fieldcat-fieldname = 'MJAHR'.
ls_fieldcat-tabname = 'X_MKPF'.
ls_fieldcat-ref_fieldname = 'MJAHR'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIGO MATERIAL DOC. YEAR'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '5'.
ls_fieldcat-fieldname = 'EBELN'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'EBELN'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'PO No.'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '6'.
ls_fieldcat-fieldname = 'EBELP'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'EBELP'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'PO ItemNo.'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '7'.
ls_fieldcat-fieldname = 'BWART'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'BWART'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'Mvt.Type'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '8'.
ls_fieldcat-fieldname = 'BELNR'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'BELNR'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIRO DocNo.'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '9'.
ls_fieldcat-fieldname = 'GJAHR'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'GJAHR'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIRO FiscalYr'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '10'.
ls_fieldcat-fieldname = 'GSBER'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'GSBER'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'BUS.AREA'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '11'.
ls_fieldcat-fieldname = 'WERKS'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'WERKS'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'PLANT'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '12'.
ls_fieldcat-fieldname = 'MATNR'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'MATNR'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MAT.NO'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '13'.
ls_fieldcat-fieldname = 'BELNR2'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'BELNR2'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIRO FI Doc.No'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
ls_fieldcat-col_pos = '14'.
ls_fieldcat-fieldname = 'GJAHR2'.
ls_fieldcat-tabname = 'T_MSEG'.
ls_fieldcat-ref_fieldname = 'GJAHR2'.
ls_fieldcat-ref_tabname = 'MSEG'.
ls_fieldcat-seltext_l = 'MIRO FI FiscalYr'.
append ls_fieldcat to gt_fieldcat.
clear ls_fieldcat.
*& Form ALV_GRID_DISPLAY
form alv_grid_display .
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
i_callback_program = sy-repid " 'ZRD_DD'
it_fieldcat = gt_fieldcat "catalogue field
i_callback_top_of_page = 'TOP_PAGE'
is_layout = l_layout
it_sort = gt_sort
i_default = 'X'
i_save = 'A'
is_variant = gs_variant
it_events = it_events
is_print = is_print
tables
t_outtab = t_mkpf
exceptions
program_error = 1
others = 2
if sy-subrc <> 0.
message id sy-msgid type 'I' number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.
endform. " ALV_GRID_DISPLAY
**& Form ALV_LAYOUT
*FORM alv_layout USING ps_layout TYPE slis_layout_alv.
ps_layout-get_selinfos = x.
ps_layout-colwidth_optimize = x.
ps_layout-detail_popup = x.
ps_layout-no_keyfix = x.
ps_layout-coltab_fieldname = 'CLR'.
ps_layout-key_hotspot = x.
ps_layout-group_change_edit = x.
ps_layout-zebra = 'X'.
*ENDFORM. " ALV_LAYOUT
**& Form ALV_PRINT
*FORM alv_print .
is_print-no_print_selinfos = x. " display no selection infos
is_print-no_coverpage = x.
is_print-no_new_page = x.
is_print-no_print_listinfos = x. " display no listinfos
*ENDFORM. " ALV_PRINT
**& Form TOP_OF_PAGE
form top_page.
data: ls_line type slis_listheader,
i_top_of_page type slis_t_listheader.
title = sy-title.
ls_line-typ = 'H'.
ls_line-info = title.
append ls_line to i_top_of_page.
call function 'REUSE_ALV_COMMENTARY_WRITE'
exporting
it_list_commentary = i_top_of_page.
endform. "TOP_OF_PAGE
In this report , i have faced some problems :-
1. In MIGO numbers some cases MIRO doc. numbers are not shown against some migo doc. numbers whereas actually MIRO is already done.
2. The Problem in downloading the report, its not accurate download & the MIGO Document Number not shown when we download the report.
Thanks,
Sumit.Hi Sumit,
Im not sure if it will completely support ur needs but check it out
This is for MIRO.Note here business area is hardcoded.
REPORT zmm_miro_track.
TABLES : rseg, bkpf, bseg, lfa1, ekbe, skat, bsis .
AlV related data declarations
Type Pools
TYPE-POOLS: slis.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
Data Declaration file *
DATA : BEGIN OF it_rseg OCCURS 0,
belnr TYPE rseg-belnr,
gjahr TYPE rseg-gjahr,
ebeln TYPE rseg-ebeln,
ebelp TYPE rseg-ebelp,
bukrs TYPE rseg-bukrs,
awkey TYPE bkpf-awkey,
END OF it_rseg.
DATA : BEGIN OF it_bkpf OCCURS 0,
belnr TYPE bkpf-belnr,
gjahr TYPE bkpf-gjahr,
xblnr TYPE bkpf-xblnr,
budat TYPE bkpf-budat,
awkey TYPE bkpf-awkey,
bukrs TYPE bkpf-bukrs,
belnr1 TYPE bkpf-belnr,
blart TYPE bkpf-blart,
END OF it_bkpf.
DATA : BEGIN OF it_bseg OCCURS 0,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
bupla TYPE bseg-bupla,
lifnr TYPE bseg-lifnr,
hkont TYPE bseg-hkont,
koart TYPE bseg-koart,
mwskz TYPE bseg-mwskz,
pswbt TYPE bseg-pswbt,
ebeln TYPE bseg-ebeln,
ebelp TYPE bseg-ebelp,
xref3 TYPE bseg-xref3,
bschl TYPE bseg-bschl,
shkzg TYPE bseg-shkzg,
miro_accnt TYPE bseg-hkont,
xblnr TYPE bkpf-xblnr,
budat TYPE bkpf-budat,
belnr1 TYPE bseg-belnr,
acdes(50),
belnr2 TYPE bseg-belnr,
belnr3 TYPE bseg-belnr,
gjahr1 TYPE bseg-gjahr,
hkont1 TYPE bseg-hkont,
pswbt1 TYPE bseg-pswbt,
budat1 TYPE ekbe-budat,
acdes1(50),
END OF it_bseg.
DATA : it_bseg1 LIKE it_bseg OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF it_bsis OCCURS 0,
belnr TYPE bsis-belnr,
gjahr TYPE bsis-gjahr,
bschl TYPE bsis-bschl,
xref3 TYPE bsis-xref3,
END OF it_bsis.
DATA : BEGIN OF it_lfa1 OCCURS 0,
lifnr TYPE lfa1-lifnr,
name1 TYPE lfa1-name1,
spras TYPE lfa1-spras,
END OF it_lfa1.
DATA : BEGIN OF it_skat OCCURS 0,
saknr TYPE skat-saknr,
txt20 TYPE skat-txt20,
txt50 TYPE skat-txt50,
spras TYPE skat-spras,
ktopl TYPE skat-ktopl,
END OF it_skat.
DATA : BEGIN OF it_ekbe OCCURS 0,
ebeln TYPE ekbe-ebeln,
ebelp TYPE ekbe-ebelp,
budat TYPE ekbe-budat,
bewtp TYPE ekbe-bewtp,
END OF it_ekbe.
DATA : fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_repid LIKE sy-repid.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv ,
gs_print TYPE slis_print_alv,
gt_sort TYPE slis_t_sortinfo_alv ,
gt_filter TYPE slis_t_filter_alv,
gt_sp_group TYPE slis_t_sp_group_alv,
gt_alv_graphics TYPE dtc_t_tc,
gt_excluding TYPE slis_t_extab ,
gt_events TYPE slis_t_event .
DATA: g_repid LIKE sy-repid.
DATA: gt_list_top_of_page TYPE slis_t_listheader.
DATA: g_boxnam TYPE slis_fieldname VALUE 'BOX',
p_f2code LIKE sy-ucomm VALUE '&ETA',
p_lignam TYPE slis_fieldname VALUE 'LIGHTS',
g_save(1) TYPE c,
g_default(1) TYPE c,
g_exit(1) TYPE c,
gx_variant LIKE disvariant,
g_variant LIKE disvariant.
USER ENTRY PARAMETERS *
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_belnr FOR rseg-belnr OBLIGATORY,
s_gjahr FOR rseg-gjahr OBLIGATORY,
s_budat FOR bkpf-budat.
SELECTION-SCREEN END OF BLOCK blk1.
START-OF-SELECTION *
START-OF-SELECTION.
PERFORM data_retrive.
PERFORM data_call_alv.
PERFORM build_layout.
END-OF-SELECTION.
*& Form DATA_CALL_ALV
text
--> p1 text
<-- p2 text
FORM data_call_alv .
g_repid = sy-repid.
PERFORM e01_fieldcat_init USING gt_fieldcat[].
PERFORM eventtab_build CHANGING gt_events.
PERFORM e04_comment_build USING gt_list_top_of_page[].
PERFORM display_report.
ENDFORM. " DATA_CALL_ALV
*& Form E01_FIELDCAT_INIT
text
-->P_GT_FIELDCAT[] text
FORM e01_fieldcat_init USING e01_lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DATA: gs_sort TYPE slis_sortinfo_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR'.
ls_fieldcat-key = 'X'. "SUBTOTAL KEY
ls_fieldcat-col_pos = '1'.
ls_fieldcat-seltext_l = 'Accounting Doc'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR1'.
ls_fieldcat-col_pos = '2'.
ls_fieldcat-seltext_l = 'IR Doc'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'XBLNR'.
ls_fieldcat-col_pos = '3'.
ls_fieldcat-seltext_l = 'IR Reference'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BUDAT'.
ls_fieldcat-col_pos = '4'.
ls_fieldcat-seltext_l = 'IR Posting Date'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BUPLA'.
ls_fieldcat-col_pos = '5'.
ls_fieldcat-seltext_l = 'Business Place'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'HKONT'.
ls_fieldcat-col_pos = '6'.
ls_fieldcat-seltext_l = 'G/L accounts Posted'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ACDES'.
ls_fieldcat-col_pos = '7'.
ls_fieldcat-seltext_l = 'G/L description'.
ls_fieldcat-outputlen = 20.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'MWSKZ'.
ls_fieldcat-col_pos = '8'.
ls_fieldcat-seltext_l = 'Tax Code'.
ls_fieldcat-outputlen = 8.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PSWBT'.
ls_fieldcat-col_pos = '9'.
ls_fieldcat-seltext_l = 'G/L Amount'.
ls_fieldcat-outputlen = 20.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'EBELN'.
ls_fieldcat-col_pos = '10'.
ls_fieldcat-seltext_l = 'Purchase Order'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'EBELP'.
ls_fieldcat-col_pos = '11'.
ls_fieldcat-seltext_l = 'P.O.Line Item'.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR2'.
ls_fieldcat-col_pos = '12'.
ls_fieldcat-seltext_l = 'GRN Doc '.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR3'.
ls_fieldcat-col_pos = '13'.
ls_fieldcat-seltext_l = 'GRN FI Doc No.'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BUDAT1'.
ls_fieldcat-col_pos = '14'.
ls_fieldcat-seltext_l = 'GR Posting Date '.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
ENDFORM. "e01_fieldcat_init
*& Form EVENTTAB_BUILD
text
<--P_GT_EVENTS text
FORM eventtab_build CHANGING lt_events TYPE slis_t_event.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO lt_events.
ENDIF.
ENDFORM. " EVENTTAB_BUILD
*& Form E04_COMMENT_BUILD
text
-->P_GT_LIST_TOP_OF_PAGE[] text
FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader.
DATA : v_time(5) TYPE c.
DATA: ls_line TYPE slis_listheader.
DATA: ls_colr TYPE slis_specialcol_alv.
DATA : v_text(90) TYPE c.
CONCATENATE ' Report for MIRO track ':' ' INTO v_text SEPARATED BY space.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = v_text.
APPEND ls_line TO e04_lt_top_of_page.
ENDFORM. " E04_COMMENT_BUILD
FORM TOP_OF_PAGE *
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_list_top_of_page.
ENDFORM. "TOP_OF_PAGE
**& Form DATA_RETRIVE
text
FORM data_retrive.
fetching Accounting Document Number and Fiscal year from Incoming Invoice table
SELECT belnr gjahr ebeln ebelp bukrs
INTO CORRESPONDING FIELDS OF TABLE it_rseg
FROM rseg
WHERE belnr IN s_belnr
AND gjahr IN s_gjahr
AND bukrs = '1000'.
LOOP AT it_rseg.
CONCATENATE it_rseg-belnr it_rseg-gjahr INTO it_rseg-awkey.
MODIFY it_rseg.
CLEAR it_rseg.
ENDLOOP.
IF it_rseg[] IS NOT INITIAL.
SELECT belnr gjahr xblnr budat awkey
INTO CORRESPONDING FIELDS OF TABLE it_bkpf
FROM bkpf
FOR ALL ENTRIES IN it_rseg
WHERE awkey = it_rseg-awkey
AND budat IN s_budat
AND bukrs = '1000'
AND blart <> 'ML'.
ENDIF.
IF it_bkpf[] IS NOT INITIAL.
SELECT belnr gjahr bupla lifnr hkont koart mwskz pswbt ebeln ebelp xref3 bschl shkzg
INTO CORRESPONDING FIELDS OF TABLE it_bseg
FROM bseg
FOR ALL ENTRIES IN it_bkpf
WHERE belnr = it_bkpf-belnr
AND gjahr = it_bkpf-gjahr.
ENDIF.
fetching G/L account description
IF it_bseg[] IS NOT INITIAL.
SELECT lifnr name1
INTO CORRESPONDING FIELDS OF TABLE it_lfa1
FROM lfa1
FOR ALL ENTRIES IN it_bseg
WHERE lifnr = it_bseg-lifnr
AND spras = 'EN'.
SELECT saknr txt20 txt50
INTO CORRESPONDING FIELDS OF TABLE it_skat
FROM skat
FOR ALL ENTRIES IN it_bseg
WHERE saknr = it_bseg-hkont
AND spras = 'EN'
AND ktopl = 'HRJL'.
SELECT ebeln ebelp budat
INTO CORRESPONDING FIELDS OF TABLE it_ekbe
FROM ekbe
FOR ALL ENTRIES IN it_bseg
WHERE ebeln = it_bseg-ebeln
AND ebelp = it_bseg-ebelp
AND bewtp = 'E'.
ENDIF.
LOOP AT it_bseg.
IF it_bseg-koart = 'K'.
it_bseg-miro_accnt = it_bseg-lifnr.
ELSE.
it_bseg-miro_accnt = it_bseg-hkont.
ENDIF.
IF it_bseg-shkzg = 'H'.
it_bseg-pswbt = it_bseg-pswbt * -1.
ENDIF.
it_bseg-belnr2 = it_bseg-xref3+4(10).
MODIFY it_bseg.
READ TABLE it_ekbe WITH KEY ebeln = it_bseg-ebeln
ebelp = it_bseg-ebelp.
IF sy-subrc = 0.
it_bseg-budat1 = it_ekbe-budat.
ENDIF.
READ TABLE it_bkpf WITH KEY belnr = it_bseg-belnr
gjahr = it_bseg-gjahr.
IF sy-subrc = 0.
it_bseg-belnr = it_bkpf-belnr.
it_bseg-gjahr = it_bkpf-gjahr.
it_bseg-xblnr = it_bkpf-xblnr.
it_bseg-budat = it_bkpf-budat.
it_bseg-belnr1 = it_bkpf-awkey+0(10).
ENDIF.
IF it_bseg-koart = 'K'.
READ TABLE it_lfa1 WITH KEY lifnr = it_bseg-miro_accnt.
IF sy-subrc = 0.
it_bseg-acdes = it_lfa1-name1.
ENDIF.
ELSE.
READ TABLE it_skat WITH KEY saknr = it_bseg-miro_accnt.
IF sy-subrc = 0.
IF it_skat-txt20 IS NOT INITIAL.
it_bseg-acdes = it_skat-txt20.
ELSE.
it_bseg-acdes = it_skat-txt50.
ENDIF.
ENDIF.
ENDIF.
MODIFY it_bseg.
CLEAR it_bseg.
ENDLOOP.
it_bseg1[] = it_bseg[].
LOOP AT it_bseg1.
IF it_bseg1-xref3 = ''.
DELETE it_bseg1.
CLEAR it_bseg1.
ENDIF.
ENDLOOP.
IF it_bseg1[] IS NOT INITIAL.
SELECT belnr gjahr bschl xref3
FROM bsis
INTO CORRESPONDING FIELDS OF TABLE it_bsis
FOR ALL ENTRIES IN it_bseg1
WHERE xref3 = it_bseg1-xref3
AND gjahr = it_bseg1-gjahr
AND bschl = '96'.
ENDIF.
LOOP AT it_bseg.
READ TABLE it_bsis WITH KEY xref3 = it_bseg-xref3.
IF sy-subrc = 0.
it_bseg-belnr3 = it_bsis-belnr.
it_bseg-gjahr1 = it_bsis-gjahr.
ENDIF.
MODIFY it_bseg.
CLEAR it_bseg.
ENDLOOP.
ENDFORM. "data_retrive
*& Form DISPLAY_REPORT
text
--> p1 text
<-- p2 text
FORM display_report .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = ''
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_special_groups = gt_sp_group[]
it_sort = gt_sort[]
it_filter = gt_filter[]
i_save = g_save
is_variant = g_variant
it_events = gt_events[]
is_print = gs_print
it_alv_graphics = gt_alv_graphics[]
it_excluding = gt_excluding
TABLES
t_outtab = it_bseg.
ENDFORM. " DISPLAY_REPORT
*& Form build_layout
text
--> p1 text
<-- p2 text
FORM build_layout.
gs_layout-no_input = 'X'.
gs_layout-colwidth_optimize = 'X'.
gs_layout-totals_text = 'Totals'(201).
gs_layout-info_fieldname = 'LINE_COLOR'.
ENDFORM. " BUILD_LAYOUT
This is for MIGO.
REPORT zmm_migo_track.
TABLES : bseg, ekbe, skat, bsis.
AlV related data declarations
Type Pools
TYPE-POOLS: slis.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
Data Declaration file *
DATA : BEGIN OF it_bseg OCCURS 0,
belnr TYPE bseg-belnr,
gjahr TYPE bseg-gjahr,
bukrs TYPE bseg-bukrs,
hkont TYPE bseg-hkont,
pswbt TYPE bseg-pswbt,
ebeln TYPE bseg-ebeln,
ebelp TYPE bseg-ebelp,
xref3 TYPE bseg-xref3,
shkzg TYPE bseg-shkzg,
budat TYPE ekbe-budat,
acdes(50),
belnr1 TYPE bseg-belnr,
END OF it_bseg.
DATA : it_bseg1 LIKE it_bseg OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF it_bsis OCCURS 0,
belnr TYPE bsis-belnr,
gjahr TYPE bsis-gjahr,
bschl TYPE bsis-bschl,
xref3 TYPE bsis-xref3,
END OF it_bsis.
DATA : BEGIN OF it_skat OCCURS 0,
saknr TYPE skat-saknr,
txt20 TYPE skat-txt20,
txt50 TYPE skat-txt50,
spras TYPE skat-spras,
ktopl TYPE skat-ktopl,
END OF it_skat.
DATA : BEGIN OF it_ekbe OCCURS 0,
ebeln TYPE ekbe-ebeln,
ebelp TYPE ekbe-ebelp,
budat TYPE ekbe-budat,
bewtp TYPE ekbe-bewtp,
END OF it_ekbe.
DATA : fiscal_year_low(4),
fiscal_year_high(4).
DATA : fieldcatalog TYPE slis_t_fieldcat_alv WITH HEADER LINE,
gd_repid LIKE sy-repid.
DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
gs_layout TYPE slis_layout_alv ,
gs_print TYPE slis_print_alv,
gt_sort TYPE slis_t_sortinfo_alv ,
gt_filter TYPE slis_t_filter_alv,
gt_sp_group TYPE slis_t_sp_group_alv,
gt_alv_graphics TYPE dtc_t_tc,
gt_excluding TYPE slis_t_extab ,
gt_events TYPE slis_t_event .
DATA: g_repid LIKE sy-repid.
DATA: gt_list_top_of_page TYPE slis_t_listheader.
DATA: g_boxnam TYPE slis_fieldname VALUE 'BOX',
p_f2code LIKE sy-ucomm VALUE '&ETA',
p_lignam TYPE slis_fieldname VALUE 'LIGHTS',
g_save(1) TYPE c,
g_default(1) TYPE c,
g_exit(1) TYPE c,
gx_variant LIKE disvariant,
g_variant LIKE disvariant.
USER ENTRY PARAMETERS *
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
SELECT-OPTIONS : s_belnr FOR bseg-belnr OBLIGATORY,
s_budat FOR ekbe-budat OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk1.
AT SELECTION-SCREEN.
IF s_budat-low IS NOT INITIAL.
CALL FUNCTION 'GM_GET_FISCAL_YEAR'
EXPORTING
i_date = s_budat-low
i_fyv = 'V3'
IMPORTING
e_fy = fiscal_year_low
EXCEPTIONS
FISCAL_YEAR_DOES_NOT_EXIST = 1
NOT_DEFINED_FOR_DATE = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
IF s_budat-high IS NOT INITIAL.
CALL FUNCTION 'GM_GET_FISCAL_YEAR'
EXPORTING
i_date = s_budat-high
i_fyv = 'V3'
IMPORTING
e_fy = fiscal_year_high
EXCEPTIONS
FISCAL_YEAR_DOES_NOT_EXIST = 1
NOT_DEFINED_FOR_DATE = 2
OTHERS = 3
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
START-OF-SELECTION *
START-OF-SELECTION.
PERFORM data_retrive.
PERFORM data_call_alv.
PERFORM build_layout.
END-OF-SELECTION.
*& Form DATA_CALL_ALV
text
--> p1 text
<-- p2 text
FORM data_call_alv .
g_repid = sy-repid.
PERFORM e01_fieldcat_init USING gt_fieldcat[].
PERFORM eventtab_build CHANGING gt_events.
PERFORM e04_comment_build USING gt_list_top_of_page[].
PERFORM display_report.
ENDFORM. " DATA_CALL_ALV
*& Form E01_FIELDCAT_INIT
text
-->P_GT_FIELDCAT[] text
FORM e01_fieldcat_init USING e01_lt_fieldcat TYPE slis_t_fieldcat_alv.
DATA: ls_fieldcat TYPE slis_fieldcat_alv.
DATA: gs_sort TYPE slis_sortinfo_alv.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR1'.
ls_fieldcat-col_pos = '1'.
ls_fieldcat-seltext_l = 'GRN Doc '.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BELNR'.
ls_fieldcat-col_pos = '2'.
ls_fieldcat-seltext_l = 'GRN FI Doc No.'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'BUDAT'.
ls_fieldcat-col_pos = '3'.
ls_fieldcat-seltext_l = 'GR Posting Date '.
ls_fieldcat-outputlen = 10.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'HKONT'.
ls_fieldcat-col_pos = '4'.
ls_fieldcat-seltext_l = 'Account Assignment'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'ACDES'.
ls_fieldcat-col_pos = '5'.
ls_fieldcat-seltext_l = 'Description'.
ls_fieldcat-outputlen = 20.
APPEND ls_fieldcat TO e01_lt_fieldcat.
CLEAR ls_fieldcat.
ls_fieldcat-fieldname = 'PSWBT'.
ls_fieldcat-col_pos = '6'.
ls_fieldcat-seltext_l = 'G/L Amount'.
ls_fieldcat-outputlen = 15.
APPEND ls_fieldcat TO e01_lt_fieldcat.
ENDFORM. "e01_fieldcat_init
*& Form EVENTTAB_BUILD
text
<--P_GT_EVENTS text
FORM eventtab_build CHANGING lt_events TYPE slis_t_event.
CONSTANTS:
gc_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
DATA: ls_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = lt_events.
READ TABLE lt_events WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE gc_formname_top_of_page TO ls_event-form.
APPEND ls_event TO lt_events.
ENDIF.
ENDFORM. " EVENTTAB_BUILD
*& Form E04_COMMENT_BUILD
text
-->P_GT_LIST_TOP_OF_PAGE[] text
FORM e04_comment_build USING e04_lt_top_of_page TYPE slis_t_listheader.
DATA : v_time(5) TYPE c.
DATA: ls_line TYPE slis_listheader.
DATA: ls_colr TYPE slis_specialcol_alv.
DATA : v_text(90) TYPE c.
CONCATENATE ' Report for MIGO track ':' ' INTO v_text SEPARATED BY space.
CLEAR ls_line.
ls_line-typ = 'H'.
ls_line-info = v_text.
APPEND ls_line TO e04_lt_top_of_page.
ENDFORM. " E04_COMMENT_BUILD
FORM TOP_OF_PAGE *
FORM top_of_page.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_list_top_of_page.
ENDFORM. "TOP_OF_PAGE
**& Form DATA_RETRIVE
text
FORM data_retrive.
fetching migo G/L account
IF fiscal_year_high IS NOT INITIAL.
SELECT belnr gjahr hkont pswbt ebeln ebelp xref3 shkzg
FROM bseg
INTO CORRESPONDING FIELDS OF TABLE it_bseg
WHERE belnr IN s_belnr
AND gjahr BETWEEN fiscal_year_low AND fiscal_year_high
AND bukrs = '1000'.
ELSE.
SELECT belnr gjahr hkont pswbt ebeln ebelp xref3 shkzg
FROM bseg
INTO CORRESPONDING FIELDS OF TABLE it_bseg
WHERE belnr IN s_belnr
AND gjahr = fiscal_year_low
AND bukrs = '1000'.
ENDIF.
fetching G/L account description
IF it_bseg[] IS NOT INITIAL.
SELECT saknr txt20 txt50
INTO CORRESPONDING FIELDS OF TABLE it_skat
FROM skat
FOR ALL ENTRIES IN it_bseg
WHERE saknr = it_bseg-hkont
AND spras = 'EN'
AND ktopl = 'HRJL'.
SELECT ebeln ebelp budat
INTO CORRESPONDING FIELDS OF TABLE it_ekbe
FROM ekbe
FOR ALL ENTRIES IN it_bseg
WHERE ebeln = it_bseg-ebeln
AND ebelp = it_bseg-ebelp
AND bewtp = 'E'.
ENDIF.
LOOP AT it_bseg.
IF it_bseg-shkzg = 'H'.
it_bseg-pswbt = it_bseg-pswbt * -1.
ENDIF.
MODIFY it_bseg.
READ TABLE it_ekbe WITH KEY ebeln = it_bseg-ebeln
ebelp = it_bseg-ebelp.
IF sy-subrc = 0.
it_bseg-budat = it_ekbe-budat.
ENDIF.
READ TABLE it_skat WITH KEY saknr = it_bseg-hkont.
IF sy-subrc = 0.
IF it_skat-txt20 IS NOT INITIAL.
it_bseg-acdes = it_skat-txt20.
ELSE.
it_bseg-acdes = it_skat-txt50.
ENDIF.
ENDIF.
MODIFY it_bseg.
CLEAR it_bseg.
ENDLOOP.
it_bseg1[] = it_bseg[].
LOOP AT it_bseg1.
IF it_bseg1-xref3 = ''.
DELETE it_bseg1.
CLEAR it_bseg1.
ENDIF.
ENDLOOP.
LOOP AT it_bseg.
READ TABLE it_bseg1 WITH KEY belnr = it_bseg-belnr.
IF sy-subrc = 0.
it_bseg-belnr1 = it_bseg1-xref3+4(10).
it_bseg-xref3 = it_bseg1-xref3.
ENDIF.
MODIFY it_bseg.
CLEAR it_bseg.
ENDLOOP.
ENDFORM. "data_retrive
*& Form DISPLAY_REPORT
text
--> p1 text
<-- p2 text
FORM display_report .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_background_id = ''
i_callback_program = g_repid
i_callback_user_command = 'USER_COMMAND'
is_layout = gs_layout
it_fieldcat = gt_fieldcat[]
it_special_groups = gt_sp_group[]
it_sort = gt_sort[]
it_filter = gt_filter[]
i_save = g_save
is_variant = g_variant
it_events = gt_events[]
is_print = gs_print
it_alv_graphics = gt_alv_graphics[]
it_excluding = gt_excluding
TABLES
t_outtab = it_bseg.
ENDFORM. " DISPLAY_REPORT
*& Form build_layout
text
--> p1 text
<-- p2 text
FORM build_layout.
gs_layout-no_input = 'X'.
gs_layout-colwidth_optimize = 'X'.
gs_layout-totals_text = 'Totals'(201).
gs_layout-info_fieldname = 'LINE_COLOR'.
ENDFORM. " BUILD_LAYOUT -
How to use the BADI WORKORDER_GOODSMVT to meet my requirement?
Hello Abapers,
My requirement is I need to display Batch Number in confirmation of production order(co15) which is entered in creation of production order(co01).While debugging the CO15,i got badi as WORKORDER_GOODSMVT.
I am new to BAdi,HOW to use this badi to meet my requirement.
Please help for me to solve my problem.
If any one implemented batch mangement in PP.Please tell the procedure how u achieved?
waiitng for your favourable replies
Regards
Maruthi.Hai,
IN my reuqiremnt,i used GOODS_RECEIPT method to meet my requirement.
Regards
Maruthi.K -
How to make the lines of the table and the template same
Hello Abapers,
I have a requirement, I have made a table in which i have displayed all the values in it, and under that i have taken a template and diplayed the total of it but the lines drawn to the table and the template is different, the table line is dark and the line of the template is lite, how can i make the line of the template dark, i mean the same as the table line. i hope u understand my problem.can u please help me in solving my problem as the requirement is very urgent.
HOPE U UNDERSTAND MY PROBLEM
Thank u in advance .HI,
Adjust the line width option for template and table,its there under pattern. -
Help needed in Va11 screen?
Hello ABAPers,
I want to know is it possible to add a field in Program - SAPMV45A and screen number - 4021 with out any access key.
If yes please can anyone give me the procedure to make it.
I have copied all the includes of SAPMV45A into my own program ZSAPMV45A. But one error is occuring while i am activating the whole include(ZSAPMV45A) like "The field "I_VBEPDG_WA" is unknown, but there is a field with the similar name "VBEPDG"". Include program name is ZMV45AIOX_XVBEPDG_AKTUALISIERE.
And even the same error is showing when i am activating the standard Sap program which i have copied SAPMV45A, but finally when i am activating the standard program it is activating with out any error.
Please suggest me how to activate my custom program. ZSAPMV45A.
Points will be duly awarded for the helpful answers.
ThksDid you get an answer to this or Have you figured it out because I am currently not getting anything back either for the FM I put into one of our custom Z programs.
Maybe you are looking for
-
Iphone 4 showing&taking pictures with Blue/Green Spot in the Middle
I have the blue/green spot in the middle of the screen while and after taking the photo especially on white ground/wall or paper. Another thing is that My iPhone 4 back camera takes very yellow photos in artificial light. So Apple should immediatelly
-
Sound not working in iTunes only
For awhile after downloading the newest iTunes 7 version everything was going well, until one day I restarted my computer and now I don't have sound. Everything runs and plays correctly, but there's no sound. I know there's nothing wrong with my spea
-
How to include new driver and configure datasource in NW 7.0
Hi, I have deployed my application in the app server and now i need to add the ms sql drivers to the application server and configure datasource to it. Can any one help me to configure the datsource in Nw 7.0 and also how to add the driver files tp a
-
Wont reboot past start up, recovery now looping!
Help! my phone has been freezing up lately, normally if i take the battery out, put it back in and then turn it back on it will be fine, but now i cant get my phone to boot past that very first white HTC startup screen. I tried rebooting it in recove
-
AVK 1.4.2 and EJB 1.1
We get lots of EJB failures with AVK relating to the EJB 2.1 specification. However, the EJBs that we are testing are 1.1 EJBs. AVK seems to assume that they are 2.1 EJBs. Each module has its own EJB 1.1 ejb-jar.xml descriptor. How can we get AVK to