使用生成的“表单”将记录添加到SAP数据库

时间:2011-05-19 09:52:30

标签: database forms sap record abap

我已经创建了一个屏幕,在布局画家中我根据表创建了一个“表单”(使用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!

1 个答案:

答案 0 :(得分: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.

请注意,这只是你问题的一些非常 quik和脏问题。您可能必须检查值是否有任何意义,并且至少如果表中尚不存在这些值。

此致

修改: 关于你的更新...... 逗号将更新分成两部分。你应该删除它。

此外,您应该使用工作区:您填充的相同结构的变量。然后你用它来创建/读取/更新/降低你的表...这将简化代码阅读。

类似的东西:

* 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.