Текущее время: Чт, апр 27 2017, 22:34

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Изменение функционала транзакции S_P99_41000062- Ведомость материалов (валюта отчета)
СообщениеДобавлено: Чт, апр 20 2017, 09:21 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 09:43
Сообщения: 432
Откуда: South Kazakhstan
Пол: Мужской
Доброго времени суток уважаемые ММ-щики.

Вопрос такой: отчёт, выдаваемый транзакцией S_P99_41000062, отображается только в валюте, которую выбирает пользователь на селекционном экране, т.е. либо 10-Валюта БЕ, либо 31-Валюта концерна, оценка концерна. Т.е. можно выбрать только одну валюту. Возникла необходимость отображения этого отчёта в обеих валютах, но на селекционном экране можно выбрать только одно из этих условий. Существует ли настройка изменения этой стандартной транзакции? Можно, конечно, z-овский отчёт написать. Но мне стало интересно, можно ли изменить эту стандартную транзакцию?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение функционала транзакции S_P99_41000062- Ведомость материалов (валюта отчета)
СообщениеДобавлено: Пн, апр 24 2017, 08:28 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 09:43
Сообщения: 432
Откуда: South Kazakhstan
Пол: Мужской
В общем, я не стал заморачиваться с энхансментами. Мне попалась под руки другая программа, где сделали вызов одной программы из другой. Я по аналогии попытался сделать такой вызов из z-селекционного экрана стандартной транзакции. Получилось что-то типа:

Код:
submit rkkbmlmat with r_matnr in r_matnr with p_werks = p_werks with p_poper = p_poper
with p_bdatj = p_bdatj with p_curtp = '10 Валюта БЕ'
  exporting list to memory and return.


call function 'LIST_FROM_MEMORY'
  tables
    listobject = listtab
  exceptions
    not_found  = 1
    others     = 2.
if sy-subrc ne 0.
  message id sy-msgid type sy-msgty number sy-msgno
  with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.

call function 'LIST_TO_ASCI'
  tables
    listasci           = ascilistkzt
    listobject         = listtab
  exceptions
    empty_list         = 1
    list_index_invalid = 2
    others             = 3.

После обработки таблички ASCILISTKZT я опять вызываю SUBMIT, но уже с второй валютой, валютой концерна. Возникла одна мелочь, которая мне не совсем понятна. Вроде бы, банальный селект из физической таблички MARA, но почему-то селект проходит безрезультатно.
Код:
*loop at itab.

  select single mtart from mara into (itab-mtart) where matnr = itab-matnr.
  modify itab.
endloop.

Я не могу забрать из таблицы поле "Вид материала", оно, вроде бы, имеется в физической табличке, но почему-то выборка не проходит. В отладчике смотрел поле внутренней таблички, в которой я собираю отчёт, там itab-matnr заполняется, соответственно, условие where должно срабатывать, но оно этого не делает. Вот мне и непонятно: то ли в таблице MARA с этим полем что-то не так и его просто так не забрать оттуда, либо я с абапом что-то не так делаю. Может, кто подскажет?


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение функционала транзакции S_P99_41000062- Ведомость материалов (валюта отчета)
СообщениеДобавлено: Пн, апр 24 2017, 11:00 
Администратор
Администратор
Аватара пользователя

Зарегистрирован:
Пн, авг 16 2004, 22:27
Сообщения: 3921
Откуда: Москва
Пол: Мужской
Переместил в форум по программированию, поскольку тут больше задача девелопера, нежели консультанта.

_________________
С уважением,
Admin
e-mail: admin @ sapforum.ru


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение функционала транзакции S_P99_41000062- Ведомость материалов (валюта отчета)
СообщениеДобавлено: Пн, апр 24 2017, 15:29 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 09:43
Сообщения: 432
Откуда: South Kazakhstan
Пол: Мужской
С выборкой вида материала получилось, я совсем забыл, что номер материала в таблице mara лежит с кучей нулей впереди. Теперь возник ещё вопрос такой. В стандартной программе транзакции отчёт выходит в виде одного настроенного формата, который был установлен по умолчанию и отображается на селекционном экране. Теперь я пытаюсь сделать такой же формат у себя в транзакции, поставить его по умолчанию и передать в стандартную программу транзакции S_P99_41000062 через submit, но выходит как то не удобно, т.е. запускаю программу, заполняю поля на селекционном экране, но отчёт не запускается до тех пока я не выберу формат, при чём отчёт сразу запускается при выборе формата, т.е. без нажатия кнопочки часы и пока я не зайду в окно выбора формата и не выберу его отчёт не запускается. Толи я что то намудрил, толи лыжи не едут, чота не пойму как надо сделать правильно, чтобы отчёт просто запускался бы в формате, который используется и в стандартной программе транзакции S_P99_41000062. бы В общем часть кода, где срабатывает формат такая
Код:
selection-screen skip 2.
select-options: r_matnr for  ckmlhd-matnr.

parameters:
            p_werks like mlkey-werks_ml_productive
                    obligatory
                    memory id wrk.

selection-screen skip 1.
** Periode
selection-screen begin of block parameter with frame title text-101.
parameters: p_poper like cki_doc_ml-sl_periode
                    memory id mlp,
            p_bdatj like ckmlrunplant-gjahr memory id mlj.
selection-screen end of block parameter.

parameters: p_alvdef like disvariant-variant.

" DATA: VARIANT like disvariant-variant.
  select single variant from ltdxd into p_alvdef where report = sy-cprog.
at selection-screen on value-request for p_alvdef.
  gs_alv_variant-report = sy-repid.
  call function 'REUSE_ALV_VARIANT_F4'
    exporting
      is_variant = gs_alv_variant
      i_save     = 'A'
    importing
      es_variant = gs_alv_variant
    exceptions
      not_found  = 2.
  if sy-subrc = 2.
    message id sy-msgid type 'S' number sy-msgno
            with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  else.
    p_alvdef = gs_alv_variant-variant.
  endif.
*
refresh listtab.
refresh listtabusd.
refresh ascilistkzt.
refresh ascilistusd.
submit rkkbmlmat with r_matnr in r_matnr with p_werks = p_werks with p_poper = p_poper
with p_bdatj = p_bdatj with p_curtp = '10 Валюта БЕ' with p_alvdef = p_alvdef
  exporting list to memory and return.



call function 'LIST_FROM_MEMORY'
  tables
    listobject = listtab
  exceptions
    not_found  = 1
    others     = 2.
if sy-subrc ne 0.
  message id sy-msgid type sy-msgty number sy-msgno
  with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
endif.

call function 'LIST_TO_ASCI'
  tables
    listasci           = ascilistkzt
    listobject         = listtab
  exceptions
    empty_list         = 1
    list_index_invalid = 2
    others             = 3.
if sy-subrc <> 0.
  message id sy-msgid type sy-msgty number sy-msgno
  with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

endif.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение функционала транзакции S_P99_41000062- Ведомость материалов (валюта отчета)
СообщениеДобавлено: Пн, апр 24 2017, 16:48 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 02 2010, 09:37
Сообщения: 58
А точно в отчете RKKBMLMAT параметр с вариантом называется p_alvdef? У меня - p_varian.

И писать "10 валюта БЕ", необязательно, достаточно просто "10".


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение функционала транзакции S_P99_41000062- Ведомость материалов (валюта отчета)
СообщениеДобавлено: Пн, апр 24 2017, 17:08 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 09:43
Сообщения: 432
Откуда: South Kazakhstan
Пол: Мужской
baboon писал(а):
А точно, в отчете rkkbmlmat, параметр с вариантом называется
p_alvdef? У меня - p_varian. И писать "10 валюта БЕ", необязательно,
достаточно просто "10".

Заменил везде на p_varian. Результат тот же. При выборе формата сразу срабатывает программа rkkbmlmat и запускается отчёт. А без формата транзакция не запускается.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение функционала транзакции S_P99_41000062- Ведомость материалов (валюта отчета)
СообщениеДобавлено: Пн, апр 24 2017, 17:34 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 02 2010, 09:37
Сообщения: 58
См. как заполняется значение p_varian в программе rkkbmlmat
в событии initialization (их там 2, см второе).
Вместо sy-repid надо указать 'RKKBMLMAT'.
Таким образом будет получено имя варианта по-умолчанию
для стандартной программы.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение функционала транзакции S_P99_41000062- Ведомость материалов (валюта отчета)
СообщениеДобавлено: Вт, апр 25 2017, 08:14 
Старший специалист
Старший специалист
Аватара пользователя

Зарегистрирован:
Чт, янв 24 2013, 09:43
Сообщения: 432
Откуда: South Kazakhstan
Пол: Мужской
baboon писал(а):
См. как заполняется значение p_varian в программе rkkbmlmat
в событии initialization (их там 2, см второе).
Вместо sy-repid надо указать 'RKKBMLMAT'.
Таким образом будет получено имя варианта по-умолчанию
для стандартной программы.

Я указал вместо sy-repid в строке gs_alv_variant-report = 'RKKBMLMAT'. При запуске транзакции стали подтягиваться форматы, созданные в стандартной транзакции, но запускается отчёт также, только когда выберешь формат в диалоговом окне выбора формата. Может быть ещё где нибудь что нибудь подкрутить надо?!


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Изменение функционала транзакции S_P99_41000062- Ведомость материалов (валюта отчета)
СообщениеДобавлено: Вт, апр 25 2017, 10:16 
Младший специалист
Младший специалист

Зарегистрирован:
Чт, дек 02 2010, 09:37
Сообщения: 58
Старею.

Блоки at selection screen работают как процедуры, т.е. всё, что ниже, до следующего блока будет одной процедурой.
Поэтому submit выполняется только при выборе варианта.

Надо перед refresh listtab поставить start-of-selection


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

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


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

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


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

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