Sapforum.Biz

Учет и отчетность => Контроллинг (CO) => Тема начата: themax от Июль 14, 2017, 03:31:30 pm

Название: Дополнительные поля транзакции ksb1
Отправлено: themax от Июль 14, 2017, 03:31:30 pm
Доброго времени суток Всем!

Возникла необходимость добавить парочку полей в отчёт транзакции ksb1. Прошерстив Интернет наткнулся на кое какую полезную инфу, где описывается добавление поля с помощью user-exit COOMEP01, в общем добавил я поле из таблички bseg. Это финансовый документ, который создаётся в FI и привязан в ММ-овской счёт фактуре. Но мне мало самого номера дока, мне необходимо чтобы при даблклике на нём открывалась транзакция FB03 и открывался этот FI документ. Может кто делал такое?
Название: Re: Дополнительные поля транзакции ksb1
Отправлено: Uukrul от Июль 15, 2017, 03:58:27 pm
You are not allowed to view links. Register or Login
FI и привязан в ММ-овской счёт фактуре. Но мне мало самого номера дока, мне необходимо чтобы при даблклике на нём открывалась транзакция FB03 и открывался этот FI документ. Может кто делал такое?
Можно используя неявные энхансменты. По факту при двойном клике на поле отчета программа переходит в модуль LKAEPFLI, там есть подпрограмма FORM alv_user_command, вот в нее можно в самом начале воткнуться и проверить что клик произошел на вашем поле, там кстати в начале они сами определяют поле, на котором кликнул пользователь.
Код: You are not allowed to view links. Register or Login
  IF gd-use_alv_grid = 'X' AND ( gd-head_i_table IS INITIAL ).
    rs_selfield-tabname = gd-pos_i_table.
    SPLIT rs_selfield-sel_tab_field AT '-' INTO dummy ls_selfield.
    CONCATENATE gd-pos_i_table '-' ls_selfield
                  INTO rs_selfield-sel_tab_field.
  ENDIF.
Так вот если поле ваше, делаете переход на FB03, и дальше выход их обработки. Если поле не ваше, то пусть отрабатывает стандартный код, так как вклинится можно только в самом начале подпрограммы.
Название: Re: Дополнительные поля транзакции ksb1
Отправлено: themax от Июль 24, 2017, 07:59:26 am
Спасибо за советы Uukrul, в общем сделал это и по Hot spot вроде работает.В user-exit я обозначил это поле как:
Код: You are not allowed to view links. Register or Login
loop at IT_FIELDCAT into ls_fieldcat
  where fieldname = 'ZZZBLNR'.
  ls_fieldcat-no_out = ''.
  ls_fieldcat-hotspot = 'X'.
  modify it_fieldcat from ls_fieldcat.

endloop.
Далее в группе функций KEAP в include RKAWRTTP вставил:
Код: You are not allowed to view links. Register or Login
ENHANCEMENT 1  ZMS_MM_CO_FI.    "active version
data: zzgv_selfield type kkblo_selfield.
ENDENHANCEMENT.
Потом в include LKAEPFLI добавил
Код: You are not allowed to view links. Register or Login
ENHANCEMENT 2  ZMS_MM_CO_FI.    "active version
zzgv_selfield = vs_selfield.          "дополнительная структура обрабатывающее поле 52-го док-та
ENDENHANCEMENT.

ENHANCEMENT 3  ZMS_MM_CO_FI.    "active version
if zzgv_selfield-fieldname = 'ZZZBLNR'.
  ASSIGN COMPONENT 'ZZZBLNR' OF STRUCTURE t_header TO <lfs>.
  if <lfs> is ASSIGNED.
    check <lfs> is not initial.
  cs_key-refbn     = <lfs>.
  cs_key-belnr     = <lfs>.
  cs_key-refbt     = 'F'.
  endif.
endif.
ENDENHANCEMENT.
Конечно не дабл клик, но всё же. Добавленное поле открывается в FB03. Ну вдруг кому нибудь понадобится.
Название: Re: Дополнительные поля транзакции ksb1
Отправлено: Uukrul от Июль 24, 2017, 10:36:23 pm
А в этой подпрограмме FORM alv_user_command. Не вышло добавить реакцию на даблклик?
Название: Re: Дополнительные поля транзакции ksb1
Отправлено: themax от Август 17, 2017, 02:33:05 pm
You are not allowed to view links. Register or Login
А в этой подпрограмме FORM alv_user_command. Не вышло добавить реакцию на даблклик?
Да я если честно дальше не стал копаться. Открывается Hot spot-om и ладно.