Текущее время: Вс, июл 27 2025, 22:56

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: DoubleClick in CLASS.
СообщениеДобавлено: Чт, ноя 15 2012, 10:59 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 24 2012, 05:58
Сообщения: 11
Добрый день уважаемые ABAPer-ы. Я начинающий абапер, пытаюсь изучать код по книжкам, поэтому не судите строго, мне понадобилось сделать даблклик в выводимой табличке, чтобы при даблклике вызывалась транзакция и я не много не допонимаю как мне сделать это. Вот код
Code:
DATA: gc_alv_table TYPE REF TO cl_salv_table,
      gc_columns TYPE REF TO cl_salv_columns_table,
      gc_colwork TYPE REF TO cl_salv_column_table,
      gc_functions TYPE REF TO cl_salv_functions,
      gc_display TYPE REF TO cl_salv_display_settings,
      gr_table type ref to cl_salv_table.


class lcl_handle_events definition deferred.
data: gr_events type ref to lcl_handle_events.


Ну вот я здесь объвляю свои классы.Объявление внутренних таблиц, типов данных расположены на самом верху, я их не стал вкладывать. Затем пишу следующее:

Code:
class lcl_handle_events definition.
  public section.
    methods:
        on_double_click for event double_click of cl_salv_events_table
        importing row column.

endclass.                    "lcl_handle_events DEFINITION

*---------------------------------------------------------------------*
*       CLASS lcl_handle_events IMPLEMENTATION
class lcl_handle_events implementation.

  method on_double_click.
    perform double_click using row column.
  endmethod.                    "on_single_click

endclass.     


Затем у меня идёт START-OF-SELECTION., затем я использую вывод таблички на экран с помощью классов, объявленных выше. и с этим вроде бы проблем не наблюдается, но вот чота догонялки чтоли моей не хватает, как сделать вызов транзакции даблклика на выводимой таблички. Затем после вывода таблички на экран пишу
Code:
FORM double_click  using  i_row    type i
                            i_column type lvc_fname.


  data: lr_selections     type ref to cl_salv_selections,
        ls_cell           type salv_s_cell.

  CASE i_column.
    WHEN 'IM_LIFNR'  " Подробно, документы
      OR 'IM_BUKRS'.
    lr_selections = gr_table->get_selections( ).
    ls_cell = lr_selections->get_current_cell( ).
    read table im_tab  index ls_cell-row.

  CLEAR wa.
  wa-program = 'SAPMF02K'.
  wa-dynpro = '0106'.
  wa-dynbegin = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'BDC_OKCODE'.
  wa-fval = '/00'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-LIFNR'.
  wa-fval = im_tab-im_lifnr.  "Vendor
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-BUKRS'.
  wa-fval = im_tab-im_bukrs.  "Company code
  APPEND wa TO bdcdata.

*General data
  CLEAR wa.
  wa-fnam = 'RF02K-D0110'.  "Address
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-D0120'. "Control
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-D0130'. "Payment transactions
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'WRF02K-D0380'. "contact person
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

*Company code data
  CLEAR wa.
  wa-fnam = 'RF02K-D0210'. "account info
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-D0215'. "Payment transactions
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-D0220'. "correspondence
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CLEAR wa.
  wa-fnam = 'RF02K-D0610'. "With holding tax
  wa-fval = 'X'.
  APPEND wa TO bdcdata.

  CALL TRANSACTION 'FK03' USING bdcdata MODE 'E'.
  ENDCASE.
ENDFORM.


Ошибок ни каких синтаксических но даблклик не работает, пытаюсь щёлкать на поле BUKRS и lifnr ничего не происходит, может кто подскажет что я не так делаю? буду весьма признателен за помощь


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DoubleClick in CLASS.
СообщениеДобавлено: Чт, ноя 15 2012, 12:18 
Специалист
Специалист

Зарегистрирован:
Чт, ноя 23 2006, 17:37
Сообщения: 197
Откуда: Москва
Пол: Мужской
Вы забыли назначить метод объекта gr_events->on_double_click как обработчик события double_click для ALV

Делается это примерно так(4.6, объектный ALV, инстанция alv_grid ):

Code:
SET HANDLER gr_events->on_double_click FOR alv_grid.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DoubleClick in CLASS.
СообщениеДобавлено: Чт, ноя 15 2012, 12:51 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 24 2012, 05:58
Сообщения: 11
Paul_80 написал:
Вы забыли назначить метод объекта gr_events->on_double_click как обработчик события double_click для ALV

Делается это примерно так(4.6, объектный ALV, инстанция alv_grid ):

Code:
SET HANDLER gr_events->on_double_click FOR alv_grid.


Я извиняюсь за интеллект, как я уже говорил я ABAPer начинающий, можно поподробней?!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DoubleClick in CLASS.
СообщениеДобавлено: Чт, ноя 15 2012, 13:19 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, апр 17 2006, 21:49
Сообщения: 299
Откуда: Москва
Посмотрите, например, как это реализовано в программе BCALV_GRID_02


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DoubleClick in CLASS.
СообщениеДобавлено: Чт, ноя 15 2012, 13:59 
Специалист
Специалист

Зарегистрирован:
Чт, ноя 23 2006, 17:37
Сообщения: 197
Откуда: Москва
Пол: Мужской
Наверное, всё-таки стоит смотреть в сторону демопрограмм для SALV, если уж начали использовать этот инструментарий.

Общая логика такова:
1. Вы пишете класс обработчиков событий ALV-грида(lcl_handle_events), в котором для каждого требуемого события описан метод-обработчик.
2. В предобработке ALV (как правило, где настраивается каталог полей, вариант просмотра и т.п.) вы создаете экземпляр этого класса.
Code:
CREATE OBJECT gr_events.

3. Методы экземпляра класса назначаются обработчиками фразой (SET HANDLER ... FOR 'экземпляр класса ALV').
Code:
SET HANDLER gr_events->on_double_click FOR lv_alv.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: DoubleClick in CLASS.
СообщениеДобавлено: Чт, ноя 15 2012, 14:31 
Начинающий
Начинающий

Зарегистрирован:
Ср, окт 24 2012, 05:58
Сообщения: 11
Спасибо господа-товарищи! Буду пытаться делать в соответствии с вашими советами.


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

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


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

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


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

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