tableView: Eingabedaten und Selekt-Daten zurück in transp. T

BusinessServerPages; Erstellung von Webapplikationen.

tableView: Eingabedaten und Selekt-Daten zurück in transp. T

Postby Levent866 » Thu Jun 29, 2006 2:14 pm

Hallo SAP-Expertenteam,

bin ein totaler Neuling bei SAP und darf prompt eine Studienarbeit machen. So muss ich ein paar Daten aus SAP anzeigen lassen. Dafür hab ich mir eine Struktur erstellt um die entsprechenden Felder zusammeln, die ich benötige. Und gleich noch eine Tabellentyp aus der Struktur gemacht, da man ja nur Tabellen in HTMLB anzeigen lassen kann. Um die TAbelle auf der Webseite darzustellen hab ich <tableView ...>benutzt. Da ich drei Eingabefelder für jede Zeile benötige musste ich für jedes Feld der Tabelle (ferner ist natürlich die Struktur gemeint) ein tableViewColumn erstellen, soweit auch kein Problem. Die Daten die ich brauche werden richtig angezeigt nur möchte ich bei manchen Zeilen etwas in die Eingabefelder eintragen und diese Daten dann in eine transparente Tabelle schreiben (komplett). Also alles was in dem tableView steht (Selektierung mit der Struktur und Benutzereingaben) soll in die transp. Tabelle geschrieben werden. Leider hab ich keine Idee wie ich mit einmal alle Daten von dem tableView heraushole!?!?
Die Eingabefelder sind dabei eine Checkbox, ein Datumsfeld und ein Inputfeld...

Ein Problem hab ich da auch gleich noch mit dem Datumsfeld

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. <htmlb:tableViewColumn columnName = "X_DAT"        <%-- &Auml;nderungsdatum--%>
  2.          type             = "user"
  3.          title            = "<%= ztitle_change_date %>"
  4.          cellInvalidKey   = "invalid"
  5.          cellDisabledKey  = "disabled"
  6.          >
  7.             <htmlb:inputField    id = "X_DAT"
  8.                width            = "100"
  9.                type             = "Date"
  10.                showHelp         = "true"
  11.                firstDayOfWeek   = "2" />
  12.          </htmlb:tableViewColumn>
  13.  
GeSHi ©

Ich kann nur in der ersten Zeile der tableView ein Datum eintragen. In die anderen Felder (2. Zeile , 3. Zeile....) kann man gar nicht erst den Cursor positionieren.

Hat jemand eine Idee?

Danke Gruß citoki
Levent866
.
.
 
Posts: 5
Joined: Thu Jun 29, 2006 2:14 pm

_edit_

Postby Levent866 » Fri Jun 30, 2006 2:49 pm

wollte nur noch ma hinzufügen das ich die komplette Tabelle einlesen möchte und nicht nur bestimmte Felder...

zur Zeit hab ich mein OnInputProcessing folgendermaßen nach ein paar Gedankenstützen aus diesem Thread https://apentia.com/forum/servlet/hf.we ... &sorting=1
gestaltet:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. DATA: tv TYPE REF TO cl_htmlb_tableview.
  2. DATA: tv_data TYPE REF TO cl_htmlb_event_tableview.
  3. DATA: string1 TYPE string.
  4.  
  5. FIELD-SYMBOLS: <row> TYPE ANY,
  6.                <col> TYPE ANY.
  7.  
  8. tv ?= CL_HTMLB_MANAGER=>GET_DATA(
  9. request = runtime->server->request
  10. name    = 'tableView'
  11. id      = tv_event->id ).
  12.  
  13. tv_data = tv->data.
  14. tv_data TYPE REF TO cl_htmlb_tableview.
  15.  
  16. ASSIGN tv_data->row_index TO <row>.
  17. ASSIGN tv_data->column_index TO <col>.
  18.  
  19. string1 = tv_data->get_cell_value(
  20.    row_index = <row> column_index = <col> )
  21.  
GeSHi ©
Für die Definition der Variablen ...

Und für den ButtonEvent hab ich den Button ausgewählt und dann die LOOP Schleife genommen. Aber ich will das ja in eine
Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. IF event IS NOT INITIAL
  2. AND event->event_name = 'button'
  3. AND event->event_id = 'bt_accept'.
  4.  
  5.   LOOP AT tv_data->allcolumnnames INTO LAB_STRUK-felder.
  6.     value = tv_data->get_cell_value(
  7.         row_index    = tv_data->prevselectedrowindex
  8.         column_index = sy-tabix ).
  9.   ENDLOOP.
  10.  
GeSHi ©
Aber mit den LOOPs hab ich noch so meine Problemchen. Jedes Feld zeilenweise zu lesen und in eine Struktur schreiben
Levent866
.
.
 
Posts: 5
Joined: Thu Jun 29, 2006 2:14 pm

Re: _edit_

Postby Lili881 » Sat Jul 15, 2006 1:21 pm

Hi ctioki,
ich glaube, dass das Verfahren, dass Sie verwenden, um die Daten aus dem TableView wieder zu extrahieren nicht state-of-the-art ist und nur sehr umständlich (mit vielen Loops) abzubilden ist.

Wir verwenden für komplexe Dateneingaben die Darstellung von BSP mit MVC(Model View Control). Im Rahmen der Programmierung von BSP über MVC bietet die SAP mit dem so genannten "Modelbinding" eine tolle Möglichkeit, wie die Daten - ohne großen Programmieraufwand - aus der BSP direkt wieder in die Datenquelle übergeben werden können.

Weiterhin ist die Verwendung von so genannten TableViewIterator (ITERATOREN) zur Definition von Spalten und Layout einer TableView viel besser, als die Definition des Tabellenaufbaus im Layoutteil der BSP-Seite.

Sehen Sie sich mal unter help.sap.com bzw. dem SAP Developernetwork der SAP unter sdn.sap.com um. Hier gibt es sehr viel zu diesem Verfahren. Sehr nützlich sind auch immer die Beispielprogramme der SAP (BSP-Anwendungen SBSPEXT_*).

MfG
Oliver Lamp
Lili881
..
..
 
Posts: 16
Joined: Wed Nov 03, 2004 12:56 am


Return to BSP + BHTML

Who is online

Users browsing this forum: No registered users and 4 guests