Текущее время: Пт, июл 25 2025, 05:47

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Программное изменение поля в ракурсе ведения, таблицы TOTAL , EXTRACT
СообщениеДобавлено: Пт, янв 27 2012, 00:36 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
Приветствую всех!
Необходимо создать ракурс ведения таблицы, в котором одно из полей будет рассчитываться и заполняться программно в зависимости от значений других полей по нажатию кнопки.
Ниже приведен код обработки нажатия кнопки.
После отработки этого фрагмента поле на экране действительно меняет значение, но при нажатии кнопки "Сохранить", записи в таблице не меняются. При выходе из транзакции система также не предлагает сохранить изменения.


IF OK_CODE = 'CALCULATE_NAR'.

"Работа с EXTRACT, TOTAL

DATA : it_nar TYPE TABLE OF nar_type,
wa_nar type nar_type,
F_INDEX LIKE SY-TABIX.
FIELD-SYMBOLS: <fs_n_nar> type any.
FIELD-SYMBOLS: <fs_pernr> type any.
FIELD-SYMBOLS: <fs_razr> type any.
FIELD-SYMBOLS: <fs_t_sd> type any.
FIELD-SYMBOLS: <fs_sum_sd> type any.

lOOP at total.

IF <action> <> GELOESCHT AND <action> <> NEUER_GELOESCHT AND <action> <> UPDATE_GELOESCHT . " запись не является помеченной на удаление

READ TABLE EXTRACT WITH KEY <vim_xtotal_key>.
IF SY-SUBRC EQ 0.
F_INDEX = SY-TABIX.
ELSE.
CLEAR F_INDEX.
ENDIF.

IF F_INDEX > 0.


ASSIGN COMPONENT 'N_NAR' of STRUCTURE <vim_total_struc> to <fs_n_nar>.
ASSIGN COMPONENT 'PERNR' of STRUCTURE <vim_total_struc> to <fs_pernr>.
ASSIGN COMPONENT 'RAZR' of STRUCTURE <vim_total_struc> to <fs_razr>.
ASSIGN COMPONENT 'T_SD' of STRUCTURE <vim_total_struc> to <fs_t_sd>.
ASSIGN COMPONENT 'SUM_SD' of STRUCTURE <vim_total_struc> to <fs_sum_sd>.
"все считалось нормально

"поле SUM_SD необходимо рассчитать программно
FIELD-SYMBOLS: <fs_fldval> type any.
ASSIGN COMPONENT 'SUM_SD' OF STRUCTURE <vim_total_struc> TO <fs_fldval>.
****расчет поля****
<fs_fldval> = '555'. " тестовое значение
UNASSIGN <fs_fldval>.
MODIFY TOTAL .
extract = total.
* <XACT> = AENDERN.
MODIFY extract INDEX F_INDEX. " ПРОБЛЕМА ТУТ!!!
* <STATUS>-UPD_FLAG = 'X'.

CLEAR : total.
CLEAR <vim_xtotal_key>.
CLEAR <vim_total_struc>.
ENDIF.
ENDIF.
ENDLOOP.
CLEAR : total,<vim_xtotal_key>,<vim_total_struc> .


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программное изменение поля в ракурсе ведения, таблицы TOTAL , EXTRACT
СообщениеДобавлено: Пт, янв 27 2012, 09:01 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Не понятно откуда ваш код вызывается - какой момент времени или из PAI?
Попробуйте так
Code:
z_your_table-fs_fldval = '555'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программное изменение поля в ракурсе ведения, таблицы TOTAL , EXTRACT
СообщениеДобавлено: Пт, янв 27 2012, 12:11 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
zsap, Код вызывается как модуль в PAI.
Немного не понял эту строку.
Code:
z_your_table-fs_fldval = '555'.


fs_fldval типа any, какое отношение он имеет к таблице?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программное изменение поля в ракурсе ведения, таблицы TOTAL , EXTRACT
СообщениеДобавлено: Пт, янв 27 2012, 12:31 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
Сорри, с полем я ошибся
Code:
z_your_table-SUM_SD = '555'.

z_your_table - таблица или ракурс, к которой сгенерирован диалог ведения


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программное изменение поля в ракурсе ведения, таблицы TOTAL , EXTRACT
СообщениеДобавлено: Пт, янв 27 2012, 13:15 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
Попробовал, никакого эффекта


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программное изменение поля в ракурсе ведения, таблицы TOTAL , EXTRACT
СообщениеДобавлено: Пт, янв 27 2012, 13:19 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 03 2008, 17:20
Сообщения: 162
А в ракурсе это расчётное поле содержится?

Добавлено:
Неплохо было бы еще указать <action> = 'U' перед изменение TOTAL.

_________________
В SAPе есть всё, просто вы чего-то не нашли.


Последний раз редактировалось SYS Пт, янв 27 2012, 13:26, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программное изменение поля в ракурсе ведения, таблицы TOTAL , EXTRACT
СообщениеДобавлено: Пт, янв 27 2012, 13:20 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
так я поэтому и спрашивал, в какой момент времени ваш код срабатывает


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программное изменение поля в ракурсе ведения, таблицы TOTAL , EXTRACT
СообщениеДобавлено: Пт, янв 27 2012, 13:27 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
Вероятно, проблема в том, что строка не помечается, как измененная. После отработки кода по нажатию кнопки выделяю запись, нажимаю стандартную кнопку "Отменить изменения (Ctrl+F2)", система говорит что запись не была изменена.
Может кто-то знает, как пометить запись, как измененную?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Программное изменение поля в ракурсе ведения, таблицы TOTAL , EXTRACT
СообщениеДобавлено: Пт, янв 27 2012, 13:30 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Пт, окт 03 2008, 17:20
Сообщения: 162
Смотри ответ выше

_________________
В SAPе есть всё, просто вы чего-то не нашли.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Программное изменение поля в ракурсе ведения, таблицы TOTAL , EXTRACT
СообщениеДобавлено: Пт, янв 27 2012, 13:30 
Начинающий
Начинающий

Зарегистрирован:
Пт, янв 27 2012, 00:11
Сообщения: 22
SYS,
Code:
<action> = 'U'.
помогло. Всем спасибо)


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

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


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

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


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

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