hi,
i had made dis report in ALV and i want to display d heading format as follows:-
NAME:- TEST PROGRAM
date: - 21.05.2007
time:- 1:30:23 am
moreover i want to see the print perview of it but it is giving runtime error.
plz help me in solving dis problem and he or she will be definately rewarded..
&----
*& Report ZMFTEST5
*&
&----
*&
*&
&----
REPORT ZMFTEST5 no standard page heading LINE-SIZE 310.
TABLES : VBAK,ABAP,VBEP,VBKD,MARA,KNA1,MAKT.
*Varriable declaration.
TYPE-POOLS SLIS.
DATA : POS TYPE I.
DATA REPID LIKE SY-REPID.
DATA : F1 TYPE SLIS_T_FIELDCAT_ALV,
F2 TYPE SLIS_FIELDCAT_ALV,
L_LAYOUT TYPE SLIS_LAYOUT_ALV.
DATA L_POS TYPE I VALUE 1. "position of the column
DATA GT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA: GT_EVENTS TYPE SLIS_T_EVENT,
FS_EVENTCAT LIKE LINE OF GT_EVENTs.
DATA : T_HEADING TYPE slis_t_listheader.
INTERNAL TABLE FOR SALES ORDER *****************
DATA : BEGIN OF ITSO OCCURS 0,
VBELN LIKE VBAK-VBELN,
ERDAT LIKE VBAK-ERDAT,
BSTNK LIKE VBAK-BSTNK,
KUNNR LIKE VBAK-KUNNR,
MATNR LIKE VBAP-MATNR,
POSNR LIKE VBAP-POSNR,
WMENG LIKE VBEP-WMENG,
NTGEW LIKE MARA-NTGEW,
BRGEW LIKE MARA-BRGEW,
GEWEI LIKE MARA-GEWEI,
SPART LIKE VBAK-SPART,
BMENG LIKE VBEP-BMENG,
EDATU LIKE VBEP-EDATU,
BSTKD LIKE VBKD-BSTKD,
WERKS LIKE VBAP-WERKS,
MEINS LIKE MARA-MEINS,
KWMENG LIKE VBAP-KWMENG,
KLMENG LIKE VBAP-KLMENG,
BALQTY LIKE VBAP-KLMENG,
SOGWT LIKE MARA-BRGEW,
SONWT LIKE MARA-BRGEW,
SINWT LIKE MARA-BRGEW,
BALGWT LIKE MARA-BRGEW,
BALNWT LIKE MARA-BRGEW,
DISPNWT LIKE MARA-BRGEW,
PARTYNAME LIKE KNA1-NAME1,
ITEMDESC LIKE MAKT-MAKTX,
STATUS TYPE C,
END OF ITSO.
DATA:B_QTY TYPE P LENGTH 7 DECIMALS 3.
***********PARAMETERS***************
PARAMETERS : PLANT LIKE VBAP-WERKS OBLIGATORY.
*********SELECTION SCREEN OPTIONS*********
SELECT-OPTIONS : SO_ORD FOR VBAK-VBELN,
SO_PARTY FOR VBAK-KUNNR,
IT_M FOR MARA-MATNR,
DIV FOR VBAK-SPART,
SO_DATE FOR VBAK-ERDAT,
S_DATE FOR VBEP-EDATU.
START-OF-SELECTION.
SELECT DISTINCT A~VBELN A~ERDAT A~BSTNK A~KUNNR B~SPART B~MATNR B~POSNR B~WERKS B~KWMENG B~KBMENG C~NTGEW C~BRGEW C~GEWEI D~WMENG D~BMENG D~EDATU D~VBELN
FROM VBAK AS A INNER JOIN VBAP AS B ON B~VBELN = A~VBELN
INNER JOIN MARA AS C ON C~MATNR = B~MATNR
INNER JOIN VBEP AS D ON D~WMENG > 0 AND D~VBELN = A~VBELN AND D~POSNR = B~POSNR
INTO CORRESPONDING FIELDS OF TABLE ITSO
WHERE A~VBELN IN SO_ORD AND A~KUNNR IN SO_PARTY AND B~SPART IN DIV AND A~ERDAT IN SO_DATE AND D~EDATU IN S_DATE AND B~MATNR IN IT_M AND B~WERKS = PLANT.
IF SY-SUBRC <> 0.
MESSAGE E899(M3) WITH 'No records'.
ENDIF.
DATA : V_NETWT LIKE MARA-NTGEW,
V_GRWT LIKE MARA-NTGEW,
V_SOSTAT TYPE C.
LOOP AT ITSO.
if ITSO-bmeng = 0.
V_SOSTAT = 'A'.
ELSEIF ITSO-WMENG <> ITSO-BMENG.
V_SOSTAT = 'B'.
ELSE.
V_SOSTAT = 'C'.
ENDIF.
IF ITSO-GEWEI = 'G'.
V_NETWT = ITSO-NTGEW / 1000.
V_GRWT = ITSO-BRGEW / 1000.
ELSEIF ITSO-GEWEI = 'KG'.
V_NETWT = ITSO-NTGEW.
V_GRWT = ITSO-BRGEW.
ELSEIF ITSO-GEWEI = 'TO'.
V_NETWT = ITSO-NTGEW * 1000.
V_GRWT = ITSO-BRGEW * 1000.
ENDIF.
ITSO-STATUS = V_SOSTAT.
ITSO-SOGWT = V_GRWT * ITSO-WMENG / 1000.
ITSO-SONWT = V_NETWT * ITSO-WMENG / 1000.
ITSO-SINWT = V_GRWT * ITSO-BMENG / 1000.
ITSO-BALGWT = V_GRWT * ( ITSO-WMENG - ITSO-BMENG ) / 1000.
ITSO-BALNWT = V_NETWT * ( ITSO-WMENG - ITSO-BMENG ) / 1000.
ITSO-DISPNWT = V_NETWT * ITSO-BMENG / 1000.
ITSO-BALQTY = ITSO-WMENG - ITSO-BMENG.
SELECT SINGLE NAME1 FROM KNA1 INTO ITSO-PARTYNAME WHERE KUNNR = ITSO-KUNNR.
SELECT SINGLE MAKTX FROM MAKT INTO ITSO-ITEMDESC WHERE MATNR = ITSO-MATNR.
MODIFY ITSO.
ENDLOOP.
perform f_build_eventcat.
PERFORM LAYOUT using t_heading.
END-OF-SELECTION.
FORM LAYOUT using t_heading type slis_t_listheader.
data : t_event type slis_t_event.
PERFORM FCAT USING 'WERKS' 'ITSO' '' 'PLANT ' 'WERKS' 'VBAP' ''.
PERFORM FCAT USING 'VBELN' 'ITSO' '' 'SO NO. ' 'VBELN' 'VBAK' ''.
PERFORM FCAT USING 'ERDAT' 'ITSO' '' 'S.O.DATE' 'ERDAT' 'VBAK' ''.
PERFORM FCAT USING 'BSTNK' 'ITSO' '' 'P.O.N.O.' 'BSTNK' 'VBAK' ''.
PERFORM FCAT USING 'KUNNR' 'ITSO' '' 'PARTY ' 'KUNNR' 'VBAP' ''.
PERFORM FCAT USING 'PARTYNAME' 'ITSO' '' 'PARTY DESCRIPTION' 'PARTYNAME' '' ''.
PERFORM FCAT USING 'ITEMDESC' 'ITSO' '' 'MATERIAL DESCRIPTION' 'ITEMDESC' '' ''.
PERFORM FCAT USING 'MATNR' 'ITSO' '' 'MAT.NO. ' 'MATNR' 'MARA' ''.
PERFORM FCAT USING 'POSNR' 'ITSO' '' 'LINE.ITEM' 'POSNR' 'VBAP' ''.
PERFORM FCAT USING 'WMENG' 'ITSO' '' 'S.O.QTY' 'WMENG' 'VBEP' '' .
PERFORM FCAT USING 'EDATU' 'ITSO' '' 'SCH.DATE' 'EDATU' 'VBEP' ''.
PERFORM FCAT USING 'SONWT' 'ITSO' '' 'S.O.NWT ' 'P' '' ''.
PERFORM FCAT USING 'SOGWT' 'ITSO' '' 'S.O.GWT ' 'P' '' ''.
PERFORM FCAT USING 'SPART' 'ITSO' '' 'DIV ' 'SPART' 'VBAP' ''.
PERFORM FCAT USING 'BMENG' 'ITSO' '' 'DISP.QTY' 'BMENG' 'VBEP' ''.
PERFORM FCAT USING 'DISPNWT' 'ITSO' '' 'DISP.NT.WT ' 'P' '' ''.
PERFORM FCAT USING 'BALQTY' 'ITSO' '' 'BAL.QTY.' 'P' '' ''.
PERFORM FCAT USING 'BALNWT' 'ITSO' '' 'BAL.NT.WT ' 'P' '' ''.
PERFORM FCAT USING 'BALGWT' 'ITSO' '' 'BAL.GR.WT ' 'P' '' ''.
PERFORM FCAT USING 'STATUS' 'ITSO' '' 'STATUS' 'STATUS' '' ''.
refresh t_event.
*perform set_top_page_heading using t_heading t_event.
REPID = SY-REPID.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER =
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = REPID
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = ' '
I_CALLBACK_TOP_OF_PAGE = ' '
I_CALLBACK
I_CALLBACK_HTML_TOP_OF_PAGE = ' '
I_CALLBACK_HTML_END_OF_LIST = ' '
I_STRUCTURE_NAME =
I_BACKGROUND_ID = ' '
I_GRID_TITLE =
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = F1
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = ' '
IS_VARIANT =
IT_EVENTS = GT_EVENTS[]
IT_EVENT_EXIT =
IS_PRINT =
IS_REPREP_ID =
I_SCREEN_START_COLUMN = 0
I_SCREEN_START_LINE = 0
I_SCREEN_END_COLUMN = 0
I_SCREEN_END_LINE = 0
IT_ALV_GRAPHICS =
IT_ADD_FIELDCAT =
IT_HYPERLINK =
I_HTML_HEIGHT_TOP =
I_HTML_HEIGHT_END =
IT_EXCEPT_QINFO =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITSO
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
ENDFORM. " LAYOUT
&----
*& Form FCAT
&----
FORM FCAT USING P_FIELD P_TABLE P_SUM P_TEXT P_RFIELD P_RTABLE P_DISP.
ADD 1 TO POS.
F2-COL_POS = POS.
F2-FIELDNAME = P_FIELD.
F2-TABNAME = P_TABLE.
F2-SELTEXT_L = P_TEXT.
F2-REF_FIELDNAME = P_RFIELD.
F2-REF_TABNAME = P_RTABLE.
F2-DO_SUM = P_SUM.
F2-NO_OUT = P_DISP.
APPEND F2 TO F1.
CLEAR F2.
ENDFORM. " FCAT
FORM F_BUILD_EVENTCAT .
CLEAR: GT_EVENTS. REFRESH: GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'TOP_OF_PAGE'.
FS_EVENTCAT-FORM = 'F_REPORT_HEADER_ALV'.
APPEND FS_EVENTCAT TO GT_EVENTS.
CLEAR: FS_EVENTCAT.
FS_EVENTCAT-NAME = 'END_OF_LIST'.
FS_EVENTCAT-FORM = 'F_WRITE_SUMMARY'.
APPEND FS_EVENTCAT TO GT_EVENTS.
ENDFORM.
*FORM F_REPORT_HEADER_ALV.
*CALL FUNCTION 'Z_HEAD_PRINT'
EXPORTING
WRITE: / TITLE1 = 'XYZ Limited'
TITLE2 = 'Sales Order Report'
TITLE3 = 'Created on '
COLOR = 'X'.
*ENDFORM.
FORM F_WRITE_SUMMARY .
write:/ 'Welcome to XYZ Limited'.
write:/ 'This is a test program to display Report in ALV Format'.
ENDFORM.
&----
*& Form set_top_page_heading
&----
text
----
-->P_T_HEADING text
----
*form set_top_page_heading using t_heading
t_events type slis_t_event.
*data: x_heading type slis_listheader,
x_event type line of slis_t_event.
Report title
clear t_heading[].
clear x_heading.
x_heading-typ = 'H'.
x_heading-info = ''(001).
append x_heading to t_heading.
t_heading-info = 'TEST'.
t_heading-typ = 'H'.
*
Program name
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Program: '.
x_heading-info = sy-repid.
append x_heading to t_heading.
*
User who is running the report
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'User: '.
x_heading-info = sy-uname.
append x_heading to t_heading.
*
Date of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Date: '.
write sy-datum to x_heading-info.
append x_heading to t_heading.
*
Time of execution
clear x_heading.
x_heading-typ = 'S'.
x_heading-key = 'Time: '.
write sy-uzeit to x_heading-info.
append x_heading to t_heading.
*
Top of page event
x_event-name = slis_ev_top_of_page.
x_event-form = 'TOP_OF_PAGE'.
append x_event to t_events.
*endform. " set_top_page_heading