Текущее время: Чт, июл 24 2025, 01:53

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


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

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


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

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