Текущее время: Вс, авг 03 2025, 23: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 часа


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

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


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

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