wenn alle Stricke reissen, kannst du dir über GET CURSOR FIELD die Spalte zurückgeben lassen und deine interne Tabelle dann danach sortieren. Die Struktur des TCs sollte aber auch sagen, welche Spalte bei Auswahl gewählt wurde, wenn Spaltenmarkierung gewählt wurde.
wie auch index bereits geschrieben hat steht die Information in der "Control" Struktur deines TableControls.
In dieser Struktur ist das Feld Cols eine Tabelle, die alle Spaltenamen und das Feld "selected"enthält. Damit es klarer wird einfach mal die Typgruppe 'CXTAB' anschauen.
Hi danke für die antworten, komme aber nicht wirklich weiter.
hab mir folgenden schnipsel aus SAP rauskopiert:
FIELD-SYMBOLS <tc1> TYPE cxtab_control.
ASSIGN (va_tc1) TO <tc1>.
<tc1>-col_sel_mode = 1.
hmm somit kann ich zumindest die felder col_sel_mode etc verändern.
Aber weiter komme ich leider nicht.
Beim debuggen sehe ich zumindest im Feld "cols" meine Tabellenspaltenbezeichnungen, wenn ich mir eine Spalte ansehen komme ich dann plötzlich zum selected Feld -> in welchen Untiefen grab ich den da rum ...
bzw wie funktioniert das ....
wenn du Spaltenmarkierung ausgewählt hast, brauchst du nur noch
nach selected = true zu suchen und deine interne Tabelle danach zu sortieren. Wenn dann in PBO die Tabelle neu in den TC geschoben wird ist sie richtig sortiert. Anbei eine Codestrecke.
DATA: sl_cols TYPE cxtab_column,
vl_dummy(50) TYPE c.
CLEAR vg_sort_name.
LOOP AT c_tv_d1500-cols INTO sl_cols WHERE selected = cg_true.
SPLIT sl_cols-screen-name AT '-' INTO vl_dummy vg_sort_name.
super für deine Lösung, funkktioniert einwandfrei !!!!
hätte jedoch noch Fragen:
1)
warum funktioniert:
selected = cx_true (cg_true hat bei mir nicht funktioniert, cx_true ist nirgends bei mir im Programm definiert !!) selected = 'X' funktioniert ebenfalls, das kann ich auch nachvollziehen wenn ich debugge.
2)
das Feld "cols" hat die Struktur von SCREEN und hat zusätzlich noch die Felder index, selected etc. und ist eigentlich eine interne Tabelle ???
cg_true ist meine constante mit dem boolean-Wert 'X', ich denke, dass ist das gleiche wie dein cx_xxx oder die SAP-Konstante true.
cxtab_control-cols ist eine eingebundene Tabelle die alle Spalten des TC beschreibt und wie SCREEN aufgebaut ist.
Schau einfach mal in die Hilfe bei Dynproprogrammierung unter Table-Control nach, da wird die Struktur cxtab_control beschrieben, sowie eine Erklärung für alle Manipulationsmöglichkeiten.