Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sap 输入有效的KUNR-SM30时自动填写名称_1_Sap - Fatal编程技术网

Sap 输入有效的KUNR-SM30时自动填写名称_1

Sap 输入有效的KUNR-SM30时自动填写名称_1,sap,Sap,我已经创建了一个包含三个字段的表:KUNNR、NAME_1和Z_CLASS。KUNNR有KUNNR作为数据元素,NAME_1有NAME1_GP,Z_类有一个我用3个值(1、2或3)创建的数据元素。我制作了表格维护生成器,并用SM30输入了一些数据。现在,我需要在输入客户编号(KUNNR)并按enter键时自动显示客户的名称(name_1);并且需要确保Z_类已填充,而不是空白。我真的不知道如何搜索解决方案,因为我是SAP的新手。多谢各位 PROCESS BEFORE OUTPUT. MODUL

我已经创建了一个包含三个字段的表:KUNNR、NAME_1和Z_CLASS。KUNNR有KUNNR作为数据元素,NAME_1有NAME1_GP,Z_类有一个我用3个值(1、2或3)创建的数据元素。我制作了表格维护生成器,并用SM30输入了一些数据。现在,我需要在输入客户编号(KUNNR)并按enter键时自动显示客户的名称(name_1);并且需要确保Z_类已填充,而不是空白。我真的不知道如何搜索解决方案,因为我是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.

至于那名,不可存为流人的田地。定义外键关系,然后使用显示与客户编号对应的名称


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

我找到了这两个问题的答案。为了自动填充客户机的名称,我使用了一个带有事件“填充隐藏字段”(编号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.
对于必填字段,我进入维护屏幕、元素列表选项卡、特殊属性选项卡,并从条目列中的下拉菜单中选择“必填”。
工作得很有魅力。谢谢您的回答:)

为什么要将NAME_1作为字段添加到表中?你是否“意外”地”对数据进行了非规范化处理,或者这背后有什么特殊原因?是的,我知道我不应该创建数据,但这是另一个人要求的。我找到了一个解决方案,可以在填写号码时获得姓名。现在我只需要知道如何让z_课成为必修课。有什么想法吗?我知道已经有答案了,但为了以后的参考,另一个问题是:对不起,你必须再解释一下。我将把cod添加到自动生成的表维护中(我想)。对于你所说的,我相信我必须在这里面做点什么。我必须深入到细节上有多远?我可以假设你知道什么模块和字段是广告,你知道什么链。。。ENDCHAIN block有吗?无需详细说明。我找到了解决方案,不需要编码。谢谢。那么您可以生成冗余而不是正确地规范化数据库结构了吗?无意冒犯,但这打破了SAP R/3系统的所有惯例,所以您应该在问题中说明这一点。