table 输出中未显示自定义字段

Custom fields not showing on table output

我无法弄清楚为什么两个自定义字段没有出现在事务 VA05 中(具体是它的输出)。

阅读以下内容之前:我没有对程序进行任何更改,因为我没有被分配到此任务。我的一位同事做了这个改变。

我遵循了 this 教程,该教程解释了如何使用自定义字段扩展 VA05 输出 table。
我实际上并没有遵循本指南。我遵循本教程只是为了了解我的同事可能做了什么来实现我们的需要以及解决问题可能需要什么。

所以,正如教程所建议的,这是简而言之应该做的事情:

如果您现在转到 VBEP table,您将在底部看到字段 .APPEND,其中列 Data Element 设置为 ZZVBEP_MECC .

现在,按照教程,包含程序 V05TZZMO 需要更改,这是我们的:

***INCLUDE V05TZZMO .
* This form is called in the include LV05TFMO.
FORM MOVE_USERFIELDS USING ZP.
  CASE ZP.
    WHEN 'VBAK'.

    WHEN 'VBAP'.

      CHECK LVBAP-PSTYV NE 'ZRAC'.
      CHECK LVBAP-PSTYV NE 'ZCAC'.     "Escl.acconti
      MOVE LVBAP-KDMAT TO LVBMTV-ZZKDMAT.
      PERFORM OFFENE_AUFTRAGSMENGE.

     SELECT SINGLE * FROM VBKD WHERE VBELN = LVBAP-VBELN.
      IF SUBRC = 0.
      MOVE VBKD-KDGRP TO LVBMTV-ZZKDGRP.
      ENDIF.

    WHEN 'VBEP'.
      MOVE LVBEP-ZZDELIVERYDATE    TO LVBMTV-ZZDELIVERYDATE.
      MOVE LVBEP-ZZREQDELIVERYDATE TO LVBMTV-ZZREQDELIVERYDATE.
  ENDCASE.
ENDFORM.

然而,当我 运行 VA05 时,这两个自定义字段既不存在也不在 Change Layout 屏幕中。

有没有可能是V05TZZMO里面的代码放错地方了?查看教程的代码,我看到他们将这些语句放在 WHEN 'VBAK' 而不是 WHEN 'VBEP'.

另外,我的代码中没有 ENHANCEMENT 1 ZZ_SD_VBAK_VA05


我可能漏掉了什么。正如我上面所说,我没有进行这些更改,所以我无法确切地说出我的同事做了什么。

自定义字段也必须包含在结构中 VBMT.

此致

终于解决了。

以下是我们为解决问题而遵循的分步过程:

创建 Append Structure

  • 转到 TCode SE11 并打开数据库 table VBMTVZ
  • 单击 Append Structure...(位于程序的工具栏中)- 或 Goto > Append Structure
  • 创建一个新的Append Structure(有一个按钮)
  • 输入结构的名称(在我们的例子中是 ZZVBMTVZ_MECC
  • 然后创建一个新结构。输入需要的components/fields
  • 保存并激活结构。
  • 注意:要检查结构是否实际附加,请返回并再次打开 table VBMTVZ。在字段列表的末尾,必须有一个名为 .APPEND 的字段,其类型设置为您创建的结构的名称。在该字段之后,还有您在该结构上创建的所有字段。请参阅下图以供参考。

更改V05T程序

现在您需要对链接到 TCode 的程序进行一些更改 VA05

为此:

  • 转到 TCode SE80
  • Select Function Group 并插入 V05T 作为组名。
  • 打开名为 Includes 的子文件夹并查找 V05TZZMO
  • change 模式打开此包含文件。
  • 文件应如下所示:
***INCLUDE V05TZZMO .
* This form is called in the include LV05TFMO.
FORM MOVE_USERFIELDS USING ZP.
  CASE ZP.
    WHEN 'VBAK'.
*     header
*     MOVE LVBAK-XXXXX TO LVBMTV-ZZXXXXX.

    WHEN 'VBAP'.
*     item
*     MOVE LVBAP-XXXXX TO LVBMTV-ZZXXXXX.

    WHEN 'VBEP'.
*     schedule line
*     MOVE LVBEP-XXXXX TO LVBMTV-ZZXXXXX.

  ENDCASE.
ENDFORM.

将以下代码行添加到 WHEN 'VBEP'. 代码块。

MOVE LVBEP-name_of_your_field TO LVBMTV-name_of_your_field

您需要为附加的每个字段添加该行。

就我而言,最终结果如下:

***INCLUDE V05TZZMO .
* This form is called in the include LV05TFMO.
FORM MOVE_USERFIELDS USING ZP.
  CASE ZP.
    WHEN 'VBAK'.
*     header
*     MOVE LVBAK-XXXXX TO LVBMTV-ZZXXXXX.

    WHEN 'VBAP'.
*     item
*     MOVE LVBAP-XXXXX TO LVBMTV-ZZXXXXX.

    WHEN 'VBEP'.
*     schedule line
*     MOVE LVBEP-XXXXX TO LVBMTV-ZZXXXXX.

  move LVBEP-zzdeliverydate to lvbmtv-zzdeliverydate.
  move LVBEP-zzreqdeliverydate to lvbmtv-zzreqdeliverydate.

  ENDCASE.
ENDFORM.

保存文件并激活程序。

此时您应该能够在 TCode 的输出中看到您的字段 VA05


备注

为了能够更改包含程序V05TZZMO,您需要一个访问密钥。否则您无法更改程序。

如果您添加的字段在激活后仍未显示,请尝试:

  • 注销并重新登录或
  • 使用此 TCode 重置缓冲区 /$SYNC