我已经创建了一个屏幕,在布局绘制器中,我根据表创建了一个“表单”(使用当您点击F6时出现的向导)。所以现在我有了所有的字段来创建行,我已经创建了一个“保存”按钮,但是显然什么也没有发生。
有人能帮我联系到一些关于如何使这个功能发挥作用的guid吗?我是ABAP的初学者,在这方面我遇到了一些麻烦。谢谢!
编辑
我还试图更新数据库中的一行,但是使用这段代码,数据库中的每一行都会被删除,而不仅仅是具有指定ID的行。有人知道我做错了什么吗?
UPDATE zmotoren_jat SET:
prijs = zmotoren_jat-prijs,
naam = zmotoren_jat-naam
WHERE motorid = zmotoren_jat-motorid. "this line doesn't seem to work!发布于 2011-05-19 12:27:19
简单回答:将字段内容放入具有正确表结构的变量中,并将此变量插入表中(如果要修改现有值,则更新该变量)
DATA line LIKE Txxxx. 'Txxxx is the table you want to insert into
line-v1 = inputfield1. 'inputfield1 is your first inputfield
line-v2 = inputfiled2. 'inputfield1 is your second inputfield
INSERT Txxxx FROM line.
if sy-subrc ne 0.
* an error has occured...
endif.如果您使用表定义中的向导,那么输入字段可能已经类似于Txxxx-v1和Txxxx-v2。在这种情况下,它会更简单,因为您只需执行以下操作:
INSERT Txxxx.请注意,对于你的问题,这只是一个非常肮脏的回答。您可能需要检查这些值是否有任何意义,至少它们在表中还不存在。
问候
编辑:关于你的更新..。逗号将更新分隔为两部分。你应该把它移走。
另外,您应该使用一个工作区:一个与您填充的结构相同的变量。然后使用它在表中创建/读取/更新/延迟..。这将简化代码读取。
类似于:
* define the working area
data wa_zmotoren_jat like zmotoren_jat. " wa_ stand for "working area"
* modifiy the variable
wa_zmotoren_jat-motorid = ....
wa_zmotoren_jat-prijs = ...
wa_zmotoren_jat-naam = ...
* use it to update...
UPDATE zmotoren_jat SET:
prijs = wa_zmotoren_jat-prijs,
naam = wa_zmotoren_jat-naam
WHERE motorid = wa_zmotoren_jat-motorid. https://stackoverflow.com/questions/6056820
复制相似问题