hola, hay alguna forma de recuperar la estructura de una tabla interna, k me pasan como parametro en un metodo, es decir yo puedo acceder a los datos k contiene esa tabla interna en tiempo de ejecución pero, necesito acceder a su estrucutura, a como se llama cada campo de esa tabla, alguien me puede ayudar.
sacar estructura de 1 tabla en tiempo ejecucion
Colapsar
X
-
-
Nose si te servirá ni el motivo de hacer esto, haz
SELECT SINGLE * FROM dd03m
WHERE tabname = l_tabla AND
ddlanguage = 'S' AND
ddtext IS not NULL.
Y te devolverá el nombre de los campos, el meterlos en otra estructura¿? nose si te la quieres crear en tiempo de ejecución, si es asi es algo como
DATA: CODE TYPE TABLE OF RSSOURCE-LINE,
LINEA LIKE RSSOURCE-LINE.
DATA: VARIABLE(10). "ESTA VARIABLE LLEVA EL NOMBRE DE LA TABLA.
VARIABLE = 'ZAPR'.
CLEAR LINEA.
CONCATENATE 'TABLES: ' VARIABLE INTO LINEA SEPARATED BY SPACE.
CONCATENATE LINEA '.' INTO LINEA.
APPEND LINEA TO CODE.
CLEAR LINEA.
CONCATENATE 'DATA TI_' VARIABLE INTO LINEA.
CONCATENATE LINEA 'LIKE' VARIABLE INTO LINEA SEPARATED BY SPACE.
CONCATENATE LINEA 'OCCURS 0 WITH HEADER LINE.' INTO LINEA SEPARATED BY
SPACE..
APPEND LINEA TO CODE.
INSERT REPORT 'ZREPORTDINAMICHR' FROM CODE.
Espero que te sea de ayuda.
Un saludo al foro!Salu2
Carlos!
Comentario
-
Lo único que se me ocurre es que utilices las funciones de las ALV en la cual cuando te creas un catálogo de campos lo tienes ahi, solo te quedaría mover el campo fieldname a itab-descripcion.
Espero t sea utilSalu2
Carlos!
Comentario
-
Claro que existe y sino se inventa, aqui te copio algo de código:
CREATE OBJECT go_custom_container
EXPORTING container_name = 'ALV_CONTAINER'.
CREATE OBJECT go_grid
EXPORTING i_parent = go_custom_container.
CALL METHOD go_grid_err->set_table_for_first_display
EXPORTING i_structure_name = 'ZTACGHR03' "una estructura kmo la tabla is_layout = v_layout_err "No es necesaria
CHANGING it_outtab = g_t_incon_excel. "la tabla con los datos
la estructura se la coje sola,las definiciones de los data los tienes en esta página: http://help.sap.com/saphelp_erp2004/...e3/content.htm
te vienen todos los métodos del objeto.
Haber si esto te vale!
Salu2
Carlos!
Comentario
-
Se me olvidaba, tienes que crear una screen con un container al que asignas el objeto, te copiado x error 2 objetos distintos xq tngo 2 alvs distintas pero el método es ese. Si necesitas modificar el fieldcatalog o el layout dimeloSalu2
Carlos!
Comentario
-
Ahi me has perdido, escribe el código donde te da error o lo que quieres implementar xq asi segun lo explicas no lo entiendo ya que llevo solo un mes con abap y hay muchisimas cosas que nose como hacer o como darselo a entender a sap.
Salu2Salu2
Carlos!
Comentario
-
que estructura hay que pasarle al constructor de la clase
me he creado una estructura del tipo
* Creamos un objeto que hace referencia a nuestra clase.
DATA container TYPE REF TO CL_GUI_CONTAINER.
DATA: MY_OBJ TYPE REF TO ZCL_PEDIDOS.
* Creamos el objeto y lo inicializamos.
* Y la clase genera automaticamente el resultado.
CREATE OBJECT MY_OBJ
EXPORTING I_PARENT = container.
el caso es que ejecuto el alv, y no sale nada, que hay que pasarle a la referencia cl_gui_container, las usado alguna ved,
Para llevar solo un mes controlas muchoComentario
-
Tienes que hacer la llamada a la screen creada y tiene que llamarse el container que te has creado igual que el parámetro que le pasas,
como poco deberias ver la grid vacia. Llamas a la screen
CALL SCREEN '0100'. y dntro del PBO debe ir el código.
data: go_grid TYPE REF TO cl_gui_alv_grid,
go_custom_container TYPE REF TO cl_gui_custom_container,
g_t_incon_excel TYPE STANDARD TABLE OF ztacghr03,
g_i_ztacghr03 TYPE STANDARD TABLE OF ztacghr03.
*-- Creación del obj. en el contenedor
CREATE OBJECT go_custom_container
EXPORTING container_name = 'ALV_CONTAINER'.
*-- Creación de la grid a partir del contenedor
CREATE OBJECT go_grid
EXPORTING i_parent = go_custom_container.
*-- Importo el layout para modificar la visualización
CALL METHOD go_grid->get_frontend_layout
IMPORTING es_layout = v_layout.
v_layout-cwidth_opt = 'X'.
v_layout-zebra = 'X'.
v_layout-grid_title = 'Listado de campos en parametrización'.
v_layout-no_toolbar = 'X'.
*-- Devuelve el layout modificado
CALL METHOD go_grid->set_frontend_layout
EXPORTING is_layout = v_layout.
*-- Llenado de datos
PERFORM load_data_into_grid.
FORM load_data_into_grid.
* read data
SELECT * FROM ztacghr03
INTO TABLE g_i_ztacghr03
WHERE zoperacion = s_ztacghr01-zoperacion.
*-- Carga los datos en la tabla y muestra los datos
CALL METHOD go_grid->set_table_for_first_display
EXPORTING i_structure_name = 'ZTACGHR03'
is_layout = v_layout
CHANGING it_outtab = g_i_ztacghr03.
ENDFORM. " load_data_into_gridSalu2
Carlos!
Comentario
Comentario