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 27/06/13, 13:26:48
braisco braisco is offline
Junior Member
 
Fecha de Ingreso: sep 2011
Mensajes: 3
Crear tipo dinámico

¿Es posible crear un tipo (TYPES dinámico?

Necesito crear un tipo dinámico para declarar una tabla interna de ese tipo. Esa tabla interna será para un ALV que tiene que mostrar una serie de campos fijos + una serie de campos dinámicos. Por lo que necesito es hacer un tipo con campos fijos y campos que vengan de un <fs> o algo por el estilo... pero no se como...

Un saludo!!
Responder Con Cita
  #2  
Viejo 27/06/13, 15:38:44
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
Tomado desde la ayuda en línea para CREATE DATA.

PARAMETERS: type(10) TYPE c,
length TYPE i,
decimals TYPE i.

DATA dref TYPE REF TO data.

FIELD-SYMBOLS <fs> TYPE ANY.

START-OF-SELECTION.
TRY.
PERFORM create_data USING type
length
decimals
CHANGING dref.
ASSIGN dref->* TO <fs>.
DESCRIBE FIELD <fs> TYPE type
LENGTH length IN BYTE MODE
DECIMALS decimals.
WRITE: type, length, decimals.
CATCH cx_sy_create_data_error.
WRITE: 'Error creating', type, length, decimals.
ENDTRY.

FORM create_data USING value(typ) TYPE c
value(len) TYPE i
value(dec) TYPE i
CHANGING dref TYPE REF TO data
RAISING cx_sy_create_data_error.
TRANSLATE typ TO LOWER CASE.
CASE typ.
WHEN 'd' OR 'f' OR 'i' OR 'string' OR 't' OR 'xstring'.
CREATE DATA dref TYPE (typ).
WHEN 'c' OR 'n' OR 'x'.
CREATE DATA dref TYPE (typ) LENGTH len.
WHEN 'p'.
CREATE DATA dref TYPE p LENGTH len DECIMALS dec.
WHEN OTHERS.
RAISE EXCEPTION TYPE cx_sy_create_data_error.
ENDCASE.
ENDFORM.
Responder Con Cita
  #3  
Viejo 27/06/13, 17:38:24
joau_fedipe joau_fedipe is offline
Member
 
Fecha de Ingreso: oct 2006
Mensajes: 79
Hola Braisco,
Si vas a mostrar campos dinámicos en un ALV no tienes que definir ningún tipo. Lo único que debes hacer antes de mostrar el ALV es lo siguiente:
Al definir el layout para los fieldcat aquellos campos que son dinamicos tendrás que decidir si se muestran o no. Si no se van a mostrar no lo defines en el layout pero si se van a mostrar si lo tienes que definir en el layout.

Una condición para mostrar estos campos dinamicos puede ser: si en la tabla interna este campo tiene información lo muestro pero si no tiene información no lo muestro.

Espero que lo explicado te ayude.
Saludos.
Responder Con Cita
  #4  
Viejo 28/06/13, 09:19:36
braisco braisco is offline
Junior Member
 
Fecha de Ingreso: sep 2011
Mensajes: 3
Gracias a los dos por contestar!

El problema no es el catálogo de campos, el problema lo tengo a la hora de declarar la tabla que contiene los datos a mostrar.

No se como declarar una parte fija y una parte dinámica.

Algo como:



Esto por supuesto no funciona...
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 23:49:08.


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