Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

INTERACTIVE ALV REPORT

Former Member
0 Likes
660

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

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
545

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.

2 REPLIES 2
Read only

Former Member
0 Likes
546

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.

Read only

Former Member
0 Likes
545

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