Текущее время: Пн, июл 21 2025, 06:48

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 19 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Автоматический refresh отчёта на экране, как сделать?
СообщениеДобавлено: Ср, окт 26 2005, 09:26 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, авг 18 2004, 18:34
Сообщения: 101
Здрасте.
Умею прилеплять в гуистаус кнопку и, по нажатию, перевыводить отчёт. Как бы сделать, чтобы он сам перевыводился через определённый интервал времени?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 26 2005, 09:47 
Гость
Логика экрана:

Code:
PROCESS BEFORE OUTPUT.
MODULE STATUS_0200.
*
PROCESS AFTER INPUT.
MODULE USER_COMMAND_0200.


Текст программы:

Code:
*----------------------------------------------------------------------*
*  MODULE STATUS_0200 OUTPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE STATUS_0200 OUTPUT.
  SET PF-STATUS 'Z1'.
  SET TITLEBAR '1'.
  PERFORM F_CALL_RFC_WAIT.
ENDMODULE.                 " STATUS_0200  OUTPUT


*----------------------------------------------------------------------*
*  MODULE USER_COMMAND_0200 INPUT
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
MODULE USER_COMMAND_0200 INPUT.

  IF SY-UCOMM = 'STOP'.
    LEAVE PROGRAM.
  ENDIF.
  IF SY-UCOMM = '&NTE'.
    PERFORM  READ_DATA1.
    PERFORM F_CALL_RFC_WAIT.
  ENDIF.

ENDMODULE.                 " USER_COMMAND_0200  INPUT



*&---------------------------------------------------------------------*
*&      Form  READ_DATA1
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM READ_DATA1.
*  Здесь идет заполнение переменных,
*  выводимых на экран.
ENDFORM.                                                    "read_data1


*&---------------------------------------------------------------------*
*&      Form  F_CALL_RFC_WAIT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM F_CALL_RFC_WAIT.

  CALL FUNCTION 'RFC_PING_AND_WAIT' STARTING NEW TASK '001'
    PERFORMING F_TASK_END ON END OF TASK
    EXPORTING
      SECONDS               = 2        " Интервал времени, в секундах
      BUSY_WAITING          = SPACE
    EXCEPTIONS
      RESOURCE_FAILURE      = 1
      COMMUNICATION_FAILURE = 2
      SYSTEM_FAILURE        = 3
      OTHERS                = 4.

ENDFORM.                               " F_CALL_RFC_WAIT



*&---------------------------------------------------------------------*
*&      Form  F_TASK_END
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*      -->U_TASKNAME text
*----------------------------------------------------------------------*
FORM F_TASK_END USING U_TASKNAME.
  DATA LV_MSSG(80).
  RECEIVE RESULTS FROM FUNCTION 'RFC_PING_AND_WAIT'
    EXCEPTIONS
      RESOURCE_FAILURE      = 1
      COMMUNICATION_FAILURE = 2  MESSAGE LV_MSSG
      SYSTEM_FAILURE        = 3  MESSAGE LV_MSSG
      OTHERS                = 4.

  CHECK SY-SUBRC EQ 0.

  SET USER-COMMAND '&NTE'.
ENDFORM.                    "F_TASK_END


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Ср, окт 26 2005, 17:43 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, авг 18 2004, 18:34
Сообщения: 101
Спасибо, то что нужно.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 27 2005, 06:14 
Директор
Директор
Аватара пользователя

Зарегистрирован:
Чт, авг 26 2004, 05:04
Сообщения: 922
Откуда: Челябинск
Пол: Мужской
Насколько я знаю SET USER-COMMAND работает только в списках.
Code:
SET USER-COMMAND f.

Effect
This statement only works with lists.



В экране, по крайней мере с ALV_GRID у меня не получилось
http://sapboard.ru/forum/viewtopic.php?t=9323

В списке пример
http://www.sap-basis-abap.com/abap/auto-refresh-alv-list.htm

_________________
Все будет хорошо...
http://sap-blog.ru/


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 27 2005, 09:49 
Гость
С алв, честно говоря, не пробовал.
Но со своим рисованным экраном - получается всё хорошо.

Суть того примера - в выполнении FORM F_TASK_END
вышеописанным способом.

Подозреваю, что это возможно сделать и в алв,
но не через set user-command, а например
через соотв. фм ... надо пробовать


Принять этот ответ
Вернуться к началу
  
 
 Заголовок сообщения:
СообщениеДобавлено: Чт, окт 27 2005, 10:08 
Почетный гуру
Почетный гуру

Зарегистрирован:
Вт, авг 17 2004, 10:45
Сообщения: 550
Откуда: SAP_BASIS 640
В ALV Grid в виде control-элемента, похоже, проблема во взаимодействии с функциональными модулями, вызываемыми асинхронно в новой сессии (STARTING NEW TASK). Если у Вас получится её решить - поделитесь, пожалуйста.


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

Зарегистрирован:
Чт, апр 13 2006, 12:32
Сообщения: 1503
Откуда: Питер
В ALV grid и других приложениях (Excel, Word,...), размещенных в Container, сделать автоматический refresh через асинхронный вызов функциональномо модуля, используя
STARTING NEW TASK
PERFORMING f_callback ON END OF TASK
скорей всего не удастся.

В callback подпрограмме возможно использование только функции, не влекущие за собой RFC вызовы.
Любое же обращение к объекту в контейнере (alv, excel) из calback подпрограммы возможно только до момента вызова flush.
Как только делается flush, что по сути вызывает вложенный RFC вызов из callback подпограммы, система подвисает.

В качестве наглядного примера, если в callback подпрограмме
вызвать 'SAPGUI_SET_FUNCTIONCODE', система подвиснет, хотя будет реагировать на нажатие кнопок меню.

Если посмотреть в SAPGUI_SET_FUNCTIONCODE, она представляет из себя вызов трех функций.
call function:
'CONTROL_INIT',
'CONTROL_SETFUNCTIONCODE' exporting fcode = 'нужный код',
'CONTROL_FLUSH'.

Достаточно убрать 'CONTROL_FLUSH', и программа нормально выйдет
callback, но событие с функциональным кодом не отработает, пока не будет вызван flush.
Теоретически flush можно сделать из основной программы, тогда события отработают, но это только теоретически, практической пользы от этого я не вижу.

Вызов упользовательского события через SET USER-COMMAND 'xxx' отрабатывает только в листе, но по сути это простая команда. Согласно документации, она немедленно вызывает обносление листа и не использует никаких rfc вызовов.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 02 2006, 08:56 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, июл 14 2005, 13:55
Сообщения: 181
Откуда: Moscow
Господа, прошу прощения, что немного не в тему, но учитывая, что сейчас 2006 год на дворе не имеет ли смысл в случае разработки новых отчетов принять на вооружение технологию. которую активно продвигает политика компании SAP, а именно SAP WebDynpro.
Там есть объект TimedTrigger, который и призван решать обсуждаемую задачу. Я лично пробовал - очень удобно! Если речь о старом ABAP отчете , которые ленно переписывать на WebDynpro, то конечно придется изголяться... :roll:

_________________
SAP is a diagnosis...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 02 2006, 10:36 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
Я уверен что все присутствующие с удовольствием перешли бы, но что делать если система не erp2005 (NW2004s)? Насколько я понял в более ранних версиях его нет и не будет.


Последний раз редактировалось Boger Пн, окт 02 2006, 10:45, всего редактировалось 2 раз(а).

Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 02 2006, 10:40 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, июл 14 2005, 13:55
Сообщения: 181
Откуда: Moscow
Boger написал(а):
Я уверен что все присутствующие с удовольствием перешли бы, но что делать если система не erp2005 (NW2004s)? Насколько я понял в более ранних версиях его нет и не будет.

Да, совершенно верное замечание!Все прелести WbeDynpro начинают жить с базиса 700.

_________________
SAP is a diagnosis...


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 02 2006, 10:44 
Специалист
Специалист

Зарегистрирован:
Вс, мар 13 2005, 13:59
Сообщения: 201
Откуда: Moscau
Кстати, а где пробовали? На реальном проекте или в собственной песочнице?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: Пн, окт 02 2006, 10:47 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Чт, июл 14 2005, 13:55
Сообщения: 181
Откуда: Moscow
Boger написал(а):
Кстати, а где пробовали? На реальном проекте или в собственной песочнице?

На более чем реальном проекте. :D Единственно, что проект внутренний.

_________________
SAP is a diagnosis...


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

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
unique_saper написал(а):
Да, совершенно верное замечание!Все прелести WbeDynpro начинают жить с базиса 700.

"Страшно далеки они от народа" (с)
:wink:

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


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

Зарегистрирован:
Чт, июл 14 2005, 13:55
Сообщения: 181
Откуда: Moscow
Удав написал(а):
unique_saper написал(а):
Да, совершенно верное замечание!Все прелести WbeDynpro начинают жить с базиса 700.

"Страшно далеки они от народа" (с)
:wink:

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

_________________
SAP is a diagnosis...


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

Зарегистрирован:
Чт, окт 06 2005, 16:44
Сообщения: 3080
Откуда: Москва
unique_saper написал(а):
Ну ничего.. скоро , очень скоро по клиентам прокатится волна апгрейдов.. иэто станет народным достоянием

Апгрейд - это отдельный проект со своими рисками, на которые пойдет далеко не каждая организация :wink:

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


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

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


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

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


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

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