Текущее время: Вт, июл 29 2025, 02:26

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


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

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


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

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