Добавить запись в базу данных SAP с созданной формой - PullRequest
0 голосов
/ 19 мая 2011

Я создал экран, и внутри раскраски я создал «форму» на основе таблицы (с помощью мастера, который появляется при нажатии клавиши F6).Итак, теперь у меня есть все поля для создания строки, и я создал кнопку «Сохранить», но, очевидно, пока ничего не происходит.

Может кто-нибудь связать меня с каким-то руководством по созданиюфункционал?Я новичок в ABAP, и у меня возникли некоторые проблемы с этим .. Спасибо!

edit

Я также пытаюсь обновить строку вВ базе данных, но с использованием этого кода, удаляется каждая строка в базе данных, а не только строка с указанным идентификатором.Кто-нибудь знает, что я делаю не так?

  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 Ответ

1 голос
/ 19 мая 2011

короткий ответ: вы помещаете содержимое поля в переменную, имеющую правильную структуру таблицы, и вставляете эту переменную в таблицу (или обновляете, если хотите изменить существующее значение)

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