Текущее время: Пт, апр 19 2024, 21:34

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 13 ] 
Автор Сообщение
 Заголовок сообщения: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Ср, авг 12 2009, 18:58 
Начинающий
Начинающий

Зарегистрирован:
Ср, дек 19 2007, 17:55
Сообщения: 21
Подскажите, плиз: есть редактируемый грид. Лишние кнопки (добавить, удалить и т.д.) убраны с помощью APPEND cl_gui_alv_grid=>mc_fc_loc_delete_row TO p_excl_table.
Но, если на гриде выделить позицию и нажать на клавиатуре кнопку delete, строка благополучно удаляется из грида.

Как обойти ситуацию?


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Ср, авг 12 2009, 19:11 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Да никак, вроде.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Чт, авг 13 2009, 08:37 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Объектный грид?
Устанавливаете управление видом строк с помощью стилей:
Code:
layout-stylefname = 'CELLTAB'.

В каждой строчке запрещаете удаление:
Code:
l_wa_cell-style = cl_gui_alv_grid=>mc_style_no_delete_row.
insert l_wa_cell into table l_wa_tab-celltab.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Чт, авг 13 2009, 12:05 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 25 2005, 15:06
Сообщения: 143
Rokhay респект! Меня давно мучал этот вопрос :D


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID  Тема решена
СообщениеДобавлено: Пт, авг 14 2009, 10:41 
Начинающий
Начинающий

Зарегистрирован:
Пн, авг 04 2008, 18:33
Сообщения: 8
Лишние кнопки (те, что локальные) лучше удалить через layout ALV, поставив no_rowins = 'X'. Тем самым решится ваша проблема.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Пт, авг 14 2009, 14:26 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
BoBkA написал(а):
Лишние кнопки(те что локальные) лучше удалить через layout ALV, поставив no_rowins = 'X'. Тем самым решится ваша проблема.

И действительно. Так гораздо проще. Спасибо!


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Пн, авг 17 2009, 17:50 
Начинающий
Начинающий

Зарегистрирован:
Ср, дек 19 2007, 17:55
Сообщения: 21
BoBkA написал(а):
Лишние кнопки (те, что локальные) лучше удалить через layout ALV, поставив no_rowins = 'X'. Тем самым решится ваша проблема.

Спасибо. Я верил, что все гораздо проще ))


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Чт, янв 14 2010, 06:40 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Usrext написал(а):
BoBkA написал(а):
Лишние кнопки(те что локальные) лучше удалить через layout ALV, поставив no_rowins = 'X'. Тем самым решится ваша проблема.

Спасибо. Я верил что все гораздо проще))


no_rowins = 'X'. Скрывает кнопки добавить, удалить и тд, а есть ли подобный параметр который скрывает все кроме этих кнопок? layout смотрел, не нашел.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Чт, янв 14 2010, 09:54 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, ноя 25 2005, 15:06
Сообщения: 143
Besa написал:
no_rowins = 'X'. Скрывает кнопки добавить, удалить и тд, а есть ли подобный параметр который скрывает все кроме этих кнопок? layout смотрел, не нашел.

Заполняешь структуру, какие именно кнопки удалить, см. на
cl_gui_alv_grid=>mc_mb*
cl_gui_alv_grid=>mc_fc*

например так:
Code:
DATA: lt_exclude type ui_functions,
          ls_exclude type ui_func.

ls_exclude = cl_gui_alv_grid=>mc_mb_variant.
append ls_exclude to lt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_sort_asc.
  append ls_exclude to lt_exclude.
  ls_exclude = cl_gui_alv_grid=>mc_fc_sort_dsc.
  append ls_exclude to lt_exclude.

CALL METHOD grid1->set_table_for_first_display
    EXPORTING
        ....
      it_toolbar_excluding = lt_exclude



Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Чт, янв 14 2010, 09:58 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Спасибо Creo, но это я знаю, есть еще способ как убрать, минус этих способ в том что надо перечислять все кнопки, это очень накладно, я думал может есть способ проще. Мне надо оставить тллько кнопки редактирования(добавить удалить копировать и тд.)
Добавил: И еще как можно получить наименование всех кнопок в гриде которые на тулбаре? Обычно я заходил в se24 CL_GUI_ALV_GRID
и там смотрел, но это не очень удобно, иногда не понимаешь какая кнопка как называется в классе.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Чт, янв 14 2010, 10:47 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, авг 28 2006, 11:24
Сообщения: 292
Пол: Мужской
Можно попробовать отловить событие handle_toolbar, там массово обработать существующие кнопки.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Чт, янв 14 2010, 12:00 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Rokhay написал:
Можно попробовать отловить событие handle_toolbar, там массово обработать существующие кнопки.

В принципе я так и хотел сделать. Просто подумал может есть какая галочка в layout.
В общем это самый оптимальный вариант. Всем спасибо!
Code:
*----------------------------------------------------------------------*
*    Локальный класс для определения и обработки функ. ALV             *
*----------------------------------------------------------------------*
*..описание класса
CLASS lcl_event_receiver DEFINITION .
  PUBLIC SECTION .
    METHODS:
      handle_toolbar
          FOR EVENT toolbar OF cl_gui_alv_grid
              IMPORTING e_object e_interactive.
  PRIVATE SECTION .
ENDCLASS .                    "lcl_event_receiver DEFINITION
*..реализация
CLASS lcl_event_receiver IMPLEMENTATION .
  METHOD handle_toolbar .
    PERFORM handle_alv_toolbar USING e_object e_interactive .
  ENDMETHOD .
ENDCLASS .                    "lcl_event_receiver IMPLEMENTATION

********************

    create object gref_event_receiver .
    set handler :
    gref_event_receiver->handle_toolbar for g_grid.

********************

*&---------------------------------------------------------------------*
*&      Form  handle_alv_toolbar
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->P_E_OBJECT  text
*      -->P_E_INTERACTIVE  text
*----------------------------------------------------------------------*
FORM handle_alv_toolbar
                  USING f_object TYPE REF TO cl_alv_event_toolbar_set
                        f_interactive .
  DATA: s_tool LIKE stb_button.
  LOOP AT f_object->mt_toolbar INTO s_tool.
    CASE s_tool-function.
      WHEN '&LOCAL&APPEND' OR
      '&LOCAL&INSERT_ROW' OR
      '&LOCAL&DELETE_ROW' OR
      '&LOCAL&COPY_ROW'.
      WHEN OTHERS.
        DELETE f_object->mt_toolbar.
    ENDCASE.
  ENDLOOP.
ENDFORM.                    " handle_alv_toolbar


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Кнопка Delete и редактируемый ALVGRID
СообщениеДобавлено: Пт, окт 29 2021, 08:50 
Начинающий
Начинающий

Зарегистрирован:
Вт, май 26 2020, 20:58
Сообщения: 16
Мне помог вот этот код, нужно только заменить g_grid на имя вашего ALV грида.

Code:
  data: ls_layout type LVC_S_LAYO.
  ls_layout-NO_ROWINS = 'X'.
  call method g_grid->SET_FRONTEND_LAYOUT
    exporting
      is_layout = ls_layout.


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

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


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

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


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

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