Текущее время: Сб, июл 19 2025, 21:26

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: ALV: BEFORE_LINE_OUTPUT
СообщениеДобавлено: Чт, июн 02 2005, 12:41 
Специалист
Специалист

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
почему в REUSE_ALV_* может не отрабатывать событие BEFORE_LINE_OUTPUT ?

объявлено так:
form before_line_output
changing
rs_lineinfo type slis_lineinfo.

может флажок какой еще нужен ?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, июн 02 2005, 12:59 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Смотри BCALV_TEST_FULLSCREEN_EVENTS

Надо сопоставлять событие подпрограмме
it_events


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

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
так оно сопоставлено -


form after_line_output
using
rs_lineinfo type slis_lineinfo.

endform.


clear it_events.
ls_event-name = slis_ev_after_line_output.
ls_event-form = 'AFTER_LINE_OUTPUT'.
append ls_event to it_events.

call function 'REUSE_ALV_GRID_DISPLAY'
exporting
* I_INTERFACE_CHECK = ' '
* I_BYPASSING_BUFFER =
* I_BUFFER_ACTIVE = ' '
i_callback_program = repid
i_callback_pf_status_set = 'ALV_PF_STATUS'
i_callback_user_command = 'ALV_USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_TOP_OF_PAGE = ' '
* I_CALLBACK_HTML_END_OF_LIST = ' '
* i_structure_name = c_tab_struct_name
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
* I_GRID_SETTINGS =
is_layout = is_layout
it_fieldcat = i_fieldcat[]
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
it_sort = t_sortinfo[]
* IT_FILTER =
* IS_SEL_HIDE =
* I_DEFAULT = 'X'
i_save = 'X'
* IS_VARIANT =
it_events = it_events[]


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

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
причем, событие data_changed работает, а after_line_output - нет


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 03 2005, 07:46 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Я почему-то думал, что данное событие и не будет отрабатывать в ФМ REUSE_ALV_GRID_DISPLAY :roll:
Просто, если посмотреть на внедрение класса LCL_EVENT_RECEIVER в ГрФункций SLVC_FULLSCREEN, то там нет обработки этого события (по крайней мере, у нас в 4.6С).
Да и у класса CL_GUI_ALV_GRID нет похожего события.
Ставлю на то, что событие будет работать в REUSE_ALV_LIST_DISPLAY :wink:

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


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

Зарегистрирован:
Пн, окт 18 2004, 11:25
Сообщения: 183
Откуда: Moscow
thanx !
я что-то подобное и предполагал,
теперь будем знать ;))


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, июн 03 2005, 15:34 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
В качестве прикола-разминки:

Code:
FORM f01_alv_event_top_of_page.

  FIELD-SYMBOLS: <CB>.

  DATA: CALLSTACK TYPE SYS_CALLST.

  CALL FUNCTION 'SYSTEM_CALLSTACK'
    IMPORTING
      ET_CALLSTACK       = CALLSTACK
            .

  READ TABLE CALLSTACK WITH KEY EVENTNAME = ' K_KKB_LIST_DISPLAY'
       TRANSPORTING NO FIELDS.

  CHECK SY-SUBRC = 0.

  ASSIGN ('(SAPLKKBL)GT_STACK2-I_CALLBACK_AFTER_LINE_OUTPUT') TO <CB>.
  IF SY-SUBRC = 0.
    <CB> = 'CBLO'.
    ASSIGN ('(SAPLKKBL)I_CALLBACK_AFTER_LINE_OUTPUT') to <CB>.
    if sy-subrc = 0.
      <CB> = 'CBLO'.
    endif.
  ENDIF.

ENDFORM.

FORM cblo using rs_lineinfo type slis_lineinfo.
  ...
ENDFORM.


Если в TOP_OF_PAGE от REUSE_ALV_GRID_DISPLAY поместить это, то получишь отработку AFTER_LINE_OUTPUT :) Разумеется, при выводе в листинг..

Размер имени подпрограммы для AFTER_LINE_OUTPUT по техническим причинам не может превышать 4-х знаков...

Тем же манером можно и BEFORE_LINE_OUTPUT


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 19 2005, 17:51 
Младший специалист
Младший специалист

Зарегистрирован:
Пт, окт 07 2005, 13:38
Сообщения: 79
Откуда: ECC 6.0
Пол: Мужской
Подниму тему...

В REUSE_ALV_BLOCK_LIST_HS_APPEND событие AFTER_LINE_OUTPUT не обрабатывается никак :-( :-( :-( :mad:
Хотя BERORE_LINE_OUTPUT обрабатывается на ура... и REUSE_ALV_EVENTS_GET для этого типа списка ясно показывает что AFTER_LINE_OUTPUT он держит...

Никто не сталкивался? И как-нибудь все же можно определить событие? Вышеприведенный код не работает...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 20 2005, 09:09 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Смотрю на REUSE_ALV_BLOCK_LIST_HS_APPEND и вижу, что относительно событий его задача заключается в заполнении и добавлении строки к GT_STACK. Переданные события обрабатываются REUSE_ALV_EVENTS_TRANSFER. В se37 передаю в REUSE_ALV_EVENTS_TRANSFER строку
Code:
NAME                           FORM                         
AFTER_LINE_OUTPUT              formname                           


на выходе E_FORM_AFTER_LINE_OUTPUT = formname

То есть, если говорить про REUSE_ALV_BLOCK_LIST_HS_APPEND, то он работает нормально..

Тут дело в другом..


Последний раз редактировалось T Чт, окт 20 2005, 09:22, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 20 2005, 09:18 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
Возможно поможет тот способ, что был выше, но если ты заменишь
' K_KKB_LIST_DISPLAY' на ' K_KKB_HIER_SEQU_LIST_DISPLAY', либо будешь проверять, что в стеке вызовов есть кто-то любой из них.

В любом случае стоит посмотреть на стек вызовов, когда находишься в событии BEFORE_... и выяснить, какой модуль тебя вызвал.


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

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


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

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


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

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