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

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


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

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


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

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