Текущее время: Пн, июн 23 2025, 22:26

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


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

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


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

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