Текущее время: Чт, май 15 2025, 13:11

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


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

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


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

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