MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 24/11/14, 16:44:56
Oboros Oboros is offline
Junior Member
 
Fecha de Ingreso: nov 2014
Mensajes: 2
Question Problema con el ALV TREE

Muy buenas a todos

Tengo una tabla en la que meteré en un futuro documentación, mi intención es visualizar toda la documentación que hay mediante un alv tree. Ahora estoy con la creación en una screen del alv tree, pero me da un error, y la verdad es que no se en que estoy fallando.

Mi intención es que cuando funcione este alv tree, es ponerle abajo 3 botones (lo tengo pintado en el Tainter screener) que serán:

Descargar Documento
Insertar Documento
Eliminar Documento

La verdad es que no se si se podrá hacer lo que quiero, pero quiero intentarlo.

Muchas gracias por todo!

Los campos de la tabla son los siguientes:

Mandt
idCurso -> El curso al que pertenece el documento.
Grupo -> Si el curso es de Mañana, tarde o noche
idNodo -> La id del documento
Nodo1 -> Es la id del padre (si tiene padre)
Nombre -> Nombre del documento
Ruta -> Ruta del documento en el que esta guardado.

Mi código es el siguiente:

MODULE STATUS_0220 OUTPUT.

TYPES: BEGIN OF ty_tree,
mandt TYPE string,
idcurso TYPE string,
grupo TYPE string,
idnodo TYPE string,
nodo1 TYPE string,
nombre TYPE string,
ruta TYPE string,
END OF ty_tree.

DATA: gr_tree TYPE REF TO CL_SALV_TREE,
gt_estructura_arbol TYPE STANDARD TABLE OF ty_tree, "Tabla con la estructura de campos
"para la SALV tree
gr_nodos TYPE REF TO CL_SALV_NODES,
gt_nodo1 TYPE STANDARD TABLE OF zdocumentacion,
gt_nodo2 TYPE STANDARD TABLE OF zdocumentacion,
v_texto TYPE TEXT128,
gr_nodo TYPE REF TO CL_SALV_NODE,
w_documentacion TYPE ty_tree.

FIELD-SYMBOLS: <nodo1> LIKE LINE OF gt_nodo1,
<nodo2> LIKE LINE OF gt_nodo2.

GET PARAMETER ID 'CURS' FIELD v_curso.

CL_SALV_TREE=>FACTORY(
IMPORTING
R_SALV_TREE = gr_tree
CHANGING
T_TABLE = gt_estructura_arbol
).

SELECT *
INTO TABLE gt_nodo1
FROM zdocumentacion
WHERE idcurso = v_curso.

gt_nodo2[] = gt_nodo1[].

gr_nodos = gr_tree->GET_NODES( ).

LOOP AT gt_nodo1 ASSIGNING <nodo1> WHERE nodo1 = ''.

v_texto = <nodo1>-nombre.

gr_nodos->ADD_NODE(
EXPORTING
RELATED_NODE = ''
RELATIONSHIP = IF_SALV_C_NODE_RELATION=>PARENT
TEXT = v_texto
FOLDER = abap_true
RECEIVING
NODE = gr_nodo
).

LOOP AT gt_nodo2 ASSIGNING <nodo2> WHERE nodo1 = <nodo1>-idnodo.
v_texto = <nodo2>-nombre.

w_documentacion-mandt = <nodo2>-mandt.
w_documentacion-idcurso = <nodo2>-idnodo.
w_documentacion-grupo = <nodo2>-grupo.
w_documentacion-nodo1 = <nodo2>-nodo1.
w_documentacion-nombre = <nodo2>-nombre.
w_documentacion-ruta = <nodo2>-ruta.

gr_nodos->ADD_NODE(
EXPORTING
RELATED_NODE = gr_nodo->GET_KEY( )
RELATIONSHIP = IF_SALV_C_NODE_RELATION=>FIRST_CHILD
DATA_ROW = w_documentacion
TEXT = v_texto
FOLDER = abap_false
).

ENDLOOP.
ENDLOOP.

"Ajusta el tamaño de las columnas a su contenido
gr_tree->GET_COLUMNS( )->SET_OPTIMIZE( abap_true ).
gr_tree->get_columns( )->GET_COLUMN( 'Mandt' )->SET_VISIBLE( abap_false ). "Ocultamos columna mandante
gr_tree->get_columns( )->GET_COLUMN( 'idcurso' )->SET_VISIBLE( abap_false ). "Ocultamos columna idcurso
gr_tree->get_columns( )->GET_COLUMN( 'grupo' )->SET_VISIBLE( abap_false ). "Ocultamos columna grupo
gr_tree->get_columns( )->GET_COLUMN( 'idnodo' )->SET_VISIBLE( abap_false ). "Ocultamos columna idnodo
gr_tree->get_columns( )->GET_COLUMN( 'nodo1' )->SET_VISIBLE( abap_false ). "Ocultamos columna nodo1
gr_tree->get_columns( )->GET_COLUMN( 'ruta' )->SET_VISIBLE( abap_false ). "Ocultamos columna ruta

"Ponemos texto en las cabeceras de la columna
gr_tree->get_columns( )->GET_COLUMN( 'Nombre' )->SET_LONG_TEXT( 'Nombre' ).

gr_tree->GET_TREE_SETTINGS( )->SET_HIERARCHY_HEADER( 'Género' ). "Ponemos titulo en la columna del árbol
gr_nodos->EXPAND_ALL( ). "Expande todos los nodos

"Mostramos la ALV
gr_tree->DISPLAY( ).
ENDMODULE. " STATUS_0220 OUTPUT

---------------------------------------------------------------------------------------
¿Habría que pintar la ALV en el Painter o simplemente con esto ya estaria pintado? Nunca me ha dejado claro eso
Responder Con Cita
  #2  
Viejo 04/09/15, 18:00:38
lfarro lfarro is offline
Junior Member
 
Fecha de Ingreso: sep 2014
Mensajes: 4


Lo que quieres hacer es mostrar tu alv en un contenedor?
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 07:10:10.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web