0

我创建了一个屏幕,并在布局画家中创建了一个基于表格的“表单”(使用按 F6 时出现的向导)。所以现在我拥有了创建行的所有字段,并且我创建了一个“保存”按钮,但显然还没有发生任何事情。

任何人都可以将我链接到有关如何使其发挥作用的某种指南吗?我是 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!
4

1 回答 1

1

简短回答:您将字段内容放入具有正确表结构的变量中,然后将此变量插入表中(如果您希望修改现有值,则更新)

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. 
于 2011-05-19T12:27:19.183 回答