Текущее время: Сб, июн 28 2025, 23:47

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


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

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


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

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