Sei sulla pagina 1di 9

REPORT ZPR_SALES_SUMMARY no STANDARD PAGE HEADING .

*&---------------------------------------------------------------------*
*
TABLES DECLARATION
*&---------------------------------------------------------------------*
type-pools: slis.
TABLES: vbrk,vbrp,konv.
*&---------------------------------------------------------------------*
*
STRUCTURE DECLARATION
*&---------------------------------------------------------------------*
TYPES: BEGIN OF ty_vbrkvbrp,
VBELN TYPE VBRK-VBELN, "Billing Document
vtweg TYPE vbrk-vtweg,
ERDAT TYPE vbrk-ERDAT,
FKART TYPE VBRK-FKART, "Billing Type
FKTYP TYPE VBRK-FKTYP, "Billing category
VBTYP TYPE VBRK-VBTYP, "SD document category
WAERK TYPE VBRK-WAERK, "SD Document Currency
VKORG TYPE VBRK-VKORG, "Sales Organization
KNUMV TYPE VBRK-KNUMV, "Number of the document condition
REGIO TYPE VBRK-REGIO,
BUKRS TYPE VBRK-BUKRS,
NETWR TYPE VBRK-NETWR,
POSNR TYPE VBRP-POSNR,
VRKME TYPE VBRP-VRKME,
MEINS TYPE VBRP-MEINS,
LGORT TYPE VBRP-LGORT,
VKORG_AUFT TYPE VBRP-VKORG_AUFT,
END OF ty_vbrkvbrp,
ty_t_vbrkvbrp TYPE TABLE OF ty_vbrkvbrp.
TYPES: BEGIN
KNUMV
KSCHL
KDATU
KNTYP
END OF

OF TY_KONV,
TYPE KONV-KNUMV,
TYPE KONV-KSCHL,
TYPE KONV-KDATU,
TYPE KONV-KNTYP,
TY_KONV,

ty_t_konv TYPE TABLE OF ty_konv.

TYPES: BEGIN
VBELN
vtweg
ERDAT
FKART
FKTYP
VBTYP
WAERK
VKORG
KNUMV
REGIO
BUKRS

OF ty_final,
TYPE VBRK-VBELN,
TYPE vbrk-VTWEG,
TYPE vbrk-ERDAT,
TYPE VBRK-FKART,
TYPE VBRK-FKTYP,
TYPE VBRK-VBTYP,
TYPE VBRK-WAERK,
TYPE VBRK-VKORG,
TYPE VBRK-KNUMV,
TYPE VBRK-REGIO,
TYPE VBRK-BUKRS,

"Billing Document
"Billing Type
"Billing category
"SD document category
"SD Document Currency
"Sales Organization
"Number of the document condition

NETWR TYPE VBRK-NETWR,


POSNR TYPE VBRP-POSNR,
VRKME TYPE VBRP-VRKME,
MEINS TYPE VBRP-MEINS,
LGORT TYPE VBRP-LGORT,
VKORG_AUFT TYPE VBRP-VKORG_AUFT,
KSCHL TYPE KONV-KSCHL,
KDATU TYPE KONV-KDATU,
KNTYP TYPE KONV-KNTYP,
END OF ty_final,
ty_t_final TYPE TABLE OF ty_final.
*&---------------------------------------------------------------------*
*
INTERNAL TABLE DECLARATION
*&---------------------------------------------------------------------*
DATA : gt_vbrkvbrp type ty_t_vbrkvbrp,
gw_vbrkvbrp TYPE ty_vbrkvbrp,
gt_konv
TYPE ty_t_konv,
gw_konv
TYPE ty_konv,
gt_final
TYPE ty_t_final,
gw_final
TYPE ty_final,
gt_fcat type slis_t_fieldcat_alv,
gw_fcat type slis_fieldcat_alv.
selection-screen BEGIN OF BLOCK blk WITH FRAME TITLE text-000.
SELECT-OPTIONS: s_ERDAT for vbrk-ERDAT,
s_vkorg for VBRk-VKORG.
selection-screen end of block blk.
selection-screen BEGIN OF BLOCK blk1 WITH FRAME TITLE text-000.
SELECT-OPTIONS: s_vtweg for vbrk-vtweg.
PARAMETERS : s_bukrs type VBRK-BUKRS OBLIGATORY.
selection-screen end of block blk1.
initialization.
perform f_fill_doc_date.
AT SELECTION-SCREEN.
PERFORM F_VALIDATE_CC.
start-of-selection .
perform f_fetch_vbrkvbrp.
perform f_fetch_konv.
sort gt_vbrkvbrp.
sort gt_konv.
perform f_fill_final.
end-of-selection.
perform f_fill_fcat.
perform f_display.

* loop at gt_final into gw_final.


* write:/ gw_final-VBELN,
*
gw_final-vtweg,
*
gw_final-ERDAT,
*
gw_final-FKART,
*
gw_final-FKTYP,
*
gw_final-VBTYP,
*
gw_final-WAERK,
*
gw_final-VKORG,
*
gw_final-KNUMV,
*
gw_final-REGIO,
*
gw_final-BUKRS,
*
gw_final-NETWR,
*
gw_final-POSNR,
*
gw_final-VRKME,
*
gw_final-MEINS,
*
gw_final-LGORT,
*
gw_final-VKORG_AUFT,
*
gw_final-KSCHL,
*
gw_final-KDATU,
*
gw_final-KNTYP.
*
ENDLOOP.
*&---------------------------------------------------------------------*
*&
Form f_fetch_vbrkvbrp
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form f_fetch_vbrkvbrp .
SELECT VBRK~VBELN vbrk~VTWEG vbrk~ERDAT VBRK~FKART VBRK~FKTYP VBRK~VBTYP VBRK~W
AERK VBRK~VKORG VBRK~KNUMV VBRK~REGIO VBRK~BUKRS VBRK~NETWR
VBRP~POSNR VBRP~VRKME VBRP~MEINS VBRP~LGORT VBRP~VKORG_AUFT
into table gt_vbrkvbrp
from vbrk
inner join vbrp
on vbrk~vbeln = vbrp~vbeln
where vbrk~ERDAT in s_erdat and
vbrp~vkorg_auft in s_vkorg and
vbrk~vtweg in s_vtweg and
vbrk~bukrs = s_bukrs.
endform.
" f_fetch_vbrkvbrp
*&---------------------------------------------------------------------*
*&
Form f_fetch_konv
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form f_fetch_konv .
SELECT KNUMV KSCHL KDATU KNTYP
into table gt_konv
FROM konv
FOR ALL ENTRIES IN gt_vbrkvbrp
WHERE knumv = gt_vbrkvbrp-knumv.

endform.
" f_fetch_konv
*&---------------------------------------------------------------------*
*&
Form f_fill_final
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form f_fill_final .
loop at gt_vbrkvbrp into gw_vbrkvbrp.
move: gw_vbrkvbrp-vbeln to gw_final-vbeln,
gw_vbrkvbrp-vtweg to gw_final-vtweg,
gw_vbrkvbrp-erdat to gw_final-erdat,
gw_vbrkvbrp-fkart to gw_final-fkart,
gw_vbrkvbrp-fktyp to gw_final-fktyp,
gw_vbrkvbrp-vbtyp to gw_final-vbtyp,
gw_vbrkvbrp-waerk to gw_final-waerk,
gw_vbrkvbrp-vkorg to gw_final-vkorg,
gw_vbrkvbrp-knumv to gw_final-knumv,
gw_vbrkvbrp-regio to gw_final-regio,
gw_vbrkvbrp-bukrs to gw_final-bukrs,
gw_vbrkvbrp-netwr to gw_final-netwr,
gw_vbrkvbrp-posnr to gw_final-posnr,
gw_vbrkvbrp-VRKME to gw_final-VRKME,
gw_vbrkvbrp-meins to gw_final-meins,
gw_vbrkvbrp-lgort to gw_final-lgort,
gw_vbrkvbrp-VKORG_AUFT to gw_final-VKORG_AUFT.
READ TABLE gt_konv INTO gw_konv with key knumv = gw_vbrkvbrp-knumv BINARY
SEARCH.
if sy-subrc = 0.
move: gw_konv-kschl to gw_final-kschl,
gw_konv-KDATU to gw_final-KDATU,
gw_konv-kntyp to gw_final-kntyp.
ENDIF.
APPEND gw_final to gt_final.
CLEAR gw_final.
ENDLOOP.
endform.
" f_fill_final
*&---------------------------------------------------------------------*
*&
Form f_display
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form f_display .
DATA: lv_repid TYPE sy-repid,
lw_layout TYPE slis_layout_alv.
lw_layout-colwidth_optimize = 'X'.
lw_layout-zebra = 'X'.
lv_repid = sy-cprog.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
I_INTERFACE_CHECK
= ' '
I_BYPASSING_BUFFER
= ' '
I_BUFFER_ACTIVE
= ' '
I_CALLBACK_PROGRAM
= LV_REPID
* I_CALLBACK_PF_STATUS_SET
= ' '
* I_CALLBACK_USER_COMMAND
= ' '
I_CALLBACK_TOP_OF_PAGE
= '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
= LW_LAYOUT
IT_FIELDCAT
= gt_fcat
* IT_EXCLUDING
=
* IT_SPECIAL_GROUPS
=
* IT_SORT
=
* IT_FILTER
=
* IS_SEL_HIDE
=
* I_DEFAULT
= 'X'
* I_SAVE
= ' '
* IS_VARIANT
=
* IT_EVENTS
=
* IT_EVENT_EXIT
=
* IS_PRINT
=
* IS_REPREP_ID
=
* I_SCREEN_START_COLUMN
= 0
* I_SCREEN_START_LINE
= 0
* I_SCREEN_END_COLUMN
= 0
* I_SCREEN_END_LINE
= 0
* I_HTML_HEIGHT_TOP
= 0
* I_HTML_HEIGHT_END
= 0
* IT_ALV_GRAPHICS
=
* IT_HYPERLINK
=
* IT_ADD_FIELDCAT
=
* IT_EXCEPT_QINFO
=
* IR_SALV_FULLSCREEN_ADAPTER
=
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER
=
* ES_EXIT_CAUSED_BY_USER
=
TABLES
t_outtab
= gt_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.
" f_display
*&---------------------------------------------------------------------*
*&
Form f_fill_fcat
*&---------------------------------------------------------------------*

*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form f_fill_fcat .
gw_fcat-fieldname = 'VBELN'.
gw_fcat-tabname = 'GT_FINAL'.
gw_fcat-seltext_m = 'Billing Document'.
APPEND gw_fcat TO gt_fcat.
CLEAR gw_fcat.
gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'VTWEG'.
'GT_FINAL'.
= 'Distribution Channel'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'ERDAT'.
'GT_FINAL'.
= 'Record Creation Date'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'FKART'.
'GT_FINAL'.
= 'Billing Type'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'VBTYP'.
'GT_FINAL'.
= 'SD document category'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'WAERK'.
'GT_FINAL'.
= 'SD Document Currency'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'VKORG'.
'GT_FINAL'.
= 'Sales Org.'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'KNUMV'.
'GT_FINAL'.
= 'Document Condition No.'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'REGIO'.
'GT_FINAL'.
= 'Region'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'BUKRS'.
'GT_FINAL'.
= 'Company Code'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'NETWR'.
'GT_FINAL'.
= 'Net Value'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'POSNR'.
'GT_FINAL'.
= 'Billing item'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'VRKME'.
'GT_FINAL'.
= 'Sales unit'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'MEINS'.
'GT_FINAL'.
= 'Units'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'LGORT'.
'GT_FINAL'.
= 'Storage Location'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'KSCHL'.
'GT_FINAL'.
= 'Condition type'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'KDATU'.
'GT_FINAL'.
= 'Condition pricing date'.
gt_fcat.

gw_fcat-fieldname
gw_fcat-tabname =
gw_fcat-seltext_m
APPEND gw_fcat TO
CLEAR gw_fcat.

= 'KNTYP'.
'GT_FINAL'.
= 'Condition category'.
gt_fcat.

endform.
" f_fill_fcat
*&---------------------------------------------------------------------*
*&
Form F_VALIDATE_CC
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*

* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form F_VALIDATE_CC .
DATA: LV_BUKRS TYPE VBRK-BUKRS.
SELECT SINGLE BUKRS
INTO LV_BUKRS
FROM VBRK
WHERE BUKRS = S_BUKRS.
IF SY-SUBRC NE 0.
MESSAGE 'Please Enter A Valid Company Code' TYPE 'E'.
ENDIF.
endform.
" F_VALIDATE_CC
*&---------------------------------------------------------------------*
*&
Form f_fill_doc_date
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
form f_fill_doc_date .
Data: iv_edate type sy-datum.
s_erdat-sign = 'I'.
s_erdat-option = 'BT'.
s_erdat-low = sy-datum.
s_erdat-low+6(2) = '01'.
CALL FUNCTION 'OIL_LAST_DAY_OF_MONTH'
EXPORTING
i_date
= sy-datum
IMPORTING
E_LAST_DAY
= iv_edate.
s_erdat-high = iv_edate.
Append s_erdat.
endform.
" f_fill_doc_date
Form top_of_page.
Data:lv_header type slis_t_listheader,
lw_header type slis_listheader.
lw_header-typ = 'H'.
lw_header-info = 'Sales Summary'.
append lw_header to lv_header.
Clear lw_header.
lw_header-typ = 'A'.
lw_header-info = 'Test Action'.
append lw_header to lv_header.
Clear lw_header.
lw_header-typ = 'S'.
lw_header-Key = 'Date:'.
lw_header-info = sy-datum.
append lw_header to lv_header.
Clear lw_header.
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary
= lv_header
I_LOGO
= 'ENJOYSAP_LOGO'

*
*

I_END_OF_LIST_GRID
I_ALV_FORM
.
endform.

=
=

Potrebbero piacerti anche