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

Часовой пояс: 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 часа


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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


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

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