PDA

Ver la Versión Completa : TableControl:Ordena columnas alfabeticamente


alma rosa
24/07/12, 22:43:58
hola¡¡¡

Ayuda!!! al momento de correr un un programa y visualizar el Table Control donde se actualiza informacion,las columnas aparecen ordenadas de forma distinta a mi screen (que tiene el control ) y mi estructura )que contiene la informacion), por alguna extraña razon se acomodan por alfabeticamente por el nombre de la columna.

y todo surgio porque agregue una columnas para actualizar informacion y eso funciona sin problema. ya probe poniendo al pai y pbo original antes de la modificacion y se siguen desacomodando.

ya no se que hacerle, pls si alguien me podria orientar se los agradecere.
Alma Rosa

alma rosa
13/09/12, 16:32:52
Desconozco el origen del problema pero ya lo resolví, manipulando los índex:Investigando vi que para "detalle_3" hay un campo estructurado que es un tipo de tabla con características generales del Table Control como son "FIXED_COLS", "LINES"," TOP_LINE", " CURRENT_LINE ", " LEFT_COL", " LINE_SEL_MODE" "COL_SEL_MODE", "LINE_SELECTOR", "V_SCROLL", "H_GRID", "V_GRID", "COLS", "INVISIBLE"(algunos se pueden cambiara otros no).
En mi caso para el campo “detalle_3-COLS” es igual a “Table[31x328]” porque son 31 columnas de mi Table Control, si doy doble clikc a ese campo aparece una tabla interna donde se pueden modificar las características especificas de cada campo/columna. A mí los que me interesaron fue "SCREEN-NAME" y "INDEX" con referencia en uno modifique el otro.
***En mi programa ya existía lo siguiente
*&SPWIZARD: LINES OF TABLECONTROL 'DETALLE'
DATA: G_DETALLE_LINES LIKE SY-LOOPC.
DATA: g_detalle_3_lines LIKE sy-loopc.
CONTROLS: detalle_3 TYPE TABLEVIEW USING SCREEN 3000.
**AGREGUE
DATA: col LIKE LINE OF detalle_3-COLS.
*1.-Mandante(mandt)->(index original:11->index deseado:1)
READ table detalle_3-COLS INTO col WITH
KEY SCREEN-NAME = 'I_ZSDE010-MANDT'.
IF sy-subrc = 0.
col-INDEX = 1.
MODIFY detalle_3-COLS FROM col INDEX SY-TABIX.
ENDIF.

*2.-Num._Ctrl (tknum)->(index original 26->index deseado2)
READ table detalle_3-COLS INTO col WITH
KEY SCREEN-NAME = 'I_ZSDE010-TKNUM'.
IF sy-subrc = 0.
col-INDEX = 2.
MODIFY detalle_3-COLS FROM col INDEX SY-TABIX.
ENDIF.

.
.
.
y asi sucesivamente, espero les sirva :)