on ‎2019 Nov 23 6:41 AM
Hi Experts .
can any one explain me how to join the fields of Rseg ( BELNR GJAHR WRBTR MENGE MEINS ) and
Bseg( BELNR GJAHR WRBTR MENGE MEINS) in one column eg. rseg-menge , bseg-menge sholud be shouwen in single
column in one above another .
here is my code
*&---------------------------------------------------------------------*
*& Report ZJOIN_TABLE
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZJOIN_TABLE.
TYPE-POOLS:SLIS.
TABLES: RSEG,BSEG,RBKP,BKPF.
TYPES: BEGIN OF TY_RBKP,
BELNR TYPE RBKP-BELNR,"Inv. Doc. No.
GJAHR TYPE RBKP-GJAHR, "Fiscal Year
BLDAT TYPE RBKP-BLDAT,"Document Date
BUDAT TYPE RBKP-BUDAT, "Posting Dat
WAERS TYPE RBKP-WAERS, "Currency
KURSF TYPE RBKP-KURSF, "Exchange rate
END OF TY_RBKP.
DATA: IT_RBKP TYPE TABLE OF TY_RBKP,
WA_RBKP TYPE TY_RBKP.
TYPES: BEGIN OF TY_RSEG,
BELNR TYPE RSEG-BELNR, "Document Number
GJAHR TYPE RSEG-GJAHR, "Fiscal Year
WRBTR TYPE RSEG-WRBTR, "Amount
MENGE TYPE RSEG-MENGE, "Quantity
MEINS TYPE RSEG-MEINS, "Base Unit
END OF TY_RSEG.
DATA: IT_RSEG TYPE TABLE OF TY_RSEG,
WA_RSEG TYPE TY_RSEG.
TYPES:BEGIN OF TY_FINAL,
BELNR TYPE RBKP-BELNR,"Inv. Doc. No.
GJAHR TYPE RBKP-GJAHR, "Fiscal Year
BLDAT TYPE RBKP-BLDAT,"Document Date
BUDAT TYPE RBKP-BUDAT, "Posting Dat
WAERS TYPE RBKP-WAERS, "Currency
KURSF TYPE RBKP-KURSF, "Exchange rate
SEG_BELNR TYPE RSEG-BELNR, "Document Number
SEG_GJAHR TYPE RSEG-GJAHR, "Fiscal Yea
WRBTR TYPE RSEG-WRBTR, "Amount
MENGE TYPE RSEG-MENGE, "Quantity
MEINS TYPE RSEG-MEINS, "Base Unit
END OF TY_FINAL.
DATA: IT_FINAL TYPE TABLE OF TY_FINAL,
WA_FINAL TYPE TY_FINAL.
TYPES: BEGIN OF TY_BKPF,
BELNR TYPE BKPF-BELNR,
GJAHR TYPE BKPF-GJAHR,
BLDAT TYPE BKPF-BLDAT,
BUDAT TYPE BKPF-BUDAT,
WAERS TYPE BKPF-WAERS,
KURSF TYPE BKPF-KURSF, "Exchange rate
END OF TY_BKPF.
DATA: IT_BKPF TYPE TABLE OF TY_BKPF,
WA_BKPF TYPE TY_BKPF.
TYPES: BEGIN OF TY_BSEG,
BELNR TYPE BSEG-BELNR,
GJAHR TYPE BSEG-GJAHR,
WRBTR TYPE BSEG-WRBTR,
MENGE TYPE BSEG-MENGE,
MEINS TYPE BSEG-MEINS,
END OF TY_BSEG.
DATA: IT_BSEG TYPE TABLE OF TY_BSEG,
WA_BSEG TYPE TY_BSEG.
TYPES:BEGIN OF TY_FINAL1,
BELNR TYPE BKPF-BELNR,
GJAHR TYPE BKPF-GJAHR,
BLDAT TYPE BKPF-BLDAT,
BUDAT TYPE BKPF-BUDAT,
WAERS TYPE BKPF-WAERS,
KURSF TYPE BKPF-KURSF, "Exchange rate
SEG_BELNR TYPE BSEG-BELNR,
SEG_GJAHR TYPE BSEG-GJAHR,
WRBTR TYPE BSEG-WRBTR,
MENGE TYPE BSEG-MENGE,
MEINS TYPE BSEG-MEINS,
END OF TY_FINAL1.
DATA:IT_FINAL1 TYPE TABLE OF TY_FINAL1 ,
WA_FINAL1 TYPE TY_FINAL1.
SELECTION-SCREEN BEGIN OF BLOCK A1 WITH FRAME TITLE TEXT-001.
SELECT-OPTIONS:S_BUDAT FOR RBKP-BUDAT. "Posting Date
SELECTION-SCREEN END OF BLOCK A1.
START-OF-SELECTION.
PERFORM GET_DATA.
PERFORM READ_DATA.
END-OF-SELECTION.
DATA: IT_FIELDCAT TYPE SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT TYPE SLIS_FIELDCAT_ALV,
WA_LAYOUT TYPE SLIS_LAYOUT_ALV,
IT_REPID TYPE SY-REPID VALUE SY-REPID.
PERFORM FIELDCAT.
PERFORM LAYOUT.
PERFORM DISPLAY.
*&---------------------------------------------------------------------*
*& Form GET_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM GET_DATA .
SELECT BELNR GJAHR BLDAT BUDAT WAERS KURSF FROM RBKP
INTO TABLE IT_RBKP
WHERE BUDAT IN S_BUDAT.
IF IT_RBKP IS NOT INITIAL.
SELECT BELNR GJAHR WRBTR MENGE MEINS FROM RSEG
INTO TABLE IT_RSEG
FOR ALL ENTRIES IN IT_RBKP
WHERE BELNR = IT_RBKP-BELNR
AND GJAHR = IT_RBKP-GJAHR.
ENDIF.
SELECT BELNR GJAHR BLDAT BUDAT WAERS KURSF FROM BKPF
INTO TABLE IT_BKPF
WHERE BUDAT IN S_BUDAT.
IF IT_BKPF[] IS NOT INITIAL.
SELECT BELNR GJAHR WRBTR MENGE MEINS FROM BSEG
INTO TABLE IT_BSEG
FOR ALL ENTRIES IN IT_BKPF
WHERE GJAHR = IT_BKPF-GJAHR
AND BELNR = IT_BKPF-BELNR.
ENDIF.
ENDFORM. " GET_DATA
*&---------------------------------------------------------------------*
*& Form READ_DATA
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM READ_DATA .
SORT IT_RBKP BY BELNR GJAHR.
LOOP AT IT_RSEG INTO WA_RSEG.
WA_FINAL-SEG_BELNR = WA_RSEG-BELNR .
WA_FINAL-SEG_GJAHR = WA_RSEG-GJAHR.
WA_FINAL-WRBTR = WA_RSEG-WRBTR.
WA_FINAL-MENGE = WA_RSEG-MENGE.
WA_FINAL-MEINS = WA_RSEG-MEINS.
READ TABLE IT_RBKP INTO WA_RBKP WITH KEY BELNR = WA_FINAL-SEG_BELNR
GJAHR = WA_FINAL-SEG_GJAHR BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL-BELNR = WA_RBKP-BELNR.
WA_FINAL-GJAHR = WA_RBKP-GJAHR.
WA_FINAL-BLDAT = WA_RBKP-BLDAT.
WA_FINAL-BUDAT = WA_RBKP-BUDAT..
WA_FINAL-WAERS = WA_RBKP-WAERS.
WA_FINAL-KURSF = WA_RBKP-KURSF.
ENDIF.
APPEND WA_FINAL TO IT_FINAL.
CLEAR WA_FINAL.
ENDLOOP.
********************Final1 table Looping starts ****************
SORT IT_BKPF BY BELNR GJAHR.
LOOP AT IT_BSEG INTO WA_BSEG .
WA_FINAL1-SEG_BELNR = WA_BSEG-BELNR.
WA_FINAL1-SEG_GJAHR = WA_BSEG-GJAHR.
WA_FINAL1-WRBTR = WA_BSEG-WRBTR.
WA_FINAL1-MENGE = WA_BSEG-MENGE.
WA_FINAL1-MEINS = WA_BSEG-MEINS.
READ TABLE IT_BKPF INTO WA_BKPF WITH KEY BELNR = WA_FINAL1-SEG_BELNR
GJAHR = WA_FINAL1-SEG_GJAHR BINARY SEARCH.
IF SY-SUBRC = 0.
WA_FINAL1-BELNR = WA_BKPF-BELNR.
WA_FINAL1-GJAHR = WA_BKPF-GJAHR.
WA_FINAL1-BLDAT = WA_BKPF-BLDAT.
WA_FINAL1-BUDAT = WA_BKPF-BUDAT.
WA_FINAL1-WAERS = WA_BKPF-WAERS.
WA_FINAL1-KURSF = WA_BKPF-KURSF.
ENDIF.
APPEND WA_FINAL1 TO IT_FINAL1.
CLEAR WA_FINAL1.
ENDLOOP.
********************Final1 table select Ends ****************
ENDFORM. "READ_DATA
*&---------------------------------------------------------------------*
*& Form FIELDCAT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM FIELDCAT .
WA_FIELDCAT-FIELDNAME ='BELNR'. "RBKP-BELNR,"Inv. Doc. No.
WA_FIELDCAT-TABNAME ='IT_FINAL'.
WA_FIELDCAT-SELTEXT_S ='Doc NO'.
WA_FIELDCAT-SELTEXT_L ='Document Number'.
WA_FIELDCAT-COL_POS = 4.
WA_FIELDCAT-OUTPUTLEN = '20'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME ='BUDAT'. "RBKP-BUDAT, "Posting Date
WA_FIELDCAT-TABNAME ='IT_FINAL'.
WA_FIELDCAT-SELTEXT_S ='Post Date'.
WA_FIELDCAT-SELTEXT_L ='Posting Date '.
WA_FIELDCAT-COL_POS = 5.
WA_FIELDCAT-OUTPUTLEN = '20'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME ='BLDAT '. "RBKP-BLDAT,"Document Date
WA_FIELDCAT-TABNAME ='IT_FINAL'.
WA_FIELDCAT-SELTEXT_S ='Doc Date'.
WA_FIELDCAT-SELTEXT_L ='Document Date'.
WA_FIELDCAT-COL_POS = 11.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME ='MENGE'. " RSEG-MENGE, "Quantity
WA_FIELDCAT-TABNAME ='IT_FINAL'.
WA_FIELDCAT-SELTEXT_S ='Quantity'.
WA_FIELDCAT-SELTEXT_L ='PO Quantity'.
WA_FIELDCAT-COL_POS = 17.
WA_FIELDCAT-OUTPUTLEN = '20'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME ='MEINS'. "RSEG-MEINS, "Base Unit
WA_FIELDCAT-TABNAME ='IT_FINAL'.
WA_FIELDCAT-SELTEXT_S ='UOM'.
WA_FIELDCAT-SELTEXT_L ='UOM'.
WA_FIELDCAT-COL_POS = 18.
WA_FIELDCAT-OUTPUTLEN = '20'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME ='WRBTR'. "RSEG-WRBTR, "Amount
WA_FIELDCAT-TABNAME ='IT_FINAL'.
WA_FIELDCAT-SELTEXT_S ='Invoice Code'.
WA_FIELDCAT-SELTEXT_L ='Invoice Code'.
WA_FIELDCAT-COL_POS = 19.
WA_FIELDCAT-OUTPUTLEN = '20'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME ='WAERS'. "RBKP-WAERS, "Currency
WA_FIELDCAT-TABNAME ='IT_FINAL'.
WA_FIELDCAT-SELTEXT_S ='Curr Key'.
WA_FIELDCAT-SELTEXT_L ='Currency Key'.
WA_FIELDCAT-COL_POS = 32.
WA_FIELDCAT-OUTPUTLEN = '15'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
WA_FIELDCAT-FIELDNAME ='KURSF'. "RBKP-KURSF
WA_FIELDCAT-TABNAME ='IT_FINAL'.
WA_FIELDCAT-SELTEXT_S ='Exc Rate'.
WA_FIELDCAT-SELTEXT_L ='Exchange Rate'.
WA_FIELDCAT-COL_POS = 33.
WA_FIELDCAT-OUTPUTLEN = '20'.
APPEND WA_FIELDCAT TO IT_FIELDCAT.
CLEAR WA_FIELDCAT.
ENDFORM. " FIELDCAT
*&---------------------------------------------------------------------*
*& Form LAYOUT
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM LAYOUT .
WA_LAYOUT-ZEBRA = 'X'.
ENDFORM. " LAYOUT
*&---------------------------------------------------------------------*
*& Form DISPLAY
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM DISPLAY .
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = IT_REPID
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
TABLES
T_OUTTAB = IT_FINAL
* EXCEPTIONS
* PROGRAM_ERROR = 1
* OTHERS = 2
.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.
ENDFORM. " DISPLAY
Request clarification before answering.
@prabhu duraikannu If you are looking for something like below in a single column, one below another. I guess it is not possible, may be you can try like concatenate both the fields with separators. 10,000 | 15,000

You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Thanks thanga.prakash now I'm Clear in your point of view and now is it possible to show all field of Ty_final and Ty_final1 keeping column name as common for both the ty_final and ty_final1. fields and i need to show in row vise eg. ( rseg has 10 records and Bseg has 10 records ) so totally i have to show 20 records in the report.
| User | Count |
|---|---|
| 41 | |
| 4 | |
| 4 | |
| 4 | |
| 4 | |
| 3 | |
| 3 | |
| 2 | |
| 2 | |
| 2 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.