Code: Alles auswählen.
<htmlb:tableViewColumn columnName = "myicon"
type = "user"
title = "Image"
horizontalAlignment="center" >
<htmlb:link id = "test"
onClick = "test"
tooltip = "test">
<htmlb:image src = "TEST.JPG"
alt = "test"
tooltip = "test" />
</htmlb:link>
</htmlb:tableViewColumn>
Code: Alles auswählen.
<htmlb:tableViewColumn columnName = "myicon"
type = "IMAGE"
title = "Image"
horizontalAlignment="center" >
Code: Alles auswählen.
<htmlb:tableViewColumn columnName = "myicon"
type = "IMAGE"
title = "Image"
horizontalAlignment="center" >
Code: Alles auswählen.
iterator = "<%= iterator%>" >
Code: Alles auswählen.
iterator TYPE IF_HTMLB_TABLEVIEW_ITERATOR
Code: Alles auswählen.
CLEAR iterator.
CREATE OBJECT iterator TYPE ZZ_TESTITERATOR.
Code: Alles auswählen.
FIELD-SYMBOLS: <def> LIKE LINE OF p_column_definitions.
* ERSTELLE SPALTE => ICON
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'ICON'.
<def>-TITLE = ' '.
* JETZT KOMMEN DIE STANDARD SPALTEN DER POSITIONEN
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'POSNR'.
<def>-TITLE = 'NR'.
* JETZT SPALTEN MIT BILDER UND EVENTVERKNÜPFUNG
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'FREIGABE'.
<def>-TITLE = ' '.
<def>-ONCELLCLICK = 'cellclick_freigabe'.
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'ABLEHNEN'.
<def>-TITLE = ' '.
<def>-ONCELLCLICK = 'cellclick_ablehnen'.
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'RESET'.
<def>-TITLE = ' '.
<def>-ONCELLCLICK = 'cellclick_reset'.
* EDITIERBARE SPALTEN:
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'SAKNR'.
<def>-EDIT = 'X'.
* Normale Spalten
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'KTEXT'.
Code: Alles auswählen.
m_row_ref ?= p_row_data_ref.
Code: Alles auswählen.
CASE p_column_key.
*#### BESTIMME AMPELFARBE = POSITIONSSTATUS ########
WHEN 'ICON'.
DATA: icon TYPE STRING.
IF m_row_ref->status = 'FREE'.
icon = CL_BSP_MIMES=>SAP_ICON( id = 'ICON_LED_GREEN' ).
ELSEIF m_row_ref->status = 'ABORT'.
icon = CL_BSP_MIMES=>SAP_ICON( id = 'ICON_LED_RED' ).
ELSEIF m_row_ref->status = 'STD'.
icon = CL_BSP_MIMES=>SAP_ICON( id = 'ICON_LED_YELLOW' ).
ELSE.
icon = CL_BSP_MIMES=>SAP_ICON( id = 'ICON_SYSTEM_EXTENDED_HELP' ).
ENDIF.
p_replacement_bee = CL_HTMLB_IMAGE=>FACTORY( id = p_cell_id
src = icon ).
*#### ERSTELLE FREIGABESSPALTE ########
WHEN 'FREIGABE'.
DATA: icon1 TYPE STRING.
icon1 = CL_BSP_MIMES=>SAP_ICON( id = 'ICON_RELEASE' ).
p_replacement_bee = CL_HTMLB_IMAGE=>FACTORY( id = p_cell_id
src = icon1 ).
*#### ERSTELLE ABLEHNENSPALTE ########
WHEN 'ABLEHNEN'.
DATA: icon2 TYPE STRING.
icon2 = CL_BSP_MIMES=>SAP_ICON( id = 'ICON_REJECT' ).
p_replacement_bee = CL_HTMLB_IMAGE=>FACTORY( id = p_cell_id
src = icon2 ).
*#### ERSTELLE RESETSPALTE ########
WHEN 'RESET'.
DATA: icon3 TYPE STRING.
icon3 = CL_BSP_MIMES=>SAP_ICON( id = 'ICON_SYSTEM_END' ).
p_replacement_bee = CL_HTMLB_IMAGE=>FACTORY( id = p_cell_id
src = icon3 ).
Code: Alles auswählen.
WHEN 'SAKNR'.
IF p_edit_mode IS NOT INITIAL.
ENDIF.
Code: Alles auswählen.
CLASS cl_htmlb_manager DEFINITION LOAD.
* 1 ** IF ### WENN EVENT AUSGELÖST WIRD
IF event_id = cl_htmlb_manager=>event_id.
DATA : tv TYPE REF TO cl_htmlb_tableview,
table_event TYPE REF TO cl_htmlb_event_tableview,
event TYPE REF TO cl_htmlb_event,
button_event TYPE REF TO cl_htmlb_event_button,
iterator TYPE REF TO IF_HTMLB_TABLEVIEW_ITERATOR,
tv_data TYPE REF TO cl_htmlb_event_tableview.
FIELD-SYMBOLS <wa> LIKE LINE OF alditab_positionsdaten.
event = cl_htmlb_manager=>get_event( runtime->server->request ).
*#######################################################################
*################ BUTTON IN SPALTE GEDRÜCKT ############################
*#######################################################################
IF event IS NOT INITIAL
AND event->name = 'tableView'
AND event->event_type = 'cellClick'.
table_event ?= event.
*** REFERENZ VON tv auf tableView Objekt
tv ?= cl_htmlb_manager=>get_data(
request = runtime->server->request
name = 'tableView'
id = 'Positionen' ).
table_event = tv->data.
*#### WELCHE SPALTE WURDE MARKIERT ########
CASE table_event->SERVER_EVENT.
*** SPALTE: FREIGABE
WHEN 'cellclick_freigabe'.
*** CODE CODE CODE ***
WHEN 'cellclick_ablehnen'.
*** CODE CODE CODE ***
und so weiter.
Code: Alles auswählen.
table_event->ROW_INDEX
Code: Alles auswählen.
method IF_HTMLB_TABLEVIEW_ITERATOR~GET_COLUMN_DEFINITIONS .
FIELD-SYMBOLS: <def> LIKE LINE OF p_column_definitions.
* ERSTELLE SPALTE => ICON
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'ICON'.
<def>-TITLE = ' '.
* JETZT KOMMEN DIE STANDARD SPALTEN DER POSITIONEN
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'UNAME'.
<def>-TITLE = 'Username'.
* JETZT SPALTEN MIT BILDER UND EVENTVERKNÜPFUNG
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'FNAME'.
<def>-TITLE = 'Vorname'.
* <def>-ONCELLCLICK = 'cellclick_freigabe'.
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'LNAME'.
<def>-TITLE = 'Nachname'.
* <def>-ONCELLCLICK = 'cellclick_ablehnen'.
* EDITIERBARE SPALTEN:
*
* APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
* <def>-COLUMNNAME = 'SAKNR'.
* <def>-EDIT = 'X'.
* Normale Spalten
* APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
* <def>-COLUMNNAME = 'KTEXT'.
endmethod.
Code: Alles auswählen.
method IF_HTMLB_TABLEVIEW_ITERATOR~RENDER_ROW_START .
m_row_ref ?= p_row_data_ref.
endmethod.
was zum teufel?
Die CAST-Operation (f1 ?= f2, MOVE f2 ?TO f1) ist zur Zeit nur für Objektreferenzen unterstütz.
Code: Alles auswählen.
*#### ERSTELLE ICONSPALTE ########
WHEN 'ICON'.
DATA: icon TYPE STRING.
icon = CL_BSP_MIMES=>SAP_ICON( id = 'DEIN_SAP_ICON' ).
p_replacement_bee = CL_HTMLB_IMAGE=>FACTORY( id = p_cell_id
src = icon ).
Code: Alles auswählen.
M_ROW_REF
Instance Attribute
Public
Type ZECRQ_USER_ST
Code: Alles auswählen.
begin of zecrq_user,
uname type syuname,
fname type char25,
lname type char25,
end of zecrq_user,
zecrq_user_st type standard table of zecrq_user
with non-unique default key,
zecrq_user_s type sorted table of zecrq_user,
Code: Alles auswählen.
m_row_ref TYPE REF TO SFLIGHT.
Code: Alles auswählen.
method IF_HTMLB_TABLEVIEW_ITERATOR~GET_COLUMN_DEFINITIONS .
FIELD-SYMBOLS: <def> LIKE LINE OF p_column_definitions.
* ERSTELLE SPALTE => ICON
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'ICON'.
<def>-TITLE = ' '.
<def>-ONCELLCLICK = 'sel_user'.
* JETZT KOMMEN DIE STANDARD SPALTEN DER USERNAME
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'UNAME'.
<def>-TITLE = 'Username'.
* JETZT SPALTEN FIRSTNAME
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'FNAME'.
<def>-TITLE = 'Vorname'.
* JETZT SPALTE LASTNAME
APPEND INITIAL LINE TO p_column_definitions ASSIGNING <def>.
<def>-COLUMNNAME = 'LNAME'.
<def>-TITLE = 'Nachname'.
endmethod.
Code: Alles auswählen.
IF event_id = cl_htmlb_manager=>event_id.
DATA : tv TYPE REF TO cl_htmlb_tableview,
table_event TYPE REF TO cl_htmlb_event_tableview,
iterator TYPE REF TO IF_HTMLB_TABLEVIEW_ITERATOR,
tv_data TYPE REF TO cl_htmlb_event_tableview.
event = cl_htmlb_manager=>get_event( runtime->server->request ).
IF event IS NOT INITIAL
AND event->name = 'tableView'
AND event->event_type = 'cellClick'.
table_event ?= event.
*** REFERENZ VON tv auf tableView Objekt
tv ?= cl_htmlb_manager=>get_data(
request = runtime->server->request
name = 'tableView'
id = 'Tv1' ).
table_event = tv->data.
*#### WELCHE SPALTE WURDE MARKIERT ########
CASE table_event->SERVER_EVENT.
*** SPALTE: FREIGABE
WHEN 'sel_user'.
when others.
endcase.
endif.
endif.