Текущее время: Сб, июл 26 2025, 04:44

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


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

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


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

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