Текущее время: Вт, июл 17 2018, 06:09

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


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


ВНИМАНИЕ!

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



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

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

Вопрос такой: хочу использовать 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, 15:18 
Старший специалист
Старший специалист

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


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

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


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

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

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

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


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

Зарегистрирован:
Пт, июл 27 2007, 14:06
Сообщения: 105
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 + 4 часа


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

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


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

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