Текущее время: Пт, июл 25 2025, 16:18

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
 Заголовок сообщения: Не могу вернуться на открытую вкладку
СообщениеДобавлено: Ср, янв 16 2013, 13:35 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
проблемма такая:у меня несколько вкладок на сел.экране,после выполнения пункта меню программы из любой из вкладок,хотелось бы вернуться на нее же, а не получается.
На всякий случай высылаю код, может поможет лучше объяснить почему не возвращаюсь.Вернее я вижу,что захожу в инициализацию и назначаю панель 1.
Но как быть,ведь для начала я должна назначить панель


selection-screen: begin of tabbed block mytab for 10 lines,
tab (30) button1 user-command push1,
tab (30) button2 user-command push2,
tab (30) button3 user-command push3,
tab (30) button4 user-command push4,
tab (30) button5 user-command push5,
end of block mytab.

selection-screen end of block 1.

initialization.
* Название панелей
button1 = 'Прием товара'.
button2 = 'Отбор товара'.
button3 = 'Возврат поставщику'.
button4 = 'Реестр отгрузок'.
button5 = 'Печать Ярлыка на паллету'.
mytab-prog = sy-repid.

mytab-dynnr = 100.
mytab-activetab = 'PUSH1'.

at selection-screen.
case sy-dynnr.
when 1000.
case sy-ucomm.
when 'PUSH1'.
mytab-dynnr = 100.
when 'PUSH2'.
mytab-dynnr = 200.
when 'PUSH3'.
mytab-dynnr = 300.
when 'PUSH4'.
mytab-dynnr = 400.
when 'PUSH5'.
mytab-dynnr = 500.
when others.
...
endcase.
...
endcase.

************************************************************

start-of-selection.
select * from ltak into corresponding fields of table zakaz where tanum in tanum and bdatu in bdatu and lgnum = lgnum.

case mytab-activetab. "выбранная панель
when 'PUSH1'.
perform ob_push1. " Прием товара
when 'PUSH2'.
perform ob_push2. "Отпуск товара
when 'PUSH3'.
perform ob_push3. " Возврат поставщику
when 'PUSH4'.
perform ob_push4. "Реєстр відвантажень
when 'PUSH5'.
perform ob_push5. "Ярлик на паллету
endcase.




**********************************************************************
form ob_push1. " Прием товара

case 'X'.
when r1.
loop at zakaz.
submit zwms_print with r1 = 'X' with r5 = ' ' with tdimmed = tdimmed with no_dial = no_dial with tanum = zakaz-tanum and return.
endloop.

when r2.
loop at zakaz.
submit zwms_print with r2 = 'X' with r5 = ' ' with tdimmed = tdimmed with no_dial = no_dial with tanum = zakaz-tanum and return.
endloop.
when r3.
submit zwms_perem with tanum in tanum with tdimmed = tdimmed with no_dial = no_dial and return.
when r4. "пакетная печать
perform paket_push1.
endcase.

endform.
form ob_push2. "Отпуск товара
case 'X'.
when q1.
loop at zakaz.
submit zwms_print with r3 = 'X' with r5 = ' ' with tdimmed = tdimmed with no_dial = no_dial with tanum = zakaz-tanum and return.
endloop.
when q2.
loop at zakaz.
submit zwms_print with r4 = 'X' with r5 = ' ' with tdimmed = tdimmed with no_dial = no_dial with tanum = zakaz-tanum and return.
endloop.
when q3.
loop at zakaz.
submit zwms_yarlik2 with tdimmed = tdimmed with no_dial = no_dial with tanum = zakaz-tanum and return.
endloop.
when q4.
submit zwms_perem with tanum in tanum with tdimmed = tdimmed with no_dial = no_dial and return.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Не могу вернуться на открытую вкладку
СообщениеДобавлено: Ср, янв 16 2013, 15:19 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, сен 09 2004, 07:32
Сообщения: 777
Откуда: Москва
Пол: Мужской
Вариант 1:
Использовать SET/GET MEMORY ID

Вариант 2 (мне он нравится, поскольку позволяет красиво решать задачи обновления экранов отчета с учетом изменения параметров/данных, проведенных этим же отчетом):
параметр <Имя_Закладки> (установить перед перезапуском, поле invisible) + процедура перезапуска отчета (см. ниже)

Code:
FORM report_restart USING value(ix_via_sscr).  " = 'X' == запуск через экран параметров

  DATA: BEGIN OF sel_tab OCCURS 0.
          INCLUDE STRUCTURE rsparams.
  DATA: END OF sel_tab.

  DATA: ls_trange TYPE rsds_trange,
        texpr     TYPE rsds_texpr,
        my_repid  TYPE sy-repid.

  my_repid = sy-repid.
  CALL FUNCTION 'RS_REFRESH_FROM_SELECTOPTIONS'
    EXPORTING
      curr_report     = my_repid
    TABLES
      selection_table = sel_tab
    EXCEPTIONS
      OTHERS          = 1.
  IF sy-subrc <> 0.
    EXIT.
  ENDIF.

  CALL FUNCTION 'RS_REFRESH_FROM_DYNAMICAL_SEL'
    EXPORTING
      curr_report        = my_repid
      mode_write_or_move = 'M'
    IMPORTING
      p_trange           = ls_trange
    EXCEPTIONS
      not_found          = 1
      wrong_type         = 2
      OTHERS             = 3.
  IF sy-subrc > 1.
    MESSAGE ID     sy-msgid
            TYPE   sy-msgty
            NUMBER sy-msgno
            WITH   sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

  ELSE.
    CALL FUNCTION 'FREE_SELECTIONS_RANGE_2_EX'
      EXPORTING
        field_ranges = ls_trange
      IMPORTING
        expressions  = texpr.

    IF ix_via_sscr IS INITIAL.
      SUBMIT (my_repid) WITH SELECTION-TABLE sel_tab
                        WITH FREE SELECTIONS texpr.      "#EC CI_SUBMIT
    ELSE.
*     это делаем, если хотим иметь значение параметра, устанавливаемого в INITIALIZATION
      DELETE sel_tab WHERE selname = '<SelScrParamName>'.   

      SUBMIT (my_repid) VIA SELECTION-SCREEN
                        WITH SELECTION-TABLE sel_tab
                        WITH FREE SELECTIONS texpr.      "#EC CI_SUBMIT
    ENDIF.

  ENDIF.

ENDFORM.                    " REPORT_RESTART

_________________
"Прежде чем сделать что-то, подумай, к чему это может привести..."


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Не могу вернуться на открытую вкладку
СообщениеДобавлено: Ср, янв 16 2013, 16:29 
Старший специалист
Старший специалист

Зарегистрирован:
Чт, июл 12 2007, 12:18
Сообщения: 430
Я тоже рещила через память,просто больше ничего не отработало
в initialization
import mytab from memory id 'PUSH'.
if mytab-activetab is INITIAL.
mytab-dynnr = 100.
mytab-activetab = 'PUSH1'.
endif.
form ob_push1. " Прием товара
А после обработки export mytab to memory id 'PUSH'.

case 'X'.
when r1.
loop at zakaz.
submit zwms_print with r1 = 'X' with r5 = ' ' with tdimmed = tdimmed with no_dial = no_dial with tanum = zakaz-tanum and return.
endloop.

when r2.
loop at zakaz.
submit zwms_print with r2 = 'X' with r5 = ' ' with tdimmed = tdimmed with no_dial = no_dial with tanum = zakaz-tanum and return.
endloop.
when r3.
submit zwms_perem with tanum in tanum with tdimmed = tdimmed with no_dial = no_dial and return.
when r4. "пакетная печать
perform paket_push1.
endcase.
export mytab to memory id 'PUSH'.
endform.


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

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


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

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


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

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