DropDown Box im Tableview

ABAP Web Dynpro, BusinessServerPages; Erstellung von Webapplikationen.
16 Beiträge • Seite 1 von 2 (current) Nächste
16 Beiträge Seite 1 von 2 (current) Nächste

DropDown Box im Tableview

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Hallo,

Gibt es eine Möglichkeit in einer Spalte eines TableViews eine DropDown Box zu erstellen, ohne dass man extra einen Iterator erstellen muss ?

MfG
Kaiwalker

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Beitrag von vvursT (ForumUser / 72 / 0 / 0 ) »
meiner kenntnis nach nicht, kann mich aber auch irren. sieh dir einfach mal die bsp "SBSPEXT_TABLE" an. ( muss erst über sicf ) aktiviert werden. da findest du alle möglichen beispiele für tvs unter anderem auch mit und ohne iterator.

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Hallo

In der Beispielapplikation SBSPEXT_TABLE wird das nur mit dem Iterator gelöst.

Ich habe aber gesehen, dass man mit Hilfe der ColumnDefinitions eine edit_bee mitgeben kann.
Dies habe ich dann wie folgt dort eingebaut.

Code: Alles auswählen.

  data dropdownbox type ref to cl_htmlb_dropdownlistbox.
  create object dropdownbox.
  get reference of itab into dropdownbox->table.
  dropdownbox->nameofkeycolumn = 'KEY'.
  dropdownbox->nameofvaluecolumn = 'VALUE'.
  bee->add( element = dropdownbox ).
  wa_col_def-edit_bee = bee.
  wa_col_def-columnname = 'KEY'.
  wa_col_def-edit = 'X'.
  wa_col_def-wrapping = 'X'.
  wa_col_def-title = 'Einrichtung'.
  wa_col_def-alignforsignednumbers = 'X'.
  wa_col_def-encode = 'X'.
  wa_col_def-horizontalalignment = 'center'.
  wa_col_def-width               = '100'.
  append wa_col_def to it_col_def.
Wenn ich das dann teste, bekomme ich auch in dem Feld eine Dropdownbox, aber wenn ich sie aufklappen will erscheint immer der Script Fehler
'null' ist Null oder kein Objekt
Hat jemand eine Idee ?

MfG
Kaiwalker

Beitrag von vvursT (ForumUser / 72 / 0 / 0 ) »
überprüf doch mal mit dem debugger nach dem erstellen der listbox den inhalt von

Code: Alles auswählen.

dropdownbox->table
läuft ansonsten auch alles korrekt ab ? hast du schon alles debugged ?

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Hat sich erledigt, ich hatte den Parameter

Code: Alles auswählen.

dropdownbox->id
nicht versorgt.
Nun da ich ihm einen Wert zugewiesen habe kann ich auch die DropDownBox öffnen.

Trotzdem Danke

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Nun habe ich das nächste Problem.
Im onInputProcessing bekomme ich nicht mit, welcher Wert ausgewählt wurde.
Die Methode

Code: Alles auswählen.

      value = tv_data->get_cell_value(
                      row_index = tv_data->prevselectedrowindex
                   column_index = sy-tabix ).
bringt mir einen leeren String. Ich habe in der DropDownBox aber etwas ausgewählt.
Bei allen anderen Feldern, die im TableView angezeigt werden bekomme ich durch o.g. Methode den richtigen Wert, aber das sind dann auch ganz normale Eingabefelder.

Ich hoffe es kann mir jemand helfen.

Beitrag von vvursT (ForumUser / 72 / 0 / 0 ) »
machst du eine spalte die die schleifen durchläuft oder warum gibst du als spaltenindex den sy-tabix wert an ? ansonsten müsste das schon funktionieren. in den sap beispielen geht es genauso.

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Ich gehe mit Hilfe einer Schleife über alle Spalten, bloß bei der Spalte mit der DropDonBox bekomme ich mit eben genannter Methode keinen Wert zurück geliefert. Eigentlich sollte der geänderte Wert danach in einer SAP-Tabelle abgespeichert werden.
Dadurch, dass da aber nichts in "Value" steht, wird auch nichts abgespeichert.
Vorher hatte ich an der Stelle ein ganz normales InputField. Bei dem hatte ich den Wert auch zurück bekommen.

Beitrag von vvursT (ForumUser / 72 / 0 / 0 ) »
gib doch mal hier an wie du deine dropdownbox implementiert hast, vielleicht verbirgt sich da der fehler. es gibt nämlich mehrere möglichkeiten.

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Mit Hilfe der ColumnDefinitions - Eigenschaft übergebe ich dem TableView, welches Feld was für einen Typ hat. Für die DropDownBox sieht das wie folgt aus:

Code: Alles auswählen.

  clear wa_col_def.
  create object bee.
  create object dropdownbox.
  dropdownbox->id = 'KEY'.
  get reference of it_dropdown[] into dropdownbox->table.
  dropdownbox->nameofkeycolumn = 'KEY'.
  dropdownbox->nameofvaluecolumn = 'VALUE'.
  dropdownbox->selection = val_einri.
  bee->add( element = dropdownbox ).
  wa_col_def-edit_bee = bee.
  wa_col_def-columnname = 'KEY'.
  wa_col_def-edit = 'X'.
  wa_col_def-wrapping = 'X'.
  wa_col_def-title = 'Einrichtung'.
  wa_col_def-alignforsignednumbers = 'X'.
  wa_col_def-encode = 'X'.
  wa_col_def-horizontalalignment = 'center'.
  wa_col_def-width               = '100'.
  append wa_col_def to it_col_def.
Wobei wa_col_def vom Typ TABLEVIEWCONTROL und it_col_def vom Typ Standard table of TABLEVIEWCONTROL ist.

Im Event OnInputProcessing habe ich dann folgendes geschrieben:

Code: Alles auswählen.

tv ?= cl_htmlb_manager=>get_data(
                        request      = runtime->server->request
                        name         = 'tableView'
                        id           = tv_id ).
if tv is not initial.
  tv_data = tv->data.

  if tv_data->prevselectedrowindex is not initial.
    read table <table> index tv_data->prevselectedrowindex
                       assigning <row>.
    data value type string.
    loop at tv_data->allcolumnnames into feld.

      value = tv_data->get_cell_value(
                      row_index = tv_data->prevselectedrowindex
                   column_index = sy-tabix ).

      if value is not initial.
* IN SAP-Tabelle speichern
      endif.
    endloop.
Ich hoffe das reicht.

Beitrag von vvursT (ForumUser / 72 / 0 / 0 ) »
hi,
also tut mir leid, dass ich gestern nicht mehr geantwortet habe.
ich bin deinen code durchgegangen und konnte irgendwie keinen fehler entdecken. da alle felder bis auf die dropdownbox ausgelesen werden liegt wohl auch kein fehler (direkter) fehler im code und in den sap beispielen wird auf den inhalt genauso zugegriffen wie du es implementiert hast. aber trotzdem muss irgendwo der fehler bei der box sein. vielleicht gibt es noch eine kleine routine der dropdownbox die den ausgewählten wert dem feldwert zuordnet. ich hab leider zu tun aber vielleicht findest du deinen fehler ja beim vergleich mit der sap-bsp "sbspext_table" (muss über sicf aktiviert werden).

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
In diesen Beispielen von "sbspext_table" wird ja beim einzigen Beispiel mit DropDownBox ein Iterator benutzt.
Ich will nicht extra noch eine Klasse definieren.
Deswegen habe ich ja die Eigenschaft "ColumnDefinitions" benutzt.
Ich bin für jede Anregung, wie es funktionieren könnte dankbar.

Beitrag von vvursT (ForumUser / 72 / 0 / 0 ) »
im thread "TV Image" hab ich erläutert wie man den iterator schnell implementiert. dürfte eigentlich dann eine halbe stunde dauern. gibst halt dann statt den images die ich in den spalten einfüge als bee die dropdownbox an und dann müsste es gehen, anders kann ich dir leider nicht weiterhelfen

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Das wäre ja vielleicht im Großen und Ganzen möglich, aber ich habe nicht eine interne Tabelle sondern 18 verschiedene, die abhängig von dem Index des

Code: Alles auswählen.

phtmlb:containerTabStrip 
im Tableview angezeigt werden.

Ich habe schon überlegt, ob ich an den Iterator einen Feldkatalog übergeben kann.
Das wäre ja wahrscheinlich die einzige Möglichkeit den Iterator dynamisch zu machen, aber muss ich dann die Datentabelle mit type ref to data im Iterator definieren ?
Ich bin ein bisscehen ratlos.

Beitrag von Kaiwalker (Specialist / 165 / 0 / 0 ) »
Ich habe es nun mit dem Iterator hingebekommen.
Danke für die Hilfe.

Vergleichbare Themen

1
Antw.
1907
Views
Tableview mit DropDown Filter
von Andibugger » 10.05.2005 15:34 • Verfasst in Web-Dynpro, BSP + BHTML
1
Antw.
3718
Views
Dropdown Listbox
von Malaqi » 08.02.2009 03:07 • Verfasst in ABAP® für Anfänger
1
Antw.
1810
Views
ALV Dropdown Länge
von Legxis » 04.07.2018 14:53 • Verfasst in ABAP® Core
2
Antw.
3869
Views
ALV: Dropdown und F4 Hilfe
von Legxis » 11.07.2018 18:12 • Verfasst in ABAP® Core
0
Antw.
914
Views
Tabellenaktualisierung mit Dropdown
von vodair » 15.10.2007 10:50 • Verfasst in ABAP Objects®

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 8 Stunden von Bright4.5 3 / 1482
Regex in where
vor 10 Stunden von tar 6 / 148

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 8 Stunden von Bright4.5 3 / 1482
Regex in where
vor 10 Stunden von tar 6 / 148

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 5 Wochen von ralf.wenzel 1 / 3261
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 9821