0

画面を作成し、レイアウトペインタ内で、テーブルに基づいて「フォーム」を作成しました(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!
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.

これはあなたの質問に対する非常に奇抜で汚い答えにすぎないことに注意してください。おそらく、値に意味があるかどうか、少なくとも値がテーブルにまだ存在していないかどうかを確認する必要があります。

よろしく

編集:更新について...コンマで更新を2つに区切ります。削除する必要があります。

また、作業領域を使用する必要があります。入力するのと同じ構造の変数です。次に、それを使用してテーブル内の作成/読み取り/更新/遅延を行います...これによりコードの読み取りが簡素化されます。

何かのようなもの :

* 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 に答える