‎2008 Apr 28 1:08 PM
hi experts,
i have made one alv report.now my requirement is to make it interactive.i have tried to make it interactive but my FORM USER-COMMAND is not working.m sending u the code.plz check that user command form n try to find out whr the problem lies..
&----
*& Report ZSD_ORDER_BILL_DELIVERY
*&
&----
*&
*&
&----
REPORT ZSD_ORDER_BILL2_DELIVERY NO STANDARD PAGE HEADING LINE-SIZE 260.
----
DATABSE TABLES
----
TYPE-POOLS : SLIS .
TABLES : VBAP,VBAK,VBFA,VBRP,VBRK.
TYPES : BEGIN OF X_ITAB ,
VBELN LIKE VBAP-VBELN,
NEW_END(40),
WERKS LIKE VBAP-WERKS ,
ERDAT LIKE VBAK-ERDAT,
AUART LIKE VBAK-AUART,
VBELN_D LIKE VBFA-VBELN,
ERDAT_D LIKE VBFA-ERDAT,
VBELN_B LIKE VBFA-VBELN,
ERDAT_B LIKE VBFA-ERDAT,
BSTKD LIKE VBKD-BSTKD,
BSTDK LIKE VBKD-BSTDK,
POSNR LIKE VBAP-POSNR,
POSNN_D LIKE VBFA-POSNN,
POSNN_B LIKE VBFA-POSNN,
NAME1CU LIKE KNA1-NAME1,
CITYCU LIKE KNA1-ORT01,
KUNNR LIKE VBAK-KUNNR,
POSNN LIKE VBFA-POSNN ,
BILLVALUE LIKE KONV-KBETR,
KNUMV LIKE KONV-KNUMV,
REGIO LIKE VBRK-REGIO,
KWMENG LIKE VBAP-KWMENG,
zmeng like vbap-zmeng,
VRKME LIKE VBAP-VRKME,
LFIMG LIKE LIPS-LFIMG,
VRKME1 LIKE LIPS-VRKME,
FKIMG LIKE VBRP-FKIMG,
VRKME2 LIKE VBRP-VRKME,
MATNR LIKE VBAP-MATNR,
arktx like vbap-arktx,
FKART LIKE VBRK-FKART,
END OF X_ITAB.
DATA : BEGIN OF COMWA1.
INCLUDE STRUCTURE VBCO6.
DATA : END OF COMWA1.
TYPES: BEGIN OF X_KONV ,
KNUMV LIKE KONV-KNUMV,
KPOSN LIKE KONV-KPOSN,
KWERT LIKE KONV-KWERT,
KBETR LIKE KONV-KBETR,
KSCHL LIKE KONV-KSCHL,
KAWRT LIKE KONV-KAWRT,
END OF X_KONV.
DATA: IT_KONV TYPE X_KONV OCCURS 0 WITH HEADER LINE.
DATA: E_VBFA TYPE VBFA OCCURS 0 WITH HEADER LINE.
DATA: IT_FCAT TYPE SLIS_T_FIELDCAT_ALV.
DATA WBUKRS LIKE VBRK-BUKRS.
DATA COM.
DATA COM1.
DATA : WA_FCAT TYPE SLIS_FIELDCAT_ALV.
DATA: ITAB TYPE X_ITAB OCCURS 0 WITH HEADER LINE.
DATA: ITAB_FINAL TYPE X_ITAB OCCURS 0 WITH HEADER LINE.
DATA: WA_ITAB TYPE X_ITAB .
DATA W_WERKS LIKE VBAP-WERKS.
DATA : WBILL_VAL LIKE KONV-KWERT,
WREGIO LIKE KNA1-REGIO,
WTAX_ABIE LIKE KONV-KWERT,
W_BUKRS LIKE VBRK-BUKRS,
WSALES_TAX LIKE KONV-KWERT,
WEXI_DUTY LIKE KONV-KWERT,
WED_CESS LIKE KONV-KWERT,
WFREIGHT LIKE KONV-KWERT,
WDISCOUNT LIKE KONV-KWERT,
WDISCOUNT1 LIKE KONV-KWERT,
WDISCOUNT2 LIKE KONV-KWERT,
WROUND_OFF LIKE KONV-KWERT,
WPACKING LIKE KONV-KWERT,
DEV_WSALES_TAX LIKE KONV-KWERT,
WSX_ABIE LIKE KONV-KWERT,
TOTAL LIKE KONV-KWERT,
WRFMNG LIKE VBFA-RFMNG,
WWRFMNG LIKE VBFA-RFMNG,
W1RFMNG LIKE VBFA-RFMNG,
WW1RFMNG LIKE VBFA-RFMNG,
wfksto like vbrk-fksto,
wfkart LIKE VBRK-FKART..
----
SELECTION SCREENS
----
SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME TITLE TEXT-002.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETER SALES RADIOBUTTON GROUP R.
SELECTION-SCREEN COMMENT 5(10) TEXT-111.
PARAMETER RETURN RADIOBUTTON GROUP R.
SELECTION-SCREEN COMMENT 20(10) TEXT-112.
PARAMETER CNOTE RADIOBUTTON GROUP R.
SELECTION-SCREEN COMMENT 35(11) TEXT-113.
PARAMETER DNOTE RADIOBUTTON GROUP R.
SELECTION-SCREEN COMMENT 50(10) TEXT-114.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK B2.
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS : S_BUKRS FOR VBAK-BUKRS_VF NO-EXTENSION NO INTERVALS OBLIGATORY,
S_WERKS FOR VBAP-WERKS NO-EXTENSION NO INTERVALS OBLIGATORY,
S_ERDAT FOR VBAK-ERDAT OBLIGATORY DEFAULT SY-DATUM TO SY-DATUM .
S_AUART FOR VBAK-AUART NO-EXTENSION NO INTERVALS.
SELECTION-SCREEN : END OF BLOCK B1.
AT SELECTION-SCREEN.
WBUKRS = S_BUKRS+3(4).
IF WBUKRS NE 'CP01' AND WBUKRS NE 'JB01'.
MESSAGE E000(ZMSG).
ENDIF.
IF S_WERKS IS NOT INITIAL.
IF S_WERKS IS NOT INITIAL.
COM1 = S_BUKRS+3(1).
COM = S_WERKS+4(1).
IF COM NE COM1.
MESSAGE E002(ZMSG).
ENDIF.
SELECT SINGLE WERKS FROM VBAP INTO (W_WERKS) WHERE WERKS IN S_WERKS.
IF SY-SUBRC NE 0.
MESSAGE E001(ZMSG).
ENDIF.
ENDIF.
ENDIF.
START-OF-SELECTION.
PERFORM SELECT_ORDER.
PERFORM OUTPUT.
----
FORM SELECT_ORDER
----
FORM SELECT_ORDER .
IF SALES = 'X'.
SELECT AVBELN APOSNR AKWMENG AVRKME AMATNR AARKTX BAUART BERDAT BKUNNR AWERKS INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM VBAP AS A INNER JOIN VBAK AS B ON AVBELN = BVBELN AND AMANDT EQ BMANDT
WHERE B~BUKRS_VF IN S_BUKRS
AND A~WERKS IN S_WERKS
AND B~ERDAT IN S_ERDAT " BETWEEN S_ERDAT-LOW AND S_ERDAT-HIGH
AND ( BAUART = 'SUB' OR BAUART = 'ZDOR' OR BAUART = 'ZIOR' OR BAUART = 'ZJOR'
OR BAUART = 'ZMOR' OR BAUART = 'ZOR' OR BAUART = 'ZSUC' OR BAUART = 'ZSUP' ).
AND B~AUART IN S_AUART.
.
IF SY-SUBRC NE 0 .
MESSAGE E001(ZMSG).
ENDIF.
ELSEIF RETURN = 'X'.
SELECT AVBELN APOSNR AKWMENG AVRKME AMATNR AARKTX BAUART BERDAT BKUNNR AWERKS INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM VBAP AS A INNER JOIN VBAK AS B ON AVBELN = BVBELN AND AMANDT EQ BMANDT
WHERE B~BUKRS_VF IN S_BUKRS
AND A~WERKS IN S_WERKS
AND B~ERDAT IN S_ERDAT " BETWEEN S_ERDAT-LOW AND S_ERDAT-HIGH
AND ( BAUART = 'RE' OR BAUART = 'ZRE' OR B~AUART = 'ZSUC' ).
AND B~AUART IN S_AUART.
.
IF SY-SUBRC NE 0 .
MESSAGE E001(ZMSG).
ENDIF.
ELSEIF CNOTE = 'X'.
SELECT AVBELN APOSNR AKWMENG AZMENG AVRKME AMATNR AARKTX BAUART BERDAT BKUNNR A~WERKS INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM VBAP AS A INNER JOIN VBAK AS B ON AVBELN = BVBELN AND AMANDT EQ BMANDT
WHERE B~BUKRS_VF IN S_BUKRS
AND A~WERKS IN S_WERKS
AND B~ERDAT IN S_ERDAT " BETWEEN S_ERDAT-LOW AND S_ERDAT-HIGH
AND ( BAUART = 'CR' OR BAUART = 'ZCR' ).
AND B~AUART IN S_AUART.
.
IF SY-SUBRC NE 0 .
MESSAGE E001(ZMSG).
ENDIF.
ELSEIF DNOTE = 'X'.
SELECT AVBELN APOSNR AKWMENG AZMENG AMATNR AVRKME AARKTX BAUART BERDAT BKUNNR A~WERKS INTO CORRESPONDING FIELDS OF TABLE ITAB
FROM VBAP AS A INNER JOIN VBAK AS B ON AVBELN = BVBELN AND AMANDT EQ BMANDT
WHERE B~BUKRS_VF IN S_BUKRS
AND A~WERKS IN S_WERKS
AND B~ERDAT IN S_ERDAT " BETWEEN S_ERDAT-LOW AND S_ERDAT-HIGH
AND ( BAUART = 'ZDR' OR BAUART = 'DR' ).
AND B~AUART IN S_AUART.
.
IF SY-SUBRC NE 0 .
MESSAGE E001(ZMSG).
ENDIF.
ENDIF.
LOOP AT ITAB.
IF SALES = 'X'.
SELECT RFMNG FROM VBFA INTO WRFMNG WHERE VBELV = ITAB-VBELN AND POSNV = ITAB-POSNR
AND ( VBTYP_N = 'J' OR VBTYP_N = 'T').
WWRFMNG = WWRFMNG + WRFMNG.
ENDSELECT.
ITAB-LFIMG = WWRFMNG.
SELECT SINGLE VBELN POSNN ERDAT FROM VBFA INTO (ITAB-VBELN_D ,ITAB-POSNN_D ,ITAB-ERDAT_D)
WHERE VBELV = ITAB-VBELN
AND POSNV = ITAB-POSNR
AND ( VBTYP_N = 'J' OR VBTYP_N = 'T').
**
SELECT VBELN POSNN ERDAT FROM VBFA INTO (ITAB_FINAL-VBELN_D ,ITAB_FINAL-POSNN_D ,ITAB_FINAL-ERDAT_D)
*
WHERE VBELV = ITAB-VBELN
AND POSNV = ITAB-POSNR
AND ( VBTYP_N = 'J' OR VBTYP_N = 'T').
*
ITAB_FINAL-VBELN = ITAB-VBELN.
ITAB_FINAL-POSNR = ITAB-POSNR.
ITAB_FINAL-KWMENG = ITAB-KWMENG.
ITAB_FINAL-ZMENG = ITAB-ZMENG.
ITAB_FINAL-VRKME = ITAB-VRKME.
ITAB_FINAL-AUART = ITAB-AUART.
ITAB_FINAL-ERDAT = ITAB-ERDAT.
ITAB_FINAL-KUNNR = ITAB-KUNNR.
ITAB_FINAL-WERKS = ITAB-WERKS.
*
*
*
APPEND ITAB_FINAL.
*
SELECT SINGLE LFIMG VRKME FROM LIPS INTO (ITAB-LFIMG,ITAB-VRKME1) WHERE VBELN = ITAB-VBELN_D AND POSNR = ITAB-POSNN_D.
SELECT SINGLE VRKME FROM LIPS INTO (ITAB-VRKME1) WHERE VBELN = ITAB-VBELN_D AND POSNR = ITAB-POSNN_D.
elseif RETURN = 'X' OR CNOTE = 'X' OR DNOTE = 'X'.
SELECT SINGLE VBELN POSNN ERDAT FROM VBFA INTO (ITAB-VBELN_D ,ITAB-POSNN_D ,ITAB-ERDAT_D)
WHERE VBELV = ITAB-VBELN
AND POSNV = ITAB-POSNR
AND ( VBTYP_N = 'J' OR VBTYP_N = 'T').
SELECT SINGLE LFIMG VRKME FROM LIPS INTO (ITAB-LFIMG,ITAB-VRKME1) WHERE VBELN = ITAB-VBELN_D AND POSNR = ITAB-POSNN_D.
endif.
IF SY-SUBRC NE 0.
IF SALES = 'X'.
SELECT RFMNG FROM VBFA INTO W1RFMNG WHERE VBELV = ITAB-VBELN AND POSNV = ITAB-POSNR
AND ( VBTYP_N = 'M').
WW1RFMNG = WW1RFMNG + W1RFMNG.
ENDSELECT.
ITAB-FKIMG = WW1RFMNG.
SELECT VBELN POSNN ERDAT FROM VBFA INTO (ITAB-VBELN_B ,ITAB-POSNN_B,ITAB-ERDAT_B)
WHERE VBELV = ITAB-VBELN
AND POSNV = ITAB-POSNR
AND ( VBTYP_N = 'M' ).
SELECT SINGLE FKSTO FROM VBRK INTO WFKSTO WHERE VBELN = ITAB-VBELN_B..
SELECT SINGLE FKART FROM VBRK INTO ITAB-FKART WHERE VBELN = ITAB-VBELN_B.
IF WFKSTO = 'X'.
CLEAR: ITAB-VBELN_B,ITAB-FKIMG.
ENDIF.
ENDSELECT.
LOOP AT ITAB WHERE VBELN = ITAB-VBELN.
IF WFKSTO NE 'X'.
SELECT SINGLE VRKME FROM VBRP INTO (ITAB-VRKME2) WHERE VBELN = ITAB-VBELN_B AND POSNR = ITAB-POSNN_B.
ENDIF.
ENDLOOP.
ELSEIF RETURN = 'X' OR CNOTE = 'X' OR DNOTE = 'X'.
SELECT RFMNG FROM VBFA INTO W1RFMNG WHERE VBELV = ITAB-VBELN AND POSNV = ITAB-POSNR
AND ( VBTYP_N = 'O' OR VBTYP_N = 'P' OR VBTYP_N = 'H' ).
WW1RFMNG = WW1RFMNG + W1RFMNG.
ENDSELECT.
*
ITAB-FKIMG = WW1RFMNG.
SELECT VBELN POSNN ERDAT FROM VBFA INTO (ITAB-VBELN_B ,ITAB-POSNN_B,ITAB-ERDAT_B)
WHERE VBELV = ITAB-VBELN
AND POSNV = ITAB-POSNR
AND ( VBTYP_N = 'O' OR VBTYP_N = 'P' OR VBTYP_N = 'H' ).
SELECT SINGLE FKSTO FROM VBRK INTO WFKSTO WHERE VBELN = ITAB-VBELN_B.
IF WFKSTO = 'X'.
CLEAR ITAB-VBELN_B.
ENDIF.
ENDSELECT.
IF WFKSTO NE 'X'.
SELECT SINGLE FKIMG VRKME FROM VBRP INTO (ITAB-FKIMG,ITAB-VRKME2) WHERE VBELN = ITAB-VBELN_B AND POSNR = ITAB-POSNN_B.
ENDIF.
ENDIF.
ENDIF.
SELECT SINGLE KNUMV REGIO FROM VBRK INTO (ITAB-KNUMV,ITAB-REGIO) WHERE VBELN = ITAB-VBELN_B AND FKSTO NE 'X'.
IF SY-SUBRC NE 0.
*
CLEAR: ITAB-VBELN_B ,ITAB-POSNN_B,ITAB-ERDAT_B.
*
ENDIF.
MODIFY ITAB.
ENDSELECT.
CLEAR: ITAB,WWRFMNG,WRFMNG,WW1RFMNG,W1RFMNG.
ENDLOOP.
*
SELECT AVBELN APOSNR BAUART BERDAT BKUNNR AWERKS FROM VBAP AS A INNER JOIN VBAK AS B ON AVBELN = BVBELN AND AMANDT EQ BMANDT
INTO (ITAB-VBELN ,ITAB-POSNR, ITAB-AUART, ITAB-ERDAT, ITAB-KUNNR, ITAB-WERKS)
WHERE B~BUKRS_VF IN S_BUKRS
AND A~WERKS IN S_WERKS
AND B~ERDAT BETWEEN S_ERDAT-LOW AND S_ERDAT-HIGH
AND B~AUART IN S_AUART.
SELECT single VBELN POSNN ERDAT FROM VBFA INTO (ITAB-VBELN_D ,ITAB-POSNN_D ,ITAB-ERDAT_D)
WHERE VBELV = ITAB-VBELN
AND POSNV = ITAB-POSNR
AND ( VBTYP_N = 'J' OR VBTYP_N = 'T').
SELECT SINGLE VBELN POSNN ERDAT FROM VBFA INTO (ITAB-VBELN_B ,ITAB-POSNN_B,ITAB-ERDAT_B)
WHERE VBELV = ITAB-VBELN
AND POSNV = ITAB-POSNR
AND ( VBTYP_N = 'M' OR VBTYP_N = 'P' OR VBTYP_N = 'O').
SELECT SINGLE KNUMV REGIO FROM VBRK INTO (ITAB-KNUMV,ITAB-REGIO) WHERE VBELN = ITAB-VBELN_B.
APPEND ITAB.
*
*CLEAR ITAB.
ENDSELECT.
LOOP AT ITAB.
SELECT SINGLE BSTKD BSTDK FROM VBKD INTO (ITAB-BSTKD,ITAB-BSTDK)
WHERE VBELN = ITAB-VBELN.
SELECT SINGLE NAME1 ORT01 FROM KNA1 INTO (ITAB-NAME1CU,ITAB-CITYCU)
WHERE KUNNR = ITAB-KUNNR.
CONCATENATE ITAB-VBELN ITAB-VBELN_D ITAB-VBELN_B INTO ITAB-NEW_END.
PERFORM KONV_FORM .
MODIFY ITAB.
ENDLOOP.
SORT ITAB BY NEW_END.
LOOP AT ITAB.
MOVE-CORRESPONDING ITAB TO ITAB_FINAL.
TOTAL = TOTAL + ITAB-BILLVALUE.
ITAB_FINAL-BILLVALUE = TOTAL.
AT END OF VBELN.
APPEND ITAB_FINAL.
CLEAR TOTAL.
ENDAT.
CLEAR ITAB.
ENDLOOP.
SORT ITAB_FINAL BY VBELN.
ENDFORM. "SELECT_ORDER
----
FORM OUTPUT .
----
FORM OUTPUT .
WA_FCAT-FIELDNAME = 'WERKS'.
WA_FCAT-SELTEXT_M = 'Plant'.
WA_FCAT-COL_POS = 1.
WA_FCAT-OUTPUTLEN = 5.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'ERDAT'.
WA_FCAT-SELTEXT_M = 'Post Date'.
WA_FCAT-COL_POS = 1.
WA_FCAT-OUTPUTLEN = 11.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'POSNR'.
WA_FCAT-SELTEXT_M = 'Item'.
WA_FCAT-COL_POS = 2.
WA_FCAT-OUTPUTLEN = 5.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'MATNR'.
WA_FCAT-SELTEXT_M = 'Material'.
WA_FCAT-COL_POS = 3.
WA_FCAT-OUTPUTLEN = 20.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'ARKTX'.
WA_FCAT-SELTEXT_M = 'Material Desc.'.
WA_FCAT-COL_POS = 4.
WA_FCAT-OUTPUTLEN = 30.
WA_FCAT-EMPHASIZE = 'X'.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'VBELN'.
WA_FCAT-SELTEXT_M = 'Order No.'.
WA_FCAT-COL_POS = 5.
WA_FCAT-OUTPUTLEN = 10.
WA_FCAT-EMPHASIZE = 'X'.
APPEND WA_FCAT TO IT_FCAT.
CLEAR WA_FCAT.
IF SALES = 'X' OR RETURN = 'X'.
WA_FCAT-FIELDNAME = 'KWMENG'.
WA_FCAT-SELTEXT_M = 'Quantity.'.
WA_FCAT-COL_POS = 6.
WA_FCAT-OUTPUTLEN = 9.
APPEND WA_FCAT TO IT_FCAT.
ELSEIF CNOTE = 'X' OR DNOTE = 'X'.
WA_FCAT-FIELDNAME = 'ZMENG'.
WA_FCAT-SELTEXT_M = 'Quantity.'.
WA_FCAT-COL_POS = 7.
WA_FCAT-OUTPUTLEN = 9.
APPEND WA_FCAT TO IT_FCAT.
ENDIF.
WA_FCAT-FIELDNAME = 'VRKME'.
WA_FCAT-SELTEXT_M = 'Unit'.
WA_FCAT-COL_POS = 8.
WA_FCAT-OUTPUTLEN = 5.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'VBELN_D'.
WA_FCAT-SELTEXT_M = 'Del. No.'.
WA_FCAT-COL_POS = 9.
WA_FCAT-OUTPUTLEN = 10.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'LFIMG'.
WA_FCAT-SELTEXT_M = 'Del Quan'.
WA_FCAT-COL_POS = 10.
WA_FCAT-OUTPUTLEN = 9.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'VRKME1'.
WA_FCAT-SELTEXT_M = 'Unit.'.
WA_FCAT-COL_POS = 11.
WA_FCAT-OUTPUTLEN = 5.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'ERDAT_D'.
WA_FCAT-SELTEXT_M = 'Del. Post Date'.
WA_FCAT-COL_POS = 5.
WA_FCAT-OUTPUTLEN = 11.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'VBELN_B'.
WA_FCAT-SELTEXT_M = 'Billing No.'.
WA_FCAT-COL_POS = 12.
WA_FCAT-OUTPUTLEN = 11.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'FKIMG'.
WA_FCAT-SELTEXT_M = 'Bill Quan'.
WA_FCAT-COL_POS = 13.
WA_FCAT-OUTPUTLEN = 9.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'VRKME2'.
WA_FCAT-SELTEXT_M = 'Unit'.
WA_FCAT-COL_POS = 14.
WA_FCAT-OUTPUTLEN = 5.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'ERDAT_B'.
WA_FCAT-SELTEXT_M = 'Bill Post Dt'.
WA_FCAT-COL_POS = 7.
WA_FCAT-OUTPUTLEN = 11.
APPEND WA_FCAT TO IT_FCAT.
*
WA_FCAT-FIELDNAME = 'BSTKD'.
WA_FCAT-SELTEXT_M = 'PO Number'.
WA_FCAT-COL_POS = 8.
WA_FCAT-OUTPUTLEN = 15.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'BSTDK'.
WA_FCAT-SELTEXT_M = 'PO Date'.
WA_FCAT-COL_POS = 9.
WA_FCAT-OUTPUTLEN = 11.
APPEND WA_FCAT TO IT_FCAT.
*
WA_FCAT-FIELDNAME = 'KUNNR'.
WA_FCAT-SELTEXT_M = 'CUSTOMER'.
WA_FCAT-COL_POS = 15.
WA_FCAT-OUTPUTLEN = 10.
APPEND WA_FCAT TO IT_FCAT.
*
*
*
WA_FCAT-FIELDNAME = 'NAME1CU'.
WA_FCAT-SELTEXT_M = 'CUSTOMER'.
WA_FCAT-COL_POS = 16.
WA_FCAT-OUTPUTLEN = 25.
APPEND WA_FCAT TO IT_FCAT.
WA_FCAT-FIELDNAME = 'CITYCU'.
WA_FCAT-SELTEXT_M = 'CUSTOMER CITY'.
WA_FCAT-COL_POS = 17.
WA_FCAT-OUTPUTLEN = 20.
APPEND WA_FCAT TO IT_FCAT.
*
WA_FCAT-FIELDNAME = 'AUART'.
WA_FCAT-SELTEXT_M = 'Doc. Type'.
WA_FCAT-COL_POS = 13.
WA_FCAT-OUTPUTLEN = 5.
APPEND WA_FCAT TO IT_FCAT.
*
WA_FCAT-FIELDNAME = 'BILLVALUE'.
WA_FCAT-SELTEXT_M = 'BILL VALUE'.
WA_FCAT-COL_POS = 14.
WA_FCAT-OUTPUTLEN = 16.
APPEND WA_FCAT TO IT_FCAT.
*
WBUKRS = S_BUKRS+3(4).
IF WBUKRS = 'CP01' .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_INTERFACE_CHECK = ' '
I_BYPASSING_BUFFER = ' '
I_BUFFER_ACTIVE = ' '
I_CALLBACK_PROGRAM = ' '
I_CALLBACK_PF_STATUS_SET = ' '
I_CALLBACK_USER_COMMAND = '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 = ' C R Y S T A L P H O S P H A T E S L I M I T E D '
I_GRID_SETTINGS =
IS_LAYOUT =
IT_FIELDCAT = IT_FCAT
IT_EXCLUDING =
IT_SPECIAL_GROUPS =
IT_SORT =
IT_FILTER =
IS_SEL_HIDE =
I_DEFAULT = 'X'
I_SAVE = 'X'
IS_VARIANT =
IT_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
I_HTML_HEIGHT_TOP = 0
I_HTML_HEIGHT_END = 0
IT_ALV_GRAPHICS =
IT_HYPERLINK =
IT_ADD_FIELDCAT =
IT_EXCEPT_QINFO =
IR_SALV_FULLSCREEN_ADAPTER =
IMPORTING
E_EXIT_CAUSED_BY_CALLER =
ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = ITAB_FINAL[].
EXCEPTIONS
PROGRAM_ERROR = 1
OTHERS = 2
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BACKGROUND_ID = 'ALV_BACKGROUND'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
*
I_GRID_TITLE = ' C R Y S T A L P H O S P H A T E S L I M I T E D '
IT_FIELDCAT = IT_FCAT
I_SAVE = 'X'
TABLES
T_OUTTAB = ITAB_FINAL[].
ENDIF.
IF WBUKRS = 'JB01' .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_BACKGROUND_ID = 'ALV_BACKGROUND'
I_CALLBACK_USER_COMMAND = 'USER_COMMAND'
I_GRID_TITLE = 'J A I B H A R A T C R O P C H E M P V T. L I M I T E D '
IT_FIELDCAT = IT_FCAT
I_SAVE = 'X'
TABLES
T_OUTTAB = ITAB_FINAL[].
ENDIF.
FREE ITAB.
APPEND WA_FCAT TO IT_FCAT.
ENDFORM. " OUTPUT
FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.
Check function code
CASE R_UCOMM.
WHEN '&IC1'.
Check field clicked on within ALVgrid report
IF RS_SELFIELD-FIELDNAME = 'VBELN'.
Read data table, using index of row user clicked on
READ TABLE ITAB_FINAL INTO WA_ITAB INDEX RS_SELFIELD-TABINDEX.
Set parameter ID for transaction screen field
SET PARAMETER ID 'BES' FIELD WA_ITAB-VBELN.
Sxecute transaction ME23N, and skip initial data entry screen
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDFORM.
&----
*& Form KONV_FORM
&----
text
----
FORM KONV_FORM .
SELECT KNUMV KPOSN KWERT KBETR KAWRT KSCHL FROM KONV INTO CORRESPONDING FIELDS OF TABLE IT_KONV
WHERE KNUMV = ITAB-KNUMV
AND KPOSN = ITAB-POSNR.
IF SY-SUBRC = 0.
LOOP AT IT_KONV.
IF IT_KONV-KPOSN = ITAB-POSNR AND IT_KONV-KNUMV = ITAB-KNUMV.
PERFORM COND.
CLEAR IT_KONV.
ENDIF.
ENDLOOP.
CLEAR DEV_WSALES_TAX.
CLEAR WBILL_VAL.
CLEAR WTAX_ABIE.
CLEAR WSALES_TAX.
CLEAR WEXI_DUTY.
CLEAR WED_CESS.
CLEAR WFREIGHT.
CLEAR WDISCOUNT.
CLEAR WROUND_OFF.
CLEAR WPACKING.
CLEAR WDISCOUNT1 .
CLEAR WDISCOUNT2.
CLEAR WSX_ABIE.
ENDIF.
ENDFORM. "KONV_FORM
&*********************************************************************
*& Form COND
&*********************************************************************
FORM COND .
********************************************TAXABLE VALUE***********************************
IF IT_KONV-KSCHL = 'ZPR0'.
WTAX_ABIE = IT_KONV-KWERT.
ENDIF.
IF ITAB_FINAL-REGIO = '004' OR ITAB_FINAL-REGIO = '025' OR ITAB_FINAL-REGIO = '018'.
IF IT_KONV-KSCHL = 'ZZPR'.
WTAX_ABIE = IT_KONV-KWERT.
ENDIF.
ELSE.
IF IT_KONV-KSCHL = 'ZPR0'.
WTAX_ABIE = IT_KONV-KWERT.
ENDIF.
ENDIF.
********************************************SALE TAX VALUE**********************************
IF ITAB_FINAL-REGIO = '024'.
IF IT_KONV-KSCHL = 'JIN6'.
WSALES_TAX = IT_KONV-KWERT.
ENDIF.
IF IT_KONV-KSCHL = 'JCST' .
WSALES_TAX = IT_KONV-KWERT.
ENDIF.
IF IT_KONV-KSCHL = 'JLST'.
WSALES_TAX = IT_KONV-KWERT.
ENDIF.
IF IT_KONV-KSCHL = 'ZDEV'.
DEV_WSALES_TAX = IT_KONV-KWERT.
WSALES_TAX = WSALES_TAX + DEV_WSALES_TAX.
ENDIF.
ELSE.
IF IT_KONV-KSCHL = 'JIN6'.
WSALES_TAX = IT_KONV-KWERT.
ENDIF.
IF IT_KONV-KSCHL = 'JCST' .
WSALES_TAX = IT_KONV-KWERT.
ENDIF.
IF IT_KONV-KSCHL = 'JLST'.
WSALES_TAX = IT_KONV-KWERT.
ENDIF.
ENDIF.
********************************************EXCISE DUTY VALUE*********************************
IF IT_KONV-KSCHL = 'JEXP'.
WEXI_DUTY = IT_KONV-KWERT.
ENDIF.
********************************************ED. CESS VALUE************************************
IF IT_KONV-KSCHL = 'JCES'.
WED_CESS = IT_KONV-KWERT.
ENDIF.
********************************************EREIGHT********************************************
IF IT_KONV-KSCHL = 'ZFR0'.
WFREIGHT = IT_KONV-KWERT.
ENDIF.
IF IT_KONV-KSCHL = 'ZFRE' .
WFREIGHT = IT_KONV-KWERT.
ENDIF.
********************************************DISC***********************************************
IF IT_KONV-KSCHL = 'ZJD2'.
WDISCOUNT1 = IT_KONV-KWERT.
ENDIF.
IF IT_KONV-KSCHL = 'ZJDI'.
WDISCOUNT2 = IT_KONV-KWERT.
ENDIF.
WDISCOUNT = WDISCOUNT1 + WDISCOUNT2.
********************************************PACKING VALUE/*************************************
IF IT_KONV-KSCHL = 'ZPAC'.
WPACKING = IT_KONV-KWERT.
ENDIF.
******************************************TAXABLE VALUE*****************************************
WSX_ABIE = WTAX_ABIE + WDISCOUNT.
********************************************BILL VALUE******************************************
ITAB-BILLVALUE = WSX_ABIE + WSALES_TAX + WFREIGHT + WEXI_DUTY + WED_CESS + WPACKING.
ENDFORM. "COND
regards
raman
‎2008 Apr 28 1:15 PM
You need to set the parmater
I_CALLBACK_PROGRAM = ' '
Or the event will not know what program to return to for the USER_COMMAND Event.
data:
g_repid LIKE sy-repid.
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid " <== Here
is_layout = g_layout
it_sort = g_sort[]
it_events = g_events[]
it_fieldcat = g_fieldcat[]
i_save = g_save
it_excluding = g_exclude
TABLES
t_outtab = it_out
EXCEPTIONS
program_error = 1
OTHERS = 2.
‎2008 Apr 28 1:15 PM
You need to set the parmater
I_CALLBACK_PROGRAM = ' '
Or the event will not know what program to return to for the USER_COMMAND Event.
data:
g_repid LIKE sy-repid.
g_repid = sy-repid.
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = g_repid " <== Here
is_layout = g_layout
it_sort = g_sort[]
it_events = g_events[]
it_fieldcat = g_fieldcat[]
i_save = g_save
it_excluding = g_exclude
TABLES
t_outtab = it_out
EXCEPTIONS
program_error = 1
OTHERS = 2.
‎2008 Apr 28 1:20 PM
Hi,
Please check this.
* Display the first list
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND'
it_fieldcat = lt_fieldcat
TABLES
t_outtab = gt_vbak.
ENDFORM. " F_DISPLAY_DATA_VBAK
*---------------------------------------------------------------------*
* FORM USER_COMMAND *
*---------------------------------------------------------------------*
FORM user_command USING u_ucomm TYPE syucomm
us_selfield TYPE slis_selfield. "#EC CALLED
CASE u_ucomm.
WHEN '&IC1'.
READ TABLE gt_vbak INDEX us_selfield-tabindex INTO gs_vbak.
CHECK sy-subrc EQ 0.
PERFORM f_read_data_vbap. " Read data from VBAP
PERFORM f_display_data_vbap.
ENDCASE.
ENDFORM.
reward if helpful
raam