Текущее время: Вт, июл 22 2025, 21:22

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


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

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


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

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