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

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
 Заголовок сообщения: Новый подэкран в транзакциях mm01/mm02/mm03
СообщениеДобавлено: Вт, авг 02 2011, 08:44 
Начинающий
Начинающий

Зарегистрирован:
Пн, янв 28 2008, 12:04
Сообщения: 24
Откуда: Санкт-Петербург
Добрый день!
Может кто сталкивался с подобной проблемой...
Создаю новый подэкран для вкладки ОбщДаннЗавода/Складирование 1. На этот экран помещаю экранную таблицу. В нее вводятся данные из Z* таблицы. При нажатии кнопок перемещения вверх/вниз происходит выход из обработки ( как будто срабатывает команда "Назад" ). Что можно сделать, чтобы при перемещении по таблице оставаться на этом же экране?


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый подэкран в транзакциях mm01/mm02/mm03
СообщениеДобавлено: Вт, авг 02 2011, 10:36 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июл 15 2009, 05:55
Сообщения: 174
Откуда: Мегион - > СПб
Пол: Мужской
NastyaL написал(а):
...На этот экран помещаю экранную таблицу...


Выложите для начала PBO/PAI логику экрана и желательно сами модули.

_________________
Ничто так не заразительно, как смех начальника...


Последний раз редактировалось LinevskiySV Ср, авг 03 2011, 05:46, всего редактировалось 1 раз.

Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Новый подэкран в транзакциях mm01/mm02/mm03
СообщениеДобавлено: Вт, авг 02 2011, 10:55 
Начинающий
Начинающий

Зарегистрирован:
Пн, янв 28 2008, 12:04
Сообщения: 24
Откуда: Санкт-Петербург
Кроме таблицы у меня на экране еще 2 кнопки - удалить и добавить данные в таблицу. При нажатии кнопок вверх/вниз sy-ucomm равен коду предыдущей операции

Code:
PROCESS BEFORE OUTPUT.
  MODULE zstorage_change_tc_attr.
  LOOP AT   gt_storage
       WITH CONTROL zstorage
       CURSOR zstorage-current_line.
    MODULE zstorage_change_field_attr.
  ENDLOOP.

PROCESS AFTER INPUT.
MODULE store_ucomm.
  LOOP AT gt_storage.
    CHAIN.
      FIELD gt_storage-lgpbe.
      FIELD gt_storage-labst.
      MODULE zstorage_modify ON CHAIN-REQUEST.
    ENDCHAIN.
    FIELD gt_storage-ch
      MODULE zstorage_mark ON REQUEST.
  ENDLOOP.

  MODULE process_button.
  MODULE clear_ucomm.

Code:
MODULE zstorage_change_tc_attr OUTPUT.
    SELECT * FROM zpp_tb_storage INTO CORRESPONDING FIELDS OF TABLE gt_storage
                                        WHERE matnr = rmmg1-matnr AND
                                              werks = rmmg1-werks AND
                                              lgort = rmmg1-lgort.
  DESCRIBE TABLE gt_storage LINES zstorage-lines.
ENDMODULE.   
MODULE store_ucomm INPUT.
  lv_ucomm = sy-ucomm.
ENDMODULE.                   

MODULE clear_ucomm INPUT.
  CLEAR lv_ucomm.
ENDMODULE.                 

MODULE process_button INPUT.
  CASE  lv_ucomm.
    WHEN 'ZST_INS'.
      PERFORM storage_add.
    WHEN 'ZST_DEL'.
      PERFORM storage_del.
    WHEN OTHERS.
  ENDCASE.
ENDMODULE.                 

FORM storage_add.
  CLEAR st_storage.
  APPEND st_storage TO  gt_storage.
  zstorage-lines = zstorage-lines + 1.
ENDFORM.   


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый подэкран в транзакциях mm01/mm02/mm03
СообщениеДобавлено: Вт, авг 02 2011, 12:55 
Младший специалист
Младший специалист
Аватара пользователя

Зарегистрирован:
Чт, июл 28 2011, 20:21
Сообщения: 88
Откуда: Кибертрон
Пол: Мужской
Не очень я уже помню детали, но делал я это так:
1) Добавляем такие инклюды в топ соей программы, в которой сделан сабскрин:
Code:
INCLUDE MMMGTRBB.
INCLUDE MMMGBBAU.


2) В PBO своего сабскрина первым делом вызываем такую последовательность:
Code:
  MODULE INIT_SUB.
  MODULE GET_DATEN_SUB.
  MODULE FELDAUSWAHL.
  MODULE SONDERFAUS.
  MODULE SONFAUSW_IN_FGRUPPEN.
  MODULE FELDHISTORIE.                         "Aenderungsdienst
  MODULE BILDSTATUS.
  MODULE REFDATEN_VORSCHLAGEN.
  MODULE SET_DATEN_SUB.


3) в PAI своего сабскрина (после обработки всех своих команд) вызываем так:
Code:
      CALL FUNCTION 'MAIN_PARAMETER_SET_ZUS_SUB'
        EXPORTING
          WRMMG2            = RMMG2
          WRMMZU            = RMMZU
          RMMG1_SPRAS       = RMMG1-SPRAS
          BILDFLAG          = 'X'
          WRMMW3            = RMMW3
          WRMMW1_BEZ        = RMMW1_BEZ
          WRMMG1            = RMMG1
          .

Это отменяет обработку в основной программе, что не вызовет выхода из обработки сабскрина.
Что там в этих структурах - не могу сказать - забыл.

_________________
Порхаю как пчела, жалю как бабочка.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Новый подэкран в транзакциях mm01/mm02/mm03
СообщениеДобавлено: Вт, авг 02 2011, 13:45 
Начинающий
Начинающий

Зарегистрирован:
Пн, янв 28 2008, 12:04
Сообщения: 24
Откуда: Санкт-Петербург
Спасибо огромное!!!
Правда осталась еще одна проблема... При нажатии кнопок вверх/вниз sy-ucomm так и остается равным коду предыдущей операции. Т.е. если я строку в таблицу добавляю, то при нажатии вниз добавляется еще одна строка.


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Новый подэкран в транзакциях mm01/mm02/mm03
СообщениеДобавлено: Ср, авг 03 2011, 05:16 
Специалист
Специалист
Аватара пользователя

Зарегистрирован:
Ср, июл 15 2009, 05:55
Сообщения: 174
Откуда: Мегион - > СПб
Пол: Мужской
NastyaL написал(а):
При нажатии кнопок вверх/вниз sy-ucomm так и остается равным коду предыдущей операции. Т.е. если я строку в таблицу добавляю, то при нажатии вниз добавляется еще одна строка.


Лучше всего при работе с собственными экранами для хранения кода операции использовать в Списке атрибутов запись с типом элемента ОК. Внесите имя вашей переменной lv_ucomm, которое вы используйте, в пустое поле имени. И тогда sy-ucomm в программе использовать не надо и соответственно чистить его.

Этот модуль будет лишним:
Code:
MODULE store_ucomm INPUT.
  lv_ucomm = sy-ucomm.
ENDMODULE.                   


_________________
Ничто так не заразительно, как смех начальника...


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Новый подэкран в транзакциях mm01/mm02/mm03
СообщениеДобавлено: Ср, авг 03 2011, 10:53 
Начинающий
Начинающий

Зарегистрирован:
Пн, янв 28 2008, 12:04
Сообщения: 24
Откуда: Санкт-Петербург
Спасибо большое! Вы мне очень помогли :)


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

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


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

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


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

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