DropDown Box im Tableview

BusinessServerPages; Erstellung von Webapplikationen.

DropDown Box im Tableview

Postby Logan2437 » Thu Jan 12, 2006 12:43 pm

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
Logan2437
...
...
 
Posts: 169
Joined: Wed Jun 23, 2004 3:52 pm

Postby Henriette5142 » Thu Jan 12, 2006 12:56 pm

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.
Henriette5142
..
..
 
Posts: 72
Joined: Wed Nov 30, 2005 12:15 pm

Postby Logan2437 » Wed Jan 25, 2006 10:43 am

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: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   data dropdownbox type ref to cl_htmlb_dropdownlistbox.
  2.   create object dropdownbox.
  3.   get reference of itab into dropdownbox->table.
  4.   dropdownbox->nameofkeycolumn = 'KEY'.
  5.   dropdownbox->nameofvaluecolumn = 'VALUE'.
  6.   bee->add( element = dropdownbox ).
  7.   wa_col_def-edit_bee = bee.
  8.   wa_col_def-columnname = 'KEY'.
  9.   wa_col_def-edit = 'X'.
  10.   wa_col_def-wrapping = 'X'.
  11.   wa_col_def-title = 'Einrichtung'.
  12.   wa_col_def-alignforsignednumbers = 'X'.
  13.   wa_col_def-encode = 'X'.
  14.   wa_col_def-horizontalalignment = 'center'.
  15.   wa_col_def-width               = '100'.
  16.   append wa_col_def to it_col_def.
  17.  
GeSHi ©


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
Logan2437
...
...
 
Posts: 169
Joined: Wed Jun 23, 2004 3:52 pm

Postby Henriette5142 » Wed Jan 25, 2006 2:05 pm

überprüf doch mal mit dem debugger nach dem erstellen der listbox den inhalt von
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. dropdownbox->table
GeSHi ©


läuft ansonsten auch alles korrekt ab ? hast du schon alles debugged ?
Henriette5142
..
..
 
Posts: 72
Joined: Wed Nov 30, 2005 12:15 pm

Postby Logan2437 » Wed Jan 25, 2006 3:07 pm

Hat sich erledigt, ich hatte den Parameter
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. dropdownbox->id
GeSHi ©
nicht versorgt.
Nun da ich ihm einen Wert zugewiesen habe kann ich auch die DropDownBox öffnen.

Trotzdem Danke
Logan2437
...
...
 
Posts: 169
Joined: Wed Jun 23, 2004 3:52 pm

Postby Logan2437 » Thu Jan 26, 2006 3:33 pm

Nun habe ich das nächste Problem.
Im onInputProcessing bekomme ich nicht mit, welcher Wert ausgewählt wurde.
Die Methode
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.       value = tv_data->get_cell_value(
  2.                       row_index = tv_data->prevselectedrowindex
  3.                    column_index = sy-tabix ).
  4.  
GeSHi ©

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.
Logan2437
...
...
 
Posts: 169
Joined: Wed Jun 23, 2004 3:52 pm

Postby Henriette5142 » Mon Jan 30, 2006 9:59 am

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.
Henriette5142
..
..
 
Posts: 72
Joined: Wed Nov 30, 2005 12:15 pm

Postby Logan2437 » Mon Jan 30, 2006 10:04 am

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.
Logan2437
...
...
 
Posts: 169
Joined: Wed Jun 23, 2004 3:52 pm

Postby Henriette5142 » Mon Jan 30, 2006 10:10 am

gib doch mal hier an wie du deine dropdownbox implementiert hast, vielleicht verbirgt sich da der fehler. es gibt nämlich mehrere möglichkeiten.
Henriette5142
..
..
 
Posts: 72
Joined: Wed Nov 30, 2005 12:15 pm

Postby Logan2437 » Mon Jan 30, 2006 11:12 am

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: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   clear wa_col_def.
  2.   create object bee.
  3.   create object dropdownbox.
  4.   dropdownbox->id = 'KEY'.
  5.   get reference of it_dropdown[] into dropdownbox->table.
  6.   dropdownbox->nameofkeycolumn = 'KEY'.
  7.   dropdownbox->nameofvaluecolumn = 'VALUE'.
  8.   dropdownbox->selection = val_einri.
  9.   bee->add( element = dropdownbox ).
  10.   wa_col_def-edit_bee = bee.
  11.   wa_col_def-columnname = 'KEY'.
  12.   wa_col_def-edit = 'X'.
  13.   wa_col_def-wrapping = 'X'.
  14.   wa_col_def-title = 'Einrichtung'.
  15.   wa_col_def-alignforsignednumbers = 'X'.
  16.   wa_col_def-encode = 'X'.
  17.   wa_col_def-horizontalalignment = 'center'.
  18.   wa_col_def-width               = '100'.
  19.   append wa_col_def to it_col_def.
  20.  
GeSHi ©

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: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. tv ?= cl_htmlb_manager=>get_data(
  2.                         request      = runtime->server->request
  3.                         name         = 'tableView'
  4.                         id           = tv_id ).
  5. if tv is not initial.
  6.   tv_data = tv->data.
  7.  
  8.   if tv_data->prevselectedrowindex is not initial.
  9.     read table <table> index tv_data->prevselectedrowindex
  10.                        assigning <row>.
  11.     data value type string.
  12.     loop at tv_data->allcolumnnames into feld.
  13.  
  14.       value = tv_data->get_cell_value&#40;
  15.                       row_index = tv_data->prevselectedrowindex
  16.                    column_index = sy-tabix &#41;.
  17.  
  18.       if value is not initial.
  19. * IN SAP-Tabelle speichern
  20.       endif.
  21.     endloop.
  22.  
GeSHi ©


Ich hoffe das reicht.
Logan2437
...
...
 
Posts: 169
Joined: Wed Jun 23, 2004 3:52 pm

Next

Return to BSP + BHTML

Who is online

Users browsing this forum: No registered users and 11 guests