Текущее время: Пт, июн 07 2024, 19:05

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Как достать значение из ALV?
СообщениеДобавлено: Ср, июн 29 2005, 05:34 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
Пользователь выделяет строку (кнопка слева в каждой строке ALV).
Как получить значение первого столбца (его зовут kunnr) этой выделенной строки?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 29 2005, 06:27 
Гость
Есть подходящее событие в F01_ALV_EVENT_USER_COMMAND.

FORM F01_ALV_EVENT_USER_COMMAND
USING R_UCOMM LIKE SY-UCOMM
RS_SELFIELD TYPE SLIS_SELFIELD.

IF R_UCOMM = 'PICK' OR R_UCOMM = '&IC1'. " курсор на поле KUNNR
IF RS_SELFIELD-fieldname = 'KUNNR'. " имя поля
check not RS_SELFIELD-value is initial. " значение этого поля
...

FORM GET_EVENTS_DETAILS .

FIELD-SYMBOLS: <LS_EVENT> TYPE SLIS_ALV_EVENT.
DATA: L_EVENT TYPE SLIS_ALV_EVENT.

CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
I_LIST_TYPE = 0
IMPORTING
ET_EVENTS = T_EVENTS
EXCEPTIONS
LIST_TYPE_WRONG = 1
OTHERS = 2.

IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ELSE.
LOOP AT T_EVENTS INTO L_EVENT.
IF L_EVENT-NAME = 'USER_COMMAND'.
L_EVENT-FORM = 'F01_ALV_EVENT_USER_COMMAND'.
MODIFY T_EVENTS FROM L_EVENT.
ENDIF.
IF L_EVENT-NAME = 'TOP_OF_PAGE'.
L_EVENT-FORM = 'HEADER_WRITE'.
MODIFY T_EVENTS FROM L_EVENT.
ENDIF.
ENDLOOP.
ENDIF.

ENDFORM. " GET_EVENTS_DETAILS

FORM out_alv .

CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
EXPORTING
I_CALLBACK_PROGRAM = CALL_PROG
IS_LAYOUT = LAYOUT
IT_FIELDCAT = GT_FIELDCAT[]
IT_SORT = T_SORT
IT_EVENTS = T_EVENTS[]
TABLES
T_OUTTAB = T_DATA.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 29 2005, 07:11 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
А можно попроще для особо несообразительных?
... и плясать хочется от CL_GUI_ALV_GRID...

Индекс выделенной строки я уже вытащил (см. код ниже), а вот как дернуть значение поля?..

Code:
FORM user_command
    USING P1
        grid TYPE REF TO CL_GUI_ALV_GRID.

    CALL METHOD grid->get_selected_rows
          IMPORTING
              ET_ROW_NO = it_selected_rows.

    READ TABLE it_selected_rows INDEX 1 INTO wa_selected_rows.
    selected_line_id = wa_selected_rows-ROW_ID.


Как далее дернуть значение на манер:
Value = Cell(selected_line_id, 'KUNNR').Value


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 29 2005, 08:12 
Специалист
Специалист

Зарегистрирован:
Чт, авг 19 2004, 07:31
Сообщения: 234
Откуда: Нижнекамск
что то я не понял этот код....
вообще то есть метод GRID->GET_CURRENT_CELL

где можно получить и непосредственно значение ячейки

а можно получить индекс строки и считать по индексу из внутренней таблицы


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 29 2005, 08:18 
Специалист
Специалист

Зарегистрирован:
Чт, авг 19 2004, 07:31
Сообщения: 234
Откуда: Нижнекамск
если конкретно то где то так

CALL METHOD grid->get_selected_rows
IMPORTING
ET_INDEX_ROWS = it_index_rows
ET_ROW_NO = it_selected_rows.

READ TABLE it_index_rows INDEX 1 INTO wa_index_rows.
read table <itab> index wa_index_rows-INDEX.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 29 2005, 13:25 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, апр 07 2005, 05:27
Сообщения: 621
Откуда: Москва
Пол: Мужской
Сенкс, помогло

Я просто не обратил внимания что можно дергать индекс и исходной таблицы, которая была передана в ALV


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, июн 29 2005, 13:29 
Специалист
Специалист

Зарегистрирован:
Чт, авг 19 2004, 07:31
Сообщения: 234
Откуда: Нижнекамск
да всегда пожалуйста...
бывает много чего сразу не видишь... :D


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

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


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

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


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

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