Текущее время: Вс, июн 22 2025, 17:07

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 8 ] 
Автор Сообщение
 Заголовок сообщения: Обработка событий при работе с экранами (есть проблемы)
СообщениеДобавлено: Вт, июн 14 2005, 08:50 
Гость
В своей программе я создал экран, на котором разместил таблицу, связанную с внутренней таблицей программы. В таблице выводятся несколько колонок, одна из которых редактируемая. Есть на экране несколько кнопок. Столкнулся с проблемой обработки событий при работе с экраном.

В чем проблема?

При нажатии на кнопки экрана происходит закрытие экрана по команде

set screen 0.

и вывод содержимого таблицы с учетом внесенных изменений. Необходимо проверить непротиворечивость введенных в таблицу данных. И здесь начинаются проблемы. При проверке введенных данных внутренняя таблица, связанная с экранной таблицей, оказывается не полностью синхронизированной. Вернее проблемы возникают, когда пользователь при вводе данных в экранную таблицу, от ячейки к ячейке перемешается при помощи мышки и после каждого ввода не нажимает клавишу ENTER.

Данные окончательно синхронизируются только при закрытии экрана, что не есть хорошо т.к. в случае ошибок ввода вернуться к экрану для корректировки уже будет невозможно. А хорошо было бы не закрывать экран до исправления ошибок ввода, или до осознанной отмены ввода данных.

Подскажите где я не прав и как выполнить гарантированную проверку введенных данных в экранной таблице до закрытия экрана?

P.S. Замечены и другие особенности работы экрана. Если данные в таблице модифицированы указанным выше способом, то синхронизация с внутренней таблицей происходит при любом событии экрана, т.е. прокрутка списка, нажатие кнопки экрана без его закрытия и т.д. Т.е. любое событие (кроме щелчков мышкой, которые в ABAP почему-то не являются событиями) приводит к переходу к следующему экрану и одновременному обновлению данных, а т.к. в свойствах экрана указан переход на самого себя, то процесс зациклен вплоть до принудительного закрытия экрана по set screen 0. Нигде в справке ничего вразумительного по этому поводу не нашел.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Обработка событий при работе с экранами (есть проблемы)
СообщениеДобавлено: Вт, июн 14 2005, 09:36 
Гуру-эксперт
Гуру-эксперт

Зарегистрирован:
Вт, сен 07 2004, 17:47
Сообщения: 2988
FreePainter написал(а):
...


Был бы фрагмент кода - может и можно было что либо сказать, а так гадать можно долго.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обработка событий при работе с экранами (есть проблемы)
СообщениеДобавлено: Вт, июн 14 2005, 09:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
FreePainter написал(а):
При нажатии на кнопки экрана происходит закрытие экрана по команде

set screen 0.


Ну так проверки надо делать ДО перехода/выхода на другой экран, в PAI экрана. Можно непосредственно в момент "синхронизации" , где идёт цикл по таблице. Генеришь там message типа E и никуда неверные даные не пойдут..


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обработка событий при работе с экранами (есть проблемы)
СообщениеДобавлено: Вт, июн 14 2005, 09:48 
Гость
Спасибо! Сейчас попробую.


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения: Re: Обработка событий при работе с экранами (есть проблемы)
СообщениеДобавлено: Вт, июн 14 2005, 09:50 
Менеджер
Менеджер

Зарегистрирован:
Вт, дек 07 2004, 10:39
Сообщения: 610
T написал:
FreePainter написал(а):
При нажатии на кнопки экрана происходит закрытие экрана по команде

set screen 0.


Ну так проверки надо делать ДО перехода/выхода на другой экран, в PAI экрана. Можно непосредственно в момент "синхронизации" , где идёт цикл по таблице. Генеришь там message типа E и никуда неверные даные не пойдут..

имеено там, если конструктором делал таблицу, то долно быть что то вроде: MODULE tblscr_modify ON CHAIN-REQUEST.
в этом модуле и пиши проверку, отрабатываться, кстатит, он тоже тока по enter будет

_________________
полный SAPец


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 14 2005, 09:54 
Гость
А если в модуле

module SCRTAB_modify input.
modify OSNTAB index SCRTAB-current_line.
endmodule.

делать проверку?

по идее позиция строки SCRTAB-current_line должна совпадать с позицией строки внутренней таблицы!!!


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 14 2005, 09:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Ср, май 04 2005, 16:29
Сообщения: 687
Откуда: Нижневартовск->Москва
Пол: Мужской
SLASH о нём и пишет. Делай там.
Можешь сделать отдельный модуль перед этим в том же месте, где этот. На твоё усмотрение.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Вт, июн 14 2005, 10:03 
Гость
Огромное всем спасибо за помощь! Все получилось!


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

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


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

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


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

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