2

我制作了一个包含三个字段的表:KUNNR、NAME_1 和 Z_CLASS。KUNNR 有 KUNNR 作为数据元素,NAME_1 有 NAME1_GP,Z_CLASS 有一个我用 3 个值(1、2 或 3)制作的数据元素。我已经制作了表格维护生成器,并使用 SM30 放入了一些数据。现在,当我输入客户编号(KUNNR)并按回车时,我需要自动显示客户名称(NAME_1);并且需要确保 Z_CLASS 已填写且未留空。我真的不知道如何搜索解决方案,因为我是 SAP 新手。谢谢你。

PROCESS BEFORE OUTPUT.
 MODULE LISTE_INITIALISIEREN.
 LOOP AT EXTRACT WITH CONTROL
  TCTRL_Z10FICLASSFICA CURSOR NEXTLINE.
   MODULE LISTE_SHOW_LISTE.
 ENDLOOP.
*
PROCESS AFTER INPUT.
 MODULE LISTE_EXIT_COMMAND AT EXIT-COMMAND.
 MODULE LISTE_BEFORE_LOOP.
 LOOP AT EXTRACT.
   MODULE LISTE_INIT_WORKAREA.
   CHAIN.
    FIELD Z10FICLASSFICA-KUNNR .
    FIELD Z10FICLASSFICA-NAME1 .
    FIELD Z10FICLASSFICA-Z_CLASS .
    MODULE SET_UPDATE_FLAG ON CHAIN-REQUEST.
   ENDCHAIN.
   FIELD VIM_MARKED MODULE LISTE_MARK_CHECKBOX.
   CHAIN.
    FIELD Z10FICLASSFICA-KUNNR .
    MODULE LISTE_UPDATE_LISTE.
   ENDCHAIN.
 ENDLOOP.
 MODULE LISTE_AFTER_LOOP.
4

2 回答 2

2

至于名称,请勿将其保留为冗余字段。定义外键关系,然后使用维护视图显示与客户编号对应的名称。

对于必填字段检查,编辑生成的屏幕并添加一个模块来检查是否填写了必填字段。也应该可以在屏幕字段选项中将该字段设置为必填,但我不建议这样做,因为即使对于空行,该字段也会显示为必填。

于 2012-10-15T17:37:12.730 回答
-1

我已经找到了这两个问题的答案。为了自动填写客户名称,我使用了一个带有事件“填充隐藏字段”(第 21 号)的表单例程。在生成的包含中,我使用了以下代码:

FORM fill_hidden.
DATA: lc_name1 TYPE kna1-name1.
Data: lc_kunnr TYPE kna1-kunnr.

lc_kunnr = z10ficlassfica-kunnr.

SELECT SINGLE name1 INTO lc_name1 FROM kna1 WHERE kunnr = lc_kunnr.

z10ficlassfica-name1 = lc_name1.
endform.

对于必填字段,我转到维护屏幕、元素列表选项卡、特殊属性选项卡,然后从条目列的下拉菜单中选择必填项。像魅力一样工作。感谢您的所有回答:)

于 2012-10-16T10:35:45.957 回答