Текущее время: Сб, июл 19 2025, 23:38

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


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

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


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

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