Programación General > ABAP

 Otro Ejemplo

(1/1)

RadicalEd:
Aqui hay otro ejemplo.
Blag lo explicas por favor

--- Código: Text ---REPORT ZZBGS008 .*-----------------------------------------------------------------------** Example program: Use of FIELD-GROUPS, COLLECT, SORT, EXTRACT          **-----------------------------------------------------------------------*TABLES: T001. DATA: BEGIN OF RESULT OCCURS 100.DATA:   MANDT LIKE T001-MANDT,        BUKRS LIKE T001-BUKRS,        BUTXT LIKE T001-BUTXT,        ORT01 LIKE T001-ORT01,        LAND1 LIKE T001-LAND1,        WAERS LIKE T001-WAERS,        SPRAS LIKE T001-SPRAS,        KTOPL LIKE T001-KTOPL. "Bemærk at da dette felt ikke er med i                               "insert vil feltet være tomt.DATA: END OF RESULT. FIELD-GROUPS: HEADER, DATA.  INSERT    T001-SPRAS                         " SPROGNØGLE    T001-MANDT                         " KLIENT    T001-BUKRS                         " FIRMAKODE  INTO HEADER.   INSERT    T001-BUTXT                         "    T001-ORT01                         " BY    T001-LAND1                         " LANDENØGLE    T001-WAERS                         " VALUTANØGLE  INTO DATA. START-OF-SELECTION.   REFRESH RESULT.  SELECT * FROM T001.    EXTRACT DATA.  ENDSELECT. END-OF-SELECTION. * Når der sorteres uden angivelse af tabelnavn, bliver der automatisk* sorteret på field-groups Header. Husk at skrive en kommentar hvis du* anvender sort uden angivelse af tabelnavn. * bemærk at der sorteres på alle ikke nummeriske felter  SORT BY T001-SPRAS T001-MANDT T001-BUKRS. * Når der loopes uden angivelse af tabelnavn, bliver der automatisk* loopet på field-group header + data. Husk at skrive en kommentar hvis* du ikke looper uden at angive tabelnavn.  LOOP.    MOVE-CORRESPONDING T001 TO RESULT.    APPEND RESULT.  ENDLOOP.    
Y mas ejemplos aca y aca pero se tienen que registrar
Ojala les guste.
Chao

Blag:
Bueno.....en realidad, nunca he tenido que utilizar ni FIELD-GROUPS, ni tampoco EXTRACT.....Y la verdad es que no les veo mucho uso.....Pero todo sea por el foro  :smartass:


--- Citar ---REPORT ZZBGS008 . "--> Nombre del Reporte o Programa
*-----------------------------------------------------------------------------------------*
* Example program: Use of FIELD-GROUPS, COLLECT, SORT, EXTRACT          *
*-----------------------------------------------------------------------------------------*
TABLES: T001. "--> Tabla que vamos a utilizar (T001 - Sociedades)

"-->Creamos una tabla interna llamada Resultados, y que puede almacenar hasta
"-->100 Registros....
DATA: BEGIN OF RESULT OCCURS 100. 
DATA:   MANDT LIKE T001-MANDT,   "Mandate o Entorno de SAP
            BUKRS LIKE T001-BUKRS,    "Sociedad
            BUTXT LIKE T001-BUTXT,     "Dirección
            ORT01 LIKE T001-ORT01,     "Distrito
            LAND1 LIKE T001-LAND1,     "Ciudad
            WAERS LIKE T001-WAERS,   "Moneda
            SPRAS LIKE T001-SPRAS,    "Idioma 
            KTOPL LIKE T001-KTOPL.      "No me acuerdo -:(
DATA: END OF RESULT.

"-->Creamos 2 field groups, que son como tipos o estructuras, y que almacenan
"-->varios valores dentro de un solo nombre.
FIELD-GROUPS: HEADER, DATA.
"--> Con el insert, agregamos campos a nuestro field group o estructura
 INSERT
   T001-SPRAS                         "Idioma
   T001-MANDT                         "Mandante
   T001-BUKRS                         "Sociedad
 INTO HEADER.

 INSERT
   T001-BUTXT                         "Dirección
   T001-ORT01                         "Distrito
   T001-LAND1                         "Ciudad
   T001-WAERS                        "Moneda
 INTO DATA.

START-OF-SELECTION. "-->Indica que vamos a comenzar el programa

 REFRESH RESULT. "--> Limpia el contenido de la tabla interna

 SELECT * FROM T001. "Seleccionamos todos los datos de la tabla T001
-->Cuando ejecutamos el EXTRACT por primera vez, tomamos solamente
-->el primer registro y lo guardamos dentro de nuestro field group
   EXTRACT DATA.
 ENDSELECT.

END-OF-SELECTION. "-->Indica que el programa ha terminado, pero aún podemos
"-->seguir programando -:D

"-->Ordenamos los datos de la tabla T0001 primero por Idioma, luego por mandante
"-->y finalmenete por sociedad
 SORT BY T001-SPRAS T001-MANDT T001-BUKRS.

"-->Hacemos un loop...que viene a ser lo mismo que un while....
 LOOP.
"--> El move-corresponding moverá todos los datos de la tabla T001 a nuestra
"-->tabla interna Result, siempre y cuando los nombres de ambas tablas sean
"-->los mismos....
   MOVE-CORRESPONDING T001 TO RESULT.
"-->Agrega los datos al final del último registro de la tabla interna
   APPEND RESULT.
 ENDLOOP.

--- Fin de la cita ---

Saludos,

Blag  :smartass:

Navegación

[0] Índice de Mensajes

Ir a la versión completa