Desaparecer campos en una tabla interna

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Rodolfo Montiel Rivera
    Member
    • oct
    • 92

    #1

    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?
    01010000
    01001010
    10011000
    10100001

    De Byte a Beat.
  • zonanet
    Senior Member
    • mar
    • 195

    #2
    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.

    Comentario

    • vickxo
      Senior Member
      • nov
      • 118

      #3
      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
      Editado por última vez por vickxo; 01/03/2008, 18:39:51.
      el tema esta en hacer la pregunta correcta...

      Comentario

      • Rodolfo Montiel Rivera
        Member
        • oct
        • 92

        #4
        Gracias por sus respuestas!!!!
        01010000
        01001010
        10011000
        10100001

        De Byte a Beat.

        Comentario

        • abapconsultoria
          Senior Member
          • ene
          • 101

          #5
          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.
          ABAPCONSULTORIA@GMAIL.COM

          www.consultoriaabap.blogspot.com

          Lo importante no es saber sino saber quien es el que sabe

          Comentario

          Trabajando...