Текущее время: Ср, июл 23 2025, 04:09

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Изменение подитогов ALV Grid через события AFTER_REFRESH и SUBTOTAL_TEXT
СообщениеДобавлено: Пт, май 15 2009, 07:40 
Начинающий
Начинающий

Зарегистрирован:
Пт, май 15 2009, 07:14
Сообщения: 16
Помогите разобраться с такой проблемой. прежде чем написать, долго рыл на форуме, прочитал массу советов как изменить значения подитогов в ALV Grid. В частности, использование события AFTER_REFRESH, например тут http://sapboard.ru/forum/viewtopic.php?f=13&t=23694&hilit=get_subtotals. Собственно проблема в том, что метод отрабатывает, и даже
правит подитоги, возвращаемые GET_SUBTOTAL как надо, в отладчике смотрю. НО при отображении грида на экране изменений как будто и не было! Хорошо бы, чтоб был метод SET_TOTALS, но его нет. Как эту беду победить, не знаю.
Code:
  method on_after_refresh.

    data : total type ref to data
         , subtotal1 type ref to data
         , subtotal2 type ref to data
         , ref TYPE string
         , summ(4) TYPE n VALUE 0
         , wa_res LIKE LINE OF it_result
         .

    data wa_total_levels TYPE LINE OF LVC_T_GRPL.

    field-symbols : <total>     TYPE STANDARD TABLE
                  , <subtotal1> TYPE STANDARD TABLE
                  , <subtotal2> TYPE STANDARD TABLE
                  , <it>        TYPE STANDARD TABLE
                  , <wa>        TYPE data
                  , <fld>       TYPE data
                  .

    CALL METHOD go_alv_grid->GET_SUBTOTALS
      IMPORTING
        EP_COLLECT00   = total
        EP_COLLECT01   = subtotal1
        EP_COLLECT02   = subtotal2
        ET_GROUPLEVELS = it_total_levels.

   assign total->* to <total>.
   assign subtotal1->* to <subtotal1>.
   assign subtotal2->* to <subtotal2>.

   loop at it_total_levels INTO wa_total_levels WHERE subtot = 'X'.
      ref = wa_total_levels-level.
      CONCATENATE 'SUBTOTAL' ref '->*' INTO ref.
      CONDENSE ref NO-GAPS.
      ASSIGN (ref) TO <it>.
      READ TABLE <it> INDEX wa_total_levels-cindx_from
      ASSIGNING <wa>.
      ASSIGN COMPONENT 'INDICATOR' OF STRUCTURE <wa> TO <fld>.
      summ = 13.
      <fld> = summ.
      MODIFY <it> INDEX wa_total_levels-cindx_from FROM <wa>.
   endloop.

  endmethod.


Откопал второй способ решить поставленную задачу - использование событие subtotal_text.
Реализовал. Опять-таки есть НО... Событие отрабатывает только если в открытом гриде изменить формат, скрыв столбец, по которому считается подитог.. Тоже не удобно.

И наконец, кто-то советовал использовать событие AFTER_LINE_OUTPUT, но такового не нашел.


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение подитогов ALV Grid через события AFTER_REFRESH и SUBTOTAL_TEXT  Тема решена
СообщениеДобавлено: Пт, май 15 2009, 09:19 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Если вы внимательно посмотрите код из приведенного вами топика, то увидите там вызов метода REFRESH_TABLE_DISPLAY. Его и не хватает в вашем коде ;)

_________________
С уважением,
Удав.


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение подитогов ALV Grid через события AFTER_REFRESH и SUBTOTAL_TEXT
СообщениеДобавлено: Пт, май 15 2009, 10:38 
Начинающий
Начинающий

Зарегистрирован:
Пт, май 15 2009, 07:14
Сообщения: 16
так вызов метода REFRESH_TABLE_DISPLAY из метода AFTER_REFRESH приводит к срабатыванию AFTER_REFRESH и так до бесконечности


Пометить тему как нерешенную
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение подитогов ALV Grid через события AFTER_REFRESH и SUBTOTAL_TEXT
СообщениеДобавлено: Пт, май 15 2009, 10:44 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 06 2005, 17:52
Сообщения: 559
Да, это серьезная проблема :) Какой-нибудь глобальный флажок придумать, чтобы отличить свой вызов REFRESH_TABLE_DISPLAY от прочих - не судьба?

ЗЫ Тем более в исходном коде он есть :(


Пометить тему как нерешенную
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Изменение подитогов ALV Grid через события AFTER_REFRESH и SUBTOTAL_TEXT
СообщениеДобавлено: Пт, май 15 2009, 10:49 
Начинающий
Начинающий

Зарегистрирован:
Пт, май 15 2009, 07:14
Сообщения: 16
да как раз дошел до этого, но сообщение уже было отправлено :oops:
спасибо


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

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


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

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


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

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