Sunteți pe pagina 1din 4

REPORT ZREPORT_JOIN_ALV.

INITIALIZATION.

TABLES: YCUSTOMAR_DETAIL.

TYPES: BEGIN OF ty_ycustomar_detail,


customer_id TYPE char1,
customer_ph_no TYPE char10,
customer_name TYPE char30,
customer_address TYPE char50,
customer_remarks TYPE char50,
END OF ty_ycustomar_detail,

BEGIN OF ty_ZCUSTOMER_DETAIL,
customer_product TYPE char10,
customer_amount TYPE zcust_amount,
END OF ty_ZCUSTOMER_DETAIL,

BEGIN OF ty_customer_final,
customer_id TYPE char1,
customer_ph_no TYPE char10,
customer_name TYPE char30,
customer_address TYPE char50,
customer_remarks TYPE char50,

customer_product TYPE char10,


customer_amount TYPE zcust_amount,
end of ty_customer_final.

data: it_YCUSTOMAR_DETAIL TYPE STANDARD TABLE OF YCUSTOMAR_DETAIL,


wa_YCUSTOMAR_DETAIL TYPE YCUSTOMAR_DETAIL,

it_customer_final TYPE STANDARD TABLE OF ty_customer_final,


wa_customer_final TYPE ty_customer_final,

it_ZCUSTOMER_DETAIL TYPE STANDARD TABLE OF ZCUSTOMER_DETAIL,


wa_ZCUSTOMER_DETAIL TYPE ZCUSTOMER_DETAIL,

it_fcat TYPE SLIS_T_FIELDCAT_ALV,


wa_fcat like LINE OF it_fcat,
wa_layout TYPE slis_layout_alv,
it_sort TYPE slis_t_sortinfo_alv,
wa_sort LIKE LINE OF it_sort.

*TYPES: c_id TYPE char1.

SELECT-OPTIONS: cust_ID FOR YCUSTOMAR_DETAIL-customer_id.

* PARAMETER: cust_id TYPE c_id.

START-OF-SELECTION.
*----------------------------------------------------------------------------------
----------------------------

SELECT * from YCUSTOMAR_DETAIL into TABLE it_YCUSTOMAR_DETAIL


* WHERE customer_id = cust_id.
WHERE customer_id in cust_id.

if it_ycustomar_detail IS NOT INITIAL.

SELECT * FROM ZCUSTOMER_DETAIL into table it_ZCUSTOMER_DETAIL


FOR ALL ENTRIES IN it_ycustomar_detail WHERE customer_id =
it_YCUSTOMAR_DETAIL-customer_id.

SORT it_zcustomer_detail by customer_id.

LOOP at it_YCUSTOMAR_DETAIL INTO wa_YCUSTOMAR_DETAIL.


wa_customer_final-customer_id = wa_ycustomar_detail-customer_id.
wa_customer_final-customer_ph_no = wa_ycustomar_detail-customer_ph_no.
wa_customer_final-customer_name = wa_ycustomar_detail-customer_name.
wa_customer_final-customer_address = wa_ycustomar_detail-
customer_address.
wa_customer_final-customer_remarks = wa_ycustomar_detail-
customer_remarks.

READ TABLE it_zcustomer_detail INTO wa_zcustomer_detail


WITH KEY customer_id = wa_ycustomar_detail-customer_id.

IF sy-subrc = 0.
wa_customer_final-customer_product = wa_zcustomer_detail-
customer_product.
wa_customer_final-customer_amount = wa_zcustomer_detail-
customer_amount.
ENDIF.

APPEND wa_customer_final to it_customer_final.


CLEAR wa_customer_final.

ENDLOOP.

ELSE.

MESSAGE 'No value found' TYPE 'S' DISPLAY LIKE 'E'.


LEAVE LIST-PROCESSING.

ENDIF .
*----------------------------------------------------------------------------------
------------*

** SELECT ycustomar_detail~customer_id
** ycustomar_detail~customer_ph_no
** ycustomar_detail~customer_name
** ycustomar_detail~customer_address
** ycustomar_detail~customer_remarks
** zcustomer_detail~customer_product
** zcustomer_detail~customer_amount
** INTO TABLE it_customer_final
** FROM ycustomar_detail
** INNER JOIN zcustomer_detail
** on ( ycustomar_detail~customer_id = zcustomer_detail~customer_id ).
* WHERE customer_id = cust_id.
* LOOP AT it_customer_final INTO wa_customer_final.
* APPEND wa_customer_final to it_customer_final.
* CLEAR wa_customer_final.
* ENDLOOP.

************ end of selection

WA_FCAT-COL_POS = '1' .
WA_FCAT-FIELDNAME = 'customer_ID' .
WA_FCAT-TABNAME = 'IT_customer_FINAL' .
WA_FCAT-SELTEXT_M = 'customer ID' .
* WA_FCAT-KEY = 'X' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .

WA_FCAT-COL_POS = '2' .
WA_FCAT-FIELDNAME = 'customer_ph_no' .
WA_FCAT-TABNAME = 'IT_customer_FINAL' .
WA_FCAT-SELTEXT_M = 'customer phone number' .
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .

WA_FCAT-COL_POS = '3' .
WA_FCAT-FIELDNAME = 'customer_name' .
WA_FCAT-TABNAME = 'IT_customer_FINAL' .
WA_FCAT-SELTEXT_M = 'customer name' .

APPEND WA_FCAT TO IT_FCAT .


CLEAR WA_FCAT .

WA_FCAT-COL_POS = '4' .
WA_FCAT-FIELDNAME = 'customer_address' .
WA_FCAT-TABNAME = 'IT_customer_FINAL' .
WA_FCAT-SELTEXT_M = 'customer adress' .
WA_FCAT-emphasize = 'C511' .

APPEND WA_FCAT TO IT_FCAT .


CLEAR WA_FCAT .

WA_FCAT-COL_POS = '5' .
WA_FCAT-FIELDNAME = 'customer_remarks' .
WA_FCAT-TABNAME = 'IT_customer_FINAL' .
WA_FCAT-SELTEXT_M = 'customer remarks' .

APPEND WA_FCAT TO IT_FCAT .


CLEAR WA_FCAT .

WA_FCAT-COL_POS = '6' .
WA_FCAT-FIELDNAME = 'customer_product' .
WA_FCAT-TABNAME = 'IT_customer_FINAL' .
WA_FCAT-SELTEXT_M = 'customer product' .

APPEND WA_FCAT TO IT_FCAT .


CLEAR WA_FCAT .

WA_FCAT-COL_POS = '7' .
WA_FCAT-FIELDNAME = 'customer_amount' .
WA_FCAT-TABNAME = 'IT_customer_FINAL' .
WA_FCAT-SELTEXT_M = 'customer amount' .
wa_fcat-Do_sum = 'x'.
APPEND WA_FCAT TO IT_FCAT .
CLEAR WA_FCAT .

WA_LAYOUT-ZEBRA = 'X' .
WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X' .
* WA_LAYOUT-EDIT = 'X' .
* WA_LAYOUT-NO_VLINE = 'X' .
* WA_LAYOUT-NO_HLINE = 'X' .

wa_sort-fieldname = 'customer_amount'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.

APPEND wa_sort to it_sort.


clear wa_sort.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'


EXPORTING

IT_FIELDCAT = it_fcat
is_layout = wa_layout
it_sort = it_sort
TABLES
T_OUTTAB = it_customer_final.
.
IF SY-SUBRC <> 0.
MESSAGE 'ALV output not possible' TYPE 'E'.
ENDIF.

S-ar putea să vă placă și