Текущее время: Вс, июл 27 2025, 21:47

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Обновление данных подэкрана
СообщениеДобавлено: Чт, ноя 15 2012, 03:40 
Начинающий
Начинающий

Зарегистрирован:
Пт, мар 30 2012, 09:06
Сообщения: 4
Привет, сограждане. Поискал на форуме свою проблему не нашёл...
Есть экран с тремя подэкранами, которые загружаются вместо друг друга по возникновению некоего условия...
На главном экране и подэкранах есть поля, связанные с некоей внутренней таблицей... при загрузке подэкрана, данные полей других подэкранов необходимо чистить.
Соответственно и в БД при сохранении должны писать только данные с активного подэкрана... однако поля не чистятся, вернее когда трассирую место перегрузки экранов, где делаю clear в этот момент времени вроде поля во внутренней таблице пустые, но при сохранении данных "ненужные" значения остаются... подскажите как поступить...
Вот как делаю на главном экране:

wa_fields-fieldname = 'SCR1300-RULES-RULES'.
wa_fields-fieldvalue = tindicator-domvalue_l.
APPEND wa_fields TO it_fields.

wa_fields-fieldname = 'SCR1300-T_IND_NAME'.
wa_fields-fieldvalue = tindicator-ddtext.
APPEND wa_fields TO it_fields.


CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-cprog
dynumb = '1300'
TABLES
dynpfields = it_fields
EXCEPTIONS
OTHERS = 8.

в этом случае всё обновляется и значение поля, как на экране, так и во внутренней таблице обновляется, тоже самое делаю и для полей подэкранов, но в их случае ничего не меняется.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обновление данных подэкрана
СообщениеДобавлено: Чт, ноя 15 2012, 09:07 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Chapaev_ESRR написал(а):
при загрузке подэкрана, данные полей других подэкранов необходимо чистить.
Соответственно и в БД при сохранении должны писать только данные с активного подэкрана...

Какая-то странная логика: почему при переходе на другой подэкран нужно чистить данные другого подэкрана? :?

1. Экраны работают с глобальными данными.
Следовательно, для того, чтобы разделить данные разных подэкранов, необходимо для каждого подэкрана вести свои переменные (один подэкран - одна структура данных).
Тогда проблем с изолированием данных подэкранов не возникнет.

2. Сохранение в БД всегда производится с данными внутри программы. Обработчик экранов при этом не используется.

3. ФМ 'DYNP_VALUES_UPDATE' работает не с глобальными данными, отображаемыми на экране, а с копией этих данныхв обработчике экранов. Поэтому чистить данные на другом подэкране нужно через глобальные переменные. Передача данных осуществляется с помощью PBO-логики (глобальная память->обработчик экрана) и PAI-логики(обработчик экрана->глобальная память)

Кроме этого, для 'DYNP_VALUES_UPDATE' должен быть указан конкретный подэкран, а не основной экран.

В общем, советую ознакомиться с курсом BC410.

_________________
С уважением,
Удав.


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

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


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

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


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

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