Code: Alles auswählen.
*#### ERSTELLE DROPDOWNBOX IN SPALTEN: MWSKZ #######
WHEN 'MWSKZ'.
DATA: tb_mwskz TYPE TABLE OF T007S,
dropdownBox type ref to CL_HTMLB_DROPDOWNLISTBOX.
SELECT *
FROM T007S
INTO TABLE tb_mwskz.
CREATE OBJECT dropdownBox.
dropdownBox->id = p_cell_id.
dropdownBox->table = tb_mwskz.
dropdownBox->nameofkeycolumn = 'TEXT1'.
dropdownBox->nameofvaluecolumn = 'MWSKZ'.
dropdownBox->selection = m_row_ref->MWSKZ.
dropdownBox->width = 'auto'.
p_replacement_bee = dropdownBox.
Code: Alles auswählen.
get reference of tb_mwskz into dropdownbox->table.
Code: Alles auswählen.
*#### ERSTELLE DROPDOWNBOX IN SPALTEN: MWSKZ #######
WHEN 'MWSKZ'.
TYPES: BEGIN OF TY_TB_MWSKZ,
MWSKZ TYPE T007S-MWSKZ,
TEXT1 TYPE T007S-TEXT1,
END OF TY_TB_MWSKZ.
DATA: dropdownBox type ref to CL_HTMLB_DROPDOWNLISTBOX,
TB_MWSKZ TYPE TABLE OF TY_TB_MWSKZ,
WA_MWSKZ TYPE TY_TB_MWSKZ.
SELECT *
FROM T007S
INTO CORRESPONDING FIELDS OF WA_MWSKZ
WHERE KALSM = 'TAXD'
AND SPRAS = SY-LANGU.
IF SY-SUBRC = 0.
APPEND WA_MWSKZ TO TB_MWSKZ.
ENDIF.
ENDSELECT.
* DROPDOWNBOX INHALT ÜBERGEBEN
CREATE OBJECT dropdownBox.
dropdownBox->id = p_cell_id.
get reference of tb_mwskz into dropdownbox->table.
dropdownBox->nameofkeycolumn = 'TEXT1'.
dropdownBox->nameofvaluecolumn = 'MWSKZ'.
dropdownBox->selection = m_row_ref->MWSKZ.
dropdownBox->width = 'auto'.
p_replacement_bee = dropdownBox.
Code: Alles auswählen.
data dropdownbox type ref to cl_htmlb_dropdownlistbox.
data d_beetable type ref to cl_bsp_bee_table.
create object d_beetable.
[...]
d_beetable->add( element = dropdownbox ).
p_replacement_bee = d_beetable.
Code: Alles auswählen.
method if_htmlb_tableview_iterator~render_cell_start .
data wa_tabfelder type zhtabfelder.
field-symbols: <comp> type any,
<row> type any.
read table me->it_tabfelder into wa_tabfelder
with key tabname = me->m_tabname
f_lfdnr = p_column_index.
if not p_edit_mode is initial.
case wa_tabfelder-type.
when 'T'. " Textfeld --> nichts rendern
when 'D'. " DropDownBox
data dropdownbox type ref to cl_htmlb_dropdownlistbox.
data d_beetable type ref to cl_bsp_bee_table.
field-symbols: <itab> type standard table.
data: ref_itab type ref to data.
create object dropdownbox.
dropdownbox->id = p_cell_id.
create data ref_itab type table of (wa_tabfelder-checktable).
assign ref_itab->* to <itab>.
if not wa_tabfelder-cond[] is initial.
select * from (wa_tabfelder-checktable) into table <itab>
where (wa_tabfelder-cond).
else.
select * from (wa_tabfelder-checktable) into table <itab>.
endif.
dropdownbox->table = ref_itab.
dropdownbox->nameofkeycolumn = wa_tabfelder-keyfield.
dropdownbox->nameofvaluecolumn = wa_tabfelder-textfield.
assign me->m_row_ref->* to <row>.
assign component wa_tabfelder-field of structure <row>
to <comp>.
dropdownbox->selection = <comp>.
create object d_beetable.
d_beetable->add( element = dropdownbox ).
p_replacement_bee = d_beetable.
when 'I'. "Icon
when 'C'. "Checkbox
endcase.
endif.
endmethod.
Code: Alles auswählen.
method if_htmlb_tableview_iterator~render_cell_start .
data wa_tabfelder type zhtabfelder.
field-symbols: <comp> type any,
<row> type any.
* Eigenschaften des aktuellen Feldes auslesen
read table me->it_tabfelder into wa_tabfelder
with key tabname = me->m_tabname
f_lfdnr = p_column_index.
* nur im Editiermodus weitermachen
if not p_edit_mode is initial.
* aktueller Feldtyp
case wa_tabfelder-type.
when 'T'. " Textfeld --> nichts rendern
when 'D'. " DropDownBox
data dropdownbox type ref to cl_htmlb_dropdownlistbox.
data d_beetable type ref to cl_bsp_bee_table.
* ein Feldsymbol für meine interne Tabelle erstellen
field-symbols: <itab> type standard table.
data: ref_itab type ref to data.
* DropDownBox erstellen
create object dropdownbox.
dropdownbox->id = p_cell_id.
* zur Laufzeit eine Tabelle definieren
create data ref_itab type table of (wa_tabfelder-checktable).
assign ref_itab->* to <itab>.
* wa_tabfelder-cond ist eine dynamische Where-Klausel
* Daten aus der Datenbanktabelle in die interne Tabelle lesen.
if not wa_tabfelder-cond[] is initial.
select * from (wa_tabfelder-checktable) into table <itab>
where (wa_tabfelder-cond).
else.
select * from (wa_tabfelder-checktable) into table <itab>.
endif.
* Da ich schon eine Referenz auf meine interne Tabelle habe --> einfach dem Element table zuweisen
dropdownbox->table = ref_itab.
* Name der Spalte, dessen Wert abgespeichert werden soll
dropdownbox->nameofkeycolumn = wa_tabfelder-keyfield.
* Name der Spalte, die angezeigt werden soll
dropdownbox->nameofvaluecolumn = wa_tabfelder-textfield.
* Den aktuell Selektierten Eintrag vorselektieren
assign me->m_row_ref->* to <row>.
assign component wa_tabfelder-field of structure <row>
to <comp>.
dropdownbox->selection = <comp>.
* Die beetable erstellen und dieser die DropDownBox übergeben
create object d_beetable.
d_beetable->add( element = dropdownbox ).
* Dem Parameter p_replacement_bee die beetable übergeben
p_replacement_bee = d_beetable.
when 'I'. "Icon
when 'C'. "Checkbox
endcase.
endif.
endmethod.
Code: Alles auswählen.
method if_htmlb_tableview_iterator~render_cell_start .
field-symbols: <comp> type any,
<row> type any.
data dropdownbox type ref to cl_htmlb_dropdownlistbox.
data d_beetable type ref to cl_bsp_bee_table.
* ein Feldsymbol für meine interne Tabelle erstellen
field-symbols: <itab> type standard table.
data: ref_itab type ref to data.
* DropDownBox erstellen
create object dropdownbox.
dropdownbox->id = p_cell_id.
* zur Laufzeit eine Tabelle definieren
create data ref_itab type table of T007S.
assign ref_itab->* to <itab>.
select * from (wa_tabfelder-checktable) into table <itab>.
* Da ich schon eine Referenz auf meine interne Tabelle habe --> einfach dem Element table zuweisen
dropdownbox->table = ref_itab.
* Name der Spalte, dessen Wert abgespeichert werden soll
dropdownbox->nameofkeycolumn = 'TEXT1'.
* Name der Spalte, die angezeigt werden soll
dropdownbox->nameofvaluecolumn = 'MWSKZ'.
* Den aktuell Selektierten Eintrag vorselektieren
dropdownbox->selection = me->m_row_ref->mwskz.
* Die beetable erstellen und dieser die DropDownBox übergeben
create object d_beetable.
d_beetable->add( element = dropdownbox ).
* Dem Parameter p_replacement_bee die beetable übergeben
p_replacement_bee = d_beetable.
endmethod.
Code: Alles auswählen.
select * from (wa_tabfelder-checktable) into table <itab>.
da sollte eigentlich stehen:vvursT hat geschrieben:bis auf eine zeile.Code: Alles auswählen.
select * from (wa_tabfelder-checktable) into table <itab>.
Code: Alles auswählen.
select * from T007s into table <itab>.