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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Refresh заголовка грида
СообщениеДобавлено: Пн, окт 10 2011, 11:21 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 12:45
Сообщения: 164
Откуда: Свердловская обл., г. Екатеринбург
Пол: Мужской
Добрый день !
Есть грид, сделанный на классах через cl_salv_table=>factory...
Перед гридом выводится заголовок co_alv->set_top_of_list( lo_header ).
Есть необходимость изменять данные которые выводятся в заголовке перед гридом,
может кто-нибудь подскажет как можно после этого обновить заголовок у грида на экране ?

_________________
Не спорьте с идиотом - вам придется опуститься до его уровня и там он вас задавит опытом ! :wink:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Refresh заголовка грида
СообщениеДобавлено: Пн, окт 10 2011, 11:32 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
El Mario написал:
Добрый день !
Есть грид, сделанный на классах через cl_salv_table=>factory...
Перед гридом выводится заголовок co_alv->set_top_of_list( lo_header ).
Есть необходимость изменять данные которые выводятся в заголовке перед гридом,
может кто-нибудь подскажет как можно после этого обновить заголовок у грида на экране ?

Насколько знаю метод refresh инициирует, в том числе и перерисовку заголовка.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Refresh заголовка грида
СообщениеДобавлено: Пн, окт 10 2011, 11:53 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 12:45
Сообщения: 164
Откуда: Свердловская обл., г. Екатеринбург
Пол: Мужской
а как это выглядит ?
вот таблица у меня обновляется...
выглядит это так :
gr_table->refresh( ).
пробовал написать
co_alv->refresh( ).
не хочет :(

_________________
Не спорьте с идиотом - вам придется опуститься до его уровня и там он вас задавит опытом ! :wink:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Refresh заголовка грида
СообщениеДобавлено: Пн, окт 10 2011, 12:38 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
El Mario написал:
а как это выглядит ?
вот таблица у меня обновляется...
выглядит это так :
gr_table->refresh( ).
пробовал написать
co_alv->refresh( ).
не хочет :(

Шапку к SALVу можно прикрутить разными способами, судя по Вашему куску кода, способ понятен, но не понятно почему у Вас в таком случае два объекта разных?
Цитата:
Есть необходимость изменять данные которые выводятся в заголовке перед гридом,
может кто-нибудь подскажет как можно после этого обновить заголовок у грида на экране ?


Уточнить хотел. Что значит перед? Вы имеете ввиду "над"?
Обновляете по какому событию?

Я сейчас попробовал этим примером(ниже).
Приделал кнопку, и по ней обновление шапки. Через refresh не получилось. Просто вызвал повторно perform display_header. и o_salv->set_top_of_list( r_header ). Обновилось. Может есть более оптимальные решения, точно не знаю. А через refresh это я перепутал немного, там вообще другой способ рисования шапки, она в отдельном своем контейнере идет, более трудоемкий способ.

(код откуда-то скопировал)
Code:
*&---------------------------------------------------------------------*
*& Report  ZSALV_MI4
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*

REPORT  ZSALV_MI4.


include <cl_alv_control>.

data: o_salv       type ref to cl_salv_table.
data: t_data type table of sflights.
data: r_header        type ref to cl_salv_form_element.
data: gr_container type ref to cl_gui_custom_container.
data: g_okcode like sy-ucomm.

*   test data
  select * from sflights
         into corresponding fields of table t_data
         up to 30 rows.
*...New ALV Instance ...............................................
  try.
      cl_salv_table=>factory(
*        exporting
*            r_container    = gr_container
*            container_name = 'CONTAINER'
        importing
          r_salv_table = o_salv
        changing
          t_table      = t_data ).
    catch cx_salv_msg.                                  "#EC NO_HANDLER
  endtry.

  perform display_header.
  o_salv->set_top_of_list( r_header ).

*...Generate ALV output ...............................................
  o_salv->display( ).


*&---------------------------------------------------------------------*
*&      Form  display_header
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
form display_header .
  data: lr_grid   type ref to cl_salv_form_layout_grid.
  create object lr_grid.
  lr_grid->create_text(
  row    = 1
  column = 1
  text   = 'Header Line 1' ).
  lr_grid->create_text(
  row    = 2
  column = 1
  text   = 'Header Line 2' ).
  r_header = lr_grid.
endform.                    " display_header


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Refresh заголовка грида
СообщениеДобавлено: Пн, окт 10 2011, 12:55 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 12:45
Сообщения: 164
Откуда: Свердловская обл., г. Екатеринбург
Пол: Мужской
Besa написал:
Шапку к SALVу можно прикрутить разными способами, судя по Вашему куску кода, способ понятен, но не понятно почему у Вас в таком случае два объекта разных?

У меня один объект, просто вызывается метод и там по другому он обозван
CALL METHOD event_handler->set_top_of_page
CHANGING
co_alv = gr_table.

Besa написал:
Уточнить хотел. Что значит перед? Вы имеете ввиду "над"?

да, над... не совсем правильно выразился
Besa написал:
Обновляете по какому событию?

У меня по кнопке в юзеркоманд происходит определенный расчет и результат этот надо изменить в шапке...

_________________
Не спорьте с идиотом - вам придется опуститься до его уровня и там он вас задавит опытом ! :wink:


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Refresh заголовка грида
СообщениеДобавлено: Пн, окт 10 2011, 13:19 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 12:45
Сообщения: 164
Откуда: Свердловская обл., г. Екатеринбург
Пол: Мужской
Besa написал:
Просто вызвал повторно perform display_header. и o_salv->set_top_of_list( r_header ). Обновилось. Может есть более оптимальные решения, точно не знаю.

Тоже думал об этом, попробовал, вроде работает... просто может есть более изящное решение :)

_________________
Не спорьте с идиотом - вам придется опуститься до его уровня и там он вас задавит опытом ! :wink:


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

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


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

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


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

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