ALV中的两个表

2020-08-22 02:44发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)我有两个表BKPF和TOA01。...

         点击此处--->   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
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()。

一周热门 更多>