Текущее время: Чт, мар 28 2024, 12:11

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Как удалить строку с условием?
СообщениеДобавлено: Пн, май 07 2018, 10:33 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
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.

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как удалить строку с условием?
СообщениеДобавлено: Пн, май 07 2018, 11:03 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
в ошибке все сказано как сделать.

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как удалить строку с условием?
СообщениеДобавлено: Пн, май 07 2018, 11:07 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
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.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как удалить строку с условием?
СообщениеДобавлено: Пн, май 07 2018, 11:18 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
Почитайте чем отличаются операторы:
Code:
DELETE
и
Code:
DELETE FROM


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

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как удалить строку с условием?
СообщениеДобавлено: Пн, май 07 2018, 11:40 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
блин, да, покопался, разобрался . . . спасибо... уже новые грабли себе нашел )))


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как удалить строку с условием?
СообщениеДобавлено: Пн, май 07 2018, 11:40 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
Code:
а если ТС на свою zppmrp5 установит? :-)


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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как удалить строку с условием?
СообщениеДобавлено: Пн, май 07 2018, 13:02 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пн, ноя 01 2004, 12:17
Сообщения: 298
Пол: Мужской
Если постараться то можно:
Code:
ASSIGN 'ZTABLE' TO <fs>.
DELETE FROM (<fs>) WHERE....


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как удалить строку с условием?
СообщениеДобавлено: Вт, май 08 2018, 10:54 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, июл 17 2017, 14:11
Сообщения: 375
RA написал:
Если постараться то можно:
Code:
ASSIGN 'ZTABLE' TO <fs>.
DELETE FROM (<fs>) WHERE....

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как удалить строку с условием?
СообщениеДобавлено: Вт, май 08 2018, 10:56 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вт, сен 05 2017, 23:56
Сообщения: 537
RA написал:
Если постараться то можно:
Code:
ASSIGN 'ZTABLE' TO <fs>.
DELETE FROM (<fs>) WHERE....

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как удалить строку с условием?
СообщениеДобавлено: Чт, май 10 2018, 09:50 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
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


Принять этот ответ
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot]


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB