Текущее время: Вт, июл 22 2025, 00:24

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Очистка экрана выбора
СообщениеДобавлено: Пн, янв 29 2007, 09:42 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
Доброе время суток.

Как очистить экран выбора?
Работает программа, по окончанию возвращается в экран выбора. Необходимо чтобы параметры были очищены от введенных изначально данных. Очищаю все параметры и select-options по окончанию работы программы и даже в инициализации. Но на экране параметры остаются. Как быть?

_________________
С уважением, Гараничев Игорь


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 10:03 
Начинающий
Начинающий

Зарегистрирован:
Ср, янв 19 2005, 09:03
Сообщения: 23
Откуда: Москва
Возможно параметры ссылаются на SET/GET parameters?
Тогда дополнительно их тоже нужо почистить.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 10:14 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
Николаев Александр написал(а):
Возможно параметры ссылаются на SET/GET parameters?
Тогда дополнительно их тоже нужо почистить.


А если у меня там целая табличка заполнена select-options?
Она остается заполненной.

_________________
С уважением, Гараничев Игорь


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 10:45 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Такова логика работы выполняемых программ (отчётов):
Цитата:
If a selection screen id displayed ... the runtime environment calls the called program again after the basic list has been exited. During this new call, the runtime environment supplies the parameters, the selection criteria, and the free selections of the selection screen between the events INITIALIZATION and AT SELECTION-SCREEN OUTPUT with the previous input values. The program call is not complete until the user exits the selection screen processing by choosing Back, Exit, or Cancel.


На мой взгляд, самый очевидный способ решить эту проблему - изменить тип программы. Вариантов здесь может быть много: спрятать селекционный экран внутрь графического, вызывать его из группы функций ещё что-нибудь...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 10:45 
Председатель
Председатель
Аватара пользователя

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
Попробуйте их очисить в
START-OF-SELECTION.
* example
REFRESH SO_BUKRS.

соотвественно перед очисткой перекопировать в ranges и далее использовать в программе этойт новый ranges


Последний раз редактировалось vga Пн, янв 29 2007, 10:50, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 10:49 
Президент
Президент
Аватара пользователя

Зарегистрирован:
Ср, янв 12 2005, 13:39
Сообщения: 2811
Откуда: замкадыш
vga написал(а):
Попробуйте их очисить в
START-OF-SELECTION.
* example
REFRESH SO_BUKRS.


Так здесь очистятся только значения параметров - а ему их использовать потом. Заводить кучу новых переменных, присваивать им значения... - некрасиво - надо попробовать в блоке инициализации почистить - должно помочь.

_________________
Что бы выловить случайную ошибку нужно добиться устойчивости её появления.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 10:56 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
Loyso написал(а):
Так здесь очистятся только значения параметров - а ему их использовать потом. Заводить кучу новых переменных, присваивать им значения... - некрасиво - надо попробовать в блоке инициализации почистить - должно помочь.


Да чистил. И точку останова ставил. В дебаггере показывает что пусто, а экран показывает значения...

_________________
С уважением, Гараничев Игорь


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 10:56 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Можно ещё сделать примерно вот так:
Code:
TABLES t000.

DATA: g_first TYPE xfeld.

SELECT-OPTIONS go_mtext FOR t000-mtext.

AT SELECTION-SCREEN OUTPUT.
  IF g_first IS INITIAL.
    CLEAR: go_mtext,
           go_mtext[].
    g_first = 'X'.
  ENDIF.

START-OF-SELECTION.
  WRITE go_mtext-low.


Но лучше всё-таки уйти от отчёта и получить полный контроль над логикой программы, если необходимо её менять.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 11:04 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
EGF написал(а):
Можно ещё сделать примерно вот так:
Code:
TABLES t000.

DATA: g_first TYPE xfeld.

SELECT-OPTIONS go_mtext FOR t000-mtext.

AT SELECTION-SCREEN OUTPUT.
  IF g_first IS INITIAL.
    CLEAR: go_mtext,
           go_mtext[].
    g_first = 'X'.
  ENDIF.

START-OF-SELECTION.
  WRITE go_mtext-low.


Так не получится - к моменту выхода из списка (обратно в экран выбора) g_first опять станет пустым.
Думаю, надо Import/Export задействовать

_________________
С уважением, Сергей Королев


Последний раз редактировалось Сергей Королев Пн, янв 29 2007, 11:14, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 11:13 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Так именно этот факт здесь и используется. G_FIRST станет пустым - и поля очистятся. Можно и проверить :)


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 11:21 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Сб, сен 25 2004, 16:30
Сообщения: 1368
Откуда: Москва
Пол: Мужской
ну так тогда они и при первом вызове очистятся. Как я понял, при первом вызове нужно чтобы переметры были заполнены в initialization, а при возврате (т.е. когда initialization запускается второй раз) нужно уже параметры зачищать...

_________________
С уважением, Сергей Королев


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Очистка экрана выбора
СообщениеДобавлено: Пн, янв 29 2007, 11:23 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
Igor Garanichev написал:
Очищаю все параметры и select-options по окончанию работы программы и даже в инициализации. Но на экране параметры остаются. Как быть?

Да вроде не совсем так. Чистит автор поста данные в инициализации.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 11:24 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Вт, сен 12 2006, 12:57
Сообщения: 85
Есть такое событие "at selection-screen output". Вот в нем и очищай.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, янв 29 2007, 11:40 
Старший специалист
Старший специалист

Зарегистрирован:
Пн, окт 24 2005, 15:55
Сообщения: 296
Пол: Мужской
sub-zer0 написал(а):
Есть такое событие "at selection-screen output". Вот в нем и очищай.


Спасибо. Оно. Помогло.

_________________
С уважением, Гараничев Игорь


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, янв 31 2007, 10:42 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
sub-zer0 написал(а):
Есть такое событие "at selection-screen output". Вот в нем и очищай.


Правильней делать это в секции
Initialization - срабатывает только один раз при появлении экрана
at selection-screen output срабатывает при каждом PBO


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

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


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

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


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

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