Sapforum.Biz

Инструменты => ABAP - Инструментальные средства => Тема начата: themax от Сентябрь 22, 2017, 02:36:49 pm

Название: Работы с 150-ым экраном в user-exit
Отправлено: themax от Сентябрь 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
Название: Re: Работы с 150-ым экраном в user-exit
Отправлено: Uukrul от Сентябрь 23, 2017, 06:03:09 pm
Сделайте в секции  PBO еще один модуль и там по введенному значению прочитайте текст описания, оно и выведется на экране. Там можно делать все, что и в обычных экранах. Вообще-то в экзитах только коммиты вызывать не рекомендуется. А так остальное обрабатывайте себе на здоровье.
Название: Re: Работы с 150-ым экраном в user-exit
Отправлено: themax от Сентябрь 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.
Спасибо за совет.
Название: Re: Работы с 150-ым экраном в user-exit
Отправлено: Uukrul от Сентябрь 26, 2017, 12:39:56 pm
You are not allowed to view links. Register or Login
Получилось что то вроде
Получилось очень хреново, так как судя по всему нет вообще понимания как это работает, иначе трудно объяснить появления MODULE USER_COMMAND_0100, в секции process before output. Может все таки вы там абапера наймете, ну я просто ужасаюсь всему остальному что сделано в вашей системе...