如何在ALV中显示带有两个子表的父表

2020-09-07 16:19发布

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

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


此报告中使用了" REUSE_ALV_GRID_DISPLAY"。

我正在用很多父母的表和他们的孩子的表做ALV,并且我想像" parent_sequence"和" child_sequence"一样与各自的父母一起显示它们的行。

我的意思是,父级中有一个唯一的记录,但是孩子们可以与同一个父级一起生成另外2条记录,然后,我将它们显示为ALV。

我尝试过,但是我的ALV只显示了孩子们的一张记录。

请帮帮我!

示例:

| ------------------------------------------- -------------------------------------------------- ----------------- |

| Parent_record-ID | 子记录名称| Child2_record-address | | | Child2_record-address2 |

| | Child2_record-address3 |

| ---------------------------------------------- -------------------------------------------------- --------------- |



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

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


此报告中使用了" REUSE_ALV_GRID_DISPLAY"。

我正在用很多父母的表和他们的孩子的表做ALV,并且我想像" parent_sequence"和" child_sequence"一样与各自的父母一起显示它们的行。

我的意思是,父级中有一个唯一的记录,但是孩子们可以与同一个父级一起生成另外2条记录,然后,我将它们显示为ALV。

我尝试过,但是我的ALV只显示了孩子们的一张记录。

请帮帮我!

示例:

| ------------------------------------------- -------------------------------------------------- ----------------- |

| Parent_record-ID | 子记录名称| Child2_record-address | | | Child2_record-address2 |

| | Child2_record-address3 |

| ---------------------------------------------- -------------------------------------------------- --------------- |



付费偷看设置
发送
7条回答
三十六小时_GS
1楼-- · 2020-09-07 17:09

您应该依靠分层ALV:检查类CL_SALV_TREE

SAP小黑
2楼-- · 2020-09-07 17:23

对不起,我不太了解您想要的布局...您可以使用简单数据的屏幕截图进行可视化吗? 顺便说一句,我认为您也可以对单元格进行排序或合并...

huskylover
3楼-- · 2020-09-07 17:24

谢谢大家,但是我找到了一种更好的方法。

看看最后一个循环:

 SPAN {
 字体家族:" Courier New";
 字体大小:10pt;
 颜色:#000000;
 背景:#FFFFFF;
 }
 .L0S31 {
 字体样式:斜体;
 颜色:#808080;
 }
 .L0S32 {
 颜色:#3399FF;
 }
 .L0S52 {
 颜色:#0000FF;
 }
 .L0S55 {
 颜色:#800080;
 }
 .L0S70 {
 颜色:#808080;
 }

 在lt_r119x INTO ls_r119中循环

                              sequencia_pai = ls_r116-sequencia。

 *如果ls_r119-sequencia_pai = ls_r116-sequencia。

 *清除:ls_r116-sequencia_pai,gv_novo_pai。

 * ELSE。

 * ls_r116-sequencia_pai = ls_r119-sequencia。

 *                              万一。

                               做sy-tabix次。

                                 移动:ls_r119-indnif到ls_excel-indnif,

                                       ls_r119-nifbenef至ls_excel-nifbenef,

                                       ls_r119-frmtribut到ls_excel-frmtribut。



                                 附加ls_excel至lt_tratamento。

                               ENDDO。

                               清除:ls_r119-indnif,ls_r119-nifbenef,ls_r119-frmtribut。



                             结局。

                           结局。

                         结局。

                       结局。

                     万一。

                   其他。

                     追加ls_excel至lt_excel。

                     从lt_excel删除相邻的重复项。

                     清除:ls_excel-branch,

                     ls_excel-cpfbenef,

                     ls_excel-nmbenef,

                     ls_excel-lifnr,

                     ls_excel-natrend,

                     ls_excel-paisresid,

                     ls_excel-dtfg,

                     ls_excel-vlrrendbruto,

                     ls_excel-vlrrendtrib,

                     ls_excel-vlrir,

                     ls_excel-vlrdeducao,

                     ls_excel-vlrisento,

                     ls_excel-indnif,

                     ls_excel-nifbenef,

                     ls_excel-frmtribut。



                   万一。



                   附加ls_excel至lt_tratamento。



                   从lt_tratamento删除相邻的重复项。



                   循环到lt_tratamento进入ls_tratamento。

                     清除lt_excel。

                   结局。

                   将lt_tratamento移动到lt_excel。



                   循环到lt_tratamento进入ls_tratamento。

                     清除:ls_tratamento-vlrdeducao,

                            ls_tratamento-vlrisento,

                            ls_tratamento-vlrrendtrib,

                            ls_tratamento-vlrrendbruto,

                            ls_tratamento-vlrir。



                     附加ls_tratamento至lt_excel。



                   结局。



                   排序lt_excel降级。



                   清除:ls_excel-branch,

                   ls_excel-cpfbenef,

                   ls_excel-nmbenef,

                   ls_excel-lifnr,

                   ls_excel-natrend,

                   ls_excel-paisresid,

                   ls_excel-dtfg,

                   ls_excel-vlrrendbruto,

                   ls_excel-vlrrendtrib,

                   ls_excel-vlrir,

                   ls_excel-vlrdeducao,

                   ls_excel-vlrisento,

                   ls_excel-indnif,

                   ls_excel-nifbenef,

                   ls_excel-frmtribut。



                 结局。

               万一。

             结局。

           万一。

         结局。

       万一。

     结局。



     在lt_excel上进入LOS_Excel。



       如果sy-tabix = 1。

         aux_cpf = ls_excel-cpfbenef。

         aux_vlrrendbruto = ls_excel-vlrrendbruto。

         继续。

       万一。



 * IF(sy-tabix MOD 2)<> 0。

       如果sy-tabix> 1。

         如果ls_excel-vlrrendbruto不是INITIAL。

           如果aux_cpf = ls_excel-cpfbenef和aux_vlrrendbruto = ls_excel-vlrrendbruto。

             删除lt_excel索引(sy-tabix)。

           万一。

         万一。

       万一。

       如果aux_cpf <> ls_excel-cpfbenef或aux_vlrrendbruto <> ls_excel-vlrrendbruto。

         如果ls_excel-vlrrendbruto不是INITIAL。

           aux_cpf = ls_excel-cpfbenef。

           aux_vlrrendbruto = ls_excel-vlrrendbruto。

         万一。

       万一。



     结局。



     在lt_excel上进入LOS_Excel。

       如果sy-tabix = 1。

         aux_cpf = ls_excel-cpfbenef。

         aux_vlrrendbruto = ls_excel-vlrrendbruto。

         删除lt_excel索引(sy-tabix +1)。

         继续。

       万一。



       如果aux_cpf <> ls_excel-cpfbenef。
          aux_cpf = ls_excel-cpfbenef。
          删除lt_excel索引(sy-tabix +1)。
         万一。
     ENDLOOP。
哎,真难
4楼-- · 2020-09-07 17:16

正如 Quynh Doan Manh 所说, 绘图可能看起来不符合您的预期。 使用CODE按钮,以便正确呈现空格和换行符。

浮生未央
5楼-- · 2020-09-07 17:00

Guilherme Finochio 让我推送为Simone回答创建的图形,以便人们可以更好地看到它:

Nir深蓝
6楼-- · 2020-09-07 17:24

+1用于使用树(尽管事实证明它并不像我想象的那么好)。 如果不禁用所有会破坏脆弱的"虚假层次"的ALV功能,则无法在网格中实现父/子功能(或屏幕截图中所示的奇异变体)。 那么,使用没有这些功能的ALV网格有什么意义呢?

一周热门 更多>