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

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


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

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


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

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