Текущее время: Вс, июл 27 2025, 02:32

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


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

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


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

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