我创建了一个包含三个字段的表: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.
答案 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.
对于必填字段,我转到维护屏幕,元素列表选项卡,特殊属性选项卡,然后从“条目”列的下拉菜单中选择必填项。 工作就像一个魅力。感谢您的所有答案:)