Текущее время: Вс, авг 03 2025, 23:06

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Удалить выделенные строки в ALV
СообщениеДобавлено: Пн, ноя 03 2008, 11:16 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Пт, июл 27 2007, 16:08
Сообщения: 352
Пол: Мужской
Hi All


тупой вопросец

Нужно удалить выделенные строки в ALV при множественном выборе.

Code:
DATA:  lt_selected_rows TYPE lvc_t_roid.
DATA:  ls_selected_row  TYPE lvc_s_roid.

CALL METHOD gr_alvgrid->get_selected_rows
            IMPORTING
              et_row_no  = lt_selected_rows
              .


lt_selected_rows содержит index выделенных строк.

Естественно при лупе по списку удалить строки по индексу, получаю при 1м удалении смещение индексов.

как вариант пройтись по таблице, пометить спец поле для удаления, а потом удалить по where

а по проще есть вариант?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Удалить выделенные строки в ALV
СообщениеДобавлено: Пн, ноя 03 2008, 11:45 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
apetrenko написал:
Hi All


тупой вопросец

Нужно удалить выделенные строки в ALV при множественном выборе.

Code:
DATA:  lt_selected_rows TYPE lvc_t_roid.
DATA:  ls_selected_row  TYPE lvc_s_roid.

CALL METHOD gr_alvgrid->get_selected_rows
            IMPORTING
              et_row_no  = lt_selected_rows
              .


lt_selected_rows содержит index выделенных строк.

Естественно при лупе по списку удалить строки по индексу, получаю при 1м удалении смещение индексов.

как вариант пройтись по таблице, пометить спец поле для удаления, а потом удалить по where

а по проще есть вариант?

удаление в АЛВ не так делается, смотрите se38->bcalv_edit*->f4


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Удалить выделенные строки в ALV
СообщениеДобавлено: Пн, ноя 03 2008, 12:10 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, сен 23 2004, 18:43
Сообщения: 1556
Откуда: Москва
apetrenko написал:
Естественно при лупе по списку удалить строки по индексу, получаю при 1м удалении смещение индексов.

как вариант пройтись по таблице, пометить спец поле для удаления, а потом удалить по where

а по проще есть вариант?

Можно отсортировать полученную таблицу с индексами помеченных строк по убыванию. И удалять, начиная с последней записи.
При этом смещений индексов, как сами можете догадаться, не будет. В общем-то, классический алгоритм.

_________________
Hе иди по течению, не иди против течения - иди поперек него, если хочешь достичь берега.
Слова Ванталы. Дела Ванталы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, ноя 05 2008, 11:04 
Начинающий
Начинающий
Аватара пользователя

Зарегистрирован:
Чт, янв 18 2007, 11:04
Сообщения: 7
Откуда: Кривой Рог
в методе изменений назовем (handle_data_changed) делаешь следующие действия
....
DATA: ls_deleted TYPE lvc_s_moce
...
LOOP AT er_data_changed->mt_deleted_rows INTO ls_deleted.
READ TABLE <tbl> ASSIGNING <str> INDEX ls_deleted-row_id.

IF sy-subrc IS INITIAL.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
titlebar = 'Удаление данных'
text_question = 'Выполнить удаление выбранных записей?'
text_button_1 = 'Да'
icon_button_1 = '@0V@'
text_button_2 = 'Нет'
icon_button_2 = '@0W@'
default_button = '1'
display_cancel_button = ''
IMPORTING
answer = push_btn.

IF push_btn EQ 1.
APPEND <str> TO <tbl_del>.

* Возвращаем удаленные записи
ELSE.
DELETE er_data_changed->mt_deleted_rows.

<tbl_tmp>[] = <tbl>[].
ENDIF.

ENDIF.
ENDLOOP.
****
После этого обрабатываешь табличку <tbl_del>, где содержаться записи которые необходимо удалить.


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

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


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

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


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

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