Posted: Thu Feb 17, 2011 12:08 am Post subject: Расширение средства поиска в кассовой книге (тр. fbcj)
Всем добрый вечер! Очень нужна помощь или хотя бы какой нибудь совет. В кассовой книге, которая отображается на экране вызываемым тр. fbcj, есть таблица с расходами и приходами, одно из полей называется Бизнес-операция (например, EO01: ВОЗВРАТ ДС НА Р/СЧ), так же в этой таблице есть другое дополнительное поле, которое служит для значений оснований на данную операцию (например, в связи с какими то причинами, ну т.е. что типа комментария), но к этому полю цепляется средство поиска, откуда и подтягиваются значения. Ситуация следующая: средство поиска подключено к полю, все работает, открывается, заполняется, но пользователям требуется чтобы происходила автоматическая фильтрация значений при открытии средства поиска в зависимости от значения в поле Бизнес операция.
Для решения данной проблемы я решил создать ФМ для средства поиска и там все обрабатывать, но вот не могу понять как мне подтянуть значение поля Grid'а с экрана в ФМ?
1. Могут ли помочь события типа hotspot_click и методы типа get_cell_value ALV Grida?
2. или может можно использовать какой нибудь UserExit, если да, то какой?
Рад буду любому предложению выхода из данной ситуации, пока копаю в сторону событий и методов для ALV Grid'а.
Заранее благодарен за любую помощь
Age: 165 Joined: 04 Oct 2007 Posts: 1218 Location: Санкт-Петербург
Posted: Thu Feb 17, 2011 12:07 pm Post subject:
Давайте порассуждаем.
Как я понял, из вашего FM нужно получить ссылку на alv grid, затем узнать текущую выделенную строку, по ней обратиться к таблице с данными и получить значение из ячейки с типом Бизнес операцией.
1) Получить ссылку на объектный грид - FM GET_GLOBALS_FROM_SLVC_FULLSCR
2) метод GET_CURRENT_CELL или GET_SELECTED_ROWS
3) Посмотрите по стеку вызова из вашего FM, как к данным через ASSIGN добраться. _________________ Молитва - это запрос разработчику на изменение кода программы.
Age: 47 Joined: 14 Nov 2008 Posts: 300 Location: Russia
Posted: Thu Feb 17, 2011 2:13 pm Post subject:
Там на самом деле экранная таблица...
В ФМ (SH-exit) посредством динамического ASSIGN вытягиваете нужное значение поля "Бизнес-операция", п.3 поста vga:
FIELD-SYMBOLS: <fs_tab> TYPE TABLE OF iscj_postings. ASSIGN ('(SAPMFCJ0)ITCJ_EPOSTINGS[]') to <fs_tab>[].
Индекс строки получаете подобным же образом, см. код SAPMFCJ0. Ну или сразу же готовую строку, если возможно. _________________ ABAP/4 You
vga и Dmitriy, Спасибо большое, что ответили, очень помогли, хотя бы теперь знаю в каком направлении идти, вообщем попробовал реализовать вариант с ASSIGN, для начала просто получить данные из таблицы:
Code:
DATA: lt_postings LIKE ISCJ_E_POSTINGS OCCURS 0 WITH HEADER LINE.
FIELD-SYMBOLS: <fs_tab> TYPE ANY TABLE.
ASSIGN ('(SAPMFCJ0)ISCJ_E_POSTINGS[]') to <fs_tab>[].
if sy-subrc = 0.
lt_postings[] = <fs_tab>[].
UNASSIGN <fs_tab>.
endif.
Но к сожалению, на сколько я понял, ASSIGN не отрабатывает, при трассировке параметр sy-subrc = 4. Сегодня пока не успел разобраться из -за чего это может быть, надо будет еще раз проверить код, возможно где то ошибся.
Age: 47 Joined: 14 Nov 2008 Posts: 300 Location: Russia
Posted: Thu Feb 17, 2011 8:00 pm Post subject:
Qwest wrote:
Code:
DATA: lt_postings LIKE ISCJ_E_POSTINGS OCCURS 0 WITH HEADER LINE.
FIELD-SYMBOLS: <fs_tab> TYPE ANY TABLE.
ASSIGN ('(SAPMFCJ0)ISCJ_E_POSTINGS[]') to <fs_tab>[].
if sy-subrc = 0.
lt_postings[] = <fs_tab>[].
UNASSIGN <fs_tab>.
endif.
Но к сожалению, на сколько я понял, ASSIGN не отрабатывает, при трассировке параметр sy-subrc = 4. Сегодня пока не успел разобраться из -за чего это может быть, надо будет еще раз проверить код, возможно где то ошибся.
ISCJ_E_POSTINGS в вашем коде - это структура СД, обратите более пристальное внимание на типизацию используемых таблиц и структур.
Code:
* Таблица
FIELD-SYMBOLS: <fs_tab> TYPE TABLE OF iscj_postings.
ASSIGN ('(SAPMFCJ0)ITCJ_E_POSTINGS[]') to <fs_tab>.
OR
Code:
* Рабочая область (структура)
FIELD-SYMBOLS: <line> TYPE iscj_e_postings.
ASSIGN ('(SAPMFCJ0)ISCJ_E_POSTINGS') to <line>.
По идее, должно работать... _________________ ABAP/4 You
Понятно, спасибо, попробую поразбираться более детально, просто когда я описал так:
Code:
FIELD-SYMBOLS: <fs_tab> TYPE TABLE OF iscj_postings.
он ругался на то, что после TABLE не хватает точки и я решил объвить так как написал выше. Просто я пока недавно работаю в сапе и поэтому пока еще не до конца усвоил логику работы данной системы, но в принципе щас понял, буду пробывать. Еще раз спасибо за помощь
Извиняюсь, что не отписался по результатам сразу, было очень много работы ) Dmitriy Спасибо большое за помощь, вы мне очень помогли, узнал много нового для себя, Assign сработало, значения подтянулись ) правда реализацию задуманного пришлось немного сделать по другому:
Code:
data: ztrname TYPE TCJ_TRANS_NAMES-transact_name.
data: dynpfields type table of DYNPREAD with header LINE.
data: stepl like SY-STEPL.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum You cannot attach files in this forum You can download files in this forum
All product names are trademarks of their respective companies. SAPNET.RU websites are in no way affiliated with SAP AG. SAP, SAP R/3, R/3 software, mySAP, ABAP, BAPI, xApps, SAP NetWeaver and any other are registered trademarks of SAP AG. Every effort is made to ensure content integrity. Use information on this site at your own risk.