Довольно часто бывает нужно узнать техническое имя поля таблицы отображаемой в ALV, но удобного способа сделать это почему то не предусмотрено (по крайней мере я его не знаю), можно конечно Shift + щелчок по свободному месту, а потом в каталоге смотреть...
Появилось немного времени + желание решить эту проблему кардинально, ниже решение:
сделал implicit enhancement в конце ФМ LVC_FIELDCAT_COMPLETE (он вызывается из cl_gui_alv_grid->set_table_for_first_display для подготовки каталога)
Code:
function lvc_fieldcat_complete.
......................
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Функц. модуль LVC_FIELDCAT_COMPLETE, Выход A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 YDK_ALV_FCAT_DEBUG_PREPARE. "active version
DATA: ydkfcat_debug TYPE c.
FIELD-SYMBOLS <ydk_fcat> LIKE LINE OF ct_fieldcat.
GET PARAMETER ID 'YDKFCAT_DEBUG' FIELD ydkfcat_debug.
IF ydkfcat_debug = 'X'.
LOOP AT ct_fieldcat ASSIGNING <ydk_fcat>.
CHECK <ydk_fcat>-reptext NS <ydk_fcat>-fieldname.
* CONCATENATE <ydk_fcat>-fieldname <ydk_fcat>-coltext INTO <ydk_fcat>-coltext SEPARATED BY space.
CONCATENATE <ydk_fcat>-fieldname <ydk_fcat>-scrtext_l INTO <ydk_fcat>-scrtext_l SEPARATED BY space.
CONCATENATE <ydk_fcat>-fieldname <ydk_fcat>-scrtext_m INTO <ydk_fcat>-scrtext_m SEPARATED BY space.
CONCATENATE <ydk_fcat>-fieldname <ydk_fcat>-scrtext_s INTO <ydk_fcat>-scrtext_s SEPARATED BY space.
CONCATENATE <ydk_fcat>-fieldname <ydk_fcat>-seltext INTO <ydk_fcat>-seltext SEPARATED BY space.
CONCATENATE <ydk_fcat>-fieldname <ydk_fcat>-tooltip INTO <ydk_fcat>-tooltip SEPARATED BY space.
CONCATENATE <ydk_fcat>-fieldname <ydk_fcat>-reptext INTO <ydk_fcat>-reptext SEPARATED BY space.
ENDLOOP.
ENDIF.
ENDENHANCEMENT.
*$*$-End: (1)---------------------------------------------------------------------------------$*$*
endfunction.
всё просто: если установлен SET/GET параметр 'YDKFCAT_DEBUG', к наименованиям столбцов в начало добавляется тех. имя поля
и сделал крохотную программку для установки/снятия SET/GET параметра 'YDKFCAT_DEBUG':
Code:
REPORT ydk_alv_fcat_debug.
PARAMETERS: pon RADIOBUTTON GROUP flg.
PARAMETERS: poff RADIOBUTTON GROUP flg.
INITIALIZATION.
GET PARAMETER ID 'YDKFCAT_DEBUG' FIELD pon.
poff = pon.
TRANSLATE poff USING 'X X'.
START-OF-SELECTION.
SET PARAMETER ID 'YDKFCAT_DEBUG' FIELD pon.
IF pon = 'X'.
MESSAGE 'ALV field-catalog debug mode set ON' TYPE 'S'.
ELSE.
MESSAGE 'ALV field-catalog debug mode set OFF' TYPE 'S'.
ENDIF.
вот что получилось: