Vous êtes sur la page 1sur 6

*&---------------------------------------------------------------------*

*& Report ZSD_PRICE_REPORT


*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT zsd_price_report.

TABLES: marc, mvke.

TYPES : BEGIN OF ts_final,


matnr TYPE mara-matnr,
grid TYPE j_3asize,
mat_code TYPE c,
mat_des TYPE c,
brand TYPE extwg,
pp TYPE c,
descrip TYPE c,
dist_chanl TYPE c,
pric_group TYPE c,
mrp_rsp TYPE c,
base_price TYPE c,
vat_sgst TYPE c,
cst_cgst TYPE c,
gross_price TYPE c,
unit_curr TYPE waerk,
per TYPE c,
uom TYPE vrkme,
END OF ts_final.

TYPES : BEGIN OF ts_makt,


matnr TYPE makt-matnr,
maktx TYPE makt-maktx,
END OF ts_makt.
TYPES : BEGIN OF ts_mara,
matnr TYPE mara-matnr,
meins TYPE mara-meins,
extwg TYPE mara-extwg,
zpp TYPE mara-zpp,
END OF ts_mara.
TYPES : BEGIN OF ts_mean,
matnr TYPE mean-matnr,
meinh TYPE mean-meinh,
lfnum TYPE mean-lfnum,
ean11 TYPE mean-ean11,
END OF ts_mean.
TYPES : BEGIN OF ts_konp,
knumh TYPE konp-knumh,
kopos TYPE konp-kopos,
konms TYPE konp-konms,
konws TYPE konp-konws,
kbetr TYPE konp-kbetr,
kpein TYPE konp-kpein,
END OF ts_konp.
DATA : gt_final TYPE TABLE OF ts_final,
gs_final LIKE LINE OF gt_final,
gt_a901 TYPE TABLE OF a901,
gs_a901 LIKE LINE OF gt_a901,
gt_makt TYPE TABLE OF ts_makt,
gs_makt LIKE LINE OF gt_makt,
gt_mara TYPE TABLE OF ts_mara,
gs_mara LIKE LINE OF gt_mara,
gt_mean TYPE TABLE OF ts_mean,
gs_mean LIKE LINE OF gt_mean,
gt_konp TYPE TABLE OF ts_konp,
gs_konp LIKE LINE OF gt_konp,
gt_fcat TYPE slis_t_fieldcat_alv,
gs_fcat LIKE LINE OF gt_fcat,
gs_layout TYPE slis_layout_alv.

SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME TITLE text-001.


SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS :
* s_werks FOR marc-werks,
s_vkorg FOR mvke-vkorg,
s_vtweg FOR mvke-vtweg,
s_matnr FOR mvke-matnr,
s_erdat FOR sy-datum DEFAULT sy-datum NO-EXTENSION NO-DISPLAY.
SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK a1.

AT SELECTION-SCREEN.
PERFORM validation.

START-OF-SELECTION.
PERFORM get_data.
PERFORM data_process.
PERFORM fieldcat.
PERFORM display.
*&---------------------------------------------------------------------*
*& Form VALIDATION
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM validation .

ENDFORM. " VALIDATION


*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM get_data .

CLEAR : gt_a901, gt_makt, gt_mara, gt_mean, gt_konp.


IF s_erdat-low IS NOT INITIAL.
SELECT * FROM a901 INTO TABLE gt_a901
WHERE kappl = 'V'
AND ( kschl = 'ZRSP' OR kschl = 'ZWSP' )
AND vkorg IN s_vkorg
AND vtweg IN s_vtweg
AND matnr IN s_matnr
AND datbi GE s_erdat-low
AND datab LE s_erdat-low.
ELSE.
SELECT * FROM a901 INTO TABLE gt_a901
WHERE kappl = 'V'
AND ( kschl = 'ZRSP' OR kschl = 'ZWSP' )
AND vkorg IN s_vkorg
AND vtweg IN s_vtweg
AND matnr IN s_matnr.
ENDIF.

IF gt_a901 IS NOT INITIAL.


SELECT matnr maktx FROM makt INTO TABLE gt_makt FOR ALL ENTRIES IN gt_a901
WHERE matnr = gt_a901-matnr AND spras = 'EN'.
SELECT matnr meins extwg zpp FROM mara INTO TABLE gt_mara FOR ALL ENTRIES IN
gt_a901 WHERE matnr = gt_a901-matnr.
SELECT matnr meinh lfnum ean11 FROM mean INTO TABLE gt_mean FOR ALL ENTRIES IN
gt_a901 WHERE matnr = gt_a901-matnr.
SELECT knumh kopos konms konws kbetr kpein FROM konp INTO TABLE gt_konp FOR ALL
ENTRIES IN gt_a901 WHERE knumh = gt_a901-knumh.
ENDIF.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form DATA_PROCESS
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM data_process .
CLEAR: gt_final, gs_final, gs_a901.

LOOP AT gt_a901 INTO gs_a901.


CLEAR: gs_makt, gs_mara, gs_mean, gs_konp.

gs_final-matnr = gs_a901-matnr.
gs_final-grid = gs_a901-j_3asize.
*gs_final-mat_code = .
gs_final-mat_des = gs_makt-maktx.
gs_final-brand = gs_mara-extwg.
gs_final-pp = gs_mara-zpp.
gs_final-descrip = gs_mean-ean11.
gs_final-dist_chanl = gs_a901-vtweg.
gs_final-pric_group = gs_a901-konda.
gs_final-mrp_rsp = gs_konp-kbetr.
gs_final-base_price = gs_konp-kbetr.
*gs_final-vat_sgst = .
*gs_final-cst_cgst = .
*gs_final-gross_price = .
gs_final-unit_curr = gs_konp-konws.
gs_final-per = gs_konp-kpein.
gs_final-uom = gs_konp-konms.

ENDLOOP.
ENDFORM. " DATA_PROCESS
*&---------------------------------------------------------------------*
*& Form FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM fieldcat .

CLEAR : gt_fcat, gs_fcat, gs_layout.


gs_layout-zebra = 'X'.
gs_layout-colwidth_optimize = 'X'.

gs_fcat-fieldname = 'MATNR'.
gs_fcat-seltext_l = 'Material code'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'GRID'.
gs_fcat-seltext_l = 'Grid value'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'MAT_CODE'.
gs_fcat-seltext_l = 'Mat code '.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'MAT_DES'.
gs_fcat-seltext_l = 'Material Description'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'BRAND'.
gs_fcat-seltext_l = 'Brand'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'BRAND'.
gs_fcat-seltext_l = 'PP'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'DESCRIP'.
gs_fcat-seltext_l = 'Description (EAN)'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'DIST_CHANL'.
gs_fcat-seltext_l = 'Distribution channel'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'PRIC_GROUP'.
gs_fcat-seltext_l = 'Price Group'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'MRP_RSP'.
gs_fcat-seltext_l = 'MRP/RSP'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'BASE_PRICE'.
gs_fcat-seltext_l = 'Base Price'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'VAT_SGST'.
gs_fcat-seltext_l = 'VAT/SGST'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'VAT_SGST'.
gs_fcat-seltext_l = 'CST/CGST'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'GROSS_PRICE'.
gs_fcat-seltext_l = 'Gross Price '.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'UNIT_CURR'.
gs_fcat-seltext_l = 'Unit / Currency'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'PER'.
gs_fcat-seltext_l = 'Per'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

gs_fcat-fieldname = 'UOM '.


gs_fcat-seltext_l = 'UOM'.
APPEND gs_fcat TO gt_fcat.
CLEAR gs_fcat.

ENDFORM. " FIELDCAT


*&---------------------------------------------------------------------*
*& Form DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM display .

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER = ' '
* I_BUFFER_ACTIVE = ' '
* i_callback_program = sy-cprog
* 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 = gs_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 = gt_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 = gt_final
EXCEPTIONS
program_error = 1
OTHERS = 2
.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.

ENDFORM. " DISPLAY

Vous aimerez peut-être aussi