SAPфорум.RU
https://sapboard.ru/forum/

Как удалить строку с условием?
https://sapboard.ru/forum/viewtopic.php?f=13&t=96362
Страница 1 из 1

Автор:  sonics [ Пн, май 07 2018, 10:33 ]
Заголовок сообщения:  Как удалить строку с условием?

Code:
  IF P_CHKBOX IS NOT INITIAL.
*      delete <gs_result_tab> where <gs_result_tab>-elevel NE 1.
    delete from <gs_result_tab> where elevel NE 1.
  ENDIF.

Если параметр не пустой на начальном экране, тогда удалить все записи у которых elevel не равен 1
А так ругается
Цитата:
The Dictionary structure or table "<GS_RESULT_TAB>" is either not active or does not exist.

Как мне такое сделать?

Автор:  Kuranov.Dmitry [ Пн, май 07 2018, 11:03 ]
Заголовок сообщения:  Re: Как удалить строку с условием?

в ошибке все сказано как сделать.

Установить филд символ <GS_RESULT_TAB> на таблицу

Автор:  Kuranov.Dmitry [ Пн, май 07 2018, 11:07 ]
Заголовок сообщения:  Re: Как удалить строку с условием?

Code:
data lp2001 type TABLE OF p2001.
.

CALL FUNCTION 'HR_READ_INFOTYPE'
  EXPORTING
*   TCLAS                 = 'A'
    pernr                 = '1107010'
    infty                 = '2001'
*   BEGDA                 = '18000101'
*   ENDDA                 = '99991231'
*   BYPASS_BUFFER         = ' '
*   LEGACY_MODE           = ' '
* IMPORTING
*   SUBRC                 =
  tables
    infty_tab             = lp2001
EXCEPTIONS
   INFTY_NOT_FOUND       = 1
   OTHERS                = 2
          .
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
*         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.



FIELD-SYMBOLS <ff> like lp2001.
data nl type i.

ASSIGN lp2001 to <ff>.

DESCRIBE TABLE lp2001 LINES nl.
write: / 'before:', nl.

DELETE <ff> WHERE SPRPS = 'X'.


DESCRIBE TABLE lp2001 LINES nl.
write: / 'after:', nl.

Автор:  RA [ Пн, май 07 2018, 11:18 ]
Заголовок сообщения:  Re: Как удалить строку с условием?

Почитайте чем отличаются операторы:
Code:
DELETE
и
Code:
DELETE FROM


P.S.
Цитата:
Установить филд символ <GS_RESULT_TAB> на таблицу

а если ТС на свою zppmrp5 установит? :-)

Автор:  sonics [ Пн, май 07 2018, 11:40 ]
Заголовок сообщения:  Re: Как удалить строку с условием?

блин, да, покопался, разобрался . . . спасибо... уже новые грабли себе нашел )))

Автор:  Kuranov.Dmitry [ Пн, май 07 2018, 11:40 ]
Заголовок сообщения:  Re: Как удалить строку с условием?

Code:
а если ТС на свою zppmrp5 установит? :-)


разве можно филдсимвол на прозрачную таблицу поставить?

Автор:  RA [ Пн, май 07 2018, 13:02 ]
Заголовок сообщения:  Re: Как удалить строку с условием?

Если постараться то можно:
Code:
ASSIGN 'ZTABLE' TO <fs>.
DELETE FROM (<fs>) WHERE....

Автор:  sonics [ Вт, май 08 2018, 10:54 ]
Заголовок сообщения:  Re: Как удалить строку с условием?

RA написал:
Если постараться то можно:
Code:
ASSIGN 'ZTABLE' TO <fs>.
DELETE FROM (<fs>) WHERE....

именно так и сделал )
просто сразу неверно написал :(

Автор:  Kuranov.Dmitry [ Вт, май 08 2018, 10:56 ]
Заголовок сообщения:  Re: Как удалить строку с условием?

RA написал:
Если постараться то можно:
Code:
ASSIGN 'ZTABLE' TO <fs>.
DELETE FROM (<fs>) WHERE....

Ну это не совсем филдсимвол на прозрачную таблицу..
это филдсимвол на строку+ динамическая ссылка через скобки по имени

Автор:  Besa [ Чт, май 10 2018, 09:50 ]
Заголовок сообщения:  Re: Как удалить строку с условием?

sonics написал(а):
Code:
  IF P_CHKBOX IS NOT INITIAL.
*      delete <gs_result_tab> where <gs_result_tab>-elevel NE 1.
    delete from <gs_result_tab> where elevel NE 1.
  ENDIF.

Если параметр не пустой на начальном экране, тогда удалить все записи у которых elevel не равен 1
А так ругается
Цитата:
The Dictionary structure or table "<GS_RESULT_TAB>" is either not active or does not exist.

Как мне такое сделать?

Лучше все таки в селекте Чекбокс на экране выбора модифицирует запрос к БД :D

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/