Текущее время: Пн, июл 28 2025, 01:01

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


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

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


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

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