+ Sapforum.Biz » Инструменты » ABAP - Инструментальные средстваТема:
|- Работы с 150-ым экраном в user-exit




Автор Тема: Работы с 150-ым экраном в user-exit  (Прочитано 531 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 212
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Работы с 150-ым экраном в user-exit
« : Сентябрь 22, 2017, 02:36:49 pm »
Доброго времени суток всем.

В диалоговом программировании я не силен, поэтому заранее извиняюсь за возможно неумный вопрос. Есть расширение ITOB0001 PM: Customer-Include-Subscreen для осн. данных техн.объектов, там есть экран 150, на который можно добавить свои поля и вывести их в основной записи единицы оборудования. Так вот, одно поле я вывел на экран в виде справочника, ну т.е. создал z-овскую табличку и средство поиска к этому полю на экране 150. В z табличке справочник с ключевым полем цифрового значения и поле текстового значения. На экран 150 я вывожу ключевое поле из справочника, а рядом добавил поле типа output, которое бы мне выводило из справочника текстовое наименование связываясь по ключевому полю. С ключевым полем всё нормально, ну т.е. оно изменяется и добавляется и сохраняется, а вот рядом добавленное поле с атрибутом только output стоит пустое. Я так понимаю надо обрабатывать PBO и PAI, но не понятно можно ли делать это как со всеми z-овскими экранами или в user-exit это надо делать как то по другому? Вот код, он собственно не большой да и не факт, что правильный. Может кто делал и подскажет?
Код: You are not allowed to view links. Register or Login
process before output.
module status_1000.
module status_1000 output.
  if sy-tcode = 'IE03'.
    loop at screen.
      screen-input = '0'.
      modify screen.
    endloop.
  endif.
endmodule.
MODULE USER_COMMAND_0100.
module USER_COMMAND_0100 output.

select single * from EQUI where ZZITO_LOC = EQUI-ZZITO_LOC.

endmodule.
process after input .
chain.
    field: EQUI-ZZITO_LOC.

MODULE USER_COMMAND_1000 on chain-request.
module USER_COMMAND_1000 input.
  select single * from ZIH08 where znum = EQUI-ZZITO_LOC.

endmodule.
   endchain

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 644
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Работы с 150-ым экраном в user-exit
« Ответ #1 : Сентябрь 23, 2017, 06:03:09 pm »
Сделайте в секции  PBO еще один модуль и там по введенному значению прочитайте текст описания, оно и выведется на экране. Там можно делать все, что и в обычных экранах. Вообще-то в экзитах только коммиты вызывать не рекомендуется. А так остальное обрабатывайте себе на здоровье.

Оффлайн themax

  • Newbie
  • *
  • Сообщений: 212
  • Reputation Power: 0
  • themax has no influence.
  • YearsYearsYearsYearsYearsYears
Re: Работы с 150-ым экраном в user-exit
« Ответ #2 : Сентябрь 26, 2017, 11:23:16 am »
В общем вроде бы разобрался. Получилось что то вроде
Код: You are not allowed to view links. Register or Login
process before output.

    module status_1000.
if sy-tcode = 'IE03'.
    loop at screen.
      screen-input = '0'.
      modify screen.
    endloop.
  endif.
MODULE USER_COMMAND_0100.
select single * from zie01_loc where znum = equi-zzito_loc.
endmodule.
process after input .
chain.
    field: EQUI-ZZITO_LOC.

 MODULE USER_COMMAND_1000 on chain-request.
select single * from zie01_loc where znum = equi-zzito_loc.
endmodule.
Спасибо за совет.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 644
  • Reputation Power: 2
  • Uukrul barely matters.Uukrul barely matters.
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
Re: Работы с 150-ым экраном в user-exit
« Ответ #3 : Сентябрь 26, 2017, 12:39:56 pm »
You are not allowed to view links. Register or Login
Получилось что то вроде
Получилось очень хреново, так как судя по всему нет вообще понимания как это работает, иначе трудно объяснить появления MODULE USER_COMMAND_0100, в секции process before output. Может все таки вы там абапера наймете, ну я просто ужасаюсь всему остальному что сделано в вашей системе...