#1
|
|||
|
|||
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 |
#2
|
|||
|
|||
Lo que quieres hacer es mostrar tu alv en un contenedor? |
Herramientas | Buscar en Tema |
Desplegado | |
|
|