Текущее время: Вт, июн 24 2025, 22:10

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Помогите повесить обработку на Grid
СообщениеДобавлено: Пн, янв 25 2016, 10:45 
Специалист
Специалист

Зарегистрирован:
Пт, янв 22 2016, 10:20
Сообщения: 170
Приветствую, уважаемые обитатели этого форума! недавно начал осваивать SAP. Пытаюсь повесить обработку на GRID надо чтобы по нажатию на выбранное поле выведенной таблицы программа выводила экран присвоения записи таблицы ZAVS_t_adress записи таблицы ZAVS_t_pers_info и записывала результат в таблицу ZAVS_t_pershous

вывод grida я осуществил так: REPORT ZAVS_ALCTEST.


.

DATA :ls_structure2 TYPE zavs_t_pershous,
ls_address type zavs_t_adress,
ok_code like sy-ucomm,
gs_structure2 TYPE zavs_t_pershous.


PARAMETERS p1 TYPE ZAVS_E_city MATCHCODE OBJECT ZAVS_poisk1.



CLASS lcl_report DEFINITION.
*
PUBLIC SECTION.


TYPES: BEGIN OF ZAVS_T_ADRESS,
CITY TYPE ZAVS_E_CITY,
STREET TYPE ZAVS_E_STREET,
HOUSE TYPE ZAVS_E_HOUSE,
FLAT TYPE ZAVS_E_FLAT,
END OF ZAVS_T_ADRESS.
*
DATA: ZAVS_T_ADRESS1 TYPE STANDARD TABLE OF ZAVS_T_ADRESS.



DATA: o_alv TYPE REF TO cl_salv_table.

METHODS:

get_data,

generate_output.




ENDCLASS. "lcl_report DEFINITION
*
*
START-OF-SELECTION.
DATA: lo_report TYPE REF TO lcl_report.
*
CREATE OBJECT lo_report.
*
lo_report->get_data( ).
*
lo_report->generate_output( ).
*
*----------------------------------------------------------------------*
* CLASS lcl_report IMPLEMENTATION
*----------------------------------------------------------------------*
CLASS lcl_report IMPLEMENTATION.
*
METHOD get_data.

SELECT CITY STREET HOUSE FLAT
INTO TABLE ZAVS_T_ADRESS1
FROM ZAVS_T_ADRESS
WHERE city = p1.



ENDMETHOD. "get_data
*



*.......................................................................
METHOD generate_output.

DATA: lx_msg TYPE REF TO cx_salv_msg.
TRY.
cl_salv_table=>factory(
IMPORTING
r_salv_table = o_alv
CHANGING
t_table = ZAVS_T_ADRESS1 ).
CATCH cx_salv_msg INTO lx_msg.
ENDTRY.

o_alv->display( ).
*
ENDMETHOD. "generate_output

*
*
ENDCLASS.


обработка полей таблицы без вывода grida осуществил в программе ZAVS_RP_House пакет ZPK_HOUSE_AVSHERBAKOV


как осуществить обработку с выводом grida?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Помогите повесить обработку на Grid
СообщениеДобавлено: Пн, янв 25 2016, 11:07 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
См. программу BCALV_TEST_GRID.

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите повесить обработку на Grid
СообщениеДобавлено: Пн, янв 25 2016, 12:32 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Сб, апр 07 2012, 00:43
Сообщения: 113
Копайте в сторону:

Подключите хендлеры в грид:
Code:
    DATA gr_events    TYPE REF TO lcl_handle_events.
    DATA lr_events    TYPE REF TO cl_salv_events_table.
    DATA lr_functions TYPE REF TO cl_salv_functions_list.

**"----------------------------------------------------------------------

    lr_events = gr_rep->get_event( ).
    CREATE OBJECT gr_events.
    SET HANDLER gr_events->on_user_command FOR lr_events.
    SET HANDLER gr_events->on_double_click FOR lr_events.
    SET HANDLER gr_events->on_link_click   FOR lr_events.


Хендлер на подобие
Code:
CLASS lcl_handle_events DEFINITION.

  PUBLIC SECTION.
    METHODS:
      on_user_command FOR EVENT added_function OF cl_salv_events
        IMPORTING e_salv_function,

      on_double_click FOR EVENT double_click OF cl_salv_events_table
        IMPORTING row column,

      on_link_click FOR EVENT link_click OF cl_salv_events_table
        IMPORTING row column.

ENDCLASS.                    "lcl_handle_events DEFINITION

CLASS lcl_handle_events IMPLEMENTATION.

  METHOD on_user_command.

    CASE e_salv_function.

      WHEN 'SELALL'.

      WHEN OTHERS.
    ENDCASE.


    gr_rep->refresh( ).

  ENDMETHOD.                    "on_user_command


  METHOD on_double_click.

    READ TABLE gt_rep INDEX row ASSIGNING <fs_rep>.
    CHECK sy-subrc IS INITIAL.

    CASE column.

      WHEN 'SELEC'.

      WHEN OTHERS.


    ENDCASE.

    gr_rep->refresh( ).

  ENDMETHOD.                    "on_double_click


  METHOD on_link_click.

    READ TABLE gt_rep INDEX row ASSIGNING <fs_rep>.

    gr_rep->refresh( ).

  ENDMETHOD.                    "on_link_click


ENDCLASS.     

_________________
[Удалено Админом]


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Помогите повесить обработку на Grid
СообщениеДобавлено: Пт, янв 29 2016, 11:50 
Специалист
Специалист

Зарегистрирован:
Пт, янв 22 2016, 10:20
Сообщения: 170
DATA gr_events TYPE REF TO lcl_handle_events.
DATA lr_events TYPE REF TO cl_salv_events_table.
DATA lr_functions TYPE REF TO cl_salv_functions_list.

**"----------------------------------------------------------------------

lr_events = gr_rep->get_event( ).
CREATE OBJECT gr_events.
SET HANDLER gr_events->on_user_command FOR lr_events.
SET HANDLER gr_events->on_double_click FOR lr_events.
SET HANDLER gr_events->on_link_click FOR lr_events.


не понял в каком разделе мне это написать. если в деффенишн класса грида, то он пишет lcl_handle_events неизвестен


gr_rep - что это за ссылочная переменная?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Помогите повесить обработку на Grid
СообщениеДобавлено: Пт, янв 29 2016, 12:10 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Слуште :) , ну Вам же сказали se38->BCALV_GRID_*->f4


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Помогите повесить обработку на Grid
СообщениеДобавлено: Пт, янв 29 2016, 15:41 
Специалист
Специалист

Зарегистрирован:
Пт, янв 22 2016, 10:20
Сообщения: 170
Благодарю, разобрался наконец, программа работает


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

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


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

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


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

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