Hi pls respond my code its urgent

hi,
my prblm is in this program i used bapi function module for upload excel data.
bapi_incominginvoice_park.
in my output park number showing increasing for each item.
so i need parknumber it should be same for all items.
i am sending my code pls check this.
*& Report  ZBAPI_MIRO
&& Developed By : ESWAR
*& Created Date : 29.10.2007
*& Requested By : GANESH(MM)
*& SAP Area     : MM
*& Output       : Excel format,Using BDC for Tcode MIRO
REPORT  ZBAPI_MIRO.
DATA: BEGIN OF INTERN OCCURS 0.
        INCLUDE STRUCTURE  ALSMEX_TABLINE.
DATA: END OF INTERN.
DATA : IT_INTERN LIKE INTERN OCCURS 0 WITH HEADER LINE.
  No of columns
DATA: BEGIN OF DATA_TAB OCCURS 0,
      VALUE_0001(10), "DOC.TYPE
      VALUE_0002(10), "DOC DATE
      VALUE_0003(10), " PSTNG.DATE
    VALUE_0003(10), " GROSS_AMNT
      VALUE_0004(10), " REF_DOC_NO
      VALUE_0005(10),  "BLINE_DATE
      VALUE_0006(10),  "HEADER_TXT
      VALUE_0007(10),  "INVOICE_DOC_ITEM
      VALUE_0008(10),  "PO_NUMBER
      VALUE_0009(10), " PO_ITEM
      VALUE_0010(10),  "TAX_CODE
      VALUE_0011(11), "ITEM_AMOUNT
      VALUE_0012(10),  "SHEET_NO
      VALUE_0013(10),  "ITEM_TEXT
      VALUE_0014(10),  "SHEET_ITEM
      END OF DATA_TAB.
DATA : BEGIN OF IT_DATA OCCURS 0,
     invoice_ind like  BAPI_INCINV_CREATE_HEADER-invoice_ind,
      doc_type    like  BAPI_INCINV_CREATE_HEADER-doc_type,
      doc_date    like  BAPI_INCINV_CREATE_HEADER-doc_date,
     pstng_date  like  BAPI_INCINV_CREATE_HEADER-pstng_date,
     comp_code   like  BAPI_INCINV_CREATE_HEADER-comp_code,
     currency    like  BAPI_INCINV_CREATE_HEADER-currency,
     gross_amount like  BAPI_INCINV_CREATE_HEADER-gross_amount,
     calc_tax_ind like  BAPI_INCINV_CREATE_HEADER-calc_tax_ind,
    REF_DOC_NO LIKE BAPI_INCINV_CREATE_HEADER-REF_DOC_NO,
      bline_date like  BAPI_INCINV_CREATE_HEADER-bline_date,
      header_txt like  BAPI_INCINV_CREATE_HEADER-header_txt,
    invoice_doc_item like BAPI_INCINV_CREATE_ITEM-invoice_doc_item,
    po_number like    BAPI_INCINV_CREATE_ITEM-po_number,
    po_item like    BAPI_INCINV_CREATE_ITEM-po_item,
    tax_code like    BAPI_INCINV_CREATE_ITEM-tax_code,
    item_amount like    BAPI_INCINV_CREATE_ITEM-ITEM_AMOUNT,
    sheet_no like    BAPI_INCINV_CREATE_ITEM-sheet_no,
    item_text like    BAPI_INCINV_CREATE_ITEM-item_text,
    sheet_item like    BAPI_INCINV_CREATE_ITEM-sheet_item,
      END OF IT_DATA.
     DATA : BEGIN OF IT_CHAR OCCURS 0,
       IND(6) TYPE N,     ""Index for comparison
       CHARN LIKE RCTMS-MNAME, "CHAR NAME
       CHARV LIKE RCTMS-MWERT, "CHAR VALUE
      END OF IT_CHAR.
      DATA: BEGIN OF it_msg OCCURS 0,
        po_number LIKE BAPI_INCINV_CREATE_ITEM-po_number,
        po_item like BAPI_INCINV_CREATE_ITEM-po_item,
        message(20),
        message1(90),
        mblnr     TYPE mkpf-mblnr,
      END OF it_msg.
DATA : W_DATA LIKE LINE OF IT_DATA.
DATA : W_CHAR LIKE LINE OF IT_CHAR.
DATA: T_EXCELFILE TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
FIELD-SYMBOLS : <L_FS> .
DATA : W_INTERN   LIKE LINE OF INTERN,
       W_INTERN1  LIKE LINE OF IT_INTERN,
      W_DATA_TAB LIKE LINE OF DATA_TAB.
  DATA: TIND(4) TYPE N.
DATA: ZWFELD(19),ZWFELD1(19).
FIELD-SYMBOLS: <FS1>,<FS2>.
DATA : G_MODE(1),G_UPDATE(1).
DATA :   G_FLG(1).
DATA : TOT_REC(6) TYPE N,
       DUP_REC(6) TYPE N,
       UPL_REC(6) TYPE N.
    DATA:  WA_DATA LIKE LINE OF IT_DATA,
            WA_DATA1 LIKE WA_DATA.
   DATA:WA_HEADER LIKE BAPI_INCINV_CREATE_HEADER,
        WA_INVOICEDOCNUMBER  TYPE BAPI_INCINV_FLD-INV_DOC_NO,
        IT_ITEM LIKE   BAPI_INCINV_CREATE_ITEM OCCURS 0 WITH HEADER LINE,
        IT_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
DATA:BEGIN OF IT_MBLNR OCCURS 0,
       MBLNR LIKE MKPF-MBLNR,
      MJAHR LIKE MKPF-MJAHR,
   END OF IT_MBLNR.
*& Selection screen
SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001.
PARAMETERS:  P_FILE   LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END  OF BLOCK BLK.
*& AT SELECTION-SCREEN
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  PERFORM GET_FILE.
*& Start of selection
START-OF-SELECTION.
  PERFORM GET_BDC_DATA.
  PERFORM PROCESS_BDC_DATA.
  PERFORM BDC_UPLOAD.
  PERFORM display_log.
*&      Form  GET_FILE
FORM GET_FILE .
*F4-HELP FILE
  CALL FUNCTION 'F4_FILENAME'
   EXPORTING
     PROGRAM_NAME        = SYST-CPROG
  DYNPRO_NUMBER       = SYST-DYNNR
  FIELD_NAME          = ' '
   IMPORTING
     FILE_NAME           = P_FILE.
ENDFORM.                    " GET_FILE
FORM GET_BDC_DATA .
  DATA : WRK_FLG(1).
  DATA : GIDX LIKE SY-TABIX.
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      FILENAME                = P_FILE
      I_BEGIN_COL             = '1'
      I_BEGIN_ROW             = '1'
      I_END_COL               = '250'
      I_END_ROW               = '50000'
    TABLES
      INTERN                  = INTERN
    EXCEPTIONS
      INCONSISTENT_PARAMETERS = 1
      UPLOAD_OLE              = 2
      OTHERS                  = 3.
  IF SY-SUBRC <> 0.
    WRITE:/ 'Upload Error ', SY-SUBRC.
  ELSE.
    SORT INTERN BY ROW COL.
    LOOP AT INTERN.
      TIND = INTERN-COL.
      CONCATENATE 'DATA_TAB-VALUE_' TIND INTO ZWFELD.
      ASSIGN (ZWFELD) TO <FS1>.
      <FS1> = INTERN-VALUE.
      AT END OF ROW.
        APPEND DATA_TAB.
        CLEAR:IT_CHAR,DATA_TAB.
      ENDAT.
    ENDLOOP.
  ENDIF.
ENDFORM.                    " GET_BDC_DATA
*&      Form  PROCESS_BDC_DATA
FORM PROCESS_BDC_DATA .
  DATA : WRK_IND(6) TYPE N.
  DATA : WRK_ROW TYPE I,
         GIDX LIKE SY-TABIX.
  IF NOT DATA_TAB[] IS INITIAL.
    LOOP AT DATA_TAB INTO W_DATA_TAB.
      WRK_ROW = SY-TABIX.
     IT_DATA-DOC_TYPE    = W_DATA_TAB-VALUE_0001.
      IT_DATA-DOC_DATE    = W_DATA_TAB-VALUE_0002.
      IT_DATA-PSTNG_DATE    = W_DATA_TAB-VALUE_0003.
      it_data-ref_doc_no   = w_data_tab-value_0004.
     IT_DATA-GROSS_AMOUNT    = W_DATA_TAB-VALUE_0004.
      IT_DATA-BLINE_DATE     = W_DATA_TAB-VALUE_0005.
      IT_DATA-HEADER_TXT      = W_DATA_TAB-VALUE_0006.
      IT_DATA-INVOICE_DOC_ITEM = W_DATA_TAB-VALUE_0007.
      IT_DATA-PO_NUMBER      = W_DATA_TAB-VALUE_0008.
      IT_DATA-PO_ITEM     = W_DATA_TAB-VALUE_0009.
      IT_DATA-TAX_CODE     = W_DATA_TAB-VALUE_0010.
      IT_DATA-ITEM_AMOUNT     = W_DATA_TAB-VALUE_0011.
      IT_DATA-SHEET_NO   = W_DATA_TAB-VALUE_0012.
      IT_DATA-ITEM_TEXT  = W_DATA_TAB-VALUE_0013.
      IT_DATA-SHEET_ITEM  = W_DATA_TAB-VALUE_0014.
      APPEND IT_DATA.
    ENDLOOP.
  ENDIF.
ENDFORM.
FORM BDC_UPLOAD.
DATA:LW_DATE(10).
DELETE ADJACENT DUPLICATES FROM it_data.
LOOP AT IT_DATA INTO WA_DATA1.
WA_DATA = WA_DATA1.
While program finds the header record, post the previous entries
  if      WA_data-DOC_TYPE   NE ' '
     AND  wa_data-doc_date NE ' '
      AND wa_data-pstng_date NE ' '
      AND WA_data-REF_DOC_NO NE ' '
      AND WA_data-BLINE_DATE NE ' '
      AND WA_data-HEADER_TXT NE ' ' .
              WA_HEADER-INVOICE_IND = 'X'.
              WA_HEADER-COMP_CODE           = 'TSKY'.
              WA_HEADER-CURRENCY            = 'INR'.
              WA_HEADER-CALC_TAX_IND        = 'X'.
      IF sy-tabix NE 1.
update
        PERFORM f0301_exe_bapi TABLES it_item USING wa_header.
        REFRESH it_item.
        CLEAR: it_item, wa_header.
      ENDIF.
*CONCATENATE WA_DATA-PSTNG_DATE+4(4)
            WA_DATA-PSTNG_DATE+2(2)
            WA_DATA-PSTNG_DATE+0(2) INTO LW_DATE.
            WA_HEADER-DOC_DATE = LW_DATE.
            WA_HEADER-PSTNG_DATE = LW_DATE.
          wa_header-doc_type = wa_data-doc_type.
         wa_header-doc_date  =  WA_DATA-DOC_DATE.
       wa_header-pstng_date =  WA_DATA-PSTNG_DATE.
       WA_HEADER-REF_DOC_NO  = WA_DATA-REF_DOC_NO.
       WA_HEADER-BLINE_DATE =  WA_DATA-BLINE_DATE.
       WA_HEADER-HEADER_TXT =  WA_DATA-HEADER_TXT.
      ENDIF.
      IT_item-INVOICE_DOC_ITEM = WA_DATA-INVOICE_DOC_ITEM.
      IT_item-PO_NUMBER = WA_DATA-PO_NUMBER.
      IT_item-PO_ITEM = WA_DATA-PO_ITEM.
      IT_item-TAX_CODE = WA_DATA-TAX_CODE.
      IT_item-ITEM_AMOUNT = WA_DATA-ITEM_AMOUNT.
      IT_item-SHEET_NO = WA_DATA-SHEET_NO.
      IT_item-ITEM_TEXT = WA_DATA-ITEM_TEXT.
      IT_item-SHEET_ITEM = WA_DATA-SHEET_ITEM.
      APPEND it_item.
    CLEAR it_item.
  ENDLOOP.
  PERFORM f0301_exe_bapi TABLES it_item USING wa_header.
ENDFORM.                    " f0200_UPDATE
   FORM f0301_exe_bapi  TABLES   p_it_item STRUCTURE it_item
                     USING    p_wa_header.
     CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK'
      EXPORTING
        headerdata                = wa_header
      ADDRESSDATA               =
     IMPORTING
       INVOICEDOCNUMBER          = WA_INVOICEDOCNUMBER
      FISCALYEAR                = lc_gjahr
      tables
        itemdata                  = it_item
      ACCOUNTINGDATA            =
      GLACCOUNTDATA             =
      MATERIALDATA              =
      TAXDATA                   =
      WITHTAXDATA               =
      VENDORITEMSPLITDATA       =
        return                    = it_return.
        READ TABLE it_return INDEX 1.
  READ TABLE it_item INDEX 1.
  IF it_return-type EQ 'E'.
    MOVE it_item-po_number   TO it_msg-po_number.
   move it_item-po_item to it_msg-po_itm.
    MOVE 'Discrepancy in PO' TO it_msg-message.
    MOVE it_return-message to it_msg-message1.
    APPEND it_msg.
    CLEAR it_msg.
    clear it_return.
  ELSE.
    MOVE it_item-po_number   TO it_msg-po_number.
   move it_item-po_item to it_msg-po_item.
    MOVE 'Successfully parked' TO it_msg-message.
   MOVE  WA_INVOICEDOCNUMBER TO it_msg-mblnr.
    APPEND it_msg.
    CLEAR: it_msg, WA_INVOICEDOCNUMBER.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
  ENDIF.
ENDFORM.                    "f0301_exe_bapi
FORM display_log .
Display the log
  WRITE :  '10 Po_number',  25 'Message',  55 'Error message' ,135 'ParkedDocumentNumber'.
  ULINE.
  LOOP AT it_msg.
    WRITE : /10 it_msg-po_number,
          25 it_msg-message,
          55 it_msg-message1,
          135 it_msg-mblnr.
          ULINE.
  ENDLOOP.
ENDFORM.                    " display_log

hi,
my prblm is in this program i used bapi function module for upload excel data.
bapi_incominginvoice_park.
in my output park number showing increasing for each item.
so i need parknumber it should be same for all items.
i am sending my code pls check this.
*& Report  ZBAPI_MIRO
&& Developed By : ESWAR
*& Created Date : 29.10.2007
*& Requested By : GANESH(MM)
*& SAP Area     : MM
*& Output       : Excel format,Using BDC for Tcode MIRO
REPORT  ZBAPI_MIRO.
DATA: BEGIN OF INTERN OCCURS 0.
        INCLUDE STRUCTURE  ALSMEX_TABLINE.
DATA: END OF INTERN.
DATA : IT_INTERN LIKE INTERN OCCURS 0 WITH HEADER LINE.
  No of columns
DATA: BEGIN OF DATA_TAB OCCURS 0,
      VALUE_0001(10), "DOC.TYPE
      VALUE_0002(10), "DOC DATE
      VALUE_0003(10), " PSTNG.DATE
    VALUE_0003(10), " GROSS_AMNT
      VALUE_0004(10), " REF_DOC_NO
      VALUE_0005(10),  "BLINE_DATE
      VALUE_0006(10),  "HEADER_TXT
      VALUE_0007(10),  "INVOICE_DOC_ITEM
      VALUE_0008(10),  "PO_NUMBER
      VALUE_0009(10), " PO_ITEM
      VALUE_0010(10),  "TAX_CODE
      VALUE_0011(11), "ITEM_AMOUNT
      VALUE_0012(10),  "SHEET_NO
      VALUE_0013(10),  "ITEM_TEXT
      VALUE_0014(10),  "SHEET_ITEM
      END OF DATA_TAB.
DATA : BEGIN OF IT_DATA OCCURS 0,
     invoice_ind like  BAPI_INCINV_CREATE_HEADER-invoice_ind,
      doc_type    like  BAPI_INCINV_CREATE_HEADER-doc_type,
      doc_date    like  BAPI_INCINV_CREATE_HEADER-doc_date,
     pstng_date  like  BAPI_INCINV_CREATE_HEADER-pstng_date,
     comp_code   like  BAPI_INCINV_CREATE_HEADER-comp_code,
     currency    like  BAPI_INCINV_CREATE_HEADER-currency,
     gross_amount like  BAPI_INCINV_CREATE_HEADER-gross_amount,
     calc_tax_ind like  BAPI_INCINV_CREATE_HEADER-calc_tax_ind,
    REF_DOC_NO LIKE BAPI_INCINV_CREATE_HEADER-REF_DOC_NO,
      bline_date like  BAPI_INCINV_CREATE_HEADER-bline_date,
      header_txt like  BAPI_INCINV_CREATE_HEADER-header_txt,
    invoice_doc_item like BAPI_INCINV_CREATE_ITEM-invoice_doc_item,
    po_number like    BAPI_INCINV_CREATE_ITEM-po_number,
    po_item like    BAPI_INCINV_CREATE_ITEM-po_item,
    tax_code like    BAPI_INCINV_CREATE_ITEM-tax_code,
    item_amount like    BAPI_INCINV_CREATE_ITEM-ITEM_AMOUNT,
    sheet_no like    BAPI_INCINV_CREATE_ITEM-sheet_no,
    item_text like    BAPI_INCINV_CREATE_ITEM-item_text,
    sheet_item like    BAPI_INCINV_CREATE_ITEM-sheet_item,
      END OF IT_DATA.
     DATA : BEGIN OF IT_CHAR OCCURS 0,
       IND(6) TYPE N,     ""Index for comparison
       CHARN LIKE RCTMS-MNAME, "CHAR NAME
       CHARV LIKE RCTMS-MWERT, "CHAR VALUE
      END OF IT_CHAR.
      DATA: BEGIN OF it_msg OCCURS 0,
        po_number LIKE BAPI_INCINV_CREATE_ITEM-po_number,
        po_item like BAPI_INCINV_CREATE_ITEM-po_item,
        message(20),
        message1(90),
        mblnr     TYPE mkpf-mblnr,
      END OF it_msg.
DATA : W_DATA LIKE LINE OF IT_DATA.
DATA : W_CHAR LIKE LINE OF IT_CHAR.
DATA: T_EXCELFILE TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
FIELD-SYMBOLS : <L_FS> .
DATA : W_INTERN   LIKE LINE OF INTERN,
       W_INTERN1  LIKE LINE OF IT_INTERN,
      W_DATA_TAB LIKE LINE OF DATA_TAB.
  DATA: TIND(4) TYPE N.
DATA: ZWFELD(19),ZWFELD1(19).
FIELD-SYMBOLS: <FS1>,<FS2>.
DATA : G_MODE(1),G_UPDATE(1).
DATA :   G_FLG(1).
DATA : TOT_REC(6) TYPE N,
       DUP_REC(6) TYPE N,
       UPL_REC(6) TYPE N.
    DATA:  WA_DATA LIKE LINE OF IT_DATA,
            WA_DATA1 LIKE WA_DATA.
   DATA:WA_HEADER LIKE BAPI_INCINV_CREATE_HEADER,
        WA_INVOICEDOCNUMBER  TYPE BAPI_INCINV_FLD-INV_DOC_NO,
        IT_ITEM LIKE   BAPI_INCINV_CREATE_ITEM OCCURS 0 WITH HEADER LINE,
        IT_RETURN LIKE BAPIRET2 OCCURS 0 WITH HEADER LINE.
DATA:BEGIN OF IT_MBLNR OCCURS 0,
       MBLNR LIKE MKPF-MBLNR,
      MJAHR LIKE MKPF-MJAHR,
   END OF IT_MBLNR.
*& Selection screen
SELECTION-SCREEN BEGIN OF BLOCK BLK WITH FRAME TITLE TEXT-001.
PARAMETERS:  P_FILE   LIKE RLGRAP-FILENAME OBLIGATORY.
SELECTION-SCREEN END  OF BLOCK BLK.
*& AT SELECTION-SCREEN
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  PERFORM GET_FILE.
*& Start of selection
START-OF-SELECTION.
  PERFORM GET_BDC_DATA.
  PERFORM PROCESS_BDC_DATA.
  PERFORM BDC_UPLOAD.
  PERFORM display_log.
*&      Form  GET_FILE
FORM GET_FILE .
*F4-HELP FILE
  CALL FUNCTION 'F4_FILENAME'
   EXPORTING
     PROGRAM_NAME        = SYST-CPROG
  DYNPRO_NUMBER       = SYST-DYNNR
  FIELD_NAME          = ' '
   IMPORTING
     FILE_NAME           = P_FILE.
ENDFORM.                    " GET_FILE
FORM GET_BDC_DATA .
  DATA : WRK_FLG(1).
  DATA : GIDX LIKE SY-TABIX.
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      FILENAME                = P_FILE
      I_BEGIN_COL             = '1'
      I_BEGIN_ROW             = '1'
      I_END_COL               = '250'
      I_END_ROW               = '50000'
    TABLES
      INTERN                  = INTERN
    EXCEPTIONS
      INCONSISTENT_PARAMETERS = 1
      UPLOAD_OLE              = 2
      OTHERS                  = 3.
  IF SY-SUBRC <> 0.
    WRITE:/ 'Upload Error ', SY-SUBRC.
  ELSE.
    SORT INTERN BY ROW COL.
    LOOP AT INTERN.
      TIND = INTERN-COL.
      CONCATENATE 'DATA_TAB-VALUE_' TIND INTO ZWFELD.
      ASSIGN (ZWFELD) TO <FS1>.
      <FS1> = INTERN-VALUE.
      AT END OF ROW.
        APPEND DATA_TAB.
        CLEAR:IT_CHAR,DATA_TAB.
      ENDAT.
    ENDLOOP.
  ENDIF.
ENDFORM.                    " GET_BDC_DATA
*&      Form  PROCESS_BDC_DATA
FORM PROCESS_BDC_DATA .
  DATA : WRK_IND(6) TYPE N.
  DATA : WRK_ROW TYPE I,
         GIDX LIKE SY-TABIX.
  IF NOT DATA_TAB[] IS INITIAL.
    LOOP AT DATA_TAB INTO W_DATA_TAB.
      WRK_ROW = SY-TABIX.
     IT_DATA-DOC_TYPE    = W_DATA_TAB-VALUE_0001.
      IT_DATA-DOC_DATE    = W_DATA_TAB-VALUE_0002.
      IT_DATA-PSTNG_DATE    = W_DATA_TAB-VALUE_0003.
      it_data-ref_doc_no   = w_data_tab-value_0004.
     IT_DATA-GROSS_AMOUNT    = W_DATA_TAB-VALUE_0004.
      IT_DATA-BLINE_DATE     = W_DATA_TAB-VALUE_0005.
      IT_DATA-HEADER_TXT      = W_DATA_TAB-VALUE_0006.
      IT_DATA-INVOICE_DOC_ITEM = W_DATA_TAB-VALUE_0007.
      IT_DATA-PO_NUMBER      = W_DATA_TAB-VALUE_0008.
      IT_DATA-PO_ITEM     = W_DATA_TAB-VALUE_0009.
      IT_DATA-TAX_CODE     = W_DATA_TAB-VALUE_0010.
      IT_DATA-ITEM_AMOUNT     = W_DATA_TAB-VALUE_0011.
      IT_DATA-SHEET_NO   = W_DATA_TAB-VALUE_0012.
      IT_DATA-ITEM_TEXT  = W_DATA_TAB-VALUE_0013.
      IT_DATA-SHEET_ITEM  = W_DATA_TAB-VALUE_0014.
      APPEND IT_DATA.
    ENDLOOP.
  ENDIF.
ENDFORM.
FORM BDC_UPLOAD.
DATA:LW_DATE(10).
DELETE ADJACENT DUPLICATES FROM it_data.
LOOP AT IT_DATA INTO WA_DATA1.
WA_DATA = WA_DATA1.
While program finds the header record, post the previous entries
  if      WA_data-DOC_TYPE   NE ' '
     AND  wa_data-doc_date NE ' '
      AND wa_data-pstng_date NE ' '
      AND WA_data-REF_DOC_NO NE ' '
      AND WA_data-BLINE_DATE NE ' '
      AND WA_data-HEADER_TXT NE ' ' .
              WA_HEADER-INVOICE_IND = 'X'.
              WA_HEADER-COMP_CODE           = 'TSKY'.
              WA_HEADER-CURRENCY            = 'INR'.
              WA_HEADER-CALC_TAX_IND        = 'X'.
      IF sy-tabix NE 1.
update
        PERFORM f0301_exe_bapi TABLES it_item USING wa_header.
        REFRESH it_item.
        CLEAR: it_item, wa_header.
      ENDIF.
*CONCATENATE WA_DATA-PSTNG_DATE+4(4)
            WA_DATA-PSTNG_DATE+2(2)
            WA_DATA-PSTNG_DATE+0(2) INTO LW_DATE.
            WA_HEADER-DOC_DATE = LW_DATE.
            WA_HEADER-PSTNG_DATE = LW_DATE.
          wa_header-doc_type = wa_data-doc_type.
         wa_header-doc_date  =  WA_DATA-DOC_DATE.
       wa_header-pstng_date =  WA_DATA-PSTNG_DATE.
       WA_HEADER-REF_DOC_NO  = WA_DATA-REF_DOC_NO.
       WA_HEADER-BLINE_DATE =  WA_DATA-BLINE_DATE.
       WA_HEADER-HEADER_TXT =  WA_DATA-HEADER_TXT.
      ENDIF.
      IT_item-INVOICE_DOC_ITEM = WA_DATA-INVOICE_DOC_ITEM.
      IT_item-PO_NUMBER = WA_DATA-PO_NUMBER.
      IT_item-PO_ITEM = WA_DATA-PO_ITEM.
      IT_item-TAX_CODE = WA_DATA-TAX_CODE.
      IT_item-ITEM_AMOUNT = WA_DATA-ITEM_AMOUNT.
      IT_item-SHEET_NO = WA_DATA-SHEET_NO.
      IT_item-ITEM_TEXT = WA_DATA-ITEM_TEXT.
      IT_item-SHEET_ITEM = WA_DATA-SHEET_ITEM.
      APPEND it_item.
    CLEAR it_item.
  ENDLOOP.
  PERFORM f0301_exe_bapi TABLES it_item USING wa_header.
ENDFORM.                    " f0200_UPDATE
   FORM f0301_exe_bapi  TABLES   p_it_item STRUCTURE it_item
                     USING    p_wa_header.
     CALL FUNCTION 'BAPI_INCOMINGINVOICE_PARK'
      EXPORTING
        headerdata                = wa_header
      ADDRESSDATA               =
     IMPORTING
       INVOICEDOCNUMBER          = WA_INVOICEDOCNUMBER
      FISCALYEAR                = lc_gjahr
      tables
        itemdata                  = it_item
      ACCOUNTINGDATA            =
      GLACCOUNTDATA             =
      MATERIALDATA              =
      TAXDATA                   =
      WITHTAXDATA               =
      VENDORITEMSPLITDATA       =
        return                    = it_return.
        READ TABLE it_return INDEX 1.
  READ TABLE it_item INDEX 1.
  IF it_return-type EQ 'E'.
    MOVE it_item-po_number   TO it_msg-po_number.
   move it_item-po_item to it_msg-po_itm.
    MOVE 'Discrepancy in PO' TO it_msg-message.
    MOVE it_return-message to it_msg-message1.
    APPEND it_msg.
    CLEAR it_msg.
    clear it_return.
  ELSE.
    MOVE it_item-po_number   TO it_msg-po_number.
   move it_item-po_item to it_msg-po_item.
    MOVE 'Successfully parked' TO it_msg-message.
   MOVE  WA_INVOICEDOCNUMBER TO it_msg-mblnr.
    APPEND it_msg.
    CLEAR: it_msg, WA_INVOICEDOCNUMBER.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
  ENDIF.
ENDFORM.                    "f0301_exe_bapi
FORM display_log .
Display the log
  WRITE :  '10 Po_number',  25 'Message',  55 'Error message' ,135 'ParkedDocumentNumber'.
  ULINE.
  LOOP AT it_msg.
    WRITE : /10 it_msg-po_number,
          25 it_msg-message,
          55 it_msg-message1,
          135 it_msg-mblnr.
          ULINE.
  ENDLOOP.
ENDFORM.                    " display_log

Similar Messages

  • Hi pls respond my code

    Program Name: ZMM_MIRO                         Date       : 05/01/07        *
                                                   Version    : Final           *
    Author  : Rashmi Patil                         Last Update: 08/01/07        *
    Description : Program to print invoice document.                            *
    Includes          : None                                                    *
    Logical Databases : None                                                    *
    External Calls    :                                                         *
          Function Modules : POPUP_TO_INFORM                                    *
          Transactions     : ZMIRO                                              *
    Scheduling Issues :  None, run manually                                     *
    *Request      Owner  Date           Description                               *
    DEVK906817   Rashmi 16/03/2007     Addition of Service tax, vat & tds details
    *DEVK907005   Rashmi 10/04/2007     Addition of ecess,netpr in doc currency   *
    *DEVK907017   Rashmi 12/04/2007     Correction in netpr                       *
    DEVK907045   Rashmi 17/04/2007     Correction in o/p for multiple TDS entries
    *DEVK907292   Rashmi 21/05/2007     Correction in object key and fiscal year  *
    *DEVK907460   Dharani 06/06/2007    PIR-60118_Addition planned delivery cost  *
                                      in MIRO print                             *
    REPORT  zmm_miro        LINE-SIZE       132
                            LINE-COUNT       60
                            MESSAGE-ID       00
                            NO STANDARD PAGE HEADING.
    TABLES: ekbe.
    DATA : ebeln LIKE ekbe-ebeln,
           ebeln1(90),
           ebeln_1(10),
           ebeln_2(10),
           ebeln_3(10),
           gjahr LIKE ekbe-gjahr,
           mjahr LIKE mkpf-mjahr,
           addrnr LIKE lfa1-adrnr,
           mblnr LIKE mseg-mblnr,
           belnr1 LIKE bkpf-belnr,
           belnr2 LIKE bkpf-belnr,
           objkey1(14),
           objkey2(14),
           total(10) TYPE p DECIMALS 2,
           v_lines TYPE i,
           count TYPE i,
           start_at_line TYPE i,
           end_at_line TYPE i,
           counter TYPE i,
           x TYPE f,
           tot_number_of_lines TYPE i,
           tot_number_of_pages TYPE i,
           page_number VALUE 1 TYPE i,
           ernam LIKE ekbe-ernam,
           total1(10) TYPE p DECIMALS 2.                        "DEVK907005
    DATA : BEGIN OF it_ekbe OCCURS 0,
           ebeln LIKE ekbe-ebeln,
           END OF it_ekbe.
    DATA : BEGIN OF it_mkpf OCCURS 0,
           ebeln LIKE ekbe-ebeln,
           mblnr LIKE mkpf-mblnr,
           budat LIKE mkpf-budat,
           belnr LIKE bkpf-belnr,                               "DEVK907031
           END OF it_mkpf.
    DATA : BEGIN OF it_bseg OCCURS 0,
           belnr LIKE bseg-belnr,
           umskz LIKE bseg-umskz,
           hkont LIKE bseg-hkont,
           shkzg LIKE bseg-shkzg,
           dmbtr LIKE bseg-dmbtr,
           koart LIKE bseg-koart,
           mwskz LIKE bseg-mwskz,
           txt20 LIKE skat-txt20,
           ktosl LIKE bseg-ktosl,                               "DEVK906817
           fwbas LIKE bseg-fwbas,                               "DEVK906817
           wrbtr LIKE bseg-wrbtr,
           END OF it_bseg.
    DATA : BEGIN OF it_final OCCURS 0,
           belnr LIKE ekbe-belnr,
           budat3 LIKE ekbe-budat,
           lifnr LIKE ekko-lifnr,
           name1 LIKE lfa1-name1,
           street LIKE adrc-street,
           str_suppl3 LIKE adrc-str_suppl3,
           location LIKE adrc-location,
           city1 LIKE adrc-city1,
           city2 LIKE adrc-city2,
           j_1ipanno LIKE j_1imovend-j_1ipanno,
           j_1isern LIKE j_1imovend-j_1isern,
           j_1ilstno LIKE j_1imovend-j_1ilstno,
           belnr1 LIKE bkpf-belnr,
           budat1 LIKE bkpf-budat,
           belnr2 LIKE bkpf-belnr,
           budat2 LIKE bkpf-budat,
           xblnr LIKE bkpf-xblnr,                               "DEVK906817
           mblnr LIKE mkpf-mblnr,
           budat4 LIKE mkpf-budat,
           hkont LIKE bseg-hkont,
           txt20 LIKE skat-txt20,
           mwskz LIKE bseg-mwskz,
           umskz LIKE bseg-umskz,
           aufnr LIKE rbco-aufnr,
           kostl LIKE rbco-kostl,
           amount1(20),
           amount2(20),
           ktosl LIKE bseg-ktosl,                               "DEVK906817
           fwbas LIKE bseg-fwbas,                               "DEVK906817
           dc LIKE bkpf-waers,
           lc LIKE bkpf-hwaer,
           END OF it_final.
    ***Begin of DEVK906817
    DATA : BEGIN OF it_stax OCCURS 0,
           mwskz LIKE bseg-mwskz,
           text1 LIKE t007s-text1,
           hkont LIKE bseg-hkont,
           txt20 LIKE skat-txt20,
           fwbas LIKE bseg-fwbas,               "Base amount
          amount(20),                                         "DEVK907005
           amount(10) TYPE p DECIMALS 2,                        "DEVK907005
           dc_indicator(10),
           END OF it_stax.
    DATA : BEGIN OF it_tds OCCURS 0,
           hkont LIKE bseg-hkont,
           txt20 LIKE skat-txt20,
           fwbas LIKE bseg-fwbas,               "Base amount
          amount(20),                                         "DEVK907005
           amount(10) TYPE p DECIMALS 2,                        "DEVK907005
           dc_indicator(10),
           END OF it_tds.
    DATA : BEGIN OF it_vat OCCURS 0,
           mwskz LIKE bseg-mwskz,
           text1 LIKE t007s-text1,
           hkont LIKE bseg-hkont,
           txt20 LIKE skat-txt20,
           fwbas LIKE bseg-fwbas,               "Base amount
          amount(20),                                         "DEVK907005
           amount(10) TYPE p DECIMALS 2,                        "DEVK907005
           dc_indicator(10),
           END OF it_vat.
    DATA : tds_base(20) VALUE 0.
    ***End of DEVK906817
    ***Begin of DEVK907005
    DATA : BEGIN OF it_ecess OCCURS 0,
           mwskz LIKE bseg-mwskz,
           text1 LIKE t007s-text1,
           hkont LIKE bseg-hkont,
           txt20 LIKE skat-txt20,
           fwbas LIKE bseg-fwbas,               "Base amount
           amount(10) TYPE p DECIMALS 2,
           dc_indicator(10),
           END OF it_ecess.
    ***End of DEVK907005
    ***BEGIN OF DEVK907045
    DATA : BEGIN OF it_tds1 OCCURS 0,
           hkont LIKE bseg-hkont,
           txt20 LIKE skat-txt20,
           fwbas LIKE bseg-fwbas,
           amount(10) TYPE p DECIMALS 2,
           dc_indicator(10),
           END OF it_tds1.
    DATA : BEGIN OF it_tds2 OCCURS 0,
           hkont LIKE bseg-hkont,
           txt20 LIKE skat-txt20,
           fwbas LIKE bseg-fwbas,
           amount(10) TYPE p DECIMALS 2,
           dc_indicator(10),
           END OF it_tds2.
    DATA : BEGIN OF it_tds3 OCCURS 0,
           hkont LIKE bseg-hkont,
           txt20 LIKE skat-txt20,
           fwbas LIKE bseg-fwbas,
           amount(10) TYPE p DECIMALS 2,
           dc_indicator(10),
           END OF it_tds3.
    ***END OF DEVK907045
    data: year like bkpf-gjahr,        "DEVK907292
          bkpf_year like bkpf-gjahr .  "DEVK907292
    SELECTION-SCREEN
    SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    *PARAMETERS: p_belnr LIKE ekbe-belnr OBLIGATORY.
    SELECT-OPTIONS: p_belnr FOR EKBE-BELNR .
    SELECTION-SCREEN: END OF BLOCK b1.
    START-OF-SELECTION.
      IF p_belnr NE ''.
        SELECT SINGLE ebeln gjahr budat ernam FROM ekbe INTO (ebeln,gjahr,it_final-budat3,ernam)
          WHERE belnr IN p_belnr.
    Start of changes by 147547 on 06/06/2007     DEVK907460   PIR-60118_Addition planned delivery cost  in MIRO print
          if sy-subrc ne 0.
          select single ebeln gjahr from rseg into (ebeln,gjahr)
           where belnr IN p_belnr.
           if sy-subrc = 0.
           select single budat usnam lifnr from rbkp into (it_final-budat3,ernam,it_final-lifnr)
           where belnr IN  p_belnr.
           endif.
          endif.
    End of changes by 147547 on 06/06/2007  DEVK907460   PIR-60118_Addition planned delivery cost in MIRO print
      ENDIF.
    *---IF ENTERED RECORD IS INVALID
    Start of changes by 147547 on 06/06/2007  DEVK907460   PIR-60118_Addition planned delivery cost in MIRO print
    IF sy-subrc <> 0.
    End of changes by 147547 on 06/06/2007  DEVK907460   PIR-60118_Addition planned delivery cost   in MIRO print
    if p_belnr eq ''.
        CALL FUNCTION 'POPUP_TO_INFORM'
          EXPORTING
            titel = sy-repid
            txt1  = text-002
            txt2  = text-003.
        EXIT.
      ELSE.
    *---TO FETCH VENDOR NUMBER
    if it_final-lifnr = ''.
        SELECT SINGLE lifnr FROM ekko INTO it_final-lifnr
         WHERE ebeln = ebeln .
    endif.
    *---TO FETCH VENDOR ADDRESS
        SELECT SINGLE adrnr FROM lfa1 INTO addrnr WHERE lifnr = it_final-lifnr.
        SELECT SINGLE name1 street str_suppl3 location city1 city2 FROM adrc
          INTO CORRESPONDING FIELDS OF it_final
              WHERE addrnumber = addrnr.
        SELECT SINGLE j_1ipanno j_1isern j_1ilstno FROM j_1imovend INTO CORRESPONDING FIELDS OF it_final
         WHERE lifnr = it_final-lifnr.
    *---TO FETCH MATERIAL DOCUMENT NUMBER
        SELECT SINGLE mblnr FROM mseg INTO mblnr WHERE ebeln = ebeln.
        SELECT SINGLE mblnr budat mjahr FROM mkpf INTO (it_final-mblnr, it_final-budat4, mjahr)
          WHERE mblnr = mblnr.
    ***BEGIN OF DEVK907292
       CONCATENATE: p_belnr gjahr INTO objkey1,
                    it_final-mblnr mjahr INTO objkey2.
       select single gjahr from rbkp into year
         where belnr = p_belnr and budat = it_final-budat3.
         concatenate p_belnr year into objkey1.
    ***END OF DEVK907292
    ***Begin of DEVK906817
       SELECT SINGLE belnr budat FROM bkpf INTO (it_final-belnr1,it_final-budat1)
        WHERE awkey = objkey1.
       SELECT SINGLE belnr budat xblnr waers hwaer FROM bkpf INTO (it_final-belnr1,it_final-budat1,it_final-xblnr,it_final-dc,it_final-lc)
       WHERE awkey = objkey1.                                     "DEVK907292
        SELECT SINGLE belnr budat xblnr waers hwaer gjahr FROM bkpf INTO (it_final-belnr1,it_final-budat1,it_final-xblnr,it_final-dc,it_final-lc,bkpf_year)
        WHERE awkey = objkey1.                                      "DEVK907292
    ***End of DEVK906817
        SELECT SINGLE belnr budat FROM bkpf INTO (it_final-belnr2,it_final-budat2)
         WHERE awkey = objkey2.
    *---TO FETCH DATA FROM TABLE BSEG
    Begin of DEVK906817
       SELECT belnr umskz hkont dmbtr koart shkzg mwskz FROM bseg INTO CORRESPONDING FIELDS OF TABLE it_bseg
         WHERE belnr = it_final-belnr1.
        SELECT belnr umskz hkont dmbtr wrbtr koart shkzg mwskz ktosl fwbas FROM bseg INTO CORRESPONDING FIELDS OF TABLE it_bseg
          WHERE belnr = it_final-belnr1
          AND gjahr = bkpf_year.                           "DEVK907292
    ***End of DEVK906817
        LOOP AT it_bseg.
          SELECT SINGLE txt20 FROM skat INTO it_bseg-txt20
           WHERE saknr = it_bseg-hkont AND ktopl = 'TSKY'.
          IF it_bseg-koart = 'K'.
            MOVE it_final-name1 TO it_bseg-txt20.
            MOVE : it_bseg-dmbtr TO total,                      "DEVK907017
                   it_bseg-wrbtr TO total1.                     "DEVK907017
          ENDIF.
          MODIFY it_bseg.
        ENDLOOP.
        SORT it_bseg BY shkzg.
       total = 0.                       "DEVK907017
       total1 = 0.                      "DEVK907017
        LOOP AT it_bseg.
          AT FIRST.
            SELECT SINGLE kostl aufnr FROM rbco INTO CORRESPONDING FIELDS OF it_final
              WHERE belnr = p_belnr.
            CONDENSE it_final-aufnr.
          ENDAT.
          MOVE : p_belnr TO it_final-belnr,
                 it_bseg-hkont TO it_final-hkont,
                 it_bseg-txt20 TO it_final-txt20,
                 it_bseg-mwskz TO it_final-mwskz,
                 it_bseg-umskz TO it_final-umskz,
                 it_bseg-ktosl TO it_final-ktosl,               "DEVK906817
                 it_bseg-fwbas TO it_final-fwbas.               "DEVK906817
          IF it_bseg-shkzg = 'H'.
            MOVE '' TO it_final-amount2.
            MOVE it_bseg-dmbtr TO it_final-amount1.
            tds_base = tds_base + it_final-amount1.             "DEVK906817
    Begin of DEVK907017
           IF it_bseg-mwskz = ''.
             SUBTRACT it_bseg-dmbtr FROM total.
             SUBTRACT it_bseg-wrbtr FROM total1.               "DEVK907005
           ELSE.
             ADD it_bseg-dmbtr TO total.
             ADD it_bseg-wrbtr TO total1.                      "DEVK907005
           ENDIF.
    End of DEVK907017
          ELSE.
            MOVE '' TO it_final-amount1.
            MOVE it_bseg-dmbtr TO it_final-amount2.
          ENDIF.
          APPEND it_final.
          it_final-kostl = ''.
          it_final-aufnr = ''.
        ENDLOOP.
    Begin of DEVK906817
    *--- To get service tax details .
       LOOP AT it_final WHERE ktosl = 'ESE'                                      "DEVK907005
        LOOP AT it_final WHERE ktosl = 'ESE' OR ktosl = 'YSE'.  "DEVK907005
          MOVE-CORRESPONDING it_final TO it_stax.
          SELECT SINGLE text1 FROM t007s INTO it_stax-text1
            WHERE mwskz = it_stax-mwskz
            AND spras = 'E'
            AND kalsm = 'ZTAXIN'.
          it_stax-amount = it_final-amount1 + it_final-amount2.
          IF it_final-amount1 = ''.
            MOVE 'DEBIT' TO it_stax-dc_indicator.
          ELSE .
            MOVE 'CREDIT' TO it_stax-dc_indicator.
          ENDIF.
        ENDLOOP.
    Begin of DEVK907005
    *--- To get ecess details .
        LOOP AT it_final WHERE ktosl = 'ZSE' OR ktosl = 'YEC'.  "DEVK907005
          MOVE-CORRESPONDING it_final TO it_ecess.
          SELECT SINGLE text1 FROM t007s INTO it_ecess-text1
            WHERE mwskz = it_ecess-mwskz
            AND spras = 'E'
            AND kalsm = 'ZTAXIN'.
          it_ecess-amount = it_final-amount1 + it_final-amount2.
          IF it_final-amount1 = ''.
            MOVE 'DEBIT' TO it_ecess-dc_indicator.
          ELSE .
            MOVE 'CREDIT' TO it_ecess-dc_indicator.
          ENDIF.
        ENDLOOP.
    End of DEVK907005
    *--- To get TDS details .
        LOOP AT it_final WHERE mwskz = ''.
          MOVE-CORRESPONDING it_final TO it_tds.
          it_tds-amount = it_final-amount1 + it_final-amount2.
          MOVE tds_base TO it_tds-fwbas.
          MOVE 'CREDIT' TO it_tds-dc_indicator.
    ***BEGIN OF DEVK907045
         ENDLOOP.
          APPEND it_tds.
        ENDLOOP.
        LOOP AT it_tds.
          IF sy-tabix = 1.
            MOVE it_tds TO it_tds1.
          ENDIF.
          IF sy-tabix = 2.
            MOVE it_tds TO it_tds2.
          ENDIF.
          IF sy-tabix = 3.
            MOVE it_tds TO it_tds3.
          ENDIF.
        ENDLOOP.
    ***END OF DEVK907045
    *--- To get VAT/Sales tax details .
        LOOP AT it_final WHERE ktosl = 'JP5' OR ktosl = 'NVV'.
          MOVE-CORRESPONDING it_final TO it_vat.
          SELECT SINGLE text1 FROM t007s INTO it_vat-text1
            WHERE mwskz = it_vat-mwskz
            AND spras = 'E'
            AND kalsm = 'ZTAXIN'.
          it_vat-amount = it_final-amount1 + it_final-amount2.
          IF it_final-amount1 = ''.
            MOVE 'DEBIT' TO it_vat-dc_indicator.
          ELSE .
            MOVE 'CREDIT' TO it_vat-dc_indicator.
          ENDIF.
        ENDLOOP.
    End of DEVK906817
    *---TO FETCH PURCHASE OREDER AND MATERIAL DOCUMENT NUMBERS
        SELECT ebeln FROM ekbe INTO TABLE it_ekbe
          WHERE belnr IN p_belnr.
        LOOP AT it_ekbe.
          SELECT SINGLE mblnr FROM mseg INTO mblnr WHERE ebeln = it_ekbe-ebeln.
    ***BEGIN OF DEVK907031
         SELECT SINGLE mblnr budat FROM mkpf INTO CORRESPONDING FIELDS OF it_mkpf
            WHERE mblnr = mblnr.
          SELECT SINGLE mblnr budat mjahr FROM mkpf INTO CORRESPONDING FIELDS OF it_mkpf
          WHERE mblnr = mblnr.
          CONCATENATE: it_mkpf-mblnr mjahr INTO objkey2.
          SELECT SINGLE belnr FROM bkpf INTO it_mkpf-belnr
          WHERE awkey = objkey2.
    ***END OF DEVK907031
          MOVE it_ekbe-ebeln TO it_mkpf-ebeln.
          APPEND it_mkpf.
          CLEAR it_mkpf.
        ENDLOOP.
      ENDIF.
      CALL FUNCTION 'OPEN_FORM'
        EXPORTING
          form     = 'ZMIRO'
          language = 'E'.
      CLEAR it_final.
      DESCRIBE TABLE it_final LINES tot_number_of_lines.
      x = tot_number_of_lines / 20.
      tot_number_of_pages = CEIL( x ).
      WHILE page_number LE tot_number_of_pages.
    *--- START OF PAGE
        CALL FUNCTION 'START_FORM'
          EXPORTING
            form        = 'ZMIRO'
            language    = 'E'
            startpage   = 'FIRST'
            program     = 'ZMM_MIRO'
          EXCEPTIONS
            form        = 1
            format      = 2
            unended     = 3
            unopened    = 4
            unused      = 5
            spool_error = 6
            codepage    = 7
            OTHERS      = 8.
        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 'WRITE_FORM'
          EXPORTING
            window                   = 'FIRST'
          EXCEPTIONS
            element                  = 1
            function                 = 2
            type                     = 3
            unopened                 = 4
            unstarted                = 5
            window                   = 6
            bad_pageformat_for_print = 7
            spool_error              = 8
            codepage                 = 9
            OTHERS                   = 10.
        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 'WRITE_FORM'
          EXPORTING
            element                  = 'HEADER'
            window                   = 'MAIN'
          EXCEPTIONS
            element                  = 1
            function                 = 2
            type                     = 3
            unopened                 = 4
            unstarted                = 5
            window                   = 6
            bad_pageformat_for_print = 7
            spool_error              = 8
            codepage                 = 9
            OTHERS                   = 10.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
    *---CHOOSE APPROPRIATE SEGMENT OF IT_FINAL TO BE DISPLAYED IN THE PAGE
        start_at_line = ( 20 * ( page_number - 1 ) ) + 1.
        end_at_line = 20 * page_number.
        IF end_at_line GT tot_number_of_lines.
          end_at_line = tot_number_of_lines.
        ENDIF.
        DESCRIBE TABLE it_final LINES v_lines.
        LOOP AT it_final FROM start_at_line TO end_at_line.
          CALL FUNCTION 'WRITE_FORM'
            EXPORTING
              element                  = 'LINE_ITEMS'
              window                   = 'MAIN'
            EXCEPTIONS
              element                  = 1
              function                 = 2
              type                     = 3
              unopened                 = 4
              unstarted                = 5
              window                   = 6
              bad_pageformat_for_print = 7
              spool_error              = 8
              codepage                 = 9
              OTHERS                   = 10.
          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 'WRITE_FORM'
            EXPORTING
              window                   = 'WINDOW3'
            EXCEPTIONS
              element                  = 1
              function                 = 2
              type                     = 3
              unopened                 = 4
              unstarted                = 5
              window                   = 6
              bad_pageformat_for_print = 7
              spool_error              = 8
              codepage                 = 9
              OTHERS                   = 10.
          IF sy-subrc <> 0.
            MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
          ENDIF.
    hi ,
    pls  help me, this is my print program . my requirement is print multiple invoice documents,.
    earlier it was print single t invoice docment.so in selection screen   they used parameter for invoice.
    now my requirement is make it parameter as select-option.
    pls i have to submit today only pls help me.
    check my print program below.
        ENDLOOP.
        CALL FUNCTION 'END_FORM'
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
    *---TO DISPLAY NEXT PAGE.
        page_number = page_number + 1.
        start_at_line = ( 20 * ( page_number - 1 ) ) + 1.
        end_at_line = 20 * page_number.
        IF end_at_line GT tot_number_of_lines.
          end_at_line = tot_number_of_lines.
        ENDIF.
      ENDWHILE.
    *--- START OF LAST PAGE
      CALL FUNCTION 'START_FORM'
        EXPORTING
          form        = 'ZMIRO'
          language    = 'E'
          startpage   = 'PAGE1'
          program     = 'ZMM_MIRO'
        EXCEPTIONS
          form        = 1
          format      = 2
          unended     = 3
          unopened    = 4
          unused      = 5
          spool_error = 6
          codepage    = 7
          OTHERS      = 8.
      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 'WRITE_FORM'
         EXPORTING
           window                   = 'WINDOW6'
         EXCEPTIONS
           element                  = 1
           function                 = 2
           type                     = 3
           unopened                 = 4
           unstarted                = 5
           window                   = 6
           bad_pageformat_for_print = 7
           spool_error              = 8
           codepage                 = 9
           OTHERS                   = 10.
       IF sy-subrc <> 0.
         MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                 WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
       ENDIF.
      LOOP AT it_mkpf.
        CALL FUNCTION 'WRITE_FORM'
          EXPORTING
            window                   = 'WINDOW4'
          EXCEPTIONS
            element                  = 1
            function                 = 2
            type                     = 3
            unopened                 = 4
            unstarted                = 5
            window                   = 6
            bad_pageformat_for_print = 7
            spool_error              = 8
            codepage                 = 9
            OTHERS                   = 10.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
      ENDLOOP.
    ***Begin of DEVK906817
      CALL FUNCTION 'WRITE_FORM'
        EXPORTING
          window                   = 'WINDOW7'
        EXCEPTIONS
          element                  = 1
          function                 = 2
          type                     = 3
          unopened                 = 4
          unstarted                = 5
          window                   = 6
          bad_pageformat_for_print = 7
          spool_error              = 8
          codepage                 = 9
          OTHERS                   = 10.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    ***End of DEVK906817
      CALL FUNCTION 'WRITE_FORM'
        EXPORTING
          window                   = 'WINDOW5'
        EXCEPTIONS
          element                  = 1
          function                 = 2
          type                     = 3
          unopened                 = 4
          unstarted                = 5
          window                   = 6
          bad_pageformat_for_print = 7
          spool_error              = 8
          codepage                 = 9
          OTHERS                   = 10.
      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 'END_FORM'
      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 'CLOSE_FORM'.

    hi ,
    my requirement is print multiple  invoice documents.earlier it was printed only sinle invoice document.
    now i made invoice as a select-option instead of parameter .
    but remaining code  how &where should i write,
    pls provide code for this program.
    Program Name: ZMM_MIRO Date : 05/01/07 *
    Version : Final *
    Author : Rashmi Patil Last Update: 08/01/07 *
    Description : Program to print invoice document. *
    Includes : None *
    Logical Databases : None *
    External Calls : *
    Function Modules : POPUP_TO_INFORM *
    Transactions : ZMIRO *
    Scheduling Issues : None, run manually *
    *Request Owner Date Description *
    DEVK906817 Rashmi 16/03/2007 Addition of Service tax, vat & tds details
    *DEVK907005 Rashmi 10/04/2007 Addition of ecess,netpr in doc currency *
    *DEVK907017 Rashmi 12/04/2007 Correction in netpr *
    DEVK907045 Rashmi 17/04/2007 Correction in o/p for multiple TDS entries
    *DEVK907292 Rashmi 21/05/2007 Correction in object key and fiscal year *
    *DEVK907460 Dharani 06/06/2007 PIR-60118_Addition planned delivery cost *
    in MIRO print *
    REPORT zmm_miro LINE-SIZE 132
    LINE-COUNT 60
    MESSAGE-ID 00
    NO STANDARD PAGE HEADING.
    TABLES: ekbe.
    DATA : ebeln LIKE ekbe-ebeln,
    ebeln1(90),
    ebeln_1(10),
    ebeln_2(10),
    ebeln_3(10),
    gjahr LIKE ekbe-gjahr,
    mjahr LIKE mkpf-mjahr,
    addrnr LIKE lfa1-adrnr,
    mblnr LIKE mseg-mblnr,
    belnr1 LIKE bkpf-belnr,
    belnr2 LIKE bkpf-belnr,
    objkey1(14),
    objkey2(14),
    total(10) TYPE p DECIMALS 2,
    v_lines TYPE i,
    count TYPE i,
    start_at_line TYPE i,
    end_at_line TYPE i,
    counter TYPE i,
    x TYPE f,
    tot_number_of_lines TYPE i,
    tot_number_of_pages TYPE i,
    page_number VALUE 1 TYPE i,
    ernam LIKE ekbe-ernam,
    total1(10) TYPE p DECIMALS 2. "DEVK907005
    DATA : BEGIN OF it_ekbe OCCURS 0,
    ebeln LIKE ekbe-ebeln,
    END OF it_ekbe.
    DATA : BEGIN OF it_mkpf OCCURS 0,
    ebeln LIKE ekbe-ebeln,
    mblnr LIKE mkpf-mblnr,
    budat LIKE mkpf-budat,
    belnr LIKE bkpf-belnr, "DEVK907031
    END OF it_mkpf.
    DATA : BEGIN OF it_bseg OCCURS 0,
    belnr LIKE bseg-belnr,
    umskz LIKE bseg-umskz,
    hkont LIKE bseg-hkont,
    shkzg LIKE bseg-shkzg,
    dmbtr LIKE bseg-dmbtr,
    koart LIKE bseg-koart,
    mwskz LIKE bseg-mwskz,
    txt20 LIKE skat-txt20,
    ktosl LIKE bseg-ktosl, "DEVK906817
    fwbas LIKE bseg-fwbas, "DEVK906817
    wrbtr LIKE bseg-wrbtr,
    END OF it_bseg.
    DATA : BEGIN OF it_final OCCURS 0,
    belnr LIKE ekbe-belnr,
    budat3 LIKE ekbe-budat,
    lifnr LIKE ekko-lifnr,
    name1 LIKE lfa1-name1,
    street LIKE adrc-street,
    str_suppl3 LIKE adrc-str_suppl3,
    location LIKE adrc-location,
    city1 LIKE adrc-city1,
    city2 LIKE adrc-city2,
    j_1ipanno LIKE j_1imovend-j_1ipanno,
    j_1isern LIKE j_1imovend-j_1isern,
    j_1ilstno LIKE j_1imovend-j_1ilstno,
    belnr1 LIKE bkpf-belnr,
    budat1 LIKE bkpf-budat,
    belnr2 LIKE bkpf-belnr,
    budat2 LIKE bkpf-budat,
    xblnr LIKE bkpf-xblnr, "DEVK906817
    mblnr LIKE mkpf-mblnr,
    budat4 LIKE mkpf-budat,
    hkont LIKE bseg-hkont,
    txt20 LIKE skat-txt20,
    mwskz LIKE bseg-mwskz,
    umskz LIKE bseg-umskz,
    aufnr LIKE rbco-aufnr,
    kostl LIKE rbco-kostl,
    amount1(20),
    amount2(20),
    ktosl LIKE bseg-ktosl, "DEVK906817
    fwbas LIKE bseg-fwbas, "DEVK906817
    dc LIKE bkpf-waers,
    lc LIKE bkpf-hwaer,
    END OF it_final.
    ***Begin of DEVK906817
    DATA : BEGIN OF it_stax OCCURS 0,
    mwskz LIKE bseg-mwskz,
    text1 LIKE t007s-text1,
    hkont LIKE bseg-hkont,
    txt20 LIKE skat-txt20,
    fwbas LIKE bseg-fwbas, "Base amount
    amount(20), "DEVK907005
    amount(10) TYPE p DECIMALS 2, "DEVK907005
    dc_indicator(10),
    END OF it_stax.
    DATA : BEGIN OF it_tds OCCURS 0,
    hkont LIKE bseg-hkont,
    txt20 LIKE skat-txt20,
    fwbas LIKE bseg-fwbas, "Base amount
    amount(20), "DEVK907005
    amount(10) TYPE p DECIMALS 2, "DEVK907005
    dc_indicator(10),
    END OF it_tds.
    DATA : BEGIN OF it_vat OCCURS 0,
    mwskz LIKE bseg-mwskz,
    text1 LIKE t007s-text1,
    hkont LIKE bseg-hkont,
    txt20 LIKE skat-txt20,
    fwbas LIKE bseg-fwbas, "Base amount
    amount(20), "DEVK907005
    amount(10) TYPE p DECIMALS 2, "DEVK907005
    dc_indicator(10),
    END OF it_vat.
    DATA : tds_base(20) VALUE 0.
    ***End of DEVK906817
    ***Begin of DEVK907005
    DATA : BEGIN OF it_ecess OCCURS 0,
    mwskz LIKE bseg-mwskz,
    text1 LIKE t007s-text1,
    hkont LIKE bseg-hkont,
    txt20 LIKE skat-txt20,
    fwbas LIKE bseg-fwbas, "Base amount
    amount(10) TYPE p DECIMALS 2,
    dc_indicator(10),
    END OF it_ecess.
    ***End of DEVK907005
    ***BEGIN OF DEVK907045
    DATA : BEGIN OF it_tds1 OCCURS 0,
    hkont LIKE bseg-hkont,
    txt20 LIKE skat-txt20,
    fwbas LIKE bseg-fwbas,
    amount(10) TYPE p DECIMALS 2,
    dc_indicator(10),
    END OF it_tds1.
    DATA : BEGIN OF it_tds2 OCCURS 0,
    hkont LIKE bseg-hkont,
    txt20 LIKE skat-txt20,
    fwbas LIKE bseg-fwbas,
    amount(10) TYPE p DECIMALS 2,
    dc_indicator(10),
    END OF it_tds2.
    DATA : BEGIN OF it_tds3 OCCURS 0,
    hkont LIKE bseg-hkont,
    txt20 LIKE skat-txt20,
    fwbas LIKE bseg-fwbas,
    amount(10) TYPE p DECIMALS 2,
    dc_indicator(10),
    END OF it_tds3.
    ***END OF DEVK907045
    data: year like bkpf-gjahr, "DEVK907292
    bkpf_year like bkpf-gjahr . "DEVK907292
    SELECTION-SCREEN
    SELECTION-SCREEN:BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    *PARAMETERS: p_belnr LIKE ekbe-belnr OBLIGATORY.
    SELECT-OPTIONS: p_belnr FOR EKBE-BELNR .
    SELECTION-SCREEN: END OF BLOCK b1.
    START-OF-SELECTION.
    IF p_belnr NE ''.
    SELECT SINGLE ebeln gjahr budat ernam FROM ekbe INTO (ebeln,gjahr,it_final-budat3,ernam)
    WHERE belnr IN p_belnr.
    Start of changes by 147547 on 06/06/2007 DEVK907460 PIR-60118_Addition planned delivery cost in MIRO print
    if sy-subrc ne 0.
    select single ebeln gjahr from rseg into (ebeln,gjahr)
    where belnr IN p_belnr.
    if sy-subrc = 0.
    select single budat usnam lifnr from rbkp into (it_final-budat3,ernam,it_final-lifnr)
    where belnr IN p_belnr.
    endif.
    endif.
    End of changes by 147547 on 06/06/2007 DEVK907460 PIR-60118_Addition planned delivery cost in MIRO print
    ENDIF.
    *---IF ENTERED RECORD IS INVALID
    Start of changes by 147547 on 06/06/2007 DEVK907460 PIR-60118_Addition planned delivery cost in MIRO print
    IF sy-subrc 0.
    End of changes by 147547 on 06/06/2007 DEVK907460 PIR-60118_Addition planned delivery cost in MIRO print
    if p_belnr eq ''.
    CALL FUNCTION 'POPUP_TO_INFORM'
    EXPORTING
    titel = sy-repid
    txt1 = text-002
    txt2 = text-003.
    EXIT.
    ELSE.
    *---TO FETCH VENDOR NUMBER
    if it_final-lifnr = ''.
    SELECT SINGLE lifnr FROM ekko INTO it_final-lifnr
    WHERE ebeln = ebeln .
    endif.
    *---TO FETCH VENDOR ADDRESS
    SELECT SINGLE adrnr FROM lfa1 INTO addrnr WHERE lifnr = it_final-lifnr.
    SELECT SINGLE name1 street str_suppl3 location city1 city2 FROM adrc
    INTO CORRESPONDING FIELDS OF it_final
    WHERE addrnumber = addrnr.
    SELECT SINGLE j_1ipanno j_1isern j_1ilstno FROM j_1imovend INTO CORRESPONDING FIELDS OF it_final
    WHERE lifnr = it_final-lifnr.
    *---TO FETCH MATERIAL DOCUMENT NUMBER
    SELECT SINGLE mblnr FROM mseg INTO mblnr WHERE ebeln = ebeln.
    SELECT SINGLE mblnr budat mjahr FROM mkpf INTO (it_final-mblnr, it_final-budat4, mjahr)
    WHERE mblnr = mblnr.
    ***BEGIN OF DEVK907292
    CONCATENATE: p_belnr gjahr INTO objkey1,
    it_final-mblnr mjahr INTO objkey2.
    select single gjahr from rbkp into year
    where belnr = p_belnr and budat = it_final-budat3.
    concatenate p_belnr year into objkey1.
    ***END OF DEVK907292
    ***Begin of DEVK906817
    SELECT SINGLE belnr budat FROM bkpf INTO (it_final-belnr1,it_final-budat1)
    WHERE awkey = objkey1.
    SELECT SINGLE belnr budat xblnr waers hwaer FROM bkpf INTO (it_final-belnr1,it_final-budat1,it_final-xblnr,it_final-dc,it_final-lc)
    WHERE awkey = objkey1. "DEVK907292
    SELECT SINGLE belnr budat xblnr waers hwaer gjahr FROM bkpf INTO (it_final-belnr1,it_final-budat1,it_final-xblnr,it_final-dc,it_final-lc,bkpf_year)
    WHERE awkey = objkey1. "DEVK907292
    ***End of DEVK906817
    SELECT SINGLE belnr budat FROM bkpf INTO (it_final-belnr2,it_final-budat2)
    WHERE awkey = objkey2.
    *---TO FETCH DATA FROM TABLE BSEG
    Begin of DEVK906817
    SELECT belnr umskz hkont dmbtr koart shkzg mwskz FROM bseg INTO CORRESPONDING FIELDS OF TABLE it_bseg
    WHERE belnr = it_final-belnr1.
    SELECT belnr umskz hkont dmbtr wrbtr koart shkzg mwskz ktosl fwbas FROM bseg INTO CORRESPONDING FIELDS OF TABLE it_bseg
    WHERE belnr = it_final-belnr1
    AND gjahr = bkpf_year. "DEVK907292
    ***End of DEVK906817
    LOOP AT it_bseg.
    SELECT SINGLE txt20 FROM skat INTO it_bseg-txt20
    WHERE saknr = it_bseg-hkont AND ktopl = 'TSKY'.
    IF it_bseg-koart = 'K'.
    MOVE it_final-name1 TO it_bseg-txt20.
    MOVE : it_bseg-dmbtr TO total, "DEVK907017
    it_bseg-wrbtr TO total1. "DEVK907017
    ENDIF.
    MODIFY it_bseg.
    ENDLOOP.
    SORT it_bseg BY shkzg.
    total = 0. "DEVK907017
    total1 = 0. "DEVK907017
    LOOP AT it_bseg.
    AT FIRST.
    SELECT SINGLE kostl aufnr FROM rbco INTO CORRESPONDING FIELDS OF it_final
    WHERE belnr = p_belnr.
    CONDENSE it_final-aufnr.
    ENDAT.
    MOVE : p_belnr TO it_final-belnr,
    it_bseg-hkont TO it_final-hkont,
    it_bseg-txt20 TO it_final-txt20,
    it_bseg-mwskz TO it_final-mwskz,
    it_bseg-umskz TO it_final-umskz,
    it_bseg-ktosl TO it_final-ktosl, "DEVK906817
    it_bseg-fwbas TO it_final-fwbas. "DEVK906817
    IF it_bseg-shkzg = 'H'.
    MOVE '' TO it_final-amount2.
    MOVE it_bseg-dmbtr TO it_final-amount1.
    tds_base = tds_base + it_final-amount1. "DEVK906817
    Begin of DEVK907017
    IF it_bseg-mwskz = ''.
    SUBTRACT it_bseg-dmbtr FROM total.
    SUBTRACT it_bseg-wrbtr FROM total1. "DEVK907005
    ELSE.
    ADD it_bseg-dmbtr TO total.
    ADD it_bseg-wrbtr TO total1. "DEVK907005
    ENDIF.
    End of DEVK907017
    ELSE.
    MOVE '' TO it_final-amount1.
    MOVE it_bseg-dmbtr TO it_final-amount2.
    ENDIF.
    APPEND it_final.
    it_final-kostl = ''.
    it_final-aufnr = ''.
    ENDLOOP.
    Begin of DEVK906817
    To get service tax details .
    LOOP AT it_final WHERE ktosl = 'ESE' "DEVK907005
    LOOP AT it_final WHERE ktosl = 'ESE' OR ktosl = 'YSE'. "DEVK907005
    MOVE-CORRESPONDING it_final TO it_stax.
    SELECT SINGLE text1 FROM t007s INTO it_stax-text1
    WHERE mwskz = it_stax-mwskz
    AND spras = 'E'
    AND kalsm = 'ZTAXIN'.
    it_stax-amount = it_final-amount1 + it_final-amount2.
    IF it_final-amount1 = ''.
    MOVE 'DEBIT' TO it_stax-dc_indicator.
    ELSE .
    MOVE 'CREDIT' TO it_stax-dc_indicator.
    ENDIF.
    ENDLOOP.
    Begin of DEVK907005
    To get ecess details .
    LOOP AT it_final WHERE ktosl = 'ZSE' OR ktosl = 'YEC'. "DEVK907005
    MOVE-CORRESPONDING it_final TO it_ecess.
    SELECT SINGLE text1 FROM t007s INTO it_ecess-text1
    WHERE mwskz = it_ecess-mwskz
    AND spras = 'E'
    AND kalsm = 'ZTAXIN'.
    it_ecess-amount = it_final-amount1 + it_final-amount2.
    IF it_final-amount1 = ''.
    MOVE 'DEBIT' TO it_ecess-dc_indicator.
    ELSE .
    MOVE 'CREDIT' TO it_ecess-dc_indicator.
    ENDIF.
    ENDLOOP.
    End of DEVK907005
    To get TDS details .
    LOOP AT it_final WHERE mwskz = ''.
    MOVE-CORRESPONDING it_final TO it_tds.
    it_tds-amount = it_final-amount1 + it_final-amount2.
    MOVE tds_base TO it_tds-fwbas.
    MOVE 'CREDIT' TO it_tds-dc_indicator.
    ***BEGIN OF DEVK907045
    ENDLOOP.
    APPEND it_tds.
    ENDLOOP.
    LOOP AT it_tds.
    IF sy-tabix = 1.
    MOVE it_tds TO it_tds1.
    ENDIF.
    IF sy-tabix = 2.
    MOVE it_tds TO it_tds2.
    ENDIF.
    IF sy-tabix = 3.
    MOVE it_tds TO it_tds3.
    ENDIF.
    ENDLOOP.
    ***END OF DEVK907045
    To get VAT/Sales tax details .
    LOOP AT it_final WHERE ktosl = 'JP5' OR ktosl = 'NVV'.
    MOVE-CORRESPONDING it_final TO it_vat.
    SELECT SINGLE text1 FROM t007s INTO it_vat-text1
    WHERE mwskz = it_vat-mwskz
    AND spras = 'E'
    AND kalsm = 'ZTAXIN'.
    it_vat-amount = it_final-amount1 + it_final-amount2.
    IF it_final-amount1 = ''.
    MOVE 'DEBIT' TO it_vat-dc_indicator.
    ELSE .
    MOVE 'CREDIT' TO it_vat-dc_indicator.
    ENDIF.
    ENDLOOP.
    End of DEVK906817
    *---TO FETCH PURCHASE OREDER AND MATERIAL DOCUMENT NUMBERS
    SELECT ebeln FROM ekbe INTO TABLE it_ekbe
    WHERE belnr IN p_belnr.
    LOOP AT it_ekbe.
    SELECT SINGLE mblnr FROM mseg INTO mblnr WHERE ebeln = it_ekbe-ebeln.
    ***BEGIN OF DEVK907031
    SELECT SINGLE mblnr budat FROM mkpf INTO CORRESPONDING FIELDS OF it_mkpf
    WHERE mblnr = mblnr.
    SELECT SINGLE mblnr budat mjahr FROM mkpf INTO CORRESPONDING FIELDS OF it_mkpf
    WHERE mblnr = mblnr.
    CONCATENATE: it_mkpf-mblnr mjahr INTO objkey2.
    SELECT SINGLE belnr FROM bkpf INTO it_mkpf-belnr
    WHERE awkey = objkey2.
    ***END OF DEVK907031
    MOVE it_ekbe-ebeln TO it_mkpf-ebeln.
    APPEND it_mkpf.
    CLEAR it_mkpf.
    ENDLOOP.
    ENDIF.
    CALL FUNCTION 'OPEN_FORM'
    EXPORTING
    form = 'ZMIRO'
    language = 'E'.
    CLEAR it_final.
    DESCRIBE TABLE it_final LINES tot_number_of_lines.
    x = tot_number_of_lines / 20.
    tot_number_of_pages = CEIL( x ).
    WHILE page_number LE tot_number_of_pages.
    START OF PAGE
    CALL FUNCTION 'START_FORM'
    EXPORTING
    form = 'ZMIRO'
    language = 'E'
    startpage = 'FIRST'
    program = 'ZMM_MIRO'
    EXCEPTIONS
    form = 1
    format = 2
    unended = 3
    unopened = 4
    unused = 5
    spool_error = 6
    codepage = 7
    OTHERS = 8.
    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 'WRITE_FORM'
    EXPORTING
    window = 'FIRST'
    EXCEPTIONS
    element = 1
    function = 2
    type = 3
    unopened = 4
    unstarted = 5
    window = 6
    bad_pageformat_for_print = 7
    spool_error = 8
    codepage = 9
    OTHERS = 10.
    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 'WRITE_FORM'
    EXPORTING
    element = 'HEADER'
    window = 'MAIN'
    EXCEPTIONS
    element = 1
    function = 2
    type = 3
    unopened = 4
    unstarted = 5
    window = 6
    bad_pageformat_for_print = 7
    spool_error = 8
    codepage = 9
    OTHERS = 10.
    IF sy-subrc 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    *---CHOOSE APPROPRIATE SEGMENT OF IT_FINAL TO BE DISPLAYED IN THE PAGE
    start_at_line = ( 20 * ( page_number - 1 ) ) + 1.
    end_at_line = 20 * page_number.
    IF end_at_line GT tot_number_of_lines.
    end_at_line = tot_number_of_lines.
    ENDIF.
    DESCRIBE TABLE it_final LINES v_lines.
    LOOP AT it_final FROM start_at_line TO end_at_line.
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
    element = 'LINE_ITEMS'
    window = 'MAIN'
    EXCEPTIONS
    element = 1
    function = 2
    type = 3
    unopened = 4
    unstarted = 5
    window = 6
    bad_pageformat_for_print = 7
    spool_error = 8
    codepage = 9
    OTHERS = 10.
    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 'WRITE_FORM'
    EXPORTING
    window = 'WINDOW3'
    EXCEPTIONS
    element = 1
    function = 2
    type = 3
    unopened = 4
    unstarted = 5
    window = 6
    bad_pageformat_for_print = 7
    spool_error = 8
    codepage = 9
    OTHERS = 10.
    IF sy-subrc 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    hi ,
    pls help me, this is my print program . my requirement is print multiple invoice documents,.
    earlier it was print single t invoice docment.so in selection screen they used parameter for invoice.
    now my requirement is make it parameter as select-option.
    pls i have to submit today only pls help me.
    check my print program below.
    ENDLOOP.
    CALL FUNCTION 'END_FORM'
    IF sy-subrc 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    *---TO DISPLAY NEXT PAGE.
    page_number = page_number + 1.
    start_at_line = ( 20 * ( page_number - 1 ) ) + 1.
    end_at_line = 20 * page_number.
    IF end_at_line GT tot_number_of_lines.
    end_at_line = tot_number_of_lines.
    ENDIF.
    ENDWHILE.
    START OF LAST PAGE
    CALL FUNCTION 'START_FORM'
    EXPORTING
    form = 'ZMIRO'
    language = 'E'
    startpage = 'PAGE1'
    program = 'ZMM_MIRO'
    EXCEPTIONS
    form = 1
    format = 2
    unended = 3
    unopened = 4
    unused = 5
    spool_error = 6
    codepage = 7
    OTHERS = 8.
    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 'WRITE_FORM'
    EXPORTING
    window = 'WINDOW6'
    EXCEPTIONS
    element = 1
    function = 2
    type = 3
    unopened = 4
    unstarted = 5
    window = 6
    bad_pageformat_for_print = 7
    spool_error = 8
    codepage = 9
    OTHERS = 10.
    IF sy-subrc 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    LOOP AT it_mkpf.
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
    window = 'WINDOW4'
    EXCEPTIONS
    element = 1
    function = 2
    type = 3
    unopened = 4
    unstarted = 5
    window = 6
    bad_pageformat_for_print = 7
    spool_error = 8
    codepage = 9
    OTHERS = 10.
    IF sy-subrc 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ENDLOOP.
    ***Begin of DEVK906817
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
    window = 'WINDOW7'
    EXCEPTIONS
    element = 1
    function = 2
    type = 3
    unopened = 4
    unstarted = 5
    window = 6
    bad_pageformat_for_print = 7
    spool_error = 8
    codepage = 9
    OTHERS = 10.
    IF sy-subrc 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.
    ***End of DEVK906817
    CALL FUNCTION 'WRITE_FORM'
    EXPORTING
    window = 'WINDOW5'
    EXCEPTIONS
    element = 1
    function = 2
    type = 3
    unopened = 4
    unstarted = 5
    window = 6
    bad_pageformat_for_print = 7
    spool_error = 8
    codepage = 9
    OTHERS = 10.
    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 'END_FORM'
    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 'CLOSE_FORM'.

  • Regaring code ,its urgent

    hi,
    i had amde dis code for displaying the changes made on material in purticular month,70% report is working fine but problem is dat when i want to see the deatils of changes made to it ,it is not displaying all records,i.e. if dere are 5 changes made to a purticular materail den it is displaying only 3 ,but i want to show all of dem .
    plzzz help me out as it is very urgent to me and help will be definately rewrded.
    dis is my report code.plzz try to help me:-
    REPORT ZNEW01 no standard page heading LINE-SIZE 310.
    TABLES: CDHDR,CDPOS.
    DATA: BEGIN OF ITAB OCCURS 0,
          OBJECTCLAS LIKE CDHDR-OBJECTCLAS,
          OBJECTID LIKE CDHDR-OBJECTID,
          USERNAME LIKE CDHDR-USERNAME,
          UDATE LIKE CDHDR-UDATE,
          UTIME LIKE CDHDR-UTIME,
          TCODE LIKE CDHDR-TCODE,
          CHANGE_IND LIKE CDHDR-CHANGE_IND,
          END OF ITAB.
    DATA: BEGIN OF ITAB1 OCCURS 0,
          OBJECTCLAS LIKE CDPOS-OBJECTCLAS,
          OBJECTID LIKE CDPOS-OBJECTID,
          FNAME LIKE CDPOS-FNAME,
          CHNGIND LIKE CDPOS-CHNGIND,
          VALUE_OLD LIKE CDPOS-VALUE_OLD,
          VALUE_NEW LIKE CDPOS-VALUE_NEW,
          END OF ITAB1.
    SELECT-OPTIONS: M_DATE FOR CDHDR-UDATE,
                    U_ID FOR CDHDR-CHANGE_IND.
    SELECT BOBJECTCLAS BOBJECTID BUSERNAME BUDATE BUTIME BTCODE B~CHANGE_IND INTO
    TABLE ITAB
    FROM CDHDR AS B WHERE B~OBJECTCLAS = 'MATERIAL' AND UDATE IN M_DATE AND CHANGE_IND IN U_ID.
    Check not itab[] is initial.
    SELECT OBJECTCLAS OBJECTID FNAME CHNGIND VALUE_OLD VALUE_NEW INTO TABLE
    ITAB1 FROM CDPOS
    FOR ALL ENTRIES IN ITAB WHERE OBJECTID = itab-objectid and objectclas = ITAB-OBJECTCLAS .
    ULINE.
    LOOP AT ITAB.
    WRITE:/ ITAB-OBJECTID,22 ITAB-USERNAME,ITAB-UDATE,ITAB-UTIME,ITAB-TCODE.
    LOOP AT ITAB1 WHERE OBJECTCLAS = ITAB-OBJECTCLAS AND OBJECTID = ITAB-OBJECTID.
    WRITE: 60 ITAB1-FNAME,ITAB1-CHNGIND,ITAB1-VALUE_OLD(40),ITAB1-VALUE_NEW(40).
    ENDLOOP.
    ENDLOOP.

    Hi,
      As you are using FOR ALL ENTRIES to fetch itab1, it will remove the duplicate entries.
    SELECT OBJECTCLAS OBJECTID FNAME CHNGIND VALUE_OLD VALUE_NEW INTO TABLE
    ITAB1 FROM CDPOS
    FOR ALL ENTRIES IN ITAB WHERE OBJECTID = itab-objectid and objectclas = ITAB-OBJECTCLAS .
    ex:  new_value   old_value
            10              20
             20             30
             30             10
             10             20
             20             30
      In the output you will get only 3 records. i.e., first 3 records.
    rest of the code is looking fine. This may be the problem.
    Instead of using FOR ALL ENTRIES, fetch data for each record.

  • Pls help me out (its urgent)

    hi
    i have connected two pcs using modem via PSTN using comm api in follwing sequences.
    1) My local modem calls to the Remote modem using the ATDT 235 command
    2) on remote side one program continuosly listens to the incoming call.
    3) After that my local modem detects the "CONNECT 9600" response.
    4) Also my remote modem detects the same response it waits for some time and start transmitting data.
    5) But my local modem is unable to receive some starting bytes and after some bytes it has receive it stops the receiving bytes.
    6) But when i terminate the remote program my local modem receives the whole set of bytes.
    Remote modem - DLINK DFM-562E++
    Local Modem - DLINK DFM-560ES
    i want to transfer data in a zip file and at local i will unzip it successfully
    THANKS IN ADVANCE

    Please try to come up with another explanation. However the error what prevents case from working is probably not Java's or your program's. See the manuals of your modems

  • Doubt in ORA_FFI(Its urgent)

    Hi,
    I've created a test.dll which contains caps func as follows:
    int caps()
         int * ptr=0x417;
         if (*ptr==64)
              return 1;
    else
    return 0;
    Then I called this func through ORA_FFI package..
    DECLARE
    dll_handle ORA_FFI.LIBHANDLETYPE;
    winexec_handle ORA_FFI.FUNCHANDLETYPE;
    vn_ret PLS_INTEGER;
    FUNCTION Runp( handle IN ORA_FFI.FUNCHANDLETYPE)
    RETURN PLS_INTEGER;
    PRAGMA INTERFACE(C, Runp, 11265);
    BEGIN
    break;
    dll_handle := ORA_FFI.REGISTER_LIBRARY(NULL,'test.dll');
    winexec_handle := ORA_FFI.REGISTER_FUNCTION(dll_handle,'caps');
    ORA_FFI.REGISTER_RETURN(winexec_handle,ORA_FFI.C_INT);
    vn_ret := Runp(winexec_handle);
    IF vn_ret = 2 THEN
    MESSAGE('Cannot find file ' );
    END IF;
    EXCEPTION WHEN OTHERS THEN
    FOR i IN 1..Tool_Err.NErrors LOOP
    message(Tool_Err.Message);
    Tool_Err.Pop;
    END LOOP;
    END;
    When I debug this code,It gives error as caps func not found in test.dll.
    But the only func in test.dll is caps..
    I'm using forms 6i in client server mode.
    I created test.dll using Microsoft visual c++ by creating new win32 Dynamic link library.
    One more doubt:
    How can I find functions in a already compiled DLL?
    Pls reply me..Its urgent..
    Adios..
    Prashanth Deshmukh

    Hi,
    refer these ,u will get some help
    Standard Buttons:
    https://www.sdn.sap.com/irj/sdn/wiki?path=/display/snippets/webDynproABAP-ALVControllingStandard+Buttons&
    alv-pfstatus:
    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_pfstatus.htm
    then how to capture that button click.
    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_ucomm.htm
    http://www.sapdevelopment.co.uk/reporting/alv/alvgrid_rowsel.htm

  • Delete duplicate entriess from the internal table its urgent pls help.

    Hi friends,
    Hope everybody is doing good,Here is m query on delete duplicate data from the intenal table.
    I have an internal table which contain data in the following format.
    Doc No Comp Cod Vendor Assignment
    1500000009 JM11 00000000
    1500000008 JM11 20070212(Repeating)
    1500000007 JM11 20070212
    1500000006 JM11 00000000
    1500000005 JM11 00000000
    1500000004 JM11 00000000(Repeating)
    1500000003 JM11 00000000 (Repeating)
    1500000002 JM11 00000000
    1500000001 JM11 20050302
    1500000000 JM11 00000000
    1500000003 JM11 10000088
    1500000001 JM11 10000088
    1500000030 JM11 10006260
    1500000010 JM11 10006269
    1500000008 JM11 10006269
    1500000006 JM11 10006269
    1500000004 JM11 10006269
    if you see the document numbers,there are some document number which are repeating here,there are some document numer which contain vendor number but not the assignments,some of the document numbers contain the assignments but not the vendors.
    If my internal table contain this kind of data with repeted document numbers than i want the document number which contains only the vendor number.
    Pls help me with the appropriate logic,its urgent.
    Thanks a lot
    mrutyun^

    Hi,
    <u><b>Deleting Adjacent Duplicate Entries</b></u>
    To delete adjacent duplicate entries use the following statement:
    DELETE ADJACENT DUPLICATE ENTRIES FROM <itab>
    [COMPARING <f1> <f2> ...
    |ALL FIELDS].
    The system deletes all adjacent duplicate entries from the internal table <itab>. Entries are
    duplicate if they fulfill one of the following compare criteria:
      Without the COMPARING addition, the contents of the key fields of the table must be
    identical in both lines.
      If you use the addition COMPARING <f1> <f2> ... the contents of the specified fields <f1>
    <f2> ... must be identical in both lines. You can also specify a field <fi> dynamically as
    the contents of a field <ni> in the form (<ni>). If <ni> is empty when the statement is
    executed, it is ignored. You can restrict the search to partial fields by
    specifying offset and length.
      If you use the addition COMPARING ALL FIELDS the contents of all fields of both lines
    must be identical.
    You can use this statement to delete all duplicate entries from an internal table if the table is
    sorted by the specified compare criterion.
    If at least one line is deleted, the system sets SY-SUBRC to 0, otherwise to 4.
    Examples
    DATA: BEGIN OF LINE,
    COL1 TYPE I,
    COL2 TYPE I,
    END OF LINE.
    DATA ITAB LIKE HASHED TABLE OF LINE WITH UNIQUE KEY COL1.
    DO 4 TIMES.
    LINE-COL1 = SY-INDEX.
    LINE-COL2 = SY-INDEX ** 2.
    INSERT LINE INTO TABLE ITAB.
    ENDDO.
    LINE-COL1 = 1.
    DELETE TABLE ITAB: FROM LINE,
    WITH TABLE KEY COL1 = 3.
    LOOP AT ITAB INTO LINE.
    WRITE: / LINE-COL1, LINE-COL2.
    ENDLOOP.
    The output is:
    2    4
    4   16
    The program fills a hashed table with a list of square numbers. The DELETE
    statement delete the lines from the table where the key field COL1 has the contents 1 or 3.
    Regards,
    Bhaskar

  • Respond soon, its urgent

    hi all,
    cud anyone tell me the display MENU (THE TRANSACTION CODE)for SEM
    pls, its urgent
    cheers
    prince

    UG00

  • Hi pls help me its urgent

    hi experts'
    i have to generate asset utilization report in webdynpro
    inputs for report are some rfcs
    i get result from rfcs
    i need to float report i used bussinessgraphic object
    its not interactive
    if i go for tables
    how to create tables with drill down inside table
    how to set color for each cell of table depending on condition
    please help me
    its urgent
    and send me code n link

    Hi Vani,
    Your requirement has many things
    1. How to call RFCs
       https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/webcontent/uuid/28113de9-0601-0010-71a3-c87806865f26?rid=/library/uuid/49f2ea90-0201-0010-ce8e-de18b94aee2d#15 [original link is broken]
    2. Once you have data, how to work with BusinessGraphics ?
      https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/ba2db0e5-0601-0010-9790-e271902f2c38
    (This docs contatins all the required info on webDynpro UIElements)
    3.Tables
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/webcontent/uuid/28113de9-0601-0010-71a3-c87806865f26?rid=/library/uuid/49f2ea90-0201-0010-ce8e-de18b94aee2d#46 [original link is broken]
    Regards,Anilkumar

  • Hi All, How we can handle a table control in bdc - in detail its urgent pls

    Hi All, How we can handle a table control in bdc - in detail its urgent. Please send me the explanation in detail.
    Thanks&regards.
    Bharat

    hi,
    Create Table Control
    • Step 1 (Create new structure for table control)
    Type is name of structure (ZTC_EKKO) and press create
    • Step 2 (Create Program)
    Goto transaction SE80(Object Navigator) -> Repository Browser -> Program.
    Enter your program name, please ensure that is begins with SAPMZ…… as this is a module pool (dialog program).
    Press enter to create, and press yes!
    Ensure that you create a top include, and press Enter.
    Accept the name created for the top include.
    Press Enter.
    Press Save
    • Step 3 (Create TOP include)
    Double click on the top include and enter following ABAP code:
    Tables: ZTC_EKKO.
    controls: tc100 type tableview using screen 100.
    data: ok_code type sy-ucomm.
    data: it_ekko type standard
    table of ZTC_EKKO initial size 0,
    wa_ekko type ZTC_EKKO.
    data: ok_code type sy-ucomm.
    Press Save and Activate
    • Step 4 (Create screen)
    Right click the program to create a screen 100 for the dialog. Enter Short description, set screen type to Normal and enter 0 or blank into Next screen. Then move to Element List tab and enter the OK code as OK_CODE (i.e. the same as what you declared in the top include with data: ok_code type sy-ucomm).
    • Step 5 (Create table control)
    Press the Layout button to bring up the screen painter editor.
    Press table control button and drag it on to the screen, enter the name of table control created in TOP include (TC100). Now press the yellow button for attributes and set the table control as below options
    • Step 6 (Populate table control )
    Press the orange button (Fields). On the next screen enter ZTC_EKKO and press the ‘Get from Dict’ button. Select the fields you want (all) and press enter. Now drag them onto your Table Control.
    Below is the result, there will been syntax errors if we check now! So Save and go back into the flow logic tab.
    • Step 7 (Create flow control )
    Within the flow logic of screen 100 and create two modules, one to select the data from the database and the other to move the selected fields into the table control. Also insert the two loop statements to populate and retrieve the lines of the table control.
    PROCESS BEFORE OUTPUT.
    MODULE STATUS_0100.
    module data_retrieval.
    loop at it_ekko into wa_ekko with control TC100.
    module populate_screen.
    endloop.
    PROCESS AFTER INPUT.
    loop at it_ekko.
    endloop.
    MODULE USER_COMMAND_0100.
    Double click the module data_retrieval to create and click yes to get past the popup. Ensure that a new include is created to hold all the PBO modules (default). Press enter.
    Select 10 rows of data from the EKKO table and load into the internal table it_ekko. Go back to the flow logic to load this data into the Table Control.
    check this one
    REPORT ZCALL_TRANS_TAB1 .
    TABLES: LFA1,LFBK,lfb1.
    data: BEGIN OF it_vendor occurs 0,
    LIFNR LIKE LFA1-LIFNR,
    bukrs like lfb1-bukrs,
    END OF it_vendor.
    DATA: BEGIN OF IT_BANK occurs 0,
    LIFNR LIKE LFA1-LIFNR,
    BANKS LIKE LFBK-BANKS,
    BANKL LIKE LFBK-BANKL,
    BANKN LIKE LFBK-BANKN,
    koinh like lfbk-koinh,
    END OF IT_BANK.
    data: it_bdcdata like bdcdata occurs 0 with header line.
    data: it_messages like bdcmsgcoll occurs 0 with header line.
    *selection screen.
    selection-screen: begin of block b1 with frame.
    parameters: p_file like rlgrap-filename default 'c:/vendor.txt'
    obligatory.
    parameters: p_file1 like rlgrap-filename default 'c:/xyz.txt'
    obligatory.
    selection-screen: end of block b1.
    *at selection screen.
    at selection-screen on value-request for p_file.
    perform f4_help using p_file.
    at selection-screen on value-request for p_file1.
    perform f4_help1 using p_file1.
    *start of selection
    start-of-selection.
    *******uploading file
    perform upload_file using p_file P_FILE1.
    ******open session.
    perform populate_data.
    *& Form f4_help
    form f4_help using p_p_file.
    data: l_file type ibipparms-path.
    call function 'F4_FILENAME'
    importing
    file_name = l_file.
    p_file = l_file.
    endform. " f4_help
    *& Form POPULATE_DATA
    form populate_data .
    DATA: L_STRING TYPE STRing.
    DATA: L_COUNTER(2) TYPE n.
    loop at it_vendor.
    perform bdc_dynpro using 'SAPMF02K' '0106'.
    perform bdc_field using 'BDC_CURSOR'
    'RF02K-D0130'.
    perform bdc_field using 'BDC_OKCODE'
    '/00'.
    perform bdc_field using 'RF02K-LIFNR'
    it_vendor-lifnr.
    perform bdc_field using 'RF02K-BUKRS'
    it_vendor-bukrs.
    perform bdc_field using 'RF02K-D0130'
    'X'.
    perform bdc_dynpro using 'SAPMF02K' '0130'.
    perform bdc_field using 'BDC_CURSOR'
    'LFBK-bankn(03)'.
    perform bdc_field using 'BDC_OKCODE'
    '=UPDA'.
    *********bank details
    CLEAR l_COUNTER.
    LOOP AT IT_BANK WHERE LIFNR = IT_VENDOR-LIFNR.
    l_COUNTER = l_COUNTER + 1.
    clear l_string.
    CONCATENATE 'lfbk-banks(' l_counter ')' into l_string.
    perform bdc_field using l_string
    it_bank-banks.
    clear l_string.
    CONCATENATE 'lfbk-bankl(' l_counter ')' into l_string.
    perform bdc_field using l_string
    it_bank-bankl.
    clear l_string.
    CONCATENATE 'lfbk-bankn(' l_counter ')' into l_string.
    perform bdc_field using l_string
    it_bank-bankn.
    endloop.
    ******CALL TRANSACTION.
    call transaction 'FK02' using it_bdcdata mode 'A'
    messages into it_messages.
    write:/ sy-subrc.
    perform format_messages.
    clear it_bdcdata.
    refresh it_bdcdata.
    endloop.
    endform. " POPULATE_DATA
    *& Form FORMAT_MESSAGES
    form format_messages .
    data: l_msg(100).
    loop at it_messages.
    call function 'FORMAT_MESSAGE'
    exporting
    id = it_messages-msgid
    lang = sy-langu
    no = it_messages-msgnr
    v1 = it_messages-msgv1
    v2 = it_messages-msgv2
    v3 = it_messages-msgv3
    v4 = it_messages-msgv4
    importing
    msg = l_msg
    exceptions
    not_found = 1
    others = 2
    write:/ l_msg.
    endloop.
    endform. " FORMAT_MESSAGES
    *& Form bdc_dynpro
    form bdc_dynpro using value(p_program)
    value(p_screen).
    it_bdcdata-program = p_program.
    it_bdcdata-dynpro = p_screen.
    it_bdcdata-dynbegin = 'X'.
    append it_bdcdata.
    clear it_bdcdata.
    endform. " bdc_dynpro
    *& Form bdc_field
    form bdc_field using value(p_fnam)
    value(p_fval).
    it_bdcdata-fnam = p_fnam.
    it_bdcdata-fval = p_fval.
    append it_bdcdata.
    clear it_bdcdata.
    endform. " bdc_field
    *& Form upload_file
    form upload_file using p_p_file
    p_p_file1.
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
    CODEPAGE = ' '
    FILENAME = P_P_FILE
    FILETYPE = 'DAT'
    HEADLEN = ' '
    LINE_EXIT = ' '
    TRUNCLEN = ' '
    USER_FORM = ' '
    USER_PROG = ' '
    DAT_D_FORMAT = ' '
    IMPORTING
    FILELENGTH =
    TABLES
    data_tab = IT_VENDOR
    EXCEPTIONS
    CONVERSION_ERROR = 1
    FILE_OPEN_ERROR = 2
    FILE_READ_ERROR = 3
    INVALID_TYPE = 4
    NO_BATCH = 5
    UNKNOWN_ERROR = 6
    INVALID_TABLE_WIDTH = 7
    GUI_REFUSE_FILETRANSFER = 8
    CUSTOMER_ERROR = 9
    NO_AUTHORITY = 10
    OTHERS = 11
    IF sy-subrc <> 0.
    MESSAGE I000(ZZ) WITH 'UNABLE TO UPLOAD'.
    STOP.
    ENDIF.
    *******UPLOADING BANK DETAILS
    CALL FUNCTION 'WS_UPLOAD'
    EXPORTING
    CODEPAGE = ' '
    FILENAME = P_P_FILE1
    FILETYPE = 'DAT'
    HEADLEN = ' '
    LINE_EXIT = ' '
    TRUNCLEN = ' '
    USER_FORM = ' '
    USER_PROG = ' '
    DAT_D_FORMAT = ' '
    IMPORTING
    FILELENGTH =
    TABLES
    data_tab = IT_BANK
    EXCEPTIONS
    CONVERSION_ERROR = 1
    FILE_OPEN_ERROR = 2
    FILE_READ_ERROR = 3
    INVALID_TYPE = 4
    NO_BATCH = 5
    UNKNOWN_ERROR = 6
    INVALID_TABLE_WIDTH = 7
    GUI_REFUSE_FILETRANSFER = 8
    CUSTOMER_ERROR = 9
    NO_AUTHORITY = 10
    OTHERS = 11
    IF sy-subrc <> 0.
    MESSAGE I000(ZZ) WITH 'UNABLE TO UPLOAD'.
    STOP.
    ENDIF.
    endform. " upload_file
    *& Form f4_help1
    -->P_P_FILE1 text
    form f4_help1 using p_p_file1.
    data:l_file1 type ibipparms-path.
    CALL FUNCTION 'F4_FILENAME'
    IMPORTING
    FILE_NAME = l_file1.
    p_file1 = l_file1.
    endform. " f4_help1
    http://sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
    Regards,
    Sankar

  • Its urgent pls help me .

    how can i call a portal from webdynpro application
    my requirment is
    i was created webdynpro application.
    in that i was created one view . in that i was created one button (go).
    if i click that button i want move some other portal.
    how can i acchive pls help me.
    its urgent.
    pls send any example programe
    Message was edited by:
            madipadiga nagaraju
    Message was edited by:
            madipadiga nagaraju

    hi,
    there is no direct tcode for going to webdynpro component/interfaces in ecc 6.0.
    but u have se58 in ecc 5.0,as webdynpro convertor.u give ur program name and click web dynpro convertor button then it takes u to se80 .but this wda(webdynpro abap) component comes as in application tree hierarchy .
    i can say in wda component refers a class .if u select webdynpro component/interface,it ask u to create a class or interface.
    after that it automatically generate component controller(it is also a class),
    interface view and windows.all these 3 are classes.for every window one interface view will be created.ie.. window is internal visible where as interface view is external visible.
    u create view and embed these views in windows.by going to the window layout,right click on the window name and click embed view.u can enbed as many view as u wish.in order to navigate from one view to other view ,click  "create navigation" by right clicking the view plugs.
    by default windows and view have inbound plugs.this is literally a event of that class.
    if u want to navigate from view1 to view2 ,create outbound plug for view1,the click outbound plug of view1 and right click the click create navigation the select inbound plug of view2.
    then create a application .this is simillar of creating an object.
    click on this object and test .this will open in browser.
    for deploying u have use "sap webdynpro iview".

  • Workspace  error.pls its urgent

    Hi All,
    I have installed hyperion 11.1.1.2 version.When I have configured workspace,I am getting the following error"Register with shared services status is failed"
    Anyone could help me for this.
    Please its Urgent for me.
    Many thanks to all
    selva

    hmmmm... this is a forum... not an online training portal....
    You can google and find out how to create JSP(stepwise)
    http://java.sun.com/products/jsp/docs.html

  • How to calculate the size of the heap memory? its urgent pls

    i had a task in which i need to calculate the size of the heap memory can anybody help me its urgent pls

    http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html
    Specifically:
    max/total/freeMemory()
    http://javaalmanac.com/egs/java.lang/GetHeapSize.html?l=new

  • Hi All requirement on Purchase Order.Its Urgent

    Hi All,
            Pls provide me the soure code for the following requirement ASAP. Its urgent.
    Program: Z_PO_PRINT_MAIL
    Transaction: ZPOP
    Purchase order number: (should be a parameter not a select option) (Code the lookup using search help MEKK)
    Radio button for:     1. Print Preview
                   2. Print
                   3. E-mail
    Additional parameters based on above selection:
    1.     No additional parameters needed
    2.     Printer (code the F4 to search printers)(default user’s default printer)
    3.     E-mail address, cc (should also have same validations as e-mail address)
    Description:
    On pressing enter, use the Purchase order number to look up vendor number and name and display either to the right or below the purchase order number.
    Vendor Number: EKPO-LIFNR
    Vendor Name:    LFA1-NAME1
    1.     Print Preview: Use function ME_DISPLAY_PURCHASE_DOCUMENT with 2 parameters only:
    I_EBELN = PO Number
    I_PREVIEW = ‘X’
    2.     Print:  For this we have to do a BDC.Use transaction ME9F. Enter the purchase order number, blank out the rest. Select the first message, hit ‘Message details’. Enter a new message via Edit>new Entries. For new entries, you will need to enter ‘NEU’ for Output type with Medium 1 (Print output). Hit enter. Select the message and click on further data. Set dispatch time to 4. Green arrow back. Select the message and click on “Communication” method. Enter the ‘Logical destination’ as the printer, select ‘Print Immediately’ and ‘Release after output’. Green arrow back and save.
    3.     E-mail: Use the following function modules:
    ECP_PO_OTF_CREATE
    CONVERT_OTF_2_PDF
    SO_NEW_DOCUMENT_ATT_SEND_API1

    Hi,
    You can explore following link for more details;
    http://www.sap-basis-abap.com/sapmo017.htm
    http://www.erpgenie.com/sap/sapfunc/purchasing.htm
    Bye,
    Muralidhara

  • Can anyone help me to solve this code , its in a swing , jseparator...

    hey
    can any one solve this code ??
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class File1 extends JFrame
              public static void showgui()
                   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                   JLabel emptyLabel = new JLabel("");
         emptyLabel.setPreferredSize(new Dimension(640, 480));
         frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);
                   JButton b1= new JButton("JENIS");
                   add(b1);
                   b1.setBounds(350,220,120,20);
                   JSeparator jE =new JSeparator(JSeparator.HORIZONTAL);
                   jE.setBounds(350, 205, 120, 20);
                   add(jE);
                   add(new JSeparator(JSeparator.HORIZONTAL));
                   JButton b2= new JButton("MODI");
                   add(b2);
                   b2.setBounds(100,210,100,100);
                   frame.pack();
         frame.setVisible(true);
    public static void main(String[] args)
         javax.swing.SwingUtilities.invokeLater(new Runnable()
              public void run()
                   showgui();
    actually i want to use jseparator , so if this cant be solved , send me another code that uses jseparator and gives the vertical / horizontal line between two buttons??
    Its urgent ,
    waiting for reply............

    Hi,
    Is this ok?
    public class NewJFrameSep extends javax.swing.JFrame {
            public NewJFrameSep() {
            initComponents();
        private void initComponents() {
            jSeparator1 = new javax.swing.JSeparator();
            jButton1 = new javax.swing.JButton();
            jButton2 = new javax.swing.JButton();
            getContentPane().setLayout(null);
            setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
            getContentPane().add(jSeparator1);
            jSeparator1.setBounds(110, 120, 170, 100);
            jButton1.setText("jButton1");
            getContentPane().add(jButton1);
            jButton1.setBounds(160, 80, 71, 23);
            jButton2.setText("jButton2");
            getContentPane().add(jButton2);
            jButton2.setBounds(160, 140, 71, 23);
            pack();
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new NewJFrameSep().setVisible(true);
       private javax.swing.JButton jButton1;
        private javax.swing.JButton jButton2;
        private javax.swing.JSeparator jSeparator1;
    }regards
    dina

  • Maximize Purchase Order -- Error -- Its Urgent!!!!

    Hai To All,
                  Iam customizing Purchase Order Form. There iam adding one button near cancel button. If i maximum purchase order form i got the following error and SAP Application is closed.
    The instruction at "0x77fcb333" referenced memory at "0x000c0101". The memeory could not be "written".
    Click on OK to terminate the program
    Click on CANCEL to debug the program
    OK           CANCEL
    Can anyone help me........... Its Urgent
    Regards,
    Anitha
    Edited by: ani nazir on Mar 27, 2008 11:43 AM

    Hello Petr,
             S where i change place also its showing error.
    The following code i used to place the button
    oItem = PO_Frm.Items.Add("rm", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
                oItem.Left = PO_Frm.Items.Item("2").Left + 75 '150 '
                oItem.Width = PO_Frm.Items.Item("2").Width  '65 'PO_Frm.Items.Item("51").Width
                oItem.Height = PO_Frm.Items.Item("2").Height '20 '
                oItem.Top = PO_Frm.Items.Item("2").Top + 10 '505 '
                oItem.Visible = True
                oItem.Enabled = True
                Dim d As SAPbouiCOM.Button = oItem.Specific
                d.Caption = "RateMaster"
    Regards,
    Anitha

Maybe you are looking for

  • Fixed Asset Additions Report

    Hello, Is there a way to run a fixed asset addition report in SAP and then export it into excel?  I have run S_ALR_87012058, however, there is no way to export this into excel.  Can anyone help please? Thank you, Lesley-Anne

  • Export from LR to PS no longer works

    I just updated to Camera Raw8.3 and now when I'm in LR5.3 and attempt to edit an image in PS5, the image does not move from LR to PS. Should I just go back to a previous CR version?

  • SAPscript - to print a checkbox

    HI ALL, I need to print a check box and a tick mark in the check box in SAPSCRIPT.Kindly send a sample code Thanks Points will be rewarded

  • How to set Google to UK version

    Does anyone know how I can set the inbuilt Google search engine in Safari to search Google.co.uk instead of Google.com? I get too many non-UK resulst for my searches and I'd like to hone them down. Thanks!

  • Solaris 10 display configuration in x86

    Hi, Can anybody give the command for the display resolution configuration from command prompt in solaris 10. Regards, rsvk