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

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


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

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


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

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