Текущее время: Ср, сен 03 2025, 00:22

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Как вывести стандартные кнопки в ToolBar ALV-Grid
СообщениеДобавлено: Чт, июл 02 2015, 16:41 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 15 2013, 14:49
Сообщения: 48
Откуда: Санкт-Петербург
Пол: Мужской
Здравствуйте.

Я занимаюсь ABAP относительно недавно. Подскажите пожалуйста как можно решить такую проблему:

Мне нужно вывести в панель инструментов стандартные кнопки SELECT и DESELECT
Я создаю полноэкранный ALV Grid и дальше вызываю метод set_all, который показывает все стандартные кнопки.
Но среди них отсутствуют кнопки "Выделить" и "Снять выделение" строки в Grid.
GUI-Status я не создавал, можно ли как то показать их?
Вроде нашел методы SET_MODE_SELECT и SET_MODE_DESELECT но они защищенные насколько я понял их так просто не вызвать.

Мой код выглядит так

Code:
Создание экземпляра ALV
TRY.
   cl_salv_table=>factory(
EXPORTING
   r_container = cl_gui_container=>default_screen
IMPORTING
   r_salv_table = gr_alv
CHANGING
   t_table = itab ).
CATCH cx_salv_msg .
   MESSAGE 'Ошибка при создании ALV' TYPE 'E'.
ENDTRY.

" Установка функций (кнопок)
   gr_functions = gr_alv->get_functions( ).
   IF gr_functions IS BOUND.
      gr_functions->set_all( abap_true ).

  ENDIF.
    gr_columns = gr_alv->get_columns( ).
    gr_columns->set_optimize( abap_true ).

   gr_alv->display( ).


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как вывести стандартные кнопки в ToolBar ALV-Grid
СообщениеДобавлено: Чт, июл 02 2015, 16:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Посмотрите программу SALV_DEMO_TABLE_SELECTIONS стр. 278 и далее
Надо задать тип выделения. Ддя этого надо получить объект выделения с помощью метода get_selections. А потом уже у объекта вызвать метод set_selection_mode

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вывести стандартные кнопки в ToolBar ALV-Grid
СообщениеДобавлено: Чт, июл 02 2015, 17:31 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 15 2013, 14:49
Сообщения: 48
Откуда: Санкт-Петербург
Пол: Мужской
Посмотрел эту программу но нам не совсем такая ситуация.
В 241 строке устанавливается GUI-статус 'SALV_STANDARD'

gr_table->set_screen_status(
pfstatus = 'SALV_STANDARD'
report = gs_test-repid
set_functions = gr_table->c_functions_all ).

А в нем уже и содержатся эти кнопки.
Я же хочу понять можно ли создать эти кнопки не создавая заранее и не задавая явно GUI-Status


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как вывести стандартные кнопки в ToolBar ALV-Grid
СообщениеДобавлено: Чт, июл 02 2015, 17:40 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
other95 если вы будете делать полноэкранный SALV и не укажете гуи-статус, система подтянет стандартный. Там эти кнопки есть. Что бы они показались, в алв должно быть разрешено множественное выделение строк.

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вывести стандартные кнопки в ToolBar ALV-Grid
СообщениеДобавлено: Пт, июл 03 2015, 11:48 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 15 2013, 14:49
Сообщения: 48
Откуда: Санкт-Петербург
Пол: Мужской
Кодер написал(а):
other95 если вы будете делать полноэкранный SALV и не укажете гуи-статус, система подтянет стандартный. Там эти кнопки есть. Что бы они показались, в алв должно быть разрешено множественное выделение строк.


Почти получилось однако есть еще одна проблема
Эти кнопки появляются у меня как оказалось только при наличии технической колонки,
т.е. если сделать вот такой вызов :

Code:
  TRY.
      lr_column ?= lr_columns->get_column( columnname = 'BOX' ).
    CATCH cx_salv_not_found.
      MESSAGE 'Ошибка при технической колонки' TYPE 'E'.
  ENDTRY.
* 2. set as technical
  lr_column->set_technical(
*    VALUE  = IF_SALV_C_BOOL_SAP=>TRUE
         ).


И появляются только если формировать полноэкранный alv-grid

Но мне кроме всего прочего нужно добавить в панель инструментов собственную кнопку :

Code:
      lr_functions->add_function(
       EXPORTING
          NAME      = 'PRNORD'
          icon      = '@0X@'
          text      = 'Печать счетов'
          tooltip   = 'Печать счетов'
         POSITION  = if_salv_c_function_position=>right_of_salv_functions ).


А эта функция работает только в контейнере.
Я формирую alv-grid так:

Code:
* Начало выборки
START-OF-SELECTION.
* Вывод пустышки чтобы создался экран default_screen
*Write ''.

... Выборка данных

* Создание экземпляра ALV
TRY.
   cl_salv_table=>factory(
EXPORTING
   list_display   = if_salv_c_bool_sap=>false
   r_container = cl_gui_container=>default_screen
IMPORTING
   r_salv_table = gr_alv
CHANGING
   t_table = itab ).
CATCH cx_salv_msg .
   MESSAGE 'Ошибка при создании ALV' TYPE 'E'.
ENDTRY.


Тогда ALV-grid разворачивается на полный экран появляется "как бы" в контейнере Default_screen
но кнопки "Выделить все" и "снять выделение не появляются"

Правильно я понимаю что мне все таки придется создать GUI-статус как бы я ни сопротивлялся?


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Как вывести стандартные кнопки в ToolBar ALV-Grid  Тема решена
СообщениеДобавлено: Пт, июл 03 2015, 13:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
А. вам надо не фулл-скрин а в контейнере? В этом случае кнопка не выводится. Просто показывается столбец выделения и в нем в графе заголовка кнопка, которая реализует функции выделения\снятия со всех записей

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как вывести стандартные кнопки в ToolBar ALV-Grid
СообщениеДобавлено: Пт, июл 03 2015, 13:33 
Ассистент
Ассистент

Зарегистрирован:
Пн, апр 15 2013, 14:49
Сообщения: 48
Откуда: Санкт-Петербург
Пол: Мужской
Понял! Спасибо.


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

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


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

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


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

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