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.