Текущее время: Чт, июл 17 2025, 11:27

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 4 ] 
Автор Сообщение
 Заголовок сообщения: Message type 'E' - пропадает GUI-status
СообщениеДобавлено: Вт, авг 19 2008, 11:31 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, июл 08 2008, 09:30
Сообщения: 55
Добрый день.

Прошу помочь разрешить такую ситуацию.



Code:
...

START-OF-SELECTION.

...

  CALL FUNCTION 'RH_STRUC_GET'
...

  IF sy-subrc EQ 2.
    MESSAGE 'Орг.единица в плане 1 не существует.' TYPE 'E'.
  ENDIF.

....


Когда это отрабатывает, гуистатус исчезает и пользователь не знает чего ему делать. Собственно, я свой GUI-status и не присваивал, но думал что будет от селекшен скрина. Вопрос - как, сохраняя логику (выводя ошибку при помощи MESSAGE), вернуться на селекшен скрин?


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

Зарегистрирован:
Пн, фев 11 2008, 11:54
Сообщения: 359
Откуда: Воронеж
Пол: Мужской
Code:
PARAMETERS: p TYPE werks_d.

START-OF-SELECTION.


  MESSAGE  'Error' TYPE 'S' DISPLAY LIKE 'E'.
  STOP.

END-OF-SELECTION.
Будет сообщение типа S, но на экране будет выглядеть как E. STOP передаст управление оператору выполняющимося после END-OF-SELECTION. Если после него ничего нет, то сразу попадете на селекционный экран

_________________
Hормальные люди делают вещи намного более безумные чем всё, что делают сумасшедшие (c) С.Лем


Последний раз редактировалось XXX_:) Вт, авг 19 2008, 12:18, всего редактировалось 2 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Message type 'E' - пропадает GUI-status
СообщениеДобавлено: Вт, авг 19 2008, 12:16 
Гуру-эксперт
Гуру-эксперт

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

Прошу помочь разрешить такую ситуацию.



Code:
...

START-OF-SELECTION.

...

  CALL FUNCTION 'RH_STRUC_GET'
...

  IF sy-subrc EQ 2.
    MESSAGE 'Орг.единица в плане 1 не существует.' TYPE 'E'.
  ENDIF.

....


Когда это отрабатывает, гуистатус исчезает и пользователь не знает чего ему делать. Собственно, я свой GUI-status и не присваивал, но думал что будет от селекшен скрина. Вопрос - как, сохраняя логику (выводя ошибку при помощи MESSAGE), вернуться на селекшен скрин?

Messages Without Screens - не используйте тип 'E', испольуйте например 'S' с дополнением DISPLAY LIKE 'E' и завершайте выполнение программы через EXIT\RETURN

_________________
"После" - не значит "вследствие"


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пт, авг 22 2008, 12:22 
Младший специалист
Младший специалист

Зарегистрирован:
Вт, июл 08 2008, 09:30
Сообщения: 55
Спасибо ответившим, все верно!

я знал про дополнение DISPLAY LIKE ... , но почему то не догадался про STOP/EXIT/RETURN , вместо этого пытался вызвать экран, вроде CALL SELECTION-SCREEN 1000 и результаты были конечно ужасающие =)


P.S. Правда, пришлось поставить флаг о том что выполнение прервано, и потом флаг анализировать, чтобы потом не выводить WRITE "Данных не найдено" (этим райтом мы уходим с селекшен-скрина)

Code:
START-OF-SELECTION.

....

IF sy-subrc NE 0.
    MESSAGE 'Орг.единица в плане 1 не существует.'
      TYPE 'S' DISPLAY LIKE 'E'.
    gv_stay_at_sel_screen = 'X'.
    EXIT.
  ENDIF.

....

END-OF-SELECTION.
  CHECK gv_stay_at_sel_screen IS INITIAL.
...

Как-то не очень красиво получилось, но ведь в формах же, кажется, нельзя использовать исключения?


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

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


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

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


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

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