‎2008 Mar 28 8:44 AM
hi
i output display used to alv.in that top of page event not working .so in output top of page is displayed only plain .
so any body tell me
see my code
&----
*& Form DISPLAY_OUTPUT_ALV
&----
text
----
-->P_I_OUTPUT text
-->P_I_FIELDCAT text
----
FORM display_output_alv TABLES p_intab
USING p_fieldcat TYPE slis_t_fieldcat_alv.
*
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = wa_repname
is_layout = i_layout
it_fieldcat = p_fieldcat
I_CALLBACK_TOP_OF_PAGE = 'F_HEADER'
it_sort = i_sortinfo
TABLES
t_outtab = p_intab.
ENDFORM. " DISPLAY_OUTPUT_ALV
******************************************************************************
*----
FORM f_header .
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 = 'Open Production Order report'(030).
APPEND wa_header TO t_header.
CLEAR wa_header.
Date
wa_header-typ = 'S'.
wa_header-info = '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.
wa_header-typ = 'S'.
wa_header-key = 'Plant:'(031).
wa_header-info = 'p_werks: '.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Material Group:'(032).
wa_header-info = S_MATKL-LOW.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Material'(033).
wa_header-info = S_MATNR-LOW.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Material'(033).
wa_header-info = S_MATNR-LOW.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Material Type'(034).
wa_header-info = S_MTART-LOW.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Production Order'(035).
wa_header-info = S_AUFNR-LOW.
APPEND wa_header TO t_header.
CLEAR: wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
ENDFORM. " f_header
check this
‎2008 Mar 28 8:56 AM
Hi,
Use the following sample code.
FORM BUILD_COMMENTRY.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = GT_HEADER[]
I_LOGO = 'ENJOYSAP_LOGO'.
ENDFORM.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = G_REPID
I_CALLBACK_TOP_OF_PAGE = 'BUILD_COMMENTRY'
I_CALLBACK_USER_COMMAND = 'USR_COMMAND'
IT_FIELDCAT = GT_FIELDCAT[]
TABLES
T_OUTTAB = IT_SFLIGHT
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
HTH
Regards,
Dhruv Shah
‎2008 Mar 28 9:03 AM
‎2008 Mar 28 9:16 AM
‎2008 Mar 28 9:48 AM
Hi Dhruv,
you tokk the wrong parameter: It should be
I_CALLBACK_HTML_TOP_OF_PAGE
Take care about the FORM parameter:
form top_of_page using cl_dd type ref to cl_dd_document.
Regards,
Clemens
‎2008 Mar 28 10:17 AM
‎2008 Mar 28 11:30 AM
hi,
u havent give value to wa_repname , u have just declared it...
write this just befor calling function REUSE_ALV_GRID_DISPLAY or any where in report before calling this function.
wa_repname = sy-repid.
reward if usefull...
Edited by: Dhwani shah on Mar 28, 2008 12:36 PM
‎2008 Mar 28 11:34 AM
Hi,
Dhwanis idea is good.
Set breakpoint in the form you want to be called and see if you get there.
Regards,
Clemens
‎2008 Mar 28 11:47 AM
hi dhwani
thanks for reply .ur answer is correct thats why its not display the top of page.
‎2008 Mar 28 9:21 AM
************************************************************************
1/ Report Name ...: ZCSVR_CONDITION_PSA
************************************************************************
2/ Description ...: This report used to display valid pricing conditions
for puchasing scheduling agreements for a key
date.
************************************************************************
3/ Responsibility
************************************************************************
Author............: Mayank Rajguru
Creation Date.....: 20-Mar-2008
Requested by .....: Essam Riaz / William Cruz
Reference document: Ticket No. 22821928
Rev-trac no ......: 4020541
Project...........: NAC Support
************************************************************************
REPORT ZCSVR_CONDITION_PSA MESSAGE-ID E0 NO STANDARD PAGE HEADING.
TYPE-POOLS: SLIS.
TABLES: EKKO,
EKPO,
A016,
KONP.
To collect data from ekko and ekpo table
TYPES: BEGIN OF TY_EK,
EBELN LIKE EKKO-EBELN,
KDATB LIKE EKKO-KDATB,
KDATE LIKE EKKO-KDATE,
EBELP LIKE EKPO-EBELP,
MATNR LIKE EKPO-MATNR,
TXZ01 LIKE EKPO-TXZ01,
WERKS LIKE EKPO-WERKS,
KTMNG LIKE EKPO-KTMNG,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
END OF TY_EK.
Internal table to hold data
DATA: I_EK TYPE STANDARD TABLE OF TY_EK,
W_EK LIKE LINE OF I_EK.
Field catalog for List display
DATA: TBL_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV ,
ST_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
ST_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA: I_LIST_COMMENTS TYPE SLIS_T_LISTHEADER.
For event
DATA: I_EVENTS TYPE SLIS_T_EVENT,
W_EVENTS LIKE LINE OF I_EVENTS.
DATA: W_LIST_COMMENTS LIKE LINE OF I_LIST_COMMENTS.
To hold dates from A016 table
DATA: I_A016 TYPE STANDARD TABLE OF A016 WITH HEADER LINE,
W_A016 LIKE LINE OF I_A016.
To hold required data from KONP table
TYPES : BEGIN OF TY_KONP,
KNUMH TYPE KONP-KNUMH,
KOPOS TYPE KONP-KOPOS,
KSCHL TYPE KONP-KSCHL,
KBETR TYPE KONP-KBETR,
KONWA TYPE KONP-KONWA,
KPEIN TYPE KONP-KPEIN,
KMEIN TYPE KONP-KMEIN,
END OF TY_KONP.
Internal table and work area for KONP table
DATA: I_KONP TYPE STANDARD TABLE OF TY_KONP,
W_KONP LIKE LINE OF I_KONP.
Final structure required
TYPES: BEGIN OF TY_DISP,
EBELN LIKE EKKO-EBELN,
EBELP LIKE EKPO-EBELP,
KDATB LIKE EKKO-KDATB,
KDATE LIKE EKKO-KDATE,
MATNR LIKE EKPO-MATNR,
TXZ01 LIKE EKPO-TXZ01,
WERKS LIKE EKPO-WERKS,
KTMNG LIKE EKPO-KTMNG,
MENGE LIKE EKPO-MENGE,
MEINS LIKE EKPO-MEINS,
KNUMH LIKE KONP-KNUMH,
DATBI LIKE A016-DATBI,
DATAB LIKE A016-DATAB,
KOPOS LIKE KONP-KOPOS,
KSCHL LIKE KONP-KSCHL,
KBETR LIKE KONP-KBETR,
KONWA LIKE KONP-KONWA,
KPEIN LIKE KONP-KPEIN,
KMEIN LIKE KONP-KMEIN,
END OF TY_DISP.
Internal table to hold final data
DATA : I_DISP TYPE STANDARD TABLE OF TY_DISP,
W_DISP LIKE LINE OF I_DISP.
DATA: V_EKORG TYPE EKKO-EKORG,
V_LIFNR TYPE EKKO-LIFNR,
V_WERKS TYPE EKPO-WERKS,
V_MATNR TYPE EKPO-MATNR,
V_EBELN TYPE EKKO-EBELN.
DATA: V_TEXT(60) TYPE C,
V_PERCENT(1) TYPE C VALUE '%'.
Selection screen
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-000.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (20) TEXT-001.
SELECTION-SCREEN POSITION 36.
PARAMETERS: P_DATE TYPE A016-DATAB OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (20) TEXT-002.
SELECTION-SCREEN POSITION 33.
SELECT-OPTIONS: S_EKORG FOR V_EKORG.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (20) TEXT-003.
SELECTION-SCREEN POSITION 33.
SELECT-OPTIONS: S_LIFNR FOR V_LIFNR.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (20) TEXT-004.
SELECTION-SCREEN POSITION 33.
SELECT-OPTIONS: S_WERKS FOR V_WERKS.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (20) TEXT-005.
SELECTION-SCREEN POSITION 33.
SELECT-OPTIONS: S_MATNR FOR V_MATNR.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT (20) TEXT-006.
SELECTION-SCREEN POSITION 33.
SELECT-OPTIONS: S_EBELN FOR V_EBELN.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B1.
Start of program
START-OF-SELECTION.
To acheive data from EKKO and EKPO table
SELECT EKKO~EBELN EKKO~KDATB EKKO~KDATE EKPO~EBELP EKPO~MATNR
EKPO~TXZ01 EKPO~WERKS EKPO~KTMNG EKPO~MENGE EKPO~MEINS
INTO TABLE I_EK
FROM EKKO INNER JOIN EKPO ON
EKKO~EBELN = EKPO~EBELN
WHERE EKKO~KDATB <= P_DATE
AND EKKO~KDATE >= P_DATE
AND EKKO~EKORG IN S_EKORG
AND EKKO~LIFNR IN S_LIFNR
AND EKKO~EBELN IN S_EBELN
AND EKPO~WERKS IN S_WERKS
AND EKPO~MATNR IN S_MATNR.
Get dates for corresponding entries from A016 table
IF I_EK[] IS NOT INITIAL.
SELECT * FROM A016 INTO TABLE I_A016
FOR ALL ENTRIES IN I_EK
WHERE EVRTN = I_EK-EBELN
AND EVRTP = I_EK-EBELP.
ENDIF.
To get corresponding entries from KONP table
IF I_A016[] IS NOT INITIAL.
SELECT KNUMH KOPOS KSCHL KBETR KONWA KPEIN KMEIN
FROM KONP
INTO TABLE I_KONP
FOR ALL ENTRIES IN I_A016
WHERE KNUMH = I_A016-KNUMH
AND LOEVM_KO <> 'X'.
ENDIF.
SORT I_EK BY EBELN EBELP.
SORT I_A016 BY EVRTN EVRTP.
SORT I_KONP BY KNUMH.
LOOP AT I_EK INTO W_EK.
READ TABLE I_A016 INTO W_A016 WITH KEY EVRTN = W_EK-EBELN
EVRTP = W_EK-EBELP.
LOOP AT I_A016 INTO W_A016 WHERE EVRTN = W_EK-EBELN
AND EVRTP = W_EK-EBELP.
IF SY-SUBRC = 0.
LOOP AT I_KONP INTO W_KONP WHERE KNUMH = W_A016-KNUMH .
W_DISP-EBELN = W_EK-EBELN.
W_DISP-EBELP = W_EK-EBELP.
W_DISP-KDATB = W_EK-KDATB.
W_DISP-KDATE = W_EK-KDATE.
W_DISP-MATNR = W_EK-MATNR.
W_DISP-TXZ01 = W_EK-TXZ01.
W_DISP-WERKS = W_EK-WERKS.
W_DISP-KTMNG = W_EK-KTMNG.
W_DISP-MENGE = W_EK-MENGE.
W_DISP-MEINS = W_EK-MEINS.
W_DISP-KNUMH = W_A016-KNUMH.
W_DISP-DATBI = W_A016-DATBI.
W_DISP-DATAB = W_A016-DATAB.
W_DISP-KOPOS = W_KONP-KOPOS.
W_DISP-KSCHL = W_KONP-KSCHL.
W_DISP-KBETR = W_KONP-KBETR.
W_DISP-KONWA = W_KONP-KONWA.
Added for the problem - multiplied by 10
IF W_DISP-KONWA = V_PERCENT.
W_DISP-KBETR = W_DISP-KBETR / 10.
ENDIF.
W_DISP-KPEIN = W_KONP-KPEIN.
W_DISP-KMEIN = W_KONP-KMEIN.
APPEND W_DISP TO I_DISP.
CLEAR W_KONP.
CLEAR W_A016.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDLOOP.
To display data
PERFORM FIELDCATALOG.
PERFORM LAYOUT_BUILD.
PERFORM EVENT_BUILD.
PERFORM LIST_DISPLAY.
&----
*& Form FIELDCATALOG
&----
This form is used to prepare field catalog for final display
----
*& Parameter / Table : None
&----
FORM FIELDCATALOG .
PERFORM WRITE_FIELDCAT USING 'EBELN' 'I_DISP' 'Purch.doc. ' ' ' 1 '10' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'EBELP' 'I_DISP' 'Item ' ' ' 2 '10' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'KDATB' 'I_DISP' 'Start ' ' ' 3 '10' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'KDATE' 'I_DISP' 'End ' ' ' 4 '10' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'MATNR' 'I_DISP' 'Material ' ' ' 5 '20' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'TXZ01' 'I_DISP' 'Short Text ' ' ' 6 '42' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'WERKS' 'I_DISP' 'Plnt ' ' ' 7 '6' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'KTMNG' 'I_DISP' 'Target Qty ' ' ' 8 '15' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'MENGE' 'I_DISP' 'Order Qty. ' ' ' 9 '15' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'MEINS' 'I_DISP' 'Order Unit ' ' ' 10 '10' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'KNUMH' 'I_DISP' 'CondRecNo ' ' ' 11 '12' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'DATAB' 'I_DISP' 'Validity start ' ' ' 12 '15' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'DATBI' 'I_DISP' 'Validaity End ' ' ' 13 '13' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'KOPOS' 'I_DISP' 'SequNo. ' ' ' 14 '10' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'KSCHL' 'I_DISP' 'CnType ' ' ' 15 '8' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'KBETR' 'I_DISP' 'Amount ' ' ' 16 '13' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'KONWA' 'I_DISP' 'Unit ' ' ' 17 '10' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'KPEIN' 'I_DISP' 'Per ' ' ' 18 '10' ' '
' '.
PERFORM WRITE_FIELDCAT USING 'KMEIN' 'I_DISP' 'UoM ' ' ' 19 '10' ' '
' '.
ENDFORM. " FIELDCATALOG
&----
*& Form write_fieldcat
&----
*& This form is used to add fields to fieldcatalog table
&----
*& Parameter :
*& NAME : Name of the field
*& TAB : Name of internal table
*& POS : Position of the field on display
*& LENGH: Length of the field
*& Table :
*& TBL_FEILDCAT : Internal table to hold fieldcatalog data
&----
FORM WRITE_FIELDCAT USING NAME TAB ST KEY POS LENGTH ICON HOT.
ST_FIELDCAT-FIELDNAME = NAME.
ST_FIELDCAT-TABNAME = TAB.
ST_FIELDCAT-SELTEXT_M = ST.
ST_FIELDCAT-KEY = KEY.
ST_FIELDCAT-COL_POS = POS.
ST_FIELDCAT-OUTPUTLEN = LENGTH.
ST_FIELDCAT-ICON = ICON.
ST_FIELDCAT-HOTSPOT = HOT.
APPEND ST_FIELDCAT TO TBL_FIELDCAT.
CLEAR ST_FIELDCAT.
ENDFORM. " write_fieldcat
&----
*& Form LAYOUT_BUILD
&----
*& This form is used built layout
&----
FORM LAYOUT_BUILD .
ST_LAYOUT-ZEBRA = 'X'.
ST_LAYOUT-NO_VLINE = ''.
ST_LAYOUT-COLWIDTH_OPTIMIZE = ' '.
ST_LAYOUT-DETAIL_POPUP = 'X'.
ST_LAYOUT-DETAIL_INITIAL_LINES = 'X'.
ST_LAYOUT-DETAIL_TITLEBAR = 'Detail Title Bar'.
ST_LAYOUT-INFO_FIELDNAME = 'COLOR'.
" layout_build
ENDFORM. " LAYOUT_BUILD
&----
*& Form LIST_DISPLAY
&----
*& This form is call function to display data
&----
*& Table :
*& TBL_FEILDCAT : To provide field catalog information
*& ST_LAYOUT : To provide layout information
*& I_DISP : To provide display data
&----
FORM LIST_DISPLAY .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = SY-REPID
IT_FIELDCAT = TBL_FIELDCAT[]
IT_EVENTS = I_EVENTS[]
IS_LAYOUT = ST_LAYOUT
TABLES
T_OUTTAB = I_DISP
EXCEPTIONS
OTHERS = 1.
CASE SY-SUBRC.
WHEN 1.
MESSAGE A534(0K) RAISING PROGRAM_ERROR.
ENDCASE.
ENDFORM. " LIST_DISPLAY
&----
*& Form EVENT_BUILD
&----
*& This form is used to trigger event top of page
&----
FORM EVENT_BUILD .
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = I_EVENTS.
READ TABLE I_EVENTS
WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
INTO W_EVENTS.
IF SY-SUBRC = 0.
MOVE 'ALV_TOP_OF_PAGE' TO W_EVENTS-FORM.
MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.
ENDIF.
READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_LIST
INTO W_EVENTS.
IF SY-SUBRC = 0.
MOVE 'TOP_OF_LIST' TO W_EVENTS-FORM.
APPEND W_EVENTS TO I_EVENTS.
ENDIF.
ENDFORM. " EVENT_BUILD
&----
*& Form top_of_page
&----
*& This form is used to display heading on the report
&----
FORM ALV_TOP_OF_PAGE.
CLEAR: I_LIST_COMMENTS[].
CONCATENATE 'PSA Valid On ' '&' P_DATE6(2) '/' P_DATE4(2) '/' P_DATE+0(4) INTO V_TEXT.
REPLACE '&' WITH ' ' INTO V_TEXT.
W_LIST_COMMENTS-TYP = 'H'.
W_LIST_COMMENTS-KEY = ' '.
W_LIST_COMMENTS-INFO = V_TEXT.
APPEND W_LIST_COMMENTS TO I_LIST_COMMENTS.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
IT_LIST_COMMENTARY = I_LIST_COMMENTS.
ENDFORM. "top_of_page
‎2008 Mar 28 9:21 AM
It will work.
I copied ur code, check it once with ur code. place ur complete coding.
REPORT ztest_0001.
TYPE-POOLS: slis.
DATA: it_vbap TYPE STANDARD TABLE OF vbap.
SELECT * FROM vbap INTO TABLE it_vbap.
*
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-repid
i_structure_name = 'VBAP'
i_callback_top_of_page = 'F_HEADER'
TABLES
t_outtab = it_vbap.
*&---------------------------------------------------------------------*
*& Form f_header
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM f_header .
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 = 'Open Production Order report'(030).
APPEND wa_header TO t_header.
CLEAR wa_header.
*Date
wa_header-typ = 'S'.
wa_header-info = '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.
wa_header-typ = 'S'.
wa_header-key = 'Plant:'(031).
wa_header-info = 'p_werks: '.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Material Group:'(032).
wa_header-info = ''.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Material'(033).
wa_header-info = ''.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Material'(033).
wa_header-info = ''.
APPEND wa_header TO t_header.
CLEAR: wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header.
ENDFORM. " f_header
‎2008 Mar 28 9:43 AM
hi yash
i past ur code here working fine but in my program not working.
check my code
&----
*& Report ZSAMP_ZM0C *
*& *
&----
*& *
*& *
&----
REPORT zsamp_zm0c LINE-SIZE 170 LINE-COUNT 50 NO STANDARD PAGE HEADING
MESSAGE-ID 00.
************************************************************************
S Y S T E M T A B L E S
************************************************************************
TABLES: mara, " Material Master
marc,
aufk, " Order master data
afko, " Order header data PP orders
afvc, " Operation within an order
resb, " Reservation/dependent requirements
afru, " Order completion confirmations
mbew, " Material Valuation
jest, " Object status
t001w,
usr02. " Logon data
TYPE-POOLS: slis.
TYPES : BEGIN OF t_aufk,
aufnr LIKE aufk-aufnr,
objnr LIKE aufk-objnr,
auart LIKE aufk-auart,
l_flag TYPE c,
END OF t_aufk.
TYPES : BEGIN OF t_afko,
aufnr LIKE afko-aufnr, "Order number
gstrp LIKE afko-gstrp, "Date
gamng LIKE afko-gamng, "Total quantity
plnbez LIKE afko-plnbez, "Material number
aufpl LIKE afko-aufpl, "Routing numfor oper in the order
END OF t_afko .
TYPES : BEGIN OF t_mara,
matnr LIKE mara-matnr, "Material number
matkl LIKE mara-matkl, "Material group
aufnr LIKE afko-aufnr, "Order number
gstrp LIKE afko-gstrp, "Date
plnbez LIKE afko-plnbez, "Material number
END OF t_mara .
TYPES: BEGIN OF t_afpo,
aufnr TYPE afpo-aufnr, "Order Number
strmp TYPE afpo-strmp, "date
psmng TYPE afpo-psmng, "Order item quantity
wemng TYPE afpo-wemng, "Qty of goods received for Ord Item
matnr TYPE afpo-matnr, "Material Number
END OF t_afpo.
TYPES: BEGIN OF t_output,
gstrp LIKE afko-gstrp, "Date
matnr TYPE mara-matnr, "Material Number
aufnr TYPE afpo-aufnr, "Order Number
quant TYPE afpo-psmng, "Balance qauantity
stext(90) , "Order text
END OF t_output.
TYPES: BEGIN OF t_hdr,
longt1(200),
longt2(200),
longt3(200),
longt4(200),
longt5(200),
END OF t_hdr.
************************************************************************
INTERNAL TABLE DECLARATIONS
************************************************************************
DATA : i_aufk TYPE STANDARD TABLE OF t_aufk,
i_afko TYPE STANDARD TABLE OF t_afko,
i_afpo TYPE STANDARD TABLE OF t_afpo,
i_output TYPE STANDARD TABLE OF t_output,
i_mara TYPE STANDARD TABLE OF t_mara.
*WORK AREA DECLARATIONS
DATA : wa_aufk TYPE t_aufk,
wa_afko TYPE t_afko,
wa_afpo TYPE t_afpo,
wa_output TYPE t_output,
wa_mara TYPE t_mara.
*Variables
DATA : v_sttxt LIKE bsvx-sttxt,
wa_repname TYPE sy-repid,
i_fieldcat TYPE slis_t_fieldcat_alv,
*internal table for layout
i_layout TYPE slis_layout_alv,
*internal table for sort information
i_sortinfo TYPE slis_t_sortinfo_alv,
*work area for sort information
wa_sortinfo TYPE slis_sortinfo_alv.
*Constants
CONSTANTS : c_teco(4) TYPE c VALUE 'TECO',
c_clsd(4) TYPE c VALUE 'CLSD',
c_dlfl(4) TYPE c VALUE 'DLFL',
c_dlv(4) TYPE c VALUE 'DLV',
c_cnf(4) TYPE c VALUE 'CNF',
c_pdlv(4) TYPE c VALUE 'pdlv',
c_x(1) TYPE c VALUE 'x'.
************************************************************************
S E L E C T I O N S C R E E N
************************************************************************
SELECTION-SCREEN BEGIN OF BLOCK 1 WITH FRAME TITLE text-001."REPT FORMAT
PARAMETERS : p_werks LIKE aufk-werks OBLIGATORY.
SELECT-OPTIONS:
s_matkl FOR mara-matkl OBLIGATORY, " Mat. Gp
s_matnr FOR afko-plnbez, " Material number For FERT/HALB
s_mtart FOR mara-mtart , " Material type
s_aufnr FOR afko-aufnr . " Order Number
SELECTION-SCREEN END OF BLOCK 1.
INITIALIZATION.
MOVE: 'I' TO s_mtart-sign,
'EQ' TO s_mtart-option,
'HALB' TO s_mtart-low.
APPEND s_mtart.
MOVE: 'I' TO s_mtart-sign,
'EQ' TO s_mtart-option,
'FERT' TO s_mtart-low.
APPEND s_mtart.
************************************************************************
S T A R T O F S E L E C T I O N
************************************************************************
START-OF-SELECTION.
PERFORM get_data.
&----
*& Form GET_DATA
&----
text
----
--> p1 text
<-- p2 text
----
FORM get_data .
DATA : v_qty TYPE afpo-psmng .
CLEAR i_output. REFRESH i_output.
*BEGIN OF SAMPATH
SELECT aufnr objnr auart " ProdOrd Master Data
INTO TABLE i_aufk
FROM aufk
WHERE aufnr IN s_aufnr " ProdOrd No.
AND autyp = '10'
AND werks = p_werks " Plant
AND loekz = space.
IF sy-subrc = 0 .
SORT i_aufk BY aufnr objnr.
PERFORM status.
DELETE i_aufk WHERE l_flag = c_x.
IF NOT i_aufk IS INITIAL.
SELECT mmatnr mmatkl aaufnr agstrp a~plnbez
INTO TABLE i_mara
FROM mara
AS m INNER JOIN afko AS a
ON mmatnr = aplnbez
WHERE a~plnbez IN s_matnr
AND m~matkl IN s_matkl
AND a~aufnr IN s_aufnr .
SELECT matnr matkl mtart
INTO TABLE i_mara
FROM mara
WHERE matnr IN s_matnr
AND mtart IN s_mtart
AND matkl IN s_matkl.
IF sy-subrc = 0.
SORT i_mara BY matnr.
SELECT aufnr gstrp gamng plnbez " Order header data PP orders
INTO TABLE i_afko
FROM afko
FOR ALL ENTRIES IN i_mara
WHERE aufnr IN s_aufnr " Production No
AND aufpl <> 0
AND plnbez = i_mara-matnr.
IF sy-subrc = 0.
SORT i_afko BY aufnr plnbez.
SELECT aufnr strmp psmng wemng matnr
FROM afpo INTO TABLE i_afpo
FOR ALL ENTRIES IN i_mara
WHERE aufnr = i_mara-aufnr
AND matnr = i_mara-plnbez
AND dwerk = p_werks.
IF sy-subrc EQ 0.
SORT i_afpo BY aufnr.
LOOP AT i_afpo INTO wa_afpo .
v_qty = wa_afpo-psmng - wa_afpo-wemng .
IF v_qty GT 0 .
MOVE v_qty TO wa_output-quant.
READ TABLE i_mara INTO wa_mara WITH KEY aufnr = wa_afpo-aufnr
plnbez = wa_afpo-matnr
TRANSPORTING gstrp.
IF sy-subrc = 0.
MOVE wa_mara-gstrp TO wa_output-gstrp.
PERFORM disp_data.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
PERFORM display_output .
WRITE 😕 sy-uline(130) .
WRITE: /5 'Date' , text-007, 17 sy-vline,
18 'Material Number' , text-008, 42 sy-vline,
43 'Order Number' , text-009, 57 sy-vline,
58 'Balance qauantity' , text-010,74 sy-vline,
75 'Order text', text-011, 130 sy-vline.
WRITE 😕 sy-uline(130) .
LOOP AT i_output INTO wa_output.
WRITE: /5 wa_output-gstrp, 17 sy-vline,
18 wa_output-matnr, 42 sy-vline,
43 wa_output-aufnr, 57 sy-vline,
58 wa_output-quant , 74 sy-vline,
75 wa_output-stext , 130 sy-vline .
ENDLOOP.
ENDFORM. " GET_DATA
&----
*& Form disp_data
&----
text
----
--> p1 text
<-- p2 text
----
FORM disp_data .
DATA: tabhdr TYPE t_hdr OCCURS 0 WITH HEADER LINE,
tabtmp TYPE t_hdr OCCURS 0 WITH HEADER LINE,
tline TYPE tline OCCURS 0 WITH HEADER LINE,
client_aufnr LIKE thead-tdname.
CONCATENATE sy-mandt wa_afpo-aufnr INTO client_aufnr.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'KOPF'
language = 'E'
name = client_aufnr
object = 'AUFK'
TABLES
lines = tline
EXCEPTIONS
id = 1
language = 2
name = 3
not_found = 4
object = 5
reference_check = 6
wrong_access_to_archive = 7
OTHERS = 8.
LOOP AT tline.
CASE sy-tabix.
WHEN 1. tabhdr-longt1 = tline-tdline.
WHEN 2. tabhdr-longt2 = tline-tdline.
WHEN 3. tabhdr-longt3 = tline-tdline.
WHEN 4. tabhdr-longt4 = tline-tdline.
WHEN 5. tabhdr-longt5 = tline-tdline.
ENDCASE.
ENDLOOP.
CONCATENATE tabhdr-longt1 tabhdr-longt2 tabhdr-longt3 tabhdr-longt4 tabhdr-longt5
INTO wa_output-stext SEPARATED BY space.
CLEAR: tline .
MOVE wa_afpo-aufnr TO wa_output-aufnr.
MOVE wa_afpo-matnr TO wa_output-matnr.
COLLECT wa_output INTO i_output.
SORT i_output BY gstrp matnr.
ENDFORM. " disp_data
&----
*& Form status
&----
text
----
--> p1 text
<-- p2 text
----
FORM status .
LOOP AT i_aufk INTO wa_aufk.
CALL FUNCTION 'STATUS_TEXT_EDIT'
EXPORTING
objnr = wa_aufk-objnr
only_active = c_x
spras = sy-langu
IMPORTING
line = v_sttxt
EXCEPTIONS
object_not_found = 1
OTHERS = 2.
IF sy-subrc = 0.
IF v_sttxt CS c_teco OR
v_sttxt CS c_clsd OR
v_sttxt CS c_dlfl OR
v_sttxt CS c_dlv.
IF v_sttxt CS c_pdlv.
CONTINUE.
ENDIF.
wa_aufk-l_flag = c_x.
MODIFY i_aufk FROM wa_aufk
TRANSPORTING l_flag.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM. " status
&----
*& Form display_output
&----
text
----
--> p1 text
<-- p2 text
----
FORM display_output .
**? Populate field catalog
PERFORM populate_field_catalog USING i_fieldcat.
**? Populate layout
PERFORM populate_layout USING i_layout.
***? Populate sort info
PERFORM populate_sort_info USING i_sortinfo.
**? Display output in ALV
PERFORM display_output_alv TABLES i_output USING i_fieldcat.
ENDFORM. " display_output
&----
*& Form POPULATE_FIELD_CATALOG
&----
text
----
-->P_I_FIELDCAT text
----
FORM populate_field_catalog USING p_fieldcat TYPE slis_t_fieldcat_alv.
DATA: wa_fieldcat TYPE slis_fieldcat_alv.
CLEAR : wa_fieldcat.
wa_fieldcat-col_pos = 1.
wa_fieldcat-fieldname = 'GSTRP'.
wa_fieldcat-seltext_l = 'DATE'(010).
wa_fieldcat-key = 'X'.
APPEND wa_fieldcat TO p_fieldcat.
CLEAR wa_fieldcat.
CLEAR : wa_fieldcat.
wa_fieldcat-col_pos = 2.
wa_fieldcat-fieldname = 'MATNR'.
wa_fieldcat-seltext_l = 'MATERIAL NUMBER'(011).
APPEND wa_fieldcat TO p_fieldcat.
CLEAR wa_fieldcat.
CLEAR : wa_fieldcat.
wa_fieldcat-col_pos = 3.
wa_fieldcat-fieldname = 'AUFNR'.
wa_fieldcat-seltext_l = 'PRODUCTION ORDER NUMBER'(012).
APPEND wa_fieldcat TO p_fieldcat.
CLEAR wa_fieldcat.
CLEAR : wa_fieldcat.
wa_fieldcat-col_pos = 4.
wa_fieldcat-fieldname = 'QUANT'.
wa_fieldcat-seltext_l = 'BALANCE QUANTITY'(014).
APPEND wa_fieldcat TO p_fieldcat.
CLEAR wa_fieldcat.
CLEAR : wa_fieldcat.
wa_fieldcat-col_pos = 5.
wa_fieldcat-fieldname = 'STEXT'.
wa_fieldcat-seltext_l = 'PRODUCTION ORDER TEXT'(015).
APPEND wa_fieldcat TO p_fieldcat.
CLEAR wa_fieldcat.
CLEAR : wa_fieldcat.
ENDFORM. " POPULATE_FIELD_CATALOG
&----
*& Form POPULATE_LAYOUT
&----
text
----
-->P_I_LAYOUT text
----
FORM populate_layout USING p_layout TYPE slis_layout_alv.
*
p_layout-zebra = 'X'.
p_layout-colwidth_optimize = 'X'."Automatically adjust the column pos.
*
ENDFORM. " POPULATE_LAYOUT
&----
*& Form POPULATE_SORT_INFO
&----
text
----
-->P_I_SORTINFO text
----
FORM populate_sort_info USING p_sortinfo TYPE slis_t_sortinfo_alv.
*Sort the data to display the output
wa_sortinfo-spos = 1.
wa_sortinfo-fieldname = 'GSTRP'.
wa_sortinfo-up = 'X'.
APPEND wa_sortinfo TO p_sortinfo.
wa_sortinfo-spos = 2.
wa_sortinfo-fieldname = 'MATNR'.
wa_sortinfo-up = 'X'.
APPEND wa_sortinfo TO p_sortinfo.
ENDFORM. " POPULATE_SORT_INFO
&----
*& Form DISPLAY_OUTPUT_ALV
&----
text
----
-->P_I_OUTPUT text
-->P_I_FIELDCAT text
----
FORM display_output_alv TABLES p_intab
USING p_fieldcat TYPE slis_t_fieldcat_alv.
*
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = wa_repname
is_layout = i_layout
it_fieldcat = p_fieldcat
I_CALLBACK_TOP_OF_PAGE = 'F_HEADER'
it_sort = i_sortinfo
TABLES
t_outtab = p_intab.
ENDFORM. " DISPLAY_OUTPUT_ALV
******************************************************************************
*----
FORM F_HEADER .
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 = 'Open Production Order report'(030).
APPEND wa_header TO t_header.
CLEAR wa_header.
Date
wa_header-typ = 'S'.
wa_header-info = '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.
wa_header-typ = 'S'.
wa_header-key = 'Plant:'(031).
wa_header-info = 'p_werks: '.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Material Group:'(032).
wa_header-info = S_MATKL-LOW.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Material'(033).
wa_header-info = S_MATNR-LOW.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Material'(033).
wa_header-info = S_MATNR-LOW.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Material Type'(034).
wa_header-info = S_MTART-LOW.
APPEND wa_header TO t_header.
CLEAR: wa_header.
wa_header-typ = 'S'.
wa_header-key = 'Production Order'(035).
wa_header-info = S_AUFNR-LOW.
APPEND wa_header TO t_header.
CLEAR: wa_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = t_header[].
ENDFORM. " f_header
check this here not display the top of page