cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Joining fields of rseg and bseg in one column

akon
Explorer
0 Likes
1,312

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

Accepted Solutions (0)

Answers (1)

Answers (1)

ThangaPrakash
Active Contributor
0 Likes

@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

akon
Explorer
0 Likes

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.