Текущее время: Пн, июл 28 2025, 04:28

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Обновление экрана принудительно
СообщениеДобавлено: Вт, фев 19 2008, 09:53 
Ассистент
Ассистент

Зарегистрирован:
Пн, янв 22 2007, 15:01
Сообщения: 40
Как можно смоделировать программно ввод клавиши,
чтобы прошло обновление экрана?

Спасибо.


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

Зарегистрирован:
Ср, ноя 23 2005, 13:37
Сообщения: 1805
Откуда: ECC 6.0
Пол: Мужской
ф.м. SAPGUI_SET_FUNCTIONCODE


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление экрана принудительно
СообщениеДобавлено: Пн, июн 06 2011, 08:41 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
Добрый День, Коллеги !

Не обновляется экран. Система 4.7, 67 пакет.
Подскажите, те, кто сидит на 4.7, у Вас такие проблемы есть ?

Вот
Code:
*&---------------------------------------------------------------------*
*& Report  ZTEST                                                       *
*&---------------------------------------------------------------------*
REPORT  ztest.
DATA:
  BEGIN OF fs_vbeln,
    vbeln TYPE vbeln_va,
    posnr TYPE posnr_va,
  END OF fs_vbeln,
  t_vbeln LIKE STANDARD TABLE OF fs_vbeln.
*
DATA: lt_tab LIKE ddshretval OCCURS 0 WITH HEADER LINE.
*
PARAMETERS: p1(10).
*
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
*
PARAMETERS: p2 AS CHECKBOX MODIF ID sc1.
*
PARAMETERS: p3 AS CHECKBOX MODIF ID sc2.
*
SELECTION-SCREEN END OF BLOCK b2.
*
AT SELECTION-SCREEN OUTPUT.
*
  LOOP AT SCREEN.
    IF screen-group1 = 'SC1'.
      IF p1 EQ '100000005'.
        screen-active = 1.
      ELSE.
        screen-active = 0.
      ENDIF.
      MODIFY SCREEN.
    ENDIF.
*
    IF screen-group1 = 'SC2'.
      IF p1 EQ '100000047'.
        screen-active = 1.
      ELSE.
        screen-active = 0.
      ENDIF.
      MODIFY SCREEN.
    ENDIF.
  ENDLOOP.
*
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p1.
  SELECT vbeln posnr
    INTO TABLE t_vbeln
    UP TO 20 ROWS
    FROM vbap.
  CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
    EXPORTING
      retfield         = 'VBELN'
      dynpprog         = sy-cprog
      dynpnr           = sy-dynnr
      value_org        = 'S'
      callback_program = sy-cprog
    TABLES
      value_tab        = t_vbeln
      return_tab       = lt_tab
    EXCEPTIONS
      parameter_error  = 1
      no_values_found  = 2.
*
  IF sy-subrc EQ 0.
    LOOP AT lt_tab.
      CLEAR p1.
      p1 = lt_tab-fieldval.
    ENDLOOP.
  ENDIF.
*
  CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление экрана принудительно
СообщениеДобавлено: Пн, июн 06 2011, 09:22 
Старший специалист
Старший специалист

Зарегистрирован:
Вт, ноя 18 2008, 10:40
Сообщения: 342
Откуда: Пермь
Пол: Мужской
ROKO, попробуйте DYNP_VALUES_UPDATE


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление экрана принудительно
СообщениеДобавлено: Пн, июн 06 2011, 10:00 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, авг 04 2006, 20:56
Сообщения: 1006
Откуда: 37 МИКРОРАЙОН
Пол: Мужской
zsap написал:
ROKO, попробуйте DYNP_VALUES_UPDATE

Спасибо, конечно, но DYNP_VALUES_UPDATE обновляет значения полей на экране, а не сам экран. Мне же нужно чтобы при выборе из средства поиска определенного значения появлялся CHECKBOX, без нажатия ENTER'а.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление экрана принудительно
СообщениеДобавлено: Пн, июн 06 2011, 11:38 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Делал, проблем не было.
Code:
    CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
      EXPORT
       FUNCTIONCODE = '/00'
      EXCEPTIONS
        FUNCTION_NOT_SUPPORTED = 1.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление экрана принудительно
СообщениеДобавлено: Пн, июн 06 2011, 11:58 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Besa, и в AT SELECTION SCREEN ON VALUE-REQUEST сработало?

_________________
С уважением,
Удав.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление экрана принудительно
СообщениеДобавлено: Пн, июн 06 2011, 13:22 
Гуру-эксперт
Гуру-эксперт
Аватара пользователя

Зарегистрирован:
Чт, ноя 11 2004, 16:25
Сообщения: 3109
Пол: Мужской
Удав написал(а):
Besa, и в AT SELECTION SCREEN ON VALUE-REQUEST сработало?

Сори, не внимательно смотрел, не работает в этом событии :oops:

2 ROKO, Может быть попробовать через глобальное СП, если других способов не найдется.
http://sapboard.ru/forum/viewtopic.php?f=13&t=68350


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Обновление экрана принудительно
СообщениеДобавлено: Пт, июн 17 2011, 16:04 
Начинающий
Начинающий

Зарегистрирован:
Ср, май 11 2011, 14:08
Сообщения: 3
Для события AT SELECTION SCREEN ON VALUE-REQUEST
делал следующее


DATA: l_tab_dynpfields TYPE dynpread OCCURS 0 WITH HEADER LINE.
DEFINE values_update.
l_tab_dynpfields-fieldname = &1.
l_tab_dynpfields-fieldvalue = &2.
append l_tab_dynpfields.
END-OF-DEFINITION. "dd

values_update: 'P_FILE1' p_file1 , 'P_FILE2' p_file2 ,
"обновляем на экране значения полей DYN_PARTNER_NAME_101 и DYN_IDNUMBER_101
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-repid
dynumb = sy-dynnr
TABLES
dynpfields = l_tab_dynpfields.


PERFORM refresh_screen USING 'BAC'.


FORM refresh_screen USING ok_code.
CALL FUNCTION 'SAPGUI_SET_FUNCTIONCODE'
EXPORTING
functioncode = ok_code
EXCEPTIONS
function_not_supported = 1
OTHERS = 2.
IF sy-subrc = 0.
CALL FUNCTION 'CONTROL_FLUSH'
EXCEPTIONS
cntl_system_error = 1
cntl_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
"message i053 with 'Control Flush Error'(013).
ENDIF.
ENDIF.
ENDFORM. "refresh_screen


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Обновление экрана принудительно
СообщениеДобавлено: Пн, июн 20 2011, 01:33 
Менеджер
Менеджер
Аватара пользователя

Зарегистрирован:
Чт, мар 09 2006, 10:12
Сообщения: 565
Откуда: Волгодонск
Пол: Мужской
И всё же имхо более правильный метод это команда SUPPRESS DIALOG
Собственно она делает именно то что просил автор топика

Единственно она не устанавливает sy-ucomm поэтому чтоб отследить в PAI что действие вызвано именно ей, перед её вызовом надо установить какой нибудь глобальный флажок

_________________
Изображение Попытка не пытка


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

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
Также можно вызвать LEAVE TO SCREEN sy-dynnr. :wink:

_________________
С уважением,
Удав.


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

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


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

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


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

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