ALV中的两个表

2020-08-22 02:44发布

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

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


我有两个表BKPF和TOA01。

1。 报告应具有以下选择屏幕字段。

公司代码(BUKRS),文件编号(BELNR),会计年度(GJAHR)

2。 对于ALV报告,布局中应包含以下字段。

BKPF-BUKRS

BKPF-BELNR

BKPF-GJAHR

BKPF-USNAM

TOA01-ARCHIV_ID

TOA01-ARC_DOC_ID

** BKPF和TOA01之间的链接:

TOA01-SAP_OBJECT ='BKPF'

AND

TOA01-OBJECT_ID =并置-> BKPF-BUKRS + BKPF-BELNR + BKPF-GJAHR

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

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


我有两个表BKPF和TOA01。

1。 报告应具有以下选择屏幕字段。

公司代码(BUKRS),文件编号(BELNR),会计年度(GJAHR)

2。 对于ALV报告,布局中应包含以下字段。

BKPF-BUKRS

BKPF-BELNR

BKPF-GJAHR

BKPF-USNAM

TOA01-ARCHIV_ID

TOA01-ARC_DOC_ID

** BKPF和TOA01之间的链接:

TOA01-SAP_OBJECT ='BKPF'

AND

TOA01-OBJECT_ID =并置-> BKPF-BUKRS + BKPF-BELNR + BKPF-GJAHR

付费偷看设置
发送
5条回答
Cikesha
1楼 · 2020-08-22 03:23.采纳回答

这可能是您要寻找的最基本的实现。

  • 在一个select语句中不可能通过与Open SQL的连接从BKPF连接到TOA01,恕我直言,那是需要两个单独的select
    有一个新的Select的Open SQL concat函数 语句,但不是针对联接条件
    也许其他人对此感到更幸运
  • BKPF和TOA01之间的内部联接与外部联接可以通过参数获得
  • 只有简单的ALV
 TABLES bkpf。
 选择选项:so_bukrs FOR bkpf-bukrs,
                 so_belnr FOR bkpf-belnr,
                 so_gjahr FOR bkpf-gjahr。
 参数:pa_joini RADIOBUTTON GROUP gr1默认'X'," inner-join bkpf 1..1-n toa01
             pa_joino RADIOBUTTON GROUP gr1。  "外部连接bkpf 1..0-n toa01

 类型:开始于ty_bkpf_incl,
          像bkpf-bukrs,
          belnr像bkpf-belnr,
          gjahr像bkpf-gjahr,
          usnam像bkpf-usnam,
        结束于ty_bkpf_incl,
        ty_bkpf的开始。
          包含类型ty_bkpf_incl。
          类型:object_id,类似于toa01-object_id,
        ty_bkpf的结尾,
        开始ty_toa01_incl,
          archiv_id就像toa01-archiv_id,
          arc_doc_id类似于toa01-arc_doc_id,
        结束于ty_toa01_incl,
        开始ty_toa01,
          object_id类似于toa01-object_id。
          包含类型ty_toa01_incl。
        类型:END OF ty_toa01,
        ty_alv的开始。
          包含类型ty_bkpf_incl。
          包含类型ty_toa01_incl。
        类型:END OF ty_alv。

 数据:ty_bkpf的lt_bkpf类型表,
       带有非唯一键object_id的ty_toa01的lt_toa01类型排序表,
       lt_alv ty_alv类型表,
       ls_alv TYPE ty_alv。

 *选择NW 7.5可能的b〜bukrs,b〜belnr,b〜gjahr,b〜usnam,CONCAT(CONCAT(b〜bukrs,b〜belnr),b〜gjahr)AS object_id
 选择b〜bukrs,b〜belnr,b〜gjahr,b〜usnam
                   从bkpf AS b
                     b〜bukrs在@so_bukrs中
                       和b〜belnr IN @so_belnr
                       和b〜gjahr IN @so_gjahr
      插入表@lt_bkpf。

 在lt_bkpf分配字段符号()处循环播放。  "对于NW 7.5而言不是必需的
    -object_id =  -bukrs &&  -belnr &&  -gjahr。
 结局。

 如果lt_bkpf不是初始的。
   选择t〜object_id,t〜archiv_id,t〜arc_doc_id
     从toa01 AS t
     对于@lt_bkpf中的所有条目
     在哪里t〜sap_object ='BKPF'
       AND t〜object_id = @ lt_bkpf-object_id
     插入表@ lt_toa01。
 万一。

 循环lt_bkpf分配。
   清除ls_alv。
   将移动到ls_alv。
   使用键primary_key在lt_toa01上分配字段符号()时,在其中object_id =  -object_id。
     将移动到ls_alv。
     将ls_alv插入表lt_alv。
   结局。
   如果sy-subrc <> 0并且pa_joino = abap_true。
     将ls_alv插入表lt_alv。
   万一。
 结局。
 
SORT lt_alv。 cl_salv_table =>工厂( 导入r_salv_table = DATA(ALV) 更改t_table = lt_alv)。 alv-> display()。
小c菟菟
2楼-- · 2020-08-22 03:09

所以,换句话说,您不知道如何在ABAP中进行编码,而是希望有人为您提供整个程序?

空代码
3楼-- · 2020-08-22 03:25

您好, =" nofollow" hraf=" https://people.sap.com/nikhil_12"> sohith sohit

  • 从bkpf获取数据。
  • 在内部表lt_bkpf中添加了1个字段(临时),存储了串联的谷值

在lt_bkpf处循环进入wa_bkpf。

将it_bkpf-belnr it_bkpf-gjahr连接到it_bkpf-temp。

从wa_bkpf运输温度修改lt_bkpf。

endloop。

  • 从TOA01中为lt_bkpf中的所有条目选择,其中object_id = lt_bkpf-temp
  • 调用alv方法进入最终的内部表
渐行渐远_HoldOn
4楼-- · 2020-08-22 03:21

您好,@ Michael Piesche,我对ABAP很陌生,并介绍了如何在ABAP中进行编码。 请帮我解决这个问题。

黑丝骑士
5楼-- · 2020-08-22 03:09

由于您不解释当前的ABAP知识是什么,以及所了解的内容,我想您是一个完全的新手。

我认为世界上没有论坛可以"学习" ABAP,但是有很多在线资源,博客文章等。最终您可以支付ABAP培训费用。

我让您搜索网络 ,我认为找到它们并不是很困难。 您可能会回来一些更精确的问题,可以在论坛中搜索,或者最终可以更轻松地回答。

一周热门 更多>