You are on page 1of 7

REPORT: ZALVREPORTE_ANDY.

TABLES: vbak,
vbap,
mara,
kna1,
vbrk, "Billing Document: Header Data
vbrp. "Billing Document: Item Data
*---------------------------------------------------------------------*
* Internal Tables
*---------------------------------------------------------------------*
DATA: BEGIN OF it_resale OCCURS 10,
srno(3) TYPE c,
"level
audat
LIKE vbak-audat,
"date
ernam_1 like vbak-ernam,
matnr
LIKE mara-matnr,
"flat no
name
LIKE kna1-name1,
"old customer name
kbetr
LIKE konv-kbetr,
"old rate
name_1 LIKE kna1-name1,
"new customer name
kbetr_1 LIKE konv-kbetr,
"new rate
ernam
LIKE vbak-ernam,
"Approved by
erdat
LIKE vbak-erdat,
"Approved On
vbeln
LIKE vbak-vbeln,
vkorg
LIKE vbak-vkorg,
kunnr
LIKE vbak-kunnr,
knumv
LIKE vbak-knumv,
vgbel
LIKE vbak-vgbel,
auart
LIKE vbak-auart.
DATA: END OF it_resale.
DATA : BEGIN OF it_vbap OCCURS 10,
vbeln LIKE vbap-vbeln,
matnr LIKE vbap-matnr.
DATA : END OF it_vbap.
DATA : wa_vbak TYPE vbak.
DATA : wa_kna1 TYPE kna1.
DATA : wa_konv TYPE konv.
DATA : wa_vbap LIKE it_vbap.
DATA : wa_resale LIKE it_resale.
DATA : wa_srno TYPE int2.
*---------------------------------------------------------------------*
* Variables
*---------------------------------------------------------------------*
TYPE-POOLS: slis.
DATA: gt_fieldcat
ls_fieldcat
gs_layout
g_save(1),
gt_sort
ls_sort
grepid

TYPE slis_t_fieldcat_alv,
TYPE slis_fieldcat_alv,
TYPE slis_layout_alv,
TYPE slis_t_sortinfo_alv,
TYPE slis_sortinfo_alv,
LIKE sy-repid.

*---------------------------------------------------------------------*
* Selection Screen
*---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK main_01 WITH FRAME TITLE text-100.
SELECT-OPTIONS p_vkorg FOR vbak-vkorg.
"Sales Organization (Proje
ct)

SELECT-OPTIONS p_matnr FOR vbap-matnr.


SELECT-OPTIONS p_extwg FOR mara-extwg.
*SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS p_labor FOR mara-labor.
*SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS p_vbeln FOR vbak-vbeln.
*SELECTION-SCREEN SKIP 1.
SELECT-OPTIONS p_kunnr FOR vbak-kunnr.
*SELECTION-SCREEN SKIP 1.
SELECTION-SCREEN END OF BLOCK main_01.

"Flats
"Wing

"Billing Document.
"Customer.

*---------------------------------------------------------------------*
* START OF SELECTION
*---------------------------------------------------------------------*
START-OF-SELECTION.
*for getting the prps data
PERFORM get_data.
PERFORM consolidate_data.
IF it_resale[] IS NOT INITIAL.
PERFORM display_resale_data.
* ELSE.
*
MESSAGE i001(zp01).
** No Records Found.!
ENDIF.
"IF NOT IT_RESALE[] IS INITIAL.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*&
Form DISPLAY_RESALE_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM display_resale_data .
grepid = sy-repid.
g_save = 'A'.
PERFORM manipulate_fieldcatlog.
PERFORM manipulate_layout.
PERFORM grid_display.
ENDFORM.
" DISPLAY_RESALE_DATA
*&---------------------------------------------------------------------*
*&
Form MANIPULATE_FIELDCATLOG
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM manipulate_fieldcatlog .
DATA: var TYPE i.
var = var + 1.
ls_fieldcat-col_pos
= var.
ls_fieldcat-fieldname
= 'SRNO'.

ls_fieldcat-tabname
= 'IT_RESALE'.
ls_fieldcat-seltext_m
= 'SN.'.
ls_fieldcat-outputlen
= 4.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
var = var + 1.
ls_fieldcat-col_pos
= var.
ls_fieldcat-fieldname
= 'AUDAT'.
ls_fieldcat-tabname
= 'IT_RESALE'.
ls_fieldcat-seltext_m
= 'Date'.
* ls_fieldcat-just
= 'L'.
ls_fieldcat-outputlen
= 13.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
var = var + 1.
ls_fieldcat-col_pos
= var.
ls_fieldcat-fieldname
= 'ERNAM_1'.
ls_fieldcat-tabname
= 'IT_RESALE'.
ls_fieldcat-seltext_m
= 'CreatedBy '.
* ls_fieldcat-just
= 'L'.
ls_fieldcat-outputlen
= 30.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
var = var + 1.
ls_fieldcat-col_pos
= var.
ls_fieldcat-fieldname
= 'VGBEL'.
ls_fieldcat-tabname
= 'IT_RESALE'.
ls_fieldcat-seltext_m
= 'Old Doc. No.'.
* ls_fieldcat-just
= 'L'.
ls_fieldcat-outputlen
= 12.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
var = var + 1.
ls_fieldcat-col_pos
= var.
ls_fieldcat-fieldname
= 'MATNR'.
ls_fieldcat-tabname
= 'IT_RESALE'.
ls_fieldcat-seltext_m
= 'Flat No.'.
* ls_fieldcat-just
= 'L'.
ls_fieldcat-outputlen
= 10.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
var = var + 1.
ls_fieldcat-col_pos
= var.
ls_fieldcat-fieldname
= 'NAME_1'.
ls_fieldcat-tabname
= 'IT_RESALE'.
ls_fieldcat-seltext_m
= 'Old Customer Name'.
* ls_fieldcat-just
= 'L'.
ls_fieldcat-outputlen
= 30.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
var = var + 1.
ls_fieldcat-col_pos
ls_fieldcat-fieldname
ls_fieldcat-tabname

= var.
= 'KBETR_1'.
= 'IT_RESALE'.

ls_fieldcat-seltext_m
= 'Old Rate'.
* ls_fieldcat-just
= 'L'.
ls_fieldcat-outputlen
= 10.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
var = var + 1.
ls_fieldcat-col_pos
= var.
ls_fieldcat-fieldname
= 'VBELN'.
ls_fieldcat-tabname
= 'IT_RESALE'.
ls_fieldcat-seltext_m
= 'New Doc. No.'.
* ls_fieldcat-just
= 'L'.
ls_fieldcat-outputlen
= 12.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
var = var + 1.
ls_fieldcat-col_pos
= var.
ls_fieldcat-fieldname
= 'NAME'.
ls_fieldcat-tabname
= 'IT_RESALE'.
ls_fieldcat-seltext_m
= 'New Customer Name'.
* ls_fieldcat-just
= 'L'.
ls_fieldcat-outputlen
= 30.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
var = var + 1.
ls_fieldcat-col_pos
= var.
ls_fieldcat-fieldname
= 'KBETR'.
ls_fieldcat-tabname
= 'IT_RESALE'.
ls_fieldcat-seltext_m
= 'New Rate'.
* ls_fieldcat-just
= 'L'.
ls_fieldcat-outputlen
= 10.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
var = var + 1.
ls_fieldcat-col_pos
= var.
ls_fieldcat-fieldname
= 'ERNAM'.
ls_fieldcat-tabname
= 'IT_RESALE'.
ls_fieldcat-seltext_m
= 'ApprovedBy'.
* ls_fieldcat-just
= 'L'.
ls_fieldcat-outputlen
= 30.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
var = var + 1.
ls_fieldcat-col_pos
= var.
ls_fieldcat-fieldname
= 'ERDAT'.
ls_fieldcat-tabname
= 'IT_RESALE'.
ls_fieldcat-seltext_m
= 'ApprovedOn'.
* ls_fieldcat-just
= 'L'.
ls_fieldcat-outputlen
= 10.
APPEND ls_fieldcat TO gt_fieldcat.
CLEAR ls_fieldcat.
ENDFORM.
" MANIPULATE_FIELDCATLOG
*&---------------------------------------------------------------------*
*&
Form MANIPULATE_LAYOUT
*&---------------------------------------------------------------------*
*
text

*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM manipulate_layout .
gs_layout-zebra
= 'X'.
gs_layout-colwidth_optimize = 'X'.
ENDFORM.
" MANIPULATE_LAYOUT
*&---------------------------------------------------------------------*
*&
Form GRID_DISPLAY
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM grid_display .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
*
i_callback_user_command
= 'USER_COMMAND'
i_callback_program
= grepid
* i_callback_top_of_page
= 'TOP-OF-PAGE'
*
i_callback_pf_status_set
= 'SET_PF_STATUS'
is_layout
= gs_layout
it_fieldcat
= gt_fieldcat
* it_sort
= gt_sort
i_save
= 'A'
TABLES
t_outtab
= it_resale
.
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.
" GRID_DISPLAY
*&---------------------------------------------------------------------*
*&
Form GET_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM get_data .
* for old customer data
break developer.
SELECT a~vbeln a~audat a~vkorg a~kunnr b~matnr
a~knumv a~vgbel a~auart a~ernam a~erdat
FROM vbak AS a
INNER JOIN vbap AS b
ON a~vbeln = b~vbeln
INNER JOIN mara AS c
ON b~matnr = c~matnr
INTO CORRESPONDING FIELDS OF TABLE it_resale
WHERE a~vkorg IN p_vkorg AND
"Project
a~vbeln IN p_vbeln AND
"Billing Doc
a~kunnr IN p_kunnr AND
"Customer
b~matnr IN p_matnr AND
"Flat
c~extwg IN p_extwg AND
"building
c~labor IN p_labor AND
"wing

a~vgbel

NE ''

a~auart

EQ 'ZHOR'.

AND

"Document number of the refere

nce document
"Sales Document Type

IF it_resale[] IS INITIAL.
MESSAGE i208(00) WITH 'No hay Datos...'.
EXIT.
ENDIF.
ENDFORM.
" GET_DATA
*&---------------------------------------------------------------------*
*&
Form CONSOLIDATE_DATA
*&---------------------------------------------------------------------*
*
text
*----------------------------------------------------------------------*
* --> p1
text
* <-- p2
text
*----------------------------------------------------------------------*
FORM consolidate_data .
LOOP AT it_resale INTO wa_resale.
wa_srno = wa_srno + 1.
wa_resale-srno = wa_srno.
* for old customer name
SELECT * FROM kna1
INTO wa_kna1
WHERE kunnr EQ wa_resale-kunnr.
wa_resale-name = wa_kna1-name1.
ENDSELECT.
* for Rate
SELECT * FROM konv
INTO wa_konv
WHERE knumv EQ wa_resale-knumv
AND kschl EQ 'ZR00'.
wa_resale-kbetr = wa_konv-kbetr.
ENDSELECT.
* for new customer
break developer.
CLEAR wa_vbak.
SELECT * FROM vbak
INTO wa_vbak
WHERE vbeln EQ wa_resale-vgbel.
wa_resale-ernam_1 = wa_vbak-ernam.
wa_resale-audat = wa_vbak-audat.
ENDSELECT.
* for new customer name
break developer.
CLEAR wa_kna1.
SELECT * FROM kna1
INTO wa_kna1
WHERE kunnr EQ wa_vbak-kunnr.
wa_resale-name_1 = wa_kna1-name1.
ENDSELECT.
* for new Rate
CLEAR wa_konv.
SELECT * FROM konv

INTO wa_konv
WHERE knumv EQ wa_vbak-knumv
AND kschl EQ 'ZR00'.
wa_resale-kbetr_1 = wa_konv-kbetr.
ENDSELECT.
break developer.
MODIFY it_resale INDEX sy-tabix FROM wa_resale.
CLEAR: wa_resale, wa_konv, wa_kna1, wa_vbak.
ENDLOOP.
ENDFORM.

" CONSOLIDATE_DATA

You might also like