Текущее время: Пт, апр 26 2024, 07:08

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


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

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


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

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