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
Ir a la versión completa