HTMLB Tree Problem

BusinessServerPages; Erstellung von Webapplikationen.

HTMLB Tree Problem

Postby Lucia2458 » Wed Jan 18, 2006 11:43 am

Hallo zusammen,

ich erstelle mir dynamisch einen htmlb:tree, etwa so:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.   loop at lt_groups into wa_groups.
  2.       wa_tab-treeid       = 'cattree'.
  3.       wa_tab-parentid     = wa_groups-parent.
  4.       wa_tab-childid      = wa_groups-id.
  5.       wa_tab-text         = wa_groups-name.
  6.       wa_tab-link         = ''.
  7.       wa_tab-click        = 'Test'.
  8.       wa_tab-STATUS       = 'close'.
  9.       wa_tab-tlevel       = ''.
  10.       append wa_tab to lt_treetab.
  11.  
GeSHi ©


( ist nur ein teil des codes, also die erstellung des Trees funktioniert eigenltich wunderbar )

mein problem liegt jetzt darin, dass ich wenn jemand auf die Node selbst - also ned auf den Pfeil zum öffnen der Verschachtelungen, einen Code ausführen will und ihm die Daten des Angeklickten Nodes übergeben will!
Wie muss ich das jetzt im onInputProcessing Handler programmieren? ich hab es folgendermaßen probiert:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. * event handler for checking and processing user input and
  2. * for defining navigation
  3. CLASS cl_htmlb_manager DEFINITION LOAD.
  4.  
  5. * Optional: test that this is an event from HTMLB library.
  6. IF event_id = cl_htmlb_manager=>event_id.
  7.  
  8. * See if upload is triggered from button
  9.   DATA: event TYPE REF TO cl_htmlb_event.
  10.   event = cl_htmlb_manager=>get_event( runtime->server->request ).
  11.   IF event->name = 'tree' AND event->event_type = 'click'.
  12.     DATA: tree_event TYPE REF TO cl_htmlb_event_tree.
  13.     tree_event ?= event.
  14.   ENDIF.
  15.  
  16.   CASE event->id.
  17.  
  18.     WHEN 'cattree'.
  19.  
  20.  
GeSHi ©


aber wie bekomm ich jetzt die daten aus dem angeklickten Node? Kann mir wer bitte helfen?


vielen Dank im vorraus, falls wer nicht verstanden hat was ich überhaupt will (ich kann mich dazu grad irgendwie schlecht ausdrücken*g* einfach nochmal nachfragen bitte!)
Lucia2458
.
.
 
Posts: 4
Joined: Wed Jan 18, 2006 11:43 am

Postby Lucia2458 » Thu Jan 19, 2006 12:48 pm

Weiss niemand wie ich die Werte des angeklickten Nodes kriege??? :( :( :(
Lucia2458
.
.
 
Posts: 4
Joined: Wed Jan 18, 2006 11:43 am

Postby Henriette5142 » Thu Jan 19, 2006 1:30 pm

also eigentlich bin ich anfänger aber ich versuchs mal.
du hast du in jedem element die parent id. greife auf die zu und erzeuge somit eine referenz auf den ast/die äste. dann die daten abgreifen.
hört sich einfach an, ist aber so :/
Henriette5142
..
..
 
Posts: 72
Joined: Wed Nov 30, 2005 12:15 pm

Postby Lucia2458 » Thu Jan 19, 2006 4:20 pm

ja schon, aber wie kann ich auf die parent id? bei anderen htmlb feldern muss man ja mit ner methode ( GET_DATA ) die daten holen... aber die htmlb tree klasse hat keine GET_DATA methode :(
Lucia2458
.
.
 
Posts: 4
Joined: Wed Jan 18, 2006 11:43 am

Postby Anette4667 » Thu Jan 19, 2006 4:41 pm

Hallo,

meinst Du sowas:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. class cl_htmlb_manager definition load.
  2. if event_id = cl_htmlb_manager=>event_id.
  3.   event = cl_htmlb_manager=>get_event( runtime->server->request ).
  4.  
  5.   if event is not initial and event->name = htmlb_events=>tree.
  6.     data: tree_event type ref to cl_htmlb_event_tree.
  7.     tree_event ?= event.
  8.     case tree_event->name.
  9.       when 'tree'.
  10.         read table <name der tabelle mit treedaten>
  11.                into <wa> with key nodeid = tree_event->node.
  12.         if sy-subrc = 0.
  13. *
  14. *
  15. *
  16.         endif.
  17.     endcase.
  18.   endif.
GeSHi ©




Gruß
TABAP
Anette4667
.
.
 
Posts: 6
Joined: Mon Dec 05, 2005 12:54 pm

Postby Lucia2458 » Thu Jan 19, 2006 6:06 pm

Hallo!

Grundsätzlich mein ich genau das!! bei mir sieht das jetzt so aus:

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. * event handler for checking and processing user input and
  2. * for defining navigation
  3. class cl_htmlb_manager definition load.
  4.  
  5. * Optional: test that this is an event from HTMLB library.
  6. if event_id = cl_htmlb_manager=>event_id.
  7.  
  8. * See if upload is triggered from button
  9.   data: event type ref to cl_htmlb_event.
  10.   event = cl_htmlb_manager=>get_event&#40; runtime->server->request &#41;.
  11.   if event->name = 'tree' and event->event_type = 'click'.
  12.     data: tree_event type ref to cl_htmlb_event_tree.
  13.     tree_event ?= event.
  14.   endif.
  15.  
  16. * htmlb event
  17.   case event->id.
  18.  
  19.     when 'cattree'.
  20.    
  21.         data: lt_treetab type tview,
  22.         wa_tab like line of lt_treetab.
  23.  
  24.         read table lt_treetab
  25.                into wa_tab with key childid = tree_event->node.
  26.         if sy-subrc = 0.
  27.  
  28.         endif.
  29.  
  30.  
  31.  
GeSHi ©


lt_treetab ist mein tree baum im layout... aber er übergibt die daten nicht an den eventhandler, d.h. lt_treetab ist leer :(

habe lt_treetab auch als attribut definiert!
muss da nicht noch ein get_data vom htmlb oder ähnliches her?
Lucia2458
.
.
 
Posts: 4
Joined: Wed Jan 18, 2006 11:43 am

Postby Henriette5142 » Wed Jan 25, 2006 9:42 am

arbeitest du vielleicht stateless ?
kann man wenn du auf die applikation selber gehst einstellen (im register "eigenschaften")
oder du liest die tab im inputprocessing einfach nochmal ein.
Henriette5142
..
..
 
Posts: 72
Joined: Wed Nov 30, 2005 12:15 pm

Postby Melisa2600 » Fri Jan 27, 2006 4:09 pm

Hallo zusammen,

ich habe ein aehnliches Problem wie Karina! Bin aber dank der Tipps in diesem Thread schon ein ganzes Stueck weiter gekommen.

Ich habe aber leider noch das Problem, dass ich keine korrekte Referenz auf meine Knoten bekomme.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1. data: wa_tab type tviewnode.
  2. data: tree_event type ref to cl_htmlb_event_tree.
  3.  
  4.   read table tab
  5.     into wa_tab with key childid = tree_event->node.
GeSHi ©


D.h: Meine Tabelle ist laut Debugger ordnungsgemaess gefuellt! Wenn ich jedoch im Debugger den Wert von tree_event->node abrufen will, kommt lediglich der Hinweis '*** illegal reference ***'!

Vielleicht hat von Euch jemand eine Idee was ich falsch mache!

Viele Gruesse und schon mal Danke im Voraus!
Korbi
Melisa2600
.
.
 
Posts: 3
Joined: Fri Jan 27, 2006 4:09 pm

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

also vielleicht ist es ähnlich wie beim tableview:
irgendwie sowas:
ich weiss aber eventuell manche bezeichnungen nicht aber von der logik her müsste es stimmen.

Code: [Select all] [Expand/Collapse] [Download] (Untitled.txt)
  1.     IF  event             IS NOT INITIAL
  2.     AND event->event_type = 'cellClick'.
  3.       tree_event ?= event.
  4.  
  5. ***   REFERENZ VON tv auf tree Objekt
  6.       tv ?= cl_htmlb_manager=>get_data&#40;
  7.                request =  runtime->server->request
  8.                name    = 'DeinTree'
  9.                id      = 'TreeID' &#41;.
  10. ***   REFERENZ AUF DIE TV DATEN
  11.       tree_event = tv->data.
  12.  
GeSHi ©
Henriette5142
..
..
 
Posts: 72
Joined: Wed Nov 30, 2005 12:15 pm


Return to BSP + BHTML

Who is online

Users browsing this forum: No registered users and 9 guests