输入有效的KUNNR - SM30时自动填写NAME_1

时间:2012-10-15 15:18:51

标签: sap

我创建了一个包含三个字段的表: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.

2 个答案:

答案 0 :(得分:1)

至于名称,请不要将其保留为重复字段。定义外键关系,然后使用maintenance view显示与客户编号对应的名称。

对于必填字段检查,编辑生成的屏幕和add a module,检查是否填写了必填字段。也应该可以在屏幕字段选项中将字段设置为必填字段,但我不建议这样做,因为即使对于空行,该字段也将显示为必填字段。

答案 1 :(得分:0)

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

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.

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