hi,
i am making dis report :-
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_SORT TYPE SLIS_T_SORTINFO_ALV.
DATA: GT_EVENTS TYPE SLIS_T_EVENT,
FS_EVENTCAT LIKE LINE OF GT_EVENTs.
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,
END OF ITSO.
Heading of the report.
data: t_heading type slis_t_listheader.
***********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 AVBELN AERDAT ABSTNK AKUNNR BSPART BMATNR BPOSNR BWERKS BKWMENG BKBMENG CNTGEW CBRGEW CGEWEI DWMENG DBMENG DEDATU D~VBELN
FROM VBAK AS A INNER JOIN VBAP AS B ON BVBELN = AVBELN
INNER JOIN MARA AS C ON CMATNR = BMATNR
INNER JOIN VBEP AS D ON DWMENG > 0 AND DVBELN = AVBELN AND DPOSNR = B~POSNR
INTO CORRESPONDING FIELDS OF TABLE ITSO
WHERE AVBELN IN SO_ORD AND AKUNNR IN SO_PARTY AND BSPART IN DIV AND AERDAT IN SO_DATE AND DEDATU IN S_DATE AND BMATNR IN IT_M AND B~WERKS = PLANT.
IF SY-SUBRC <> 0.
MESSAGE E899(M3) WITH 'No records'.
ENDIF.
perform f_build_eventcat.
PERFORM LAYOUT.
END-OF-SELECTION.
FORM LAYOUT.
PERFORM FCAT USING 'WERKS' 'ITSO' '' 'PLANT ' 'WERKS' 'VBAP' ''.
PERFORM FCAT USING 'VBELN' 'ITSO' '' 'S.O.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 'MATNR' 'ITSO' '' 'MAT.NO.' 'MATNR' 'MARA' ''.
PERFORM FCAT USING 'WMENG' 'ITSO' '' 'S.O.QTY' 'WMENG' 'VBEP' ''.
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_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. " F_BUILD_EVENTCAT
and i want to add dis code: -
DATA: B_QTY TYPE P LENGTH 7 DECIMALS 3,
B_GR_W TYPE P LENGTH 5 DECIMALS 3,
B_NT_W TYPE P LENGTH 5 DECIMALS 3,
ITEM_NTW TYPE P LENGTH 5 DECIMALS 3,
ITEM_GRW TYPE P LENGTH 5 DECIMALS 3,
ITEM_DISP TYPE P LENGTH 5 DECIMALS 3,
CNT(5) TYPE N.
CNT = 0.
DATA : V_SOSTAT TYPE C,
V_NETWT LIKE MARA-NTGEW,
V_GRWT LIKE MARA-BRGEW,
V_DESPQTY TYPE P LENGTH 5 DECIMALS 3,
V_TSONWT TYPE P LENGTH 5 DECIMALS 3,
V_TSOGWT TYPE P LENGTH 5 DECIMALS 3,
V_TSINWT TYPE P LENGTH 5 DECIMALS 3,
V_TBALNWT TYPE P LENGTH 5 DECIMALS 3,
V_TBALGWT TYPE P LENGTH 5 DECIMALS 3.
V_TSONWT = 0.
V_TSOGWT = 0.
V_TSINWT = 0.
V_TBALNWT = 0.
V_TBALGWT = 0.
*LOOP AT ITSO.
loop at t_data.
if t_data-bmeng = 0.
V_SOSTAT = 'A'.
ELSEIF t_data-WMENG <> t_data-BMENG.
V_SOSTAT = 'B'.
ELSE.
V_SOSTAT = 'C'.
ENDIF.
if ( PEND = 'X' AND ( V_SOSTAT = 'A' OR V_SOSTAT = 'B' ) ) OR ( UNTC = 'X' AND V_SOSTAT = 'A' ) OR ( COMP = 'X' AND V_SOSTAT = 'C' ) OR ALL_E = 'X'.
CNT = CNT + 1.
IF ITSO-BMENG = 0.
if wa_data-bmeng = 0.
V_SOSTAT = 'A'.
ELSEIF ITSO-WMENG <> ITSO-BMENG.
V_SOSTAT = 'B'.
ELSE.
V_SOSTAT = 'C'.
ENDIF.
if ( PEND = 'X' AND ( V_SOSTAT = 'A' OR V_SOSTAT = 'B' ) ) OR ( UNTC = 'X' AND V_SOSTAT = 'A' ) OR ( COMP = 'X' AND V_SOSTAT = 'C' ) OR ALL_E = 'X'.
CNT = CNT + 1.
SELECT SINGLE MAKTX FROM MAKT INTO V_ITEM WHERE MATNR = ITSO-MATNR.
SELECT SINGLE NAME1 FROM KNA1 INTO V_ADDR WHERE KUNNR = ITSO-KUNNR.*
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.
V_DESPQTY = ITSO-BMENG.
ITEM_NTW = V_NETWT * ITSO-WMENG / 1000.
ITEM_GRW = V_GRWT * ITSO-WMENG / 1000.
ITEM_DISP = V_NETWT * V_DESPQTY / 1000.
B_QTY = ITSO-WMENG - V_DESPQTY.
B_NT_W = V_NETWT * B_QTY / 1000.
B_GR_W = V_GRWT * B_QTY / 1000.
HOW CAN I DISPLAY IT is a calculation stored in d variable.
providing dis solution to dis problem will b rewarded....