EHOT написал(а):
Всем пр ... речь идет о REUSE_ALV_LIST_DISPLAY ...
выводятся у меня в отчет две колонки с иконками, причем иконки одинаковые ... ну т.е. :
материал галочка1 галочка2
----------------------------------------
00000123 X X
00002345 X
00013234 X
и т.д.
так вот ... обрабатываю даблклик по иконке ... причем надо разделить обработку для клика по первой иконке и по второй ... но имя поля возвращаемое при даблклике на иконку почему-то возвращается не мое (из внутренней таблицы), а GS_OUT-ICON ... т.е. я не могу определить по какой иконке кликнули ... как побороть ?
Вот пример:
Code:
report zalv no standard page heading .
tables: t001w.
*
type-pools: slis.
include <icon>.
data: gt_fieldcat type slis_t_fieldcat_alv.
data: wa_fieldcat type slis_fieldcat_alv.
data: gs_layout type slis_layout_alv.
data: gs_user_command type slis_formname value 'USER_COMMAND',
gs_repid like syst-repid.
*
data: begin of itab occurs 10,
werks like t001w-werks,
name1 like t001w-name1,
icon1 like icon_checked,
icon2 like icon_checked,
end of itab.
*
refresh gt_fieldcat.
refresh itab.
*
clear wa_fieldcat.
wa_fieldcat-fieldname = 'WERKS'.
wa_fieldcat-ref_tabname = 'T001W'.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'NAME1'.
wa_fieldcat-ref_tabname = 'T001W'.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ICON1'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-emphasize = 'C200'.
wa_fieldcat-outputlen = '00003'.
wa_fieldcat-seltext_l = wa_fieldcat-seltext_m
= wa_fieldcat-seltext_s
= 'I1'.
wa_fieldcat-icon = 'X'.
wa_fieldcat-hotspot = 'X'.
append wa_fieldcat to gt_fieldcat.
clear wa_fieldcat.
wa_fieldcat-fieldname = 'ICON2'.
wa_fieldcat-datatype = 'CHAR'.
wa_fieldcat-emphasize = 'C200'.
wa_fieldcat-outputlen = '00003'.
wa_fieldcat-seltext_l = wa_fieldcat-seltext_m
= wa_fieldcat-seltext_s
= 'I2'.
wa_fieldcat-icon = 'X'.
wa_fieldcat-hotspot = 'X'.
append wa_fieldcat to gt_fieldcat.
*
select * from t001w up to 5 rows.
clear itab.
move-corresponding t001w to itab.
case sy-tabix.
when 1 or 2.
itab-icon1 = icon_checked.
itab-icon2 = icon_space.
when 3 or 4 or 5.
itab-icon1 = icon_checked.
itab-icon2 = icon_checked.
endcase.
append itab.
endselect.
*
gs_repid = sy-repid.
call function 'REUSE_ALV_LIST_DISPLAY'
exporting
i_callback_program = gs_repid
i_callback_user_command = gs_user_command
is_layout = gs_layout
it_fieldcat = gt_fieldcat
tables
t_outtab = itab
exceptions
program_error = 1
others = 2.
form user_command using r_ucomm like sy-ucomm
rs_selfield type slis_selfield.
case r_ucomm.
when '&IC1'.
read table itab index rs_selfield-tabindex.
case rs_selfield-sel_tab_field.
when 'ITAB-ICON1'.
message i300(M1) with 'ITAB-ICON1'.
when 'ITAB-ICON2'.
message i300(M1) with 'ITAB-ICON2'.
when others.
endcase.
endcase.
endform.