Текущее время: Вт, апр 16 2024, 19:47

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: cl_gui_alv_grid без pai/pbo логики
СообщениеДобавлено: Ср, окт 18 2017, 11:16 
Специалист
Специалист

Зарегистрирован:
Пт, июл 27 2007, 13:06
Сообщения: 137
Добрый день.

Вопрос такой: хочу использовать cl_gui_alv_grid без рисования экрана (ну или используя пустой экран) и, соответственно, без написания PAI/PBO логики. Ибо ненавижу ее. В принципе все более-менее работает, но есть проблема - кнопки с gui status'а не триггерят событие user_command в объекте. Если статус не вешать, то кнопки "назад" и "выход" обрабатываются стандартом.

Как побороть и можно ли вообще?

Про cl_salv_table знаю, нужен именно cl_gui_alv_grid.
Code:
REPORT zzz.

CLASS lcl_class DEFINITION.
  PUBLIC SECTION.
    METHODS user_command FOR EVENT user_command OF cl_gui_alv_grid IMPORTING e_ucomm.
    METHODS double_click FOR EVENT double_click OF cl_gui_alv_grid IMPORTING e_column e_row es_row_no.
ENDCLASS.

CLASS lcl_class IMPLEMENTATION.
  METHOD user_command.
    CASE e_ucomm.
      WHEN '&F03'.
        LEAVE PROGRAM.
*       WHEN .
      WHEN OTHERS.
    ENDCASE.
  ENDMETHOD.

  METHOD double_click.
    MESSAGE |double click ({ sy-dynnr })| TYPE 'S'.
  ENDMETHOD.
ENDCLASS.

START-OF-SELECTION.
  WRITE ''.
  SET PF-STATUS 'STANDARD_FULLSCREEN' OF PROGRAM 'SAPLSLVC_FULLSCREEN'.

  SELECT * INTO TABLE @DATA(lt)
    FROM spfli.

  DATA(alv_grid) = new cl_gui_alv_grid( i_parent = cl_gui_container=>default_screen i_appl_events = 'X' ).
  DATA(handler) = new lcl_class( ).
  SET HANDLER handler->user_command FOR alv_grid.
  SET HANDLER handler->double_click FOR alv_grid.
  alv_grid->set_table_for_first_display(
    EXPORTING
      i_structure_name              = 'SPFLI'
    CHANGING
       it_outtab                     = lt
    EXCEPTIONS
      invalid_parameter_combination = 1
      program_error                 = 2
      too_many_lines                = 3
      others                        = 4
  ).
  IF sy-subrc <> 0.
   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
              WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_gui_alv_grid без pai/pbo логики
СообщениеДобавлено: Ср, окт 18 2017, 14:18 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, май 12 2011, 16:06
Сообщения: 347
SET PF-STATUS в START-OF-SELECTION выглядит непривычно. Будут ли триггериться события, если перенести установку статуса в AT SELECTION-SCREEN OUTPUT?
Еще можно подключить обработчик события toolbar и наподобавлять в нем своих кнопок.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_gui_alv_grid без pai/pbo логики
СообщениеДобавлено: Ср, окт 18 2017, 15:42 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Sam Stone, а с чего вдруг кнопки с динпро, должны тригерить юзеркоманд событие cl_gui_alv_grid? :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: cl_gui_alv_grid без pai/pbo логики
СообщениеДобавлено: Ср, окт 18 2017, 16:00 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Пт, янв 18 2008, 10:34
Сообщения: 716
Откуда: Moscow
Пол: Мужской
при такой постановке задачи создаете очередной велосипед ибо лучше имеющихся вариантов не получится:
1) REUSE_ALV_GRID_DISPLAY с установкой CALLBACK параметров
2) CL_SALV_TABLE

С уважением,
Руслан

_________________
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. (Э. Йодан)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: cl_gui_alv_grid без pai/pbo логики
СообщениеДобавлено: Чт, окт 19 2017, 07:42 
Специалист
Специалист

Зарегистрирован:
Пт, июл 27 2007, 13:06
Сообщения: 137
LAT написал(а):
SET PF-STATUS в START-OF-SELECTION выглядит непривычно. Будут ли триггериться события, если перенести установку статуса в AT SELECTION-SCREEN OUTPUT?
Еще можно подключить обработчик события toolbar и наподобавлять в нем своих кнопок.


Не триггерится. Тулбар это не то, к сожалению (про него знаю).

Besa написал:
Sam Stone, а с чего вдруг кнопки с динпро, должны тригерить юзеркоманд событие cl_gui_alv_grid? :)

Так а я и не требую чтобы это было по умолчанию. Думал может костыль есть какой, чтобы прицепиться :roll: :lol:

ghost написал:
при такой постановке задачи создаете очередной велосипед ибо лучше имеющихся вариантов не получится:
1) REUSE_ALV_GRID_DISPLAY с установкой CALLBACK параметров
2) CL_SALV_TABLE

С уважением,
Руслан

Ну, фм я считаю за колхоз и прошлый век, а у cl_salv_table нет редактирования (официально :lol: )

Но раз нет, то буду по старинке пилить.


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

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


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

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


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

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