Текущее время: Пн, июн 30 2025, 04:18

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Как присвоить значение полю FIELD-SYMBOLS?
СообщениеДобавлено: Ср, дек 07 2005, 15:56 
Гость
Помогите!
Нужно присвоить какое-то определенное значение полю FIELD-SYMBOLS.
Code:
   
  FIELD-SYMBOLS:
                 <l_lt_otchet>      TYPE ANY
               , <l_fname_otch>     TYPE ANY
               , <l_field_otch>     TYPE ANY
               , <l_field_otchv>     TYPE ANY
               , <fline_osn> LIKE LINE OF lt_otchet      "TYPE ANY
               , <fline_vtor> LIKE LINE OF lt_otchet      "TYPE ANY

        READ TABLE lt_otchet INDEX npp_ ASSIGNING <fline_vtor>.
            IF sy-subrc = 0.
              IF <fline_vtor>-spos > spos_.
                ASSIGN lt_exl_fieldcat-fieldname TO <l_fname_otch>.
                CHECK sy-subrc EQ 0.
                ASSIGN COMPONENT <l_fname_otch>
                                 OF STRUCTURE <fline_vtor> TO <l_field_otchv> DECIMALS lt_exl_fieldcat-decimals.
                CHECK sy-subrc EQ 0.
                IF lt_exl_fieldcat-decimals = 3.
                  summ = <l_field_otchv> + summ.
                  ASSIGN  summ TO <l_field_otchv>.
                  CHECK sy-subrc EQ 0.
                ELSE.
                  summ1 = <l_field_otchv> + summ1.
                  ASSIGN summ1 TO <l_field_otchv>.
                  CHECK sy-subrc EQ 0.
                ENDIF.
*                ASSIGN dref->* TO <fs>.
*ASSIGN LOCAL COPY OF MAIN
*      TABLE FIELD (<l_fname_otch>) TO <FS>.
                MODIFY lt_otchet INDEX npp_ ASSIGNING <fline_vtor>
                     TRANSPORTING (lt_exl_fieldcat-fieldname).      "lt_exl_fieldcat-fieldname).
              ENDIF.
            ENDIF.



Нужно, чтобы значение SUMM присваивалось <fline_vtor>-<l_field_otchv>.
Не работает :cry:

То есть работает, но при MODIFY берёт значение старое, которое присвоилось после команды READ, а не то, что по команде
Code:
ASSIGN  summ TO <l_field_otchv>.


Как надо сделать / переделать /прибавить / исправить, чтобы она заработала?


P.S. Извиняюсь за сумбурность объяснений.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 07 2005, 16:37 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Дорогая Любаша,
В вашем коде от MODIFY можно избавиться вовсе, благодаря филд-символам.
После того, как выполнился оператор
Code:
ASSIGN COMPONENT <l_fname_otch>
                                 OF STRUCTURE <fline_vtor> TO <l_field_otchv>
                                DECIMALS lt_exl_fieldcat-decimals.

<l_field_otchv> указывает ровно на нужное поле в нужной строке таблицы. Можно присвоить ему значение безо всякого MODIFY. Т.е. вместо
Code:
ASSIGN  summ TO <l_field_otchv>.

пишите
Code:
<l_field_otchv> = summ.

Кстати, после оператора
Code:
ASSIGN  summ TO <l_field_otchv>.
<l_field_otchv> будет просто указывать на переменную summ, хотя вы, видимо надеялись, что summ запишется по ссылке <l_field_otchv>.

А вообще, вы чего добиваетесь? Суммы нарастающим итогом?

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 07 2005, 16:42 
Гость
уф, спасибо, получилось, а то я два дня мучалась. Сама себя заабапила :lol: .


Я хочу получить суммы, но не совсем нарастающим итогом, а в зависимости от одного параметра - уровня вложенности по иерархии.
А что, есть какие-то спецфункции для расчета нарастающим итогом?


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 07 2005, 17:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
Если у вас сугубо динамическая структура таблицы, то событиями AT NEW не воспользуешься. Тогда можно было бы отсортировать таблицу по уровню вложенности (если он хранится в одном из полей), а потом в цикле считать сумму, следя за изменением уровня.

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, дек 07 2005, 17:19 
Гость
Цитата:

Если у вас сугубо динамическая структура таблицы, то событиями AT NEW не воспользуешься. Тогда можно было бы отсортировать таблицу по уровню вложенности (если он хранится в одном из полей), а потом в цикле считать сумму, следя за изменением уровня.

Собственно, я так и делаю, но внутри таблицы поле (SPOS) "скачет", то есть значения могут быть
4
3
2
1
1
1
3
2
1
1
2
1
1
3
2
1
1

и т.д.
Мне надо просуммировать по возрастающей от меньшей к большей.

Что такое AT NEW?


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

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


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

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


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

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