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

SALES REPOTS

Former Member
0 Kudos

Hi

Can any body can help me in giving some examples of sales reports

Thanks n regards

srinivas

4 REPLIES 4

Former Member
0 Kudos

Hi,

REPORT  zche_sales_order                        .

****************************Declarations********************************
TABLES: vbkd,vepvg.",vbak,vbap,vbpa,vakpa, vapma.

DATA: BEGIN OF sal OCCURS 0,
      ch TYPE checkbox,
      vbeln LIKE vbak-vbeln, " sales document
      netwr LIKE vbak-netwr, "Net Value of the SalesOrder
      matnr LIKE vbap-matnr, "material no.
      waerk LIKE vbak-waerk, "curr.
      dat   LIKE vbak-erdat, "date.
      END OF sal.
DATA: newsal LIKE sal OCCURS 0 WITH HEADER LINE.

DATA: amount LIKE vbak-netwr, date2(15),date3(8),date4(1),
      date5(2),date6(2).

DATA: lin LIKE sy-curow VALUE 1,"Screens, vertical cursor position at
                                 "PAI available in SYST struc.
      checkbox        TYPE c               ,
      dat LIKE vbak-erdat.

*******************Selection**Screen**Design****************************
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-001.
PARAMETERS: vkorg LIKE vepvg-vkorg,
            vtweg LIKE vepvg-vtweg,
            spart LIKE vepvg-spart.
SELECT-OPTIONS date FOR vbkd-bstdk DEFAULT sy-datum TO sy-datum
                                            OBLIGATORY.
SELECTION-SCREEN END OF BLOCK blk1.

SELECTION-SCREEN BEGIN OF BLOCK blk2 WITH FRAME TITLE text-002.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN POSITION 10.
PARAMETERS: chk1 AS CHECKBOX.
SELECTION-SCREEN POSITION 20.
PARAMETERS: kunnr1 LIKE vbpa-kunnr.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK blk2.

********************First**Level**Operation*****************************
IF chk1 <> 'X'.
  IF vkorg <> ''.
    PERFORM organisation.
  ELSE.
    PERFORM organisation_else.
  ENDIF.

ELSE.
  IF vkorg <> ''.
    PERFORM cus_orga.
  ELSE.
    PERFORM cus_orga_else.
  ENDIF.
ENDIF.


* Displaying the contents which is selected from table by
*  -selection conditions
SORT sal BY dat.

LOOP AT sal.
  ON CHANGE OF sal-dat.
*    FORMAT HOTSPOT ON.
    IF sy-tabix = 1.
      WRITE: sy-vline, sal-ch AS CHECKBOX,sal-dat .
      CLEAR amount.
    ELSE.
      WRITE:sy-vline, amount,/ sy-vline, sal-ch AS CHECKBOX,sal-dat.
      CLEAR amount.
    ENDIF.
  ENDON.
  amount = amount + sal-netwr.
  AT LAST.
    WRITE:sy-vline, amount.
    ULINE.
    SUM.
*    FORMAT HOTSPOT OFF.
    FORMAT COLOR = 3.
    WRITE:/ ' Total Amount:', sal-netwr UNDER amount.
  ENDAT.
ENDLOOP.

**********************Interaction with report**************************

SET PF-STATUS 'BANU'. " To create Application ToolBar for Display 
Button
*                          To verify Double click on BANU

AT USER-COMMAND. " This will execute after pressing Display Button
  CASE sy-ucomm.
    WHEN 'DISP'.
    free newsal.
      DO.
        READ LINE lin FIELD VALUE sal-ch INTO checkbox.
        IF sy-subrc NE 0. EXIT. ENDIF.
        IF checkbox = 'X'.
          PERFORM datecon.
          PERFORM process.
        ENDIF.
        lin = lin + 1.
      ENDDO.
      PERFORM selection.
  ENDCASE.

************************ SUB ROUTINE Area 
******************************
*This Process SubRoutine will assign the values from current
*   -InternalTable (sal) into other IT(newsal), by date which is
*         - selected by CheckBox
FORM process.
  LOOP AT sal WHERE dat = dat.
    newsal-ch    = 'X'.
    newsal-vbeln = sal-vbeln.
    newsal-netwr = sal-netwr.
    newsal-matnr = sal-matnr.
    newsal-waerk = sal-waerk.
    newsal-dat   = sal-dat.
    APPEND newsal.
  ENDLOOP.
ENDFORM.                    "process

*&---------This will display the values for selected dates from new --*
*---------------------internal Table (newsal)-------------------------*
*&      Form  SELECTION
*&--------------------------------------------------------------------*
*---------------------------------------------------------------------*
FORM selection.
  ULINE.
  FORMAT COLOR = 1.
  WRITE:sy-vline,'Date',AT 14 sy-vline, 'Order NO', AT 27 sy-vline,
'Order Material', AT 48 sy-vline,'Order Value(AMT) Currency  '.
  FORMAT COLOR OFF.
  ULINE.
  LOOP AT newsal.
    ON CHANGE OF newsal-dat.
      IF sy-tabix <> 1.
        WRITE:/ sy-vline, AT 14 sy-vline,AT 27 sy-vline,AT 48 sy-vline.
    WRITE:/ sy-vline,newsal-dat,sy-vline,AT 27 sy-vline,AT 48 sy-vline.
      ELSE.
     WRITE: sy-vline,newsal-dat,sy-vline,AT 27 sy-vline,AT 48 sy-vline.
      ENDIF.
    ENDON.
    WRITE:/ sy-vline, AT 14 sy-vline,newsal-vbeln,sy-vline,
      newsal-matnr, sy-vline, newsal-netwr, newsal-waerk.

    AT LAST.
      SUM.
      ULINE.  FORMAT COLOR = 3.
      WRITE:/ sy-vline, AT 15 'Total Amount for selected month:',
                    newsal-netwr UNDER newsal-netwr.
      FORMAT COLOR OFF.
      ULINE.
    ENDAT.
  ENDLOOP.
  lin = 1.
  FREE newsal.
ENDFORM.                    "SELECTION

* This Date convertion is must for pick the particular Date from the
*    -displayed line, and here we are reversing the Date like 
YYYY/MM/DD
*  -because to Check or assign the date we need to give in reverse 
order

*&--------------------------------------------------------------------*
*&      Form  DATECON
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM datecon.
  date2 = sy-lisel(17).
  SHIFT date2 LEFT BY 4 PLACES.
  WHILE date2 <> ''.
    SHIFT date2 RIGHT.
    date4 = date2+11.
    IF date4 <> '.'.
      CONCATENATE date4 date3 INTO date3.
    ENDIF.
  ENDWHILE.
  date5 = date3(2).
  date6 = date3+2.
  date3 = date3+4.
  CONCATENATE date3 date6 date5 INTO date3.
  dat = date3.
*  SORT dat BY dat.
*  DELETE ADJACENT DUPLICATES FROM dat COMPARING dat.
ENDFORM.                    "DATECON


* Here we are doing different kinds of selections by the EndUser's 
needs

*&---------When user selectiong an Sales Organisation-----------------*
*&      Form  ORGANISATION
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM organisation.
  SELECT f~vbeln p~matnr c~netwr c~waerk p~audat INTO (sal-vbeln,
sal-matnr, sal-netwr,sal-waerk, sal-dat) FROM ( vakpa AS f INNER JOIN
      vbak AS c ON f~vbeln = c~vbeln ) INNER JOIN vapma AS p ON
f~vbeln = p~vbeln WHERE  p~audat IN date AND p~vkorg = vkorg.
    APPEND sal.
  ENDSELECT.
ENDFORM.                    "ORGANISATION


*&---------Without Sales Organisation i.e All Organisation------------*
*&      Form  ORGANISATION_ELSE
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM organisation_else.
  SELECT f~vbeln p~matnr c~netwr c~waerk p~audat INTO (sal-vbeln,
sal-matnr, sal-netwr,sal-waerk, sal-dat) FROM ( vakpa AS f INNER JOIN
    vbak AS c ON f~vbeln = c~vbeln ) INNER JOIN vapma AS p ON
    f~vbeln = p~vbeln WHERE  p~audat IN date.

    APPEND sal.
  ENDSELECT.
ENDFORM.                    "ORGANISATION_ELSE

*&------------When Selecting Customer by choosing CheckBox------------*
*&      Form  CUS_ORGA
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM cus_orga.
  SELECT f~vbeln p~matnr c~netwr c~waerk p~audat INTO (sal-vbeln,
sal-matnr, sal-netwr,sal-waerk, sal-dat) FROM ( vakpa AS f INNER JOIN
        vbak AS c ON f~vbeln = c~vbeln ) INNER JOIN vapma AS p ON
       f~vbeln = p~vbeln WHERE p~audat IN date AND p~vkorg = vkorg AND
       p~kunnr = kunnr1.

    APPEND sal.
  ENDSELECT.
ENDFORM.                    "CUS_ORGA

*&------------Without Customer by without choosing CheckBox-----------*
*&      Form  CUS_ORGA_ELSE
*&--------------------------------------------------------------------*
*       text
*---------------------------------------------------------------------*
FORM cus_orga_else.
  SELECT f~vbeln p~matnr c~netwr c~waerk p~audat INTO (sal-vbeln,
sal-matnr, sal-netwr,sal-waerk, sal-dat) FROM ( vakpa AS f INNER JOIN
    vbak AS c ON f~vbeln = c~vbeln ) INNER JOIN vapma AS p ON
f~vbeln = p~vbeln WHERE p~audat IN date AND p~kunnr = kunnr1.

    APPEND sal.
  ENDSELECT.
endform.

reward if helpful

raam

Former Member
0 Kudos

hi there,,,,,,,

&----


*& TYPE-POOL *

*& *

&----


TYPE-POOLS SLIS.

&----


*& TABLES *

*& *

&----


TABLES: VBAK,

VBAP,

TVKO, "sales organization

KNA1, "customer details

MARA, "material master

TVTA, " sales area details

TVKOV, " distribution channel details

VBUK. " sales document header data

&----


*& PARAMETERS & SELECT-OPTIONS *

*& *

&----


SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.

PARAMETERS: P_VKORG LIKE VBAK-VKORG OBLIGATORY, "sales organization

P_VTWEG LIKE VBAK-VTWEG OBLIGATORY, "Distribution channel

P_SPART LIKE VBAK-SPART OBLIGATORY. "Division

SELECT-OPTIONS: S_AUDAT FOR VBAK-AUDAT OBLIGATORY, " Document date

S_VBELN FOR VBAK-VBELN, " sales document

S_KUNNR FOR VBAK-KUNNR, " sold to party

S_MATNR FOR VBAP-MATNR. " Material No.

SELECTION-SCREEN END OF BLOCK B1.

SELECTION-SCREEN BEGIN OF BLOCK B2 WITH FRAME.

PARAMETERS: O_ORD RADIOBUTTON GROUP RAD1,

A_ORD RADIOBUTTON GROUP RAD1.

SELECTION-SCREEN END OF BLOCK B2.

&----


*& INTERNAL TABLES *

*& *

&----


DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,

IT_FIELDCAT_1 TYPE SLIS_T_FIELDCAT_ALV,

IT_EVENT TYPE SLIS_T_EVENT,

IT_HEADING TYPE SLIS_T_LISTHEADER,

IT_VARIANT LIKE DISVARIANT OCCURS 0 WITH HEADER LINE,

WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,

WA_LINE TYPE SLIS_LISTHEADER,

WA_EVENT TYPE SLIS_ALV_EVENT.

  • &---------------------------------------------------------------------*

*& INTERNAL TABLE TO HOLD HEADER DATA *

*& *

&----


DATA: BEGIN OF ITAB_VBAK OCCURS 0,

VBELN LIKE VBAK-VBELN,

AUDAT LIKE VBAK-AUDAT,

AUART LIKE VBAK-AUART,

NETWR LIKE VBAK-NETWR,

VKORG LIKE VBAK-VKORG,

VTWEG LIKE VBAK-VTWEG,

SPART LIKE VBAK-SPART,

KUNNR LIKE VBAK-KUNNR,

END OF ITAB_VBAK.

&----


*& INTERNAL TABLE TO HOLD ITEM DATA *

*& *

&----


DATA: BEGIN OF ITAB_VBUK OCCURS 0,

VBELN LIKE VBAK-VBELN,

END OF ITAB_VBUK.

DATA: BEGIN OF ITAB_VBAP OCCURS 0,

VBELN LIKE VBAK-VBELN,

POSNR LIKE VBAP-POSNR,

MATNR LIKE VBAP-MATNR,

ARKTX LIKE VBAP-ARKTX,

KWMENG LIKE VBAP-KWMENG,

WERKS LIKE VBAP-WERKS,

LGORT LIKE VBAP-LGORT,

NETPR LIKE VBAP-NETPR,

END OF ITAB_VBAP.

&----


*& INTERNAL TABLE TO HOLD BUSINESS DATA

*& *

&----


DATA: BEGIN OF ITAB_VBKD OCCURS 0,

VBELN LIKE VBKD-VBELN,

POSNR LIKE VBKD-POSNR,

BSTKD LIKE VBKD-BSTKD,

BSARK LIKE VBKD-BSARK,

END OF ITAB_VBKD.

DATA: BEGIN OF ITAB_VBPA OCCURS 0,

VBELN LIKE VBAK-VBELN,

POSNR LIKE VBAP-POSNR,

SHIPTO LIKE VBPA-KUNNR,

END OF ITAB_VBPA.

DATA: BEGIN OF ITAB_FINAL OCCURS 0,

KUNNR LIKE VBAK-KUNNR,

VBELN LIKE VBAK-VBELN,

POSNR LIKE VBAP-POSNR,

VKORG LIKE VBAK-VKORG,

VTWEG LIKE VBAK-VTWEG,

SPART LIKE VBAK-SPART,

AUART LIKE VBAK-AUART,

MATNR LIKE VBAP-MATNR,

ARKTX LIKE VBAP-ARKTX,

AUDAT LIKE VBAK-AUDAT,

KWMENG LIKE VBAP-KWMENG,

WERKS LIKE VBAP-WERKS,

LGORT LIKE VBAP-LGORT,

BSTKD LIKE VBKD-BSTKD,

BSARK LIKE VBKD-BSARK,

SHIPTO LIKE VBPA-KUNNR,

NETPR LIKE VBAP-NETPR,

NETWR LIKE VBAK-NETWR,

END OF ITAB_FINAL.

DATA: BEGIN OF ITAB_KONV OCCURS 0,

KNUMV LIKE KONV-KNUMV,

KPOSN LIKE KONV-KPOSN,

KSCHL LIKE KONV-KSCHL,

KBETR LIKE KONV-KBETR,

KWERT LIKE KONV-KWERT,

VTEXT LIKE T685T-VTEXT,

END OF ITAB_KONV,

ITAB_KONV_1 LIKE STANDARD TABLE OF ITAB_KONV WITH HEADER LINE.

DATA: BEGIN OF ITAB_T685T OCCURS 0, " T685T CONDITION RECORDS TABLE

KSCHL LIKE T685T-KSCHL,

VTEXT LIKE T685T-VTEXT,

END OF ITAB_T685T.

&----


*& DATA VARIABLES *

*& *

&----


DATA: V_DATE LIKE SY-DATUM,

V_KNUMV LIKE VBAK-KNUMV,

V_FIELD(30),

GV_STOP,

GV_REPID TYPE SY-REPID.

&----


*& INITIALIZATION *

*& *

&----


INITIALIZATION.

GV_REPID = SY-REPID.

V_DATE = SY-DATUM.

IF V_DATE+4(2) = '01'.

V_DATE+4(2) = '12'.

V_DATE0(4) = V_DATE0(4) - 1.

ELSE.

V_DATE4(2) = V_DATE4(2) - 1.

ENDIF.

MOVE: 'BT' TO S_AUDAT-OPTION,

V_DATE TO S_AUDAT-LOW,

SY-DATUM TO S_AUDAT-HIGH.

APPEND S_AUDAT.

&----


*& AT SELECTION-SCREEN *

*& *

&----


AT SELECTION-SCREEN.

PERFORM VALIDATE_VKORG.

PERFORM VALIDATE_VTWEG.

PERFORM VALIDATE_SPART.

PERFORM VALIDATE_KUNNR.

PERFORM VALIDATE_VBELN.

PERFORM VALIDATE_MATNR.

PERFORM VALIDATE_COMBINATION.

"If any sales doc exists for given Sales org, Distribution channel, Divi

"sion in the specified span.

***&----


**

***& AT LINE SELECTION

**

***&

**

***&----


**

**AT LINE-SELECTION.

    • GET CURSOR FIELD v_field.

    • PERFORM get_condition_item_details.

    • PERFORM get_second_list.

&----


*& START-OF-SELECTION *

*& *

&----


START-OF-SELECTION.

PERFORM GET_SALES_ORDER.

PERFORM GET_ITEM_DETAILS.

PERFORM GET_SHIP_TO_DETAILS.

PERFORM GET_PURCHASE_ORDER_DETAILS.

PERFORM POPULATE_FINAL_TABLE.

&----


*& END-OF-SELECTION *

*& *

&----


*END-OF-SELECTION.

  • IF GV_STOP IS INITIAL.

  • PERFORM DISPLAY_ALV_REPORT.

  • ENDIF.

**&----


*

**& TOP-OF-PAGE

*

**&

*

**&----


*

**TOP-OF-PAGE.

    • PERFORM header.

**

**&----


*

**& END-OF-PAGE

*

**&

*

**&----


*

**END-OF-PAGE.

**

    • PERFORM footer.

&----


*& Form VALIDATE_VKORG

&----


FORM VALIDATE_VKORG .

SELECT SINGLE VKORG

FROM TVKO

INTO TVKO-VKORG

WHERE VKORG = P_VKORG.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'INVALID SALES ORGANIZATION'.

ENDIF.

ENDFORM. " VALIDATE_VKORG

&----


*& Form VALIDATE_VTWEG

&----


FORM VALIDATE_VTWEG .

SELECT SINGLE VTWEG

FROM TVKOV

INTO TVKOV-VTWEG

WHERE VTWEG = P_VTWEG.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'INVALID DISTIBUTION CHANNEL'.

ENDIF.

ENDFORM. " VALIDATE_VTWEG

&----


*& Form VALIDATE_SPART

&----


FORM VALIDATE_SPART .

SELECT SINGLE SPART

FROM TVTA

INTO TVTA-SPART

WHERE SPART = P_SPART.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'INVALID DIVISION'.

ENDIF.

ENDFORM. " VALIDATE_SPART

&----


*& Form VALIDATE_KUNNR

&----


FORM VALIDATE_KUNNR .

IF NOT S_KUNNR[] IS INITIAL.

SELECT SINGLE KUNNR

FROM KNA1

INTO KNA1-KUNNR

WHERE KUNNR IN S_KUNNR.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'INVALID SOLD-PARTY'.

ENDIF.

ENDIF.

ENDFORM. " VALIDATE_KUNNR

&----


*& Form VALIDATE_MATNR

&----


FORM VALIDATE_MATNR .

IF NOT S_MATNR[] IS INITIAL.

SELECT SINGLE MATNR

FROM MARA

INTO MARA

WHERE MATNR IN S_MATNR.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'INVALID MATERIAL NUMBER'.

ENDIF.

ENDIF.

ENDFORM. " VALIDATE_MATNR

&----


*& Form GET_SALES_ORDER

&----


FORM GET_SALES_ORDER .

DATA: LV_INDEX TYPE SY-TABIX.

SELECT VBELN

AUDAT

AUART

NETWR

VKORG

VTWEG

SPART

KUNNR

FROM VBAK

INTO TABLE ITAB_VBAK

WHERE VBELN IN S_VBELN

AND AUDAT IN S_AUDAT

AND VKORG = P_VKORG

AND VTWEG = P_VTWEG

AND SPART = P_SPART

AND KUNNR IN S_KUNNR.

IF SY-SUBRC <> 0.

MESSAGE I000 WITH 'No Records Found'.

GV_STOP = 'X'.

STOP.

ENDIF.

IF O_ORD = 'X'.

IF NOT ITAB_VBAK[] IS INITIAL.

SELECT VBELN

FROM VBUK

INTO TABLE ITAB_VBUK

FOR ALL ENTRIES IN ITAB_VBAK

WHERE VBELN = ITAB_VBAK-VBELN

AND GBSTK NE 'C'.

IF SY-SUBRC <> 0.

MESSAGE I000 WITH 'No Open Orders'.

GV_STOP = 'X'.

STOP.

ENDIF.

SORT ITAB_VBAK BY VBELN.

LV_INDEX = SY-TABIX.

LOOP AT ITAB_VBAK.

READ TABLE ITAB_VBUK WITH KEY VBELN = ITAB_VBAK-VBELN BINARY

SEARCH.

IF SY-SUBRC <> 0.

DELETE ITAB_VBAK INDEX LV_INDEX.

ENDIF.

ENDLOOP.

ENDIF.

ENDIF.

ENDFORM. " GET_SALES_ORDER

&----


*& Form GET_ITEM_DETAILS

&----


FORM GET_ITEM_DETAILS .

IF NOT ITAB_VBAK[] IS INITIAL.

SELECT VBELN

POSNR

MATNR

ARKTX

KWMENG

WERKS

LGORT

NETPR

FROM VBAP

INTO TABLE ITAB_VBAP

FOR ALL ENTRIES IN ITAB_VBAK

WHERE VBELN = ITAB_VBAK-VBELN

AND MATNR IN S_MATNR.

IF SY-SUBRC <> 0.

MESSAGE I000 WITH 'NO ITEM DETAILS'.

GV_STOP = 'X'.

STOP.

ENDIF.

ENDIF.

ENDFORM. " GET_ITEM_DETAILS

&----


*& Form GET_SHIP_TO_DETAILS

&----


FORM GET_SHIP_TO_DETAILS .

DATA: LV_COUNT TYPE I VALUE 0.

IF NOT ITAB_VBAP[] IS INITIAL.

SELECT VBELN

POSNR

KUNNR

INTO TABLE ITAB_VBPA

FROM VBPA

FOR ALL ENTRIES IN ITAB_VBAP

WHERE VBELN = ITAB_VBAP-VBELN

AND ( POSNR = ITAB_VBAP-POSNR

OR POSNR = '000000' )

AND PARVW = 'WE'.

IF SY-SUBRC <> 0.

MESSAGE I000 WITH 'No Ship-to Partner found'.

ENDIF.

SORT ITAB_VBPA BY VBELN POSNR DESCENDING .

LOOP AT ITAB_VBPA.

ADD 1 TO LV_COUNT.

AT END OF POSNR.

IF ( LV_COUNT GT 1 AND ITAB_VBPA-POSNR = '000000' ).

DELETE ITAB_VBPA INDEX SY-TABIX.

CLEAR LV_COUNT.

ELSEIF ( LV_COUNT EQ 1 AND ITAB_VBPA-POSNR = '000000' ).

CLEAR: ITAB_VBAP,

LV_COUNT.

READ TABLE ITAB_VBAP WITH KEY VBELN = ITAB_VBPA-VBELN.

IF SY-SUBRC = 0.

ITAB_VBAP-POSNR = '000000'.

MODIFY ITAB_VBAP INDEX SY-TABIX.

ENDIF.

ENDIF.

ENDAT.

ENDLOOP.

ENDIF.

ENDFORM. " GET_SHIP_TO_DETAILS

&----


*& Form GET_PURCHASE_ORDER_DETAILS

&----


FORM GET_PURCHASE_ORDER_DETAILS .

DATA: LV_COUNT TYPE I VALUE 0.

IF NOT ITAB_VBAP[] IS INITIAL.

SELECT VBELN

POSNR

BSTKD

BSARK

FROM VBKD

INTO TABLE ITAB_VBKD

FOR ALL ENTRIES IN ITAB_VBAP

WHERE VBELN = ITAB_VBAP-VBELN

AND ( POSNR = ITAB_VBAP-POSNR

OR POSNR = '000000' )

.

IF SY-SUBRC <> 0.

MESSAGE I000 WITH 'No Purchase Order Found'.

ENDIF.

SORT ITAB_VBKD BY VBELN POSNR.

LOOP AT ITAB_VBKD.

ADD 1 TO LV_COUNT.

AT END OF POSNR.

IF ( LV_COUNT GT 1 AND ITAB_VBKD-POSNR = '000000' ).

DELETE ITAB_VBKD INDEX SY-TABIX.

CLEAR LV_COUNT.

ELSEIF ( LV_COUNT EQ 1 AND ITAB_VBKD-POSNR = '000000' ).

CLEAR: ITAB_VBAP,

LV_COUNT.

READ TABLE ITAB_VBAP WITH KEY VBELN = ITAB_VBKD-VBELN.

IF SY-SUBRC = 0.

ITAB_VBAP-POSNR = '000000'.

MODIFY ITAB_VBAP INDEX SY-TABIX.

ENDIF.

ENDIF.

ENDAT.

ENDLOOP.

ENDIF.

ENDFORM. " GET_PURCHASE_ORDER_DETAILS

&----


*& Form POPULATE_FINAL_TABLE

&----


FORM POPULATE_FINAL_TABLE .

LOOP AT ITAB_VBAP.

CLEAR ITAB_FINAL.

MOVE: ITAB_VBAP-VBELN TO ITAB_FINAL-VBELN,

ITAB_VBAP-POSNR TO ITAB_FINAL-POSNR,

ITAB_VBAP-MATNR TO ITAB_FINAL-MATNR,

ITAB_VBAP-ARKTX TO ITAB_FINAL-ARKTX,

ITAB_VBAP-KWMENG TO ITAB_FINAL-KWMENG,

ITAB_VBAP-WERKS TO ITAB_FINAL-WERKS,

ITAB_VBAP-LGORT TO ITAB_FINAL-LGORT,

ITAB_VBAP-NETPR TO ITAB_FINAL-NETPR.

APPEND ITAB_FINAL.

ENDLOOP.

SORT ITAB_FINAL BY VBELN.

LOOP AT ITAB_FINAL.

READ TABLE ITAB_VBAK WITH KEY VBELN = ITAB_FINAL-VBELN BINARY SEARCH

.

MOVE: ITAB_VBAK-KUNNR TO ITAB_FINAL-KUNNR,

ITAB_VBAK-VKORG TO ITAB_FINAL-VKORG,

ITAB_VBAK-VTWEG TO ITAB_FINAL-VTWEG,

ITAB_VBAK-SPART TO ITAB_FINAL-SPART,

ITAB_VBAK-AUART TO ITAB_FINAL-AUART,

ITAB_VBAK-AUDAT TO ITAB_FINAL-AUDAT.

READ TABLE ITAB_VBPA WITH KEY VBELN = ITAB_FINAL-VBELN BINARY SEARCH

.

MOVE: ITAB_VBPA-SHIPTO TO ITAB_FINAL-SHIPTO.

READ TABLE ITAB_VBKD WITH KEY VBELN = ITAB_FINAL-VBELN BINARY SEARCH

.

MOVE: ITAB_VBKD-BSARK TO ITAB_FINAL-BSARK ,

ITAB_VBKD-BSTKD TO ITAB_FINAL-BSTKD.

MODIFY ITAB_FINAL.

ENDLOOP.

ENDFORM. " POPULATE_FINAL_TABLE

&----


*& Form POPULATE_RESULT

&----


*FORM populate_result .

*

*

  • SORT itab_final BY kunnr.

  • LOOP AT itab_final.

*

  • AT NEW kunnr.

  • FORMAT INVERSE ON.

  • WRITE:/ '|', 10 'Sold-to-party--> ' COLOR 4, itab_final-kunnr

  • COLOR 5, 303 '|'.

  • WRITE:/ '|', 303 '|'.

  • ENDAT.

*

  • FORMAT INVERSE OFF.

  • FORMAT COLOR 4.

  • WRITE:/ '|',

  • itab_final-vbeln HOTSPOT ON, 13 '|',

  • 14 itab_final-posnr, 30 '|',

  • 31 itab_final-vkorg, 42 '|',

  • 43 itab_final-vtweg, 57 '|',

  • 58 itab_final-spart, 68 '|',

  • 69 itab_final-auart, 85 '|',

  • 86 itab_final-matnr, 104 '|',

  • 105 itab_final-arktx, 145 '|',

  • 146 itab_final-audat, 162 '|',

  • 163 itab_final-kwmeng LEFT-JUSTIFIED, 178 '|',

  • 179 itab_final-werks, 186 '|',

  • 187 itab_final-lgort, 197 '|',

  • 198 itab_final-bstkd, 215 '|',

  • 216 itab_final-bsark, 235 '|',

  • 236 itab_final-kunnr, 251 '|',

  • 252 itab_final-shipto, 262 '|',

  • 263 itab_final-netpr, 274 '|',

  • 275 itab_final-netwr, 303 '|'.

  • HIDE itab_final-vbeln.

  • AT END OF kunnr.

  • ULINE.

  • SUM.

*

  • WRITE:/ '|',

  • 155 'Total ' COLOR 3 , 162 '|',

  • 163 itab_final-kwmeng LEFT-JUSTIFIED, 178 '|' ,262 '|',

  • 263 itab_final-netpr, 274 '|',

  • 275 itab_final-netpr,

  • 303 '|'.

  • ULINE.

  • NEW-PAGE.

*

  • ENDAT.

*

  • ENDLOOP.

*

*

*

*ENDFORM. " POPULATE_RESULT

**&----


*

**& Form HEADER

**&----


*

*FORM header .

  • ULINE.

  • WRITE: 50 'SALES ORDER REPORT' COLOR 7.

  • ULINE.

  • FORMAT COLOR 7.

  • WRITE: (11) '| Sales Doc' ,

  • 13(16) '| Sales Doc Item',

  • 30(11) '| Sales Org',

  • 42(14) '| Dist Channel',

  • 57(10) '| Division',

  • 68(16) '| Sales Doc Type',

  • 85(18) '| Material',

  • 104(40) '| Sales Order Item',

  • 145(16) '| Sales Doc Date',

  • 162(15) '| Quantity',

  • 178(7) '| Plant',

  • 186(10) '| Location',

  • 197(17) '| Cust Pur Ord No',

  • 215(19) '| Cust Pur Ord type',

  • 235(15) '| Sold to Party',

  • 251(10) '| Customer',

  • 262(11) '| Net Price',

  • 274 '| Net value in Cust Currency |'.

*

  • ULINE.

*ENDFORM. " HEADER

**&----


*

**& Form FOOTER

**&----


*

*FORM footer .

*

*

*ENDFORM. " FOOTER

*

&----


*& Form GET_CONDITION_ITEM_DETAILS

&----


*FORM get_condition_item_details .

  • IF sy-lsind = 1 AND v_field = 'ITAB_FINAL-VBELN'.

  • WRITE:/ sy-uline(94).

  • FORMAT COLOR 7.

  • WRITE:/ '| No. of Doc condition',

  • 23(20) '| Condition Item No.',

  • 44(16) '| Condition Type',

  • 61(13) '| Rate',

  • 75 '| Condition Value |'.

  • WRITE:/ sy-uline(94).

*

  • PERFORM get_text.

*

  • FORMAT COLOR 4.

  • LOOP AT itab_konv.

  • WRITE:/ '|',

  • itab_konv-knumv, 23 '|',

  • 24 itab_konv-kposn, 44 '|',

  • 45 itab_konv-kschl HOTSPOT ON, 61 '|' ,

  • 62 itab_konv-kbetr, 75 '|',

  • 76 itab_konv-kwert, 94 '|'.

  • HIDE itab_konv-kschl.

  • ENDLOOP.

  • WRITE:/ sy-uline(94).

*

  • ENDIF.

*ENDFORM. " GET_CONDITION_ITEM_DETAILS

&----


*& Form GET_TEXT

&----


**FORM get_text .

    • SELECT kschl

    • vtext

    • FROM t685t

    • INTO TABLE itab_t685t

    • FOR ALL ENTRIES IN itab_konv

    • WHERE kschl = itab_konv-kschl

    • AND spras = sy-langu

    • AND kvewe = 'A'

    • AND kappl = 'V'.

    • SORT itab_konv BY kschl.

    • SORT itab_t685t BY kschl.

**

    • LOOP AT itab_konv.

    • READ TABLE itab_t685t WITH KEY kschl = itab_konv-kschl BINARY

**search

    • .

    • itab_konv-vtext = itab_t685t-vtext.

    • MODIFY itab_konv.

    • ENDLOOP.

**ENDFORM. " GET_TEXT

***&----


**

***& Form GET_SECOND_LIST

***&----


**

**FORM get_second_list .

    • CLEAR v_field.

    • GET CURSOR FIELD v_field.

**

    • IF sy-lsind = 2 AND v_field = 'ITAB_KONV-KSCHL'.

    • FORMAT COLOR 7.

    • WRITE:/ sy-uline(75).

    • WRITE:/ '| Condition Item No.',

    • 21(20) '| Name',

    • 42(13) '| Rate',

    • 56 '| Condition Value |'.

    • WRITE:/ sy-uline(75).

    • LOOP AT itab_konv WHERE kschl = itab_konv-kschl.

    • FORMAT COLOR 4.

    • WRITE:/ '|', itab_konv-kschl, 21 '|',

    • 22 itab_konv-vtext, 42 '|',

    • 43 itab_konv-kbetr, 56 '|',

    • 57 itab_konv-kwert, 75 '|'.

    • WRITE:/ sy-uline(75).

    • ENDLOOP.

    • ENDIF.

**ENDFORM. " GET_SECOND_LIST

&----


*& Form VALIDATE_VBELN

&----


FORM VALIDATE_VBELN .

IF NOT S_VBELN IS INITIAL.

SELECT SINGLE VBELN

FROM VBAK

INTO VBAK

WHERE VBELN IN S_VBELN.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'INVALID SALES DOCUMENT NO'.

ENDIF.

ENDIF.

ENDFORM. " VALIDATE_VBELN

&----


*& Form VALIDATE_COMBINATION

&----


FORM VALIDATE_COMBINATION .

SELECT SINGLE VBELN

FROM VBAK

INTO VBAK

WHERE VKORG = P_VKORG

AND VTWEG = P_VTWEG

AND SPART = P_SPART

AND AUDAT IN S_AUDAT

AND VBELN IN S_VBELN

AND KUNNR IN S_KUNNR.

IF SY-SUBRC <> 0.

MESSAGE E000 WITH 'NO SALES DOCUMENT FOR GIVEN COMBINATION'.

ENDIF.

ENDFORM. " VALIDATE_COMBINATION

*&----


**& Form DISPLAY_ALV_REPORT

*&----


*FORM DISPLAY_ALV_REPORT .

  • PERFORM ALV_EVENT_LIST.

  • PERFORM ALV_PREPARE_CATALOG.

  • PERFORM ALV_GRID_DISPLAY.

*

*ENDFORM. " DISPLAY_ALV_REPORT

*&----


**& Form ALV_EVENT_LIST

*&----


*FORM ALV_EVENT_LIST .

  • CALL FUNCTION 'REUSE_ALV_EVENTS_GET'

  • EXPORTING

  • I_LIST_TYPE = 0

  • IMPORTING

  • ET_EVENTS = IT_EVENT

  • EXCEPTIONS

  • LIST_TYPE_WRONG = 1

  • OTHERS = 2.

  • IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  • ENDIF.

*

  • CLEAR WA_EVENT.

  • READ TABLE IT_EVENT WITH KEY NAME = SLIS_EV_TOP_OF_PAGE

  • INTO WA_EVENT.

*

  • IF SY-SUBRC = 0.

  • WA_EVENT-FORM = 'TOP_OF_PAGE'.

  • MODIFY IT_EVENT FROM WA_EVENT INDEX SY-TABIX.

  • ENDIF.

*

  • CLEAR WA_EVENT.

  • READ TABLE IT_EVENT WITH KEY NAME = SLIS_EV_USER_COMMAND

  • INTO WA_EVENT.

*

  • IF SY-SUBRC = 0.

  • WA_EVENT-FORM = 'USER_COMMAND'.

  • MODIFY IT_EVENT FROM WA_EVENT INDEX SY-TABIX.

  • ENDIF.

*

*ENDFORM. " ALV_EVENT_LIST

*&----


**& Form ALV_PREPARE_CATALOG

*&----


*FORM ALV_PREPARE_CATALOG .

  • CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

  • EXPORTING

  • I_PROGRAM_NAME = GV_REPID

  • I_INTERNAL_TABNAME = 'ITAB_FINAL'

  • I_INCLNAME = GV_REPID

  • I_BYPASSING_BUFFER = 'X'

  • I_BUFFER_ACTIVE = ' '

  • CHANGING

  • CT_FIELDCAT = IT_FIELDCAT

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3.

  • 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_FIELDCAT INTO WA_FIELDCAT.

  • CASE WA_FIELDCAT-FIELDNAME.

  • WHEN 'VBELN'.

  • WA_FIELDCAT-HOTSPOT = 'X'.

  • MODIFY IT_FIELDCAT FROM WA_FIELDCAT INDEX SY-TABIX.

  • WHEN 'KUNNR'.

  • WA_FIELDCAT-KEY = 'X'.

  • MODIFY IT_FIELDCAT FROM WA_FIELDCAT INDEX SY-TABIX.

  • ENDCASE.

  • ENDLOOP.

*ENDFORM. " ALV_PREPARE_CATALOG

*&----


**& Form ALV_GRID_DISPLAY

*&----


*FORM ALV_GRID_DISPLAY .

*

  • PERFORM PREPARE_HEADING_TABLE.

  • CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

  • EXPORTING

  • I_BYPASSING_BUFFER = 'X'

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = GV_REPID

  • I_CALLBACK_USER_COMMAND = 'USER_COMMAND'

  • I_BACKGROUND_ID = ' SALES ORDER '

  • IT_FIELDCAT = IT_FIELDCAT[]

  • I_DEFAULT = 'X'

  • I_SAVE = 'A'

  • IT_EVENTS = IT_EVENT[]

  • TABLES

  • T_OUTTAB = ITAB_FINAL[]

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2.

  • IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  • ENDIF.

*

*ENDFORM. " ALV_GRID_DISPLAY

*

*&----


**& Form TOP_OF_PAGE

*&----


*FORM TOP_OF_PAGE.

*

  • CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'

  • EXPORTING

  • IT_LIST_COMMENTARY = IT_HEADING.

  • REFRESH IT_HEADING.

  • CLEAR IT_HEADING.

*ENDFORM. "TOP_OF_PAGE

*

*&----


**& Form user_command

*&----


    • text

*----


    • -->R_UCOMM text

    • -->RS_SELFIELD text

*----


*FORM USER_COMMAND USING R_UCOMM LIKE SY-UCOMM

  • RS_SELFIELD TYPE SLIS_SELFIELD.

*

  • DATA: LV_LEVEL TYPE I,

  • LV_INDEX TYPE SY-TABIX,

  • LV_KSCHL TYPE KONV-KSCHL,

  • LV_KPOSN TYPE KONV-KPOSN.

*

  • CASE RS_SELFIELD-SEL_TAB_FIELD.

  • WHEN 'ITAB_FINAL-VBELN'.

*

  • CASE R_UCOMM.

  • WHEN '&IC1'.

*

  • READ TABLE ITAB_FINAL INDEX RS_SELFIELD-TABINDEX.

  • SELECT SINGLE KNUMV

  • FROM VBAK

  • INTO V_KNUMV

  • WHERE VBELN = ITAB_FINAL-VBELN.

  • IF SY-SUBRC <> 0.

  • ENDIF.

*

  • SELECT KNUMV

  • KPOSN

  • KSCHL

  • KBETR

  • KWERT

  • FROM KONV

  • INTO TABLE ITAB_KONV_1

  • WHERE KNUMV = V_KNUMV.

*

  • IF SY-SUBRC = 0.

  • SELECT KSCHL

  • VTEXT

  • FROM T685T

  • INTO TABLE ITAB_T685T

  • FOR ALL ENTRIES IN ITAB_KONV_1

  • WHERE SPRAS = SY-LANGU

  • AND KVEWE = 'A'

  • AND KAPPL = 'V'

  • AND KSCHL = ITAB_KONV_1-KSCHL.

*

  • SORT ITAB_KONV_1 BY KSCHL.

  • SORT ITAB_T685T BY KSCHL.

*

  • LOOP AT ITAB_KONV_1.

  • LV_INDEX = SY-TABIX.

  • READ TABLE ITAB_T685T WITH KEY KSCHL = ITAB_KONV_1-KSCHL

  • BINARY SEARCH.

  • ITAB_KONV_1-VTEXT = ITAB_T685T-VTEXT.

  • MODIFY ITAB_KONV_1 INDEX LV_INDEX.

  • ENDLOOP.

*

  • ENDIF.

*

  • ENDCASE.

*

  • ITAB_KONV[] = ITAB_KONV_1[].

*

  • LV_LEVEL = 1.

  • PERFORM DISPLAY_LIST USING LV_LEVEL.

*

  • WHEN 'ITAB_KONV-KSCHL'.

  • ITAB_KONV[] = ITAB_KONV_1[].

  • READ TABLE ITAB_KONV INDEX RS_SELFIELD-TABINDEX.

  • LV_KPOSN = ITAB_KONV-KPOSN.

  • LV_KSCHL = ITAB_KONV-KSCHL.

  • DELETE ITAB_KONV WHERE ( KPOSN NE LV_KPOSN ).

  • DELETE ITAB_KONV WHERE ( KSCHL NE LV_KSCHL ).

  • LV_LEVEL = 2.

  • PERFORM DISPLAY_LIST USING LV_LEVEL.

  • ENDCASE.

*

*ENDFORM. "user_command

*&----


**& Form display_list

*&----


*FORM DISPLAY_LIST USING P_LV_LEVEL.

  • REFRESH IT_FIELDCAT_1.

  • CLEAR IT_FIELDCAT_1.

  • PERFORM PREPARE_CATALOG.

*

  • CASE P_LV_LEVEL.

  • WHEN 1.

  • CLEAR WA_FIELDCAT.

  • LOOP AT IT_FIELDCAT_1 INTO WA_FIELDCAT .

  • CASE WA_FIELDCAT-FIELDNAME.

  • WHEN 'KSCHL'.

  • WA_FIELDCAT-HOTSPOT = 'X'.

  • MODIFY IT_FIELDCAT_1 FROM WA_FIELDCAT INDEX SY-TABIX.

*

  • WHEN 'VTEXT' .

  • WA_FIELDCAT-NO_OUT = 'X'.

  • MODIFY IT_FIELDCAT_1 FROM WA_FIELDCAT INDEX SY-TABIX.

  • ENDCASE.

  • ENDLOOP.

*

  • WHEN 2.

  • CLEAR WA_FIELDCAT.

  • LOOP AT IT_FIELDCAT_1 INTO WA_FIELDCAT .

  • CASE WA_FIELDCAT-FIELDNAME.

  • WHEN 'KNUMV' OR 'KSCHL'.

  • WA_FIELDCAT-NO_OUT = 'X'.

  • MODIFY IT_FIELDCAT_1 FROM WA_FIELDCAT INDEX SY-TABIX.

  • ENDCASE.

  • ENDLOOP.

  • ENDCASE.

*

  • CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

  • EXPORTING

    • I_INTERFACE_CHECK = ' '

  • I_BYPASSING_BUFFER = 'X'

  • I_BUFFER_ACTIVE = ' '

  • I_CALLBACK_PROGRAM = GV_REPID

    • I_CALLBACK_PF_STATUS_SET = ' '

    • I_CALLBACK_USER_COMMAND = ' '

    • I_CALLBACK_TOP_OF_PAGE = ' '

    • I_CALLBACK_HTML_TOP_OF_PAGE = ' '

    • I_CALLBACK_HTML_END_OF_LIST = ' '

    • I_STRUCTURE_NAME =

    • I_BACKGROUND_ID = ' '

    • I_GRID_TITLE =

    • I_GRID_SETTINGS =

    • IS_LAYOUT =

  • IT_FIELDCAT = IT_FIELDCAT_1[]

    • IT_EXCLUDING =

    • IT_SPECIAL_GROUPS =

    • IT_SORT =

    • IT_FILTER =

    • IS_SEL_HIDE =

  • I_DEFAULT = 'X'

  • I_SAVE = 'A'

    • IS_VARIANT =

  • IT_EVENTS = IT_EVENT[]

    • IT_EVENT_EXIT =

    • IS_PRINT =

    • IS_REPREP_ID =

    • I_SCREEN_START_COLUMN = 0

    • I_SCREEN_START_LINE = 0

    • I_SCREEN_END_COLUMN = 0

    • I_SCREEN_END_LINE = 0

    • I_HTML_HEIGHT_TOP = 0

    • I_HTML_HEIGHT_END = 0

    • IT_ALV_GRAPHICS =

    • IT_HYPERLINK =

    • IT_ADD_FIELDCAT =

    • IT_EXCEPT_QINFO =

    • IR_SALV_FULLSCREEN_ADAPTER =

    • IMPORTING

    • E_EXIT_CAUSED_BY_CALLER =

    • ES_EXIT_CAUSED_BY_USER =

  • TABLES

  • T_OUTTAB = ITAB_KONV[]

  • EXCEPTIONS

  • PROGRAM_ERROR = 1

  • OTHERS = 2

  • .

  • IF SY-SUBRC <> 0.

    • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  • ENDIF.

*

*ENDFORM. " display_list

*&----


**& Form PREPARE_CATALOG

*&----


*FORM PREPARE_CATALOG .

*

  • CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'

  • EXPORTING

  • I_PROGRAM_NAME = GV_REPID

  • I_INTERNAL_TABNAME = 'ITAB_KONV'

    • I_STRUCTURE_NAME =

    • I_CLIENT_NEVER_DISPLAY = 'X'

  • I_INCLNAME = GV_REPID

  • I_BYPASSING_BUFFER = 'X'

  • I_BUFFER_ACTIVE = ' '

  • CHANGING

  • CT_FIELDCAT = IT_FIELDCAT_1

  • EXCEPTIONS

  • INCONSISTENT_INTERFACE = 1

  • PROGRAM_ERROR = 2

  • OTHERS = 3

  • .

  • IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

  • ENDIF.

*

*ENDFORM. " PREPARE_CATALOG

*&----


**& Form PREPARE_HEADING_TABLE

*&----


    • text

*----


*FORM PREPARE_HEADING_TABLE .

  • WA_LINE-TYP = 'H'.

  • WA_LINE-INFO = 'Intelligroup Asia Pvt Ltd.'.

  • APPEND WA_LINE TO IT_HEADING.

*ENDFORM. " PREPARE_HEADING_TABLE

pls reward if helpful

regards,

rekha

Former Member
0 Kudos

SD REPORTS

Reports: Reports consist of data, which is expected to be reveiwed or checked the transaction taken in said period. Reports are useful for analysis of decision taking for future activities.

Some of the standard reports for SD & its configuration guide is as under:

Standard SAP SD Reports:=

Statistic Group:

Purpose – To capture data for Standard Reports, we require to activate Statistic Group as under:

--> Item category (Configuration)

--> Sales document type (Configuration)

--> Customer (Maintain in Master data)

--> Material (Maintain in Master data)

When you generate statistics in the logistics information system, the system uses the combination of specified statistics groups to determine the appropriate update sequence. The update sequence in turn determines for exactly which fields the statistics are generated.

Configuration:

IMG --> Logistics Information System (LIS) --> Logistics Data Warehouse --> Updating --> Updating Control --> Settings: Sales --> Statistics Groups -->

1. Maintain Statistics Groups for Customers

2. Maintain Statistics Groups for Material

3. Maintain Statistics Groups for Sales Documents

4. Assign Statistics Groups for Each Sales Document Type

5. Assign Statistics Groups for each Sales Document Item Type.....

All Standard Reports which are available are as under:

SAP Easy Access: Information Systems -> Logistics -> Sales and distribution ->

1. Customer -> Incoming orders / Returns / Sales / Credit memos / Sales activities / Customer master / Conditions / Credit Master Sheet

2. Material -> Incoming orders / Returns / Sales / Credit memos / Material master / ...

3. Sales organization -> Sales organization / Sales office / Sales employee

4. Shipping point -> Deliveries / Returns

5. SD documents -> Orders / Deliveries / Billing documents ...

& so on.

Some of the Standard reports in SD are:

Sales summary - VC/2

Display Customer Hierarchy - VDH2

Display Condition record report - V/I6

Pricing Report - V/LD

Create Net Price List - V_NL

List customer material info - VD59

List of sales order - VA05

List of Billing documents - VF05

Inquiries list - VA15

Quotation List - VA25

Incomplete Sales orders - V.02

Backorders - V.15

Outbound Delivery Monitor - VL06o

Incomplete delivery - V_UC

Customer Returns-Analysis - MC+A

Customer Analysis- Sales - MC+E

Customer Analysis- Cr. Memo - MC+I

Deliveries-Due list - VL04

Billing due list - VF04

Incomplete Billing documents - MCV9

Customer Analysis-Basic List - MCTA

Material Analysis(SIS) - MCTC

Sales org analysis - MCTE

Sales org analysis-Invoiced sales - MC+2

Material Analysis-Incoming orders - MC(E

General- List of Outbound deliveries - VL06f

Material Returns-Analysis - MC+M

Material Analysis- Invoiced Sales - MC+Q

Variant configuration Analysis - MC(B

Sales org analysis-Incoming orders - MC(I

Sales org analysis-Returns - MC+Y

Sales office Analysis- Invoiced Sales - MC-E

Sales office Analysis- Returns - MC-A

Shipping point Analysis - MC(U

Shipping point Analysis-Returns - MC-O

Blocked orders - V.14

Order Within time period - SD01

Duplicate Sales orders in period - SDD1

Display Delivery Changes - VL22

Shipment List Planning - VT11

List of Incomplete Shipments -Try VT04/VT11/VT32

Delivery without Shipments -Use VL06O

Regards

Kiran