MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Desaparecer campos en una tabla interna (foro/showthread.php?t=11411)

Rodolfo Montiel Rivera 29/02/08 18:57:17

Desaparecer campos en una tabla interna
 
Saludos!!!

El problema que tengo es que tengo que generar un reporte dinamicamente y digamos creo una tabla de 5 campos A B C D y E ok pero podria ser que segun la seleccion del usuario el resultado de la tabla solo usase los campos A y D por ejemplo como hago para que B C y E queden fuera de la tabla interna. Se puede?

zonanet 01/03/08 04:25:43

Qué tal Rodolfo,


Una solución que yo he utilizado en alv es condicionar la salida, me explico:

if selección = X
write:/ campoA, campoB.
elseif selección = Y.
write:/ campoA, campoC.
.
.
.
endif.

todo está en la selección que hagas.


Saludos.

vickxo 01/03/08 18:33:48

Intenta ocultando las columnas
 
Por lo que he entendido, el reporte en cuestion es un ALV, de ser asi lo que puedes hacer el modificar el catalogo de salida, es decir tu en tu ALV tienes una funcion (estoy casi seguro por q en ALV todos hemos copiado el codigo de algun lugar jaja) con un codigo parecido a este:

LOOP AT ct_fieldcat INTO temp_fieldcat.
CASE temp_fieldcat-fieldname.
WHEN 'CENTRO_W'.
temp_fieldcat-seltext_l = text-010.
temp_fieldcat-seltext_m = text-010.
temp_fieldcat-seltext_s = text-010.
temp_fieldcat-reptext_ddic = space.
temp_fieldcat-ref_fieldname = space.
temp_fieldcat-ref_tabname = space.
temp_fieldcat-fix_column = ''.

endloop.

Si es asi, de acuerdo a los parametros de seleccion oculta la columna q quieras, para esto, usa:
temp_fieldcat-no_out = 'X'.
Para q te quede el codigo asi:

LOOP AT ct_fieldcat INTO temp_fieldcat.
CASE temp_fieldcat-fieldname.
WHEN 'CENTRO_W'.
temp_fieldcat-seltext_l = text-010.
temp_fieldcat-seltext_m = text-010.
temp_fieldcat-seltext_s = text-010.
temp_fieldcat-reptext_ddic = space.
temp_fieldcat-ref_fieldname = space.
temp_fieldcat-ref_tabname = space.
temp_fieldcat-fix_column = ''.
temp_fieldcat-no_out = 'X'.
endloop.


Sin embargo, si es un reporte plano intenta con read table algo asi:

* it_tabla con los datos en cuetion

loop at it_table where opcion_salida = seleccion.
write wa_table-campo.
endloop.

Lo que haces con el loop condicionado por el where es escluir los datos q no quieres, para esto meteria una columan en mi tabla llamada seleccion...vaya est ya es mas una onda de programacion...
Espero t sirva

Rodolfo Montiel Rivera 03/03/08 17:40:41

Gracias por sus respuestas!!!!

abapconsultoria 04/03/08 11:03:12

Que tal : En el caso que no sea un ALV tambien puedes crear tablas internas de manera dimanica pero esto ya es un poco mas complicado.

Saldos.

Javier.


Husos Horarios son GMT. La hora en este momento es 17:36:54.

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