sábado, 14 de agosto de 2010

Create_data (tabla creada por parametro)

Con este programa solo pido el nombre de una tabla y les brindo pa posibilidad de operarla sin importar que tabla se haya ingrasado por  parámetro. Luego de ingresar  la table te mostrare una lista del contenido de esa tabla.


*&---------------------------------------------------------------------*
*& Report  ZCREATE_DATA
*&---------------------------------------------------------------------*
*&Creo una tabla interna dinamicamente partiendo desde un parametro
*&Necesario trabajar con <fs>
*&---------------------------------------------------------------------*

REPORT  ZCREATE_DATA.

DATA gt_table TYPE REF TO data.

FIELD-SYMBOLS:
      <FST> TYPE ANY TABLE"PARA OPERAR LA TABLA
      <FS> TYPE ANY"TRABAJARA COMO WORKAREA
      <FS2> TYPE ANY."

PARAMETERS pa_table TYPE dd02l-tabname. "TIPO NOMBRE DE TABLA EN SAP

START-OF-SELECTION.

  " Creo una tabla dinamicamente y la asigno al field-symbol <FST>
  CREATE DATA gt_table TYPE STANDARD TABLE OF (pa_table) WITH NON-UNIQUE DEFAULT KEY.
  ASSIGN gt_table->* TO <FST>.
  " <FST> APUNTA A LA TABLA CREADA, SIENDO NECESARIA LA REFERANCIA
  " PARA USARLA EN EL SELECT.

*SELECT DE LA TABLA INGRESADA
  SELECT *
  FROM (pa_table)
  UP TO 100 ROWS
  INTO CORRESPONDING FIELDS OF TABLE <FST>.
* RECORRO LA TABLA CON EL LOOP.
* USO EL <FS> COMO WA DE LA TABLA
  LOOP AT <FST> ASSIGNING <FS>.
*RECORRO CADA (COLUMNA) DE LA TABLA ASIGNANDO CADA COMPONENTE
*DE LA ESTRUCTURA <FS> A <FS2>
    DO.
*SE TRADUCE: EL COMPONENTE NUMERO (INDEX) DE LA ESTRUCTURA LEIDA
*            ASIGNALO A EL <FS2>. HACIENDO QUE <FS2> TENGA EL VALOR
*            DE ESE COMPONENTE PARA ASI IMPRIMIRLO.
      ASSIGN COMPONENT sy-index OF STRUCTURE <FS> TO <FS2>.
      IF sy-subrc <> 0.
        NEW-LINE.
        EXIT.
      ENDIF.
      WRITE <FS2>.
    ENDDO.
  ENDLOOP.

No hay comentarios:

Publicar un comentario