************************************************************************
*  Author  - Sheila Titchener                                          *
*  Program - Report of orders with billing/delivery blocks
*  Date    - October 1998                                              *
*  Company - IconeT Services                                         *
************************************************************************
************************************************************************
REPORT YVREE024 LINE-SIZE 185 LINE-COUNT 63 NO STANDARD PAGE HEADING.
*---------------------------------------------------------------------*
*       DATA DECLARATIONS                                             *
*---------------------------------------------------------------------*
TABLES:  VBAK, VBAP, VBEP, KNA1, TVFST, TVLST.
* Selection screens.
*-----------------------------------------------------------------------
* mandatory parameters
SELECTION-SCREEN  BEGIN OF BLOCK PARAMETERS
                  WITH FRAME
                  TITLE TEXT-020 .
PARAMETERS:       P_VKORG LIKE VBAK-VKORG OBLIGATORY ,
                  P_VTWEG LIKE VBAK-VTWEG OBLIGATORY ,
                  P_SPART LIKE VBAK-SPART OBLIGATORY .
SELECTION-SCREEN  END OF BLOCK PARAMETERS.
*-----------------------------------------------------------------------
* optional selection ranges
SELECTION-SCREEN  BEGIN OF BLOCK SELECT_CRITERIA
                  WITH FRAME
                  TITLE TEXT-010 .
SELECT-OPTIONS:
                  S_VKBUR FOR VBAK-VKBUR,
                  S_VKGRP FOR VBAK-VKGRP,
                  S_KUNNR FOR VBAK-KUNNR.
SELECTION-SCREEN  END OF BLOCK SELECT_CRITERIA .
* Order header table.
DATA: BEGIN OF I_VBAK OCCURS 0,
      VBELN LIKE VBAK-VBELN,
      KUNNR LIKE VBAK-KUNNR,
      FAKSK LIKE VBAK-FAKSK,           "billing block
      LIFSK LIKE VBAK-LIFSK,           "delivery block
      END OF I_VBAK.
* report table
DATA: BEGIN OF ITAB OCCURS 0,
           VBELN LIKE VBAP-VBELN,      " Order Number
           KUNNR LIKE VBAK-KUNNR,      " Customer Number
           NAME1 LIKE KNA1-NAME1,      " Customer Name
           ERNAM LIKE VBAK-ERNAM,      " User created
           POSNR LIKE VBAP-POSNR,      " Line Item
           MATNR LIKE VBAP-MATNR,      " Material Number
           KWMENG LIKE VBAP-KWMENG,    " Quantity
           MEINS LIKE VBAP-MEINS,      " Unit of measure
           NETWR LIKE VBAP-NETWR,      " value
           FAKSP LIKE VBAP-FAKSP,      " billing block
           LIFSP LIKE VBEP-LIFSP,      " delivery block
END OF ITAB.
*---------------------------------------------------------------------*
INITIALIZATION .
  GET PARAMETER ID 'VKO' FIELD P_VKORG.
  GET PARAMETER ID 'VTW' FIELD P_VTWEG.
  GET PARAMETER ID 'SPA' FIELD P_SPART.
*---------------------------------------------------------------------*
START-OF-SELECTION .
*---------------------------------------------------------------------*
*  populate vbak table from selection criteria with headers that have
*  billing or delivery blocks
  PERFORM SELECT_DOCUMENTS.
*  select blocked items from documents selected from vbak
  PERFORM SELECT_BLOCKED_ITEMS.
*---------------------------------------------------------------------*
END-OF-SELECTION.
*---------------------------------------------------------------------*
  SORT ITAB BY VBELN POSNR.
*  print report from internal table
  PERFORM PRINT_REPORT.
* run report of orders with payment block on customer
SUBMIT YVREE025  EXPORTING LIST TO MEMORY
                AND RETURN
                WITH P_VKORG = P_VKORG
                WITH P_VTWEG = P_VTWEG
                WITH P_SPART = P_SPART
                WITH S_VKBUR IN S_VKBUR
                WITH S_VKGRP IN S_VKGRP
                WITH S_KUNNR IN S_KUNNR.
DATA: ABAPLIST LIKE ABAPLIST OCCURS 0.
* recover YVREE025 report and display
CALL FUNCTION 'LIST_FROM_MEMORY'
     TABLES
          LISTOBJECT = ABAPLIST
     EXCEPTIONS
          NOT_FOUND  = 1
          OTHERS     = 2.
*if sy-batch = space.
CALL FUNCTION 'DISPLAY_LIST'
     EXPORTING
          FULLSCREEN            = 'X'
*         CALLER_HANDLES_EVENTS =
     IMPORTING
          USER_COMMAND          = SY-UCOMM
     TABLES
          LISTOBJECT            = ABAPLIST
     EXCEPTIONS
          EMPTY_LIST            = 1
          OTHERS                = 2.
*else.
* using write_list duplicates yvree024 headings on yvree025 list
* display_list prints ok in background as long as print immediately is
* NOT switched off
*call function 'WRITE_LIST'
*     tables
*          listobject = abaplist
*     exceptions
*          empty_list = 1
*          others     = 2.
*endif.
*---------------------------------------------------------------------*
TOP-OF-PAGE.
*---------------------------------------------------------------------*
*  write top of page title.
  PERFORM WRITE_TITLE .
*  write column headings.
  PERFORM WRITE_HEADER.
*&---------------------------------------------------------------------*
*&      Form  SELECT_DOCUMENTS
*&---------------------------------------------------------------------*
*       select order header details from vbak depending on selection
*       criteria entered
*----------------------------------------------------------------------*
FORM SELECT_DOCUMENTS.
  SELECT VBELN KUNNR LIFSK FAKSK
         FROM  VBAK INTO CORRESPONDING FIELDS OF TABLE I_VBAK
         WHERE  VKORG       = P_VKORG
         AND    VTWEG       = P_VTWEG
         AND    SPART       = P_SPART
         AND    VKGRP      IN S_VKGRP
         AND    VKBUR      IN S_VKBUR
         AND    KUNNR      IN S_KUNNR.
ENDFORM.                               " SELECT_DOCUMENTS
*&---------------------------------------------------------------------*
*&      Form  SELECT_BLOCKED_ITEMS
*&---------------------------------------------------------------------*
*       check extracted documents for blocks                           *
*----------------------------------------------------------------------*
FORM SELECT_BLOCKED_ITEMS.
* process oders selected
  LOOP AT I_VBAK.
* if order blocked at header level select all items
    IF I_VBAK-FAKSK NE SPACE OR I_VBAK-LIFSK NE SPACE.
      PERFORM SELECT_ALL_ITEMS.
    ELSE.
* check for block at item level
      SELECT VBELN POSNR MATNR KWMENG MEINS NETWR FAKSP  ERNAM
                FROM  VBAP INTO
          (VBAP-VBELN,  VBAP-POSNR, VBAP-MATNR, VBAP-KWMENG, VBAP-MEINS,
             VBAP-NETWR, VBAP-FAKSP, VBAP-ERNAM)
             WHERE  VBELN       = I_VBAK-VBELN.
        IF VBAP-FAKSP NE SPACE.
          CLEAR ITAB.
          MOVE-CORRESPONDING VBAP TO ITAB.
          MOVE I_VBAK-KUNNR TO ITAB-KUNNR.
          APPEND ITAB.
        ELSE.
* check for block at delivery level
          SELECT LIFSP WMENG FROM  VBEP INTO
                (VBEP-LIFSP, VBEP-WMENG)
                 WHERE  VBELN       = I_VBAK-VBELN
                 AND    POSNR       = VBAP-POSNR.
            IF VBEP-LIFSP NE SPACE.
              CLEAR ITAB.
              MOVE-CORRESPONDING VBAP TO ITAB.
              MOVE I_VBAK-KUNNR TO ITAB-KUNNR.
* use schedule qty
              MOVE VBEP-WMENG TO ITAB-KWMENG.
* and reason
              MOVE VBEP-LIFSP TO ITAB-LIFSP.
* recalculate value
              ITAB-NETWR = ITAB-NETWR / VBAP-KWMENG * VBEP-WMENG.
              APPEND ITAB.
            ENDIF.
          ENDSELECT.
        ENDIF.
      ENDSELECT.
    ENDIF.
  ENDLOOP.
ENDFORM.                               " SELECT_BLOCKED_ITEMS
*&---------------------------------------------------------------------*
*&      Form  PRINT_REPORT
*&---------------------------------------------------------------------*
*       text                                                           *
*----------------------------------------------------------------------*
FORM PRINT_REPORT.
  DATA: W_REASON_TEXT(25).
  LOOP AT ITAB.
* get name
    SELECT SINGLE NAME1 FROM  KNA1 INTO KNA1-NAME1
           WHERE  KUNNR       = ITAB-KUNNR .
* get reason text
    IF ITAB-FAKSP NE SPACE.
      SELECT SINGLE VTEXT  FROM  TVFST INTO W_REASON_TEXT
             WHERE  SPRAS       = SY-LANGU
             AND    FAKSP       = ITAB-FAKSP .
    ELSE.
      SELECT SINGLE VTEXT FROM  TVLST INTO W_REASON_TEXT
             WHERE  SPRAS       = SY-LANGU
             AND    LIFSP       = ITAB-LIFSP.
    ENDIF.
*
    WRITE: / SY-VLINE , (10) ITAB-VBELN,
            SY-VLINE , (10) ITAB-KUNNR,
            SY-VLINE , (35) KNA1-NAME1,
            SY-VLINE , (12) ITAB-ERNAM,
            SY-VLINE , (6) ITAB-POSNR,
            SY-VLINE , (18) ITAB-MATNR,
            SY-VLINE , (10) ITAB-KWMENG DECIMALS 0,
            SY-VLINE , (3) ITAB-MEINS,
            SY-VLINE , (15) ITAB-NETWR,
            SY-VLINE , (02) ITAB-LIFSP,
            SY-VLINE , (02) ITAB-FAKSP,
            SY-VLINE , (25) W_REASON_TEXT,
            SY-VLINE .
  ENDLOOP.
  WRITE:/1(185) SY-ULINE.
ENDFORM.                               " PRINT_REPORT
*---------------------------------------------------------------------*
*       FORM WRITE_TITLE                                              *
*---------------------------------------------------------------------*
* Form to write top of page title.                                    *
*---------------------------------------------------------------------*
FORM WRITE_TITLE.
  WRITE:/1(185) SY-ULINE.
  WRITE:/   'Pirelli Cables Limited'      ,
          40 SY-TITLE   ,              " Report title
         120 'Date  :'  ,  130 SY-DATUM   .
  WRITE:/120 'Page  :'  ,
         130 SY-PAGNO   ,              " Page number of the report
         160 'YV24 / YVREE024 /', SY-MANDT.
  WRITE:/160 'Report 2 of 2'.
  WRITE:/1(185) SY-ULINE.
* format color col_heading intensified off.
  WRITE:/(25) 'Report generated for; ',
          'Sales Organisation:',
          P_VKORG    ,
         '        Distribution Channel:',
           P_VTWEG,
         '        Division:',
           P_SPART.
  WRITE: /27
           'Sales Office:',
            S_VKBUR-LOW.
  IF S_VKBUR-HIGH NE SPACE.
    WRITE: ' - ', S_VKBUR-HIGH.
  ENDIF.
  WRITE: 59 ' Sales Group:',
             S_VKGRP-LOW.
  IF S_VKGRP-HIGH NE SPACE.
    WRITE: ' - ', S_VKGRP-HIGH.
  ENDIF.
  WRITE: 92 ' Customer:',
              S_KUNNR-LOW.
  IF S_KUNNR-HIGH NE SPACE.
    WRITE: ' - ', S_KUNNR-HIGH.
  ENDIF.
  WRITE:/1(185) SY-ULINE.
ENDFORM.
*---------------------------------------------------------------------*
*       FORM WRITE-HEADER                                             *
*---------------------------------------------------------------------*
*   Form to write Column headings                                     *
*---------------------------------------------------------------------*
FORM WRITE_HEADER.
  SKIP.
  FORMAT COLOR COL_HEADING INTENSIFIED.
  WRITE:/1(185) SY-ULINE.
  WRITE:/
          SY-VLINE , (10) '   Order  ' ,
          SY-VLINE , (10) ' Customer ' ,
          SY-VLINE , (35) ' Name     ' ,
          SY-VLINE , (12) ' User created',
          SY-VLINE , (06) ' Item '     ,
          SY-VLINE , (18) '   Material',
          SY-VLINE , (10) 'Quantity' CENTERED DECIMALS 0,
          SY-VLINE , (03) 'UOM'        ,
          SY-VLINE , (15) ' Value     ',
          SY-VLINE , (02) 'DB',
          SY-VLINE , (02) 'BB',
          SY-VLINE , (25) ' Reason',
          SY-VLINE .
ENDFORM.
*&---------------------------------------------------------------------*
*&      Form  SELECT_ALL_ITEMS
*&---------------------------------------------------------------------*
*   select  all items for this  header when blocked at header level   *
*----------------------------------------------------------------------*
FORM SELECT_ALL_ITEMS.
  SELECT VBELN POSNR MATNR KWMENG MEINS NETWR ERNAM
            FROM  VBAP INTO
      (VBAP-VBELN,  VBAP-POSNR, VBAP-MATNR, VBAP-KWMENG, VBAP-MEINS,
         VBAP-NETWR, VBAP-ERNAM)
*  REMOVED                 appending corresponding fields of table itab
         WHERE  VBELN       = I_VBAK-VBELN.
    MOVE-CORRESPONDING VBAP TO ITAB.
    MOVE I_VBAK-FAKSK TO ITAB-FAKSP.
    MOVE I_VBAK-LIFSK TO ITAB-LIFSP.
    MOVE I_VBAK-KUNNR TO ITAB-KUNNR.
    APPEND ITAB.
  ENDSELECT.
ENDFORM.                               " SELECT_ALL_ITEMS
ABAP/4,ABAP report,Interactive Report Example,ALV grid Example,ALV list,IDOC,User Exit,RFC,Smartform,sapscript,ABAP Performance,Remote Function Module( RFC ),Function Module,ABAP Sample Code,ABAP tools,ALV report Generator,ABAP Interview Questions,BDC,BAPI,ALE,BADI,EDI,InternalTable,Data Structure,LSMW,Domain,DataElement,Basis and Administration,ABAP HR development,ABAPDebugger,BW,Exception Handling,Download FI, CO, MM, PP, SD, PM, PS, QM, SM, HR, BW, APO,ABAP Tutorial
Thursday, October 18, 2007
Subscribe to:
Post Comments (Atom)
Sample ABAP Code
- Sample ABAP Program to Upload table using new function GUI_UPLOAD
- Sample ABAP Program for Submitting report with selection table
- Sample ABAP Program for Sending SAP Mail
- Sample ABAP Program for Search Layout sets for given String
- Sample ABAP Program for Sapscript PerForm Module
- Sample ABAP Program for Create IDOC
- Sample ABAP Program for Output file to application server then send mail with Download details
- Sample ABAP Program for Module Pool Skeleton
- Sample ABAP Program for Module Pool containing screen loop processing
- Sample ABAP Program for MB1B Call Transaction
- Sample ABAP Program of Function Module to Convert Work Center into Personnel Number
- Sample ABAP Program of FTP Function Module
- Sample ABAP Program to EXPORT LIST TO MEMORY
- Sample ABAP Program to Execute Unix command from within SAP
- Sample ABAP Program to Get Output in EXCEL
- Sample ABAP Program to Implement EDI
- Sample Program to dynamically change upload/download program for any Table
- Sample ABAP Program to download table using new function GUI_DOWNLOAD
- Sample ABAP Program to Download file to Presentation Server
- Sample ABAP Program to display pop message to avoid abort
- Sample ABAP Program of ALV Grid
- Sample ABAP Program of Dialogue Module Pool
- Sample ABAP Program to DIALOGUE FLOW LOGIC
- Sample ABAP Program to Delete a file from the application server
- Sample ABAP Program to Compare to Unix or PC files and print differences
- Sample ABAP Program to Colour cells in ALV
- Sample ABAP Program to Calculate difference between date/times in hours
- Sample ABAP Program of BW User Exit
- Sample ABAP Program of ALV Grid control using OO methods
- Browse a file on the application server
 
No comments:
Post a Comment