Текущее время: Чт, авг 07 2025, 20:58

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


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

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


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

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