Hallo Experten,
nach etlichen Problemen im ALV haben wir nun beschlossen, auf ein Table Control in unserer WebDynpro zu wechseln. Nun ist so etwas für mich aber totales Neuland. Und da ergeben sich für mich ganz grundsätzliche Probleme, von denen ich glaube, dass sie einfach zu lösen sind und ich nur den Wald vor lauter Bäumen ned sehe. Vielleicht kann mir ja da ja jemand helfen?
Momentan steh ich an der Stelle eine einzelne Zelle in meinem Table Control zu sperren.
Die Zellen der betreffenden Spalte sind alles Input Fields, die auch editierbar sind.
Um nun diese Zelle zu sperren, muss ich ja (prinzipiell nur) die Read Only Eigenschaft auf TRUE setzen. Da ich dafür absolut keine Möglichkeit finde, wie ich das bewerkstellige, habe ich mich für die Zellvarianten entschieden und kurzerhand eine Zellvariante erstellt, in der das Input Field eine TextView ist.
Nach vielem Googlen bin ich dabei auf folgende Code Schnipsel gestoßen, den ich auch eingebaut habe:
Code: Alles auswählen.
DATA: wd_standard_cell TYPE REF TO cl_wd_table_standard_cell,
wd_table_column TYPE REF TO cl_wd_table_column.
wd_table_column ?= view->get_element( 'TABLE_MATNR' ).
wd_table_column->SET_SELECTED_CELL_VARIANT( 'matnr_read_only' ).
Dabei wähle ich die Spalte des Table Control aus, in der ich Zellenweise Zellen sperren möchte.
Dazu loope ich über die Tabelle, die mir auch mein Table Control befüllt und sage, dass immer wenn in einem anderen Feld ein bestimmter Wert auftaucht, obiger Code ausgeführt werden soll.
Das wären in meinem beispiel bei 15 Zeilen dann 5 Zeilen in denen MATNR gesperrt werden müsste.
Aber mir wird dann gleich die komplette Spalte gesperrt und nicht nur eine Zelle.
Daher habe ich mir eine Hilfstabelle gebastelt die im ersten Schritt über die Ausgangstabelle loopt und dabei bei dem bestimmten Wert den Wert der Zell Variante 'matnr_read_only' einträgt. Das funktioniert auch soweit.
Diese Tabelle existiert dann auch als Knoten in meinem Context. In den Eigenschaften der Table Control habe ich dann das Attribut des Knotens an die Read Only Eigenschaft der MATNR Spalte gebunden.
Beim Ausführen tut sich gar nicht.
Dann kam ich auf die Idee, dass ich obigen Code vielleicht noch einmal ausführen muss um zeilenweise das Attribut zu ändern in der Spalte. Und genau da hänge ich jetzt.
Ich weiß einfach nicht, wie ich das nun vermittelt kriege, dass die WebDynpro sich den jeweiligen Wert der Zellvariante aus der kleinen Tabelle zieht und damit dann mein Table Control ändert.
Weiß da jemand Rat? Komme leider gar nicht weiter und dreh mich irgendwie nur im Kreis.