Текущее время: Пн, авг 04 2025, 00:24

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Как узнать, какая таблица "лежит под гридом"?
СообщениеДобавлено: Ср, янв 30 2008, 09:35 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Вс, сен 02 2007, 15:10
Сообщения: 670
Откуда: Moscow
Что-то не могу найти по коду. Может не туда смотрю, может надо глянуть какое-то свойство объекта?

Прим. Извините, если использую корявые термины.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как узнать, какая таблица "лежит под гридом"?
СообщениеДобавлено: Ср, янв 30 2008, 10:17 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Моха написал(а):
Что-то не могу найти по коду. Может не туда смотрю, может надо глянуть какое-то свойство объекта?

Прим. Извините, если использую корявые термины.

Не объектный GRID(программа BCALV_TEST_FULLSCREEN):
Цитата:
call function 'REUSE_ALV_GRID_DISPLAY'
exporting
* I_INTERFACE_CHECK = ' '
i_bypassing_buffer = gs_test-bypassing_buffer
i_buffer_active = gs_test-buffer_active
i_callback_program = g_repid
* i_callback_pf_status_set = 'F01_ALV_EVENT_PF_STATUS_SET'
* i_callback_user_command = 'F01_ALV_EVENT_USER_COMMAND'
* I_CALLBACK_TOP_OF_PAGE = ' '
i_callback_html_top_of_page = l_event_html_top
i_callback_html_end_of_list = l_event_html_end
* I_STRUCTURE_NAME =
* I_BACKGROUND_ID = ' '
* I_GRID_TITLE =
i_grid_settings = ls_sett
is_layout = ls_layo
it_fieldcat = lt_fcat
* IT_EXCLUDING =
* IT_SPECIAL_GROUPS =
it_sort = lt_sort
* IT_FILTER =
* IS_SEL_HIDE =
i_default = gs_test-vari_default
i_save = gs_test-vari_save
is_variant = ls_vari
it_except_qinfo = lt_qinf
it_events = lt_evts
* IT_EVENT_EXIT =
is_print = ls_prnt
* IS_REPREP_ID =
* I_SCREEN_START_COLUMN = 0
* I_SCREEN_START_LINE = 0
* I_SCREEN_END_COLUMN = 0
* I_SCREEN_END_LINE = 0
i_html_height_top = gs_test-html_top_height
i_html_height_end = gs_test-html_end_height
* IT_ALV_GRAPHICS =
* IT_HYPERLINK =
* IT_ADD_FIELDCAT =
* IMPORTING
* E_EXIT_CAUSED_BY_CALLER =
* ES_EXIT_CAUSED_BY_USER =
tables
t_outtab = gt_outtab <-- внутренняя таблица
exceptions
program_error = 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.
endif.
Объектный GRID(программа BCALV_AUTOMAT_STANDARD_TEST):
Цитата:
call method grid1->set_table_for_first_display
exporting
i_default = pdefault
i_save = x_save
is_variant = gs_variant
is_print = gs_print
is_layout = gs_layout
i_buffer_active = ' '
it_toolbar_excluding = gt_toolbar_excluding
it_hyperlink = gt_href
changing
it_fieldcatalog = gt_fieldcat_lvc[]
it_outtab = gt_outtab[] <-- внутренняя таблица


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как узнать, какая таблица "лежит под гридом"?
СообщениеДобавлено: Ср, янв 30 2008, 11:30 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
Моха написал(а):
Что-то не могу найти по коду. Может не туда смотрю, может надо глянуть какое-то свойство объекта?

Прим. Извините, если использую корявые термины.


Нужно смотреть свойства экрана, точнее какой экран используется - если это 500 или 700 экран опрограммы SAPLSLVC_FULLSCREEN - то скорее всего используется REUSE_ALV_GRID_DISPLAY и ищите вызов данного ФМ.
Иначе требуется более сложный анализ, но в любом случае следует определить экран(+программа), на котором расположен объект грида и тсюда уже раскручивать поиск.

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 04 2008, 15:47 
Специалист
Специалист

Зарегистрирован:
Вт, мар 18 2008, 10:21
Сообщения: 136
Откуда: краснодар
Поднему темку похожая проблема.
Использую классы. По событиям кнопок панели инструментов постоянно меняю содержимое одного и того же грида
Code:
CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
........

в event_receiver обрабатываю нажатие кнопок панельки, а также дрилдауны. Индексы строчек узнаю методом
Code:
        CALL METHOD GRID->get_selected_rows
          IMPORTING
            et_index_rows = lt_rows.

названия поля на котором сделан дрилдаун, тоже непроблема узнать.
Проблема в том что мне необходимо знать какая точно таблица лежит под гридом чтобы я смог ее прочитать и обработать дрилдаун или событие панельки.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, сен 04 2008, 15:55 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Ср, ноя 03 2004, 14:51
Сообщения: 1912
Откуда: КраснАдар
Пол: Мужской
Ответ давал ROKO. Если инстанция грида одна и та же - то таблица, которая была в SET_TABLE_FOR_FIRST_DISPLAY.
Если нужно события по разным гридам ловить, то существует параметр SENDER при определении методов класса.
Получение инстанции GRID из CL_GUI_CONTROL


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

Зарегистрирован:
Вт, мар 18 2008, 10:21
Сообщения: 136
Откуда: краснодар
про параметр it_outtab все понятно.
У меня один грид с тулбаром.
По событиям кнопок тулбара в этом одном гриде постоянно меняются таблицы раскладки и филдкаталоги
Code:
  CALL METHOD GRID->SET_TABLE_FOR_FIRST_DISPLAY
    EXPORTING
      IS_LAYOUT       = LAYOT_F
    CHANGING
      IT_OUTTAB       = gf_itab[]
      IT_FIELDCATALOG = ALV_FIELDCATALOG_F
и т.д.

событие дрилдауна возвращает только индекс строки и название поля, но название таблицы как узнать? Она же у меня меняется постоянно. Можно конечно дополнительную переменную замутить но как то некрасиво :(


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

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


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

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


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

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