一列连接rseg和bseg的字段

2020-08-30 00:55发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们。 谁能解释我如何加入R...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们。

谁能解释我如何加入Rseg(BELNR GJAHR WRBTR MENME MEINS)和

Bseg(BELNR GJAHR WRBTR MENME MEINS),例如 rseg-menge,bseg-menge sholud将成为单身

一列在另一列之上。

这是我的代码

*&--------------------------------------------- ------------------------ *
*&报告ZJOIN_TABLE
*&
*&-------- -------------------------------------------------- ----------- *
*&
*&
*&----------------------- ---------------------------------------------- *

报告ZJOIN_TABLE。

TYPE-POOLS:SLIS。

桌子:RSEG,BSEG,RBKP,BKPF。

类型:TY_RBKP的开始,
BELNR TYPE RBKP-BELNR," Inv。Doc.No.
GJAHR TYPE RBKP-GJAHR,"会计年度
BLDAT TYPE RBKP-BLDAT,"文档日期
BUDAT RBKP-BUDAT TYPE,"过帐日期
> WAERS类型RBKP-WAERS,"货币
KURSF类型RBKP-KURSF,"汇率
TY_RBKP的结尾。

数据:IT_RBKP TY_RBKP的类型表,
WA_RBKP TY_RBKP的类型。 br>
类型:TY_RSEG的开始,
BELNR类型RSEG-BELNR,"文档编号
GJAHR类型RSEG-GJAHR,"会计年度
WRBTR类型RSEG-WRBTR,"金额
MENGE 类型RSEG-MENGE,"数量
MEINS类型RSEG-MEINS,"基本单位
TY_RSEG的结尾。

数据: IT_RSEG类型表TY_RSEG,
WA_RSEG类型TY_RSEG。

TYPE:BEGIN OF TY_FINAL,
BELNR类型RBKP-BELNR," Inv。 Doc。 编号
GJAHR类型RBKP-GJAHR,"会计年度
BLDAT类型RBKP-BLDAT,"文档日期
BUDAT类型RBKP-BUDAT,"过帐日期
WAERS类型RBKP-WAERS,"货币< br> KURSF TYPE RBKP-KURSF,"汇率

SEG_BELNR TYPE RSEG-BELNR,"文档编号
SEG_GJAHR TYPE RSEG-GJAHR,"是,是
WRBTR TYPE RSEG-WRBTR,"金额< br> MENGS类型RSEG-MENGE,"数量
MEINS类型RSEG-MEINS",基本单位
TY_FINAL的结尾。

数据:IT_FINAL TY_FINAL的类型表,
WA_FINAL TY_FINAL的类型。

类型:TY_BKPF的开始,
BELNR类型BKPF-BELNR,
GJAHR类型BKPF-GJAHR,
BLDAT类型BKPF-BLDAT,
BUDAT类型BKPF-BUDAT,
WAERS TYPE BKPF-WAERS,
KURSF TYPE BKPF-KURSF,"汇率 TY_BKPF的结尾。

数据:TY_BKPF的IT_BKPF TYPE表,
TY_BKPF TY_BKPF类型。

类型:TY_BSEG的开始,
BELNR类型BSEG-BELNR,
GJAHR类型BSEG-GJAHR,
WRBTR类型BSEG-WRBTR,
MENGE类型BSEG-MENGE,
MEINS类型 BSEG-MEINS,
TY_BSEG的结尾。
数据:TY_BSEG的IT_BSEG类型表,
TY_BSEG的WA_BSEG类型表。

TY_FINAL1的BEEGIN类型,
BELNR类型BKPF-BELNR,
GJAHR类型BKPF-GJAHR,
BLDAT类型BKPF-BLDAT,
BUDAT类型BKPF-BUDAT,
WAERS类型BKPF-WAERS,
KURSF类型BKPF-KURSF,"汇率

SEG_BELNR类型BSEG-BELNR ,
SEG_GJAHR类型BSEG-GJAHR,
WRBTR类型BSEG-WRBTR,
MENGE类型BSEG-MENGE,
MEINS类型BSEG-MEINS,
TY_FINAL1的结尾。


TY_FINAL1的DATA:IT_FINAL1类型表,
TY_FINAL1的WA_FINAL1类型表。

带有框架标题文本001的A1块的选择屏幕开始。

SELECT-OPTIONS:S_BUDAT FOR RBKP-BUDAT。 "发布日期

A1块的选择屏幕结束。

选择开始。

执行GET_DATA。
执行READ_DATA。

选择结束。

数据:IT_FIELDCAT类型SLIS_T_FIELDCAT_ALV,
WA_FIELDCAT类型SLIS_FIELDCAT_ALV,
WA_LAYOUT类型SLIS_LAYOUT_ALV,
IT_REPID类型重复值SY。 >执行FIELDCAT。
执行布局。
执行显示。
*&----------------------------- ---------------------------------------- *
*&表格GET_DATA
*&----------------------------------------------- ---------------------- *
*文字
* ------------------ -------------------------------------------------- -*
*-> p1文本
* <-p2文本
* ------------------------- --------------------------------------------- *
表格 GET_DATA。

从RBKP中选择BELNR GJAHR BLDAT BUDAT将KURSF
插入S_BUDAT中的表IT_RBKP
中。

如果IT_RBKP不是初始的。

SELECT。 R的BELNR GJAHR WRBTR MENGE捞起 SEG
进入表IT_RSEG
,用于IT_RBKP
中的所有条目,其中BELNR = IT_RBKP-BELNR
并且GJAHR = IT_RBKP-GJAHR。
ENDIF。

选择BELNR GJAHR BLDAT BUDAT 从BKPF中将KURSF移到表IT_BKPF
中,S_BUDAT中的BUDAT在哪里。

如果IT_BKPF []不是初始的。
从BSEG
中选择BELNR GJAHR WRBTR MENME进入表IT_BSEG < br>对于IT_BKPF
中的所有条目,其中GJAHR = IT_BKPF-GJAHR
和BELNR = IT_BKPF-BELNR。
ENDIF。

ENDFORM。 " GET_DATA

*&---------------------------------------- ----------------------------- **
*&表格READ_DATA
*&-------- -------------------------------------------------- ----------- *
*文字
* ----------------------------- ----------------------------------------- **
表格READ_DATA。

由BELNR GJAHR排序IT_RBKP。

将IT_RSEG插入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。

用键BELNR将表IT_RBKP读入WA_RBKP
> GJAHR = WA_FINAL-SEG_GJAHR二进制搜索。

如果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。

将WA_FINAL附加到IT_FINAL。
CLEAR WA_FINAL。

ENDLOOP。
******************** Final1表循环开始************ ****
由BelNR GJAHR排序IT_BKPF。

将IT_BSEG插入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。


将表IT_BKPF读入WA_BKPF并使用键BELNR = WA_FINAL1- SEG_BELNR
GJAHR = WA_FINAL1-SEG_GJAHR二进制搜索。
如果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。

< br>将WA_FINAL1追加到IT_FINAL1。
清除WA_FINAL1。

ENDLOOP。
******************** Final1表选择结束** **************
ENDFORM。 " READ_DATA
*&------------------------------------------- -------------------------- *
*&表格FIELDCAT
*&----------- -------------------------------------------------- -------- *
*文字
* -------------------------------- -------------------------------------- *
*-> p1文字
* <-p2文字
* --------------------------------------- ------------------------------- *
FORM FIELDCAT。

WA_FIELDCAT-FIELDNAME ='BELNR '。" RBKP-BELNR," Inv。文档编号
WA_FIELDCAT-TABNAME ='IT_FINAL'。
WA_FIELDCAT-SELTEXT_S ='Doc NO'。
WA_FIELDCAT-SELTEXT_L ='文档编号'。 br> WA_FIELDCAT-COL_POS =4。
WA_FIELDCAT-OUTPUTLEN ='20'。

将WA_FIELDCAT附加到IT_FIELDCAT。
清除WA_FIELDCAT。


WA_FIELDCAT-FIELDNAME ='BUDAT'。 " RBKP-BUDAT,"发布日期
WA_FIELDCAT-TABNAME ='IT_FINAL'。
WA_FIELDCAT-SELTEXT_S ='发布日期'。
WA_FIELDCAT-SELTEXT_L ='发布日期'。
WA_FIELDCAT-COL_POS = 5.
WA_FIELDCAT-OUTPUTLEN ='20'。

附加WA_FIEL DCAT到IT_FIELDCAT。
清除WA_FIELDCAT。

WA_FIELDCAT-FIELDNAME ='BLDAT'。 " RBKP-BLDAT"文档日期
WA_FIELDCAT-TABNAME ='IT_FINAL'。
WA_FIELDCAT-SELTEXT_S ='文档日期'。
WA_FIELDCAT-SELTEXT_L ='文档日期'。
WA_FIELDCAT-COL_POS = 11.
WA_FIELDCAT-OUTPUTLEN ='15'。

将WA_FIELDCAT附加到IT_FIELDCAT。
清除WA_FIELDCAT。

WA_FIELDCAT-FIELDNAME ='MENGE'。 " RSEG-MENGE,"数量
WA_FIELDCAT-TABNAME ='IT_FINAL'。
WA_FIELDCAT-SELTEXT_S ='数量'。
WA_FIELDCAT-SELTEXT_L ='PO数量'。
WA_FIELDCAT-COL_POS = 17。
WA_FIELDCAT-OUTPUTLEN ='20'。

将WA_FIELDCAT附加到IT_FIELDCAT。
清除WA_FIELDCAT。

WA_FIELDCAT-FIELDNAME ='MEINS'。 " RSEG-MEINS",基本单元
WA_FIELDCAT-TABNAME ='IT_FINAL'。
WA_FIELDCAT-SELTEXT_S ='UOM'。
WA_FIELDCAT-SELTEXT_L ='UOM'。
WA_FIELDCAT-COL_POS = 18。
WA_FIELDCAT-OUTPUTLEN ='20'。

将WA_FIELDCAT附加到IT_FIELDCAT。
清除WA_FIELDCAT。

WA_FIELDCAT-FIELDNAME ='WRBTR'。 " RSEG-WRBTR,"金额
WA_FIELDCAT-TABNAME ='IT_FINAL'。
WA_FIELDCAT-SELTEXT_S ='发票代码'。
WA_FIELDCAT-SELTEXT_L ='发票代码'。
WA_FIELDCAT-COL_POS = 19 。
WA_FIELDCAT-OUTPUTLEN ='20'。

将WA_FIELDCAT附加到IT_FIELDCAT。
清除WA_FIELDCAT。

WA_FIELDCAT-FIELDNAME ='WAERS'。 " RBKP-WAERS,"货币
WA_FIELDCAT-TABNAME ='IT_FINAL'。
WA_FIELDCAT-SELTEXT_S ='货币键'。
WA_FIELDCAT-SELTEXT_L ='货币键'。
WA_FIELDCAT-COL_POS = 32 。
WA_FIELDCAT-OUTPUTLEN ='15'。

将WA_FIELDCAT附加到IT_FIELDCAT。
清除WA_FIELDCAT。

WA_FIELDCAT-FIELDNAME ='KURSF'。 " RBKP-KURSF
WA_FIELDCAT-TABNAME ='IT_FINAL'。
WA_FIELDCAT-SELTEXT_S ='汇率'。
WA_FIELDCAT-SELTEXT_L ='汇率'。
WA_FIELDCAT-COL_POS =33。
> WA_FIELDCAT-OUTPUTLEN ='20'。

将WA_FIELDCAT附加到IT_FIELDCAT。
清除WA_FIELDCAT。

ENDFORM。" FIELDCAT
*&--------- -------------------------------------------------- ---------- *
*&表格布局
*&--------------------------- ------------------------------------------ *
*文字
* ------------------------------------------------ ---------------------- *
*-> p1文本
* <-p2文本
* ----- -------------------------------------------------- --------------- *
表单布局。

WA_LAYOUT-ZEBRA ='X'。

ENDFORM。 "布局
*&------------------------------------------- -------------------------- *
*&表格显示
*&----------- -------------------------------------------------- -------- *
*文字
* -------------------------------- -------------------------------------- *
*-> p1文字
* <-p2文字
* --------------------------------------- ------------------------------- *
表单显示。

调用功能'REUSE_ALV_GRID_DISPLAY'< br>导出

I_CALLBACK_PROGRAM = IT_REPID
IS_LAYOUT = WA_LAYOUT
IT_FIELDCAT = IT_FIELDCAT

*导入
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_S T_OUTTAB = IT_FINAL
*例外情况
* PROGRAM_ERROR = 1
*其他= 2

如果SY-SUBRC <> 0.
*在此处实施适当的错误处理
ENDIF。

ENDFORM。"显示

2条回答
黑丝骑士
2020-08-30 01:17

您好,谢谢唐加(Thanga Prakash)现在从您的角度来看我很清楚,现在可以显示Ty_final和Ty_final1的所有字段,使ty_final的列名称相同 和ty_final1。 字段,我需要显示在虎钳,例如。 (rseg有10条记录,Bseg有10条记录),所以我总共必须在报告中显示20条记录。

一周热门 更多>