MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Utilizar estructura para un LOOP AT (foro/showthread.php?t=7117)

BY_MY 16/08/07 15:30:30

Utilizar estructura para un LOOP AT
 
Hola compañeros.


Tengo una cuestion que aunque se puede solucionar declarandolo como tablas separadas preferiria mantener la estructura que he declarado.

Les cuento.

Me declaro una estructura con varias "tablas" dentro.

TYPES:
BEGIN OF ty_statdir,
summary TYPE sapwlsumry OCCURS 0,
hitlist_dbcalls TYPE sapwlhitl OCCURS 0,
hitlist_respti TYPE sapwlhitl OCCURS 0,
accountstat_tasktype TYPE sapwluswlx OCCURS 0,
time_stat TYPE sapwltimes OCCURS 0,
table_record_stat TYPE sapwltabtr OCCURS 0,
application_stat TYPE sapwlustcx OCCURS 0,
* function_code_stat TYPE sapwlfcode OCCURS 0,
terminal_io_stat TYPE sapwltmbyt OCCURS 0,
tasktype_stat TYPE sapwltskti OCCURS 0,
user_stat TYPE sapwluenti OCCURS 0,
memory_stat TYPE sapwlmem OCCURS 0,
rfc_client_stat TYPE sapwlrfcc OCCURS 0,
rfc_server_stat TYPE sapwlrfcs OCCURS 0,
rfc_client_dest_stat TYPE sapwlrfccd OCCURS 0,
* instances TYPE sapwlinst OCCURS 0,
rfc_server_dest_stat TYPE sapwlrfcsd OCCURS 0,
spool_activity_stat TYPE sapwlspoac OCCURS 0,
spool_print_stat TYPE sapwlspopr,
dbprocedure_stat TYPE SAPWLDBPRO OCCURS 0,
* detailtcode_stat TYPE SAPWLTCDET OCCURS 0,
* Application Statistic
as_statistic TYPE sapwlvdas OCCURS 0,
as_hitl_dbcalls TYPE sapwlashit OCCURS 0,
as_hitl_respti TYPE sapwlashit OCCURS 0,
* externsys TYPE sapwlsrvex OCCURS 0,
END OF ty_statdir,


Luego declaro la tabla.

DATA: ex_data TYPE STANDARD TABLE OF ty_statdir WITH HEADER LINE.


Y despues me gustaria hacer un

LOOP AT ex_data-time_stat.
MOVE ENTRY_ID TO it_datatab-ENTRY_ID.
MOVE Count TO it_datatab-Count.
MOVE RESPTI TO it_datatab-RESPTI.
* MOVE RESPTI2 TO it_datatab-RESPTI2.
it_datatab-RESPTI2 = RESPTI/Count.
MOVE CPUTI TO it_datatab-CPUTI.
* MOVE CPUTI2 TO it_datatab-CPUTI2.
it_datatab-CPUTI2 = CPUTI/Count.

APPEND it_datatab.
ENDLOOP.
El problema es que al compilar ....

The internal table "EX_DATA-TIME_STAT" has no header line - explicitspecification of an output area with "INTO wa" or "ASSIGNING <fs>" is
required.


Alguna sugerencia o tendre que terminar declarando tablas individuales?


GRACIAS por anticipado.

BY_MY 16/08/07 18:08:19

Basicamente lo que quiero es declararme una tabla "with header line" y que dentro de cada registro contenga tablas con cabecera tambien "with header line" para poder recorrer estas con un LOOP AT.


Supongo que no sera tan dificil y es cierto que se puede solucionar declarando X tablas por separado pero si alguien lo ha echo..... Lo agradeceria muchisimo.


Saludos.

webraulmp 17/08/07 09:06:21

Hombre,

no has pensado la posibilidad de declarar workareas? No es necesario que declares más tablas internas individuales si no estructuras con los mismos campos que las tablas que has declarado, o si no algo más complejo sería trabajar con field-symbols...

conrad10ar 17/08/07 17:06:17

Hola,

The internal table "EX_DATA-TIME_STAT" has no header line - explicitspecification of an output area with "INTO wa" or "ASSIGNING <fs>" is
required.

Hola ahí te está diciendo el problema, que uses un work area o un field-symbol.

Lo más simple para mi es que declares:

data: wa_exdata like ex_data.

y uses esa work area.

Saludos!

BY_MY 20/08/07 08:46:42

Hola.

Muchas gracias por la respuesta, la verdad es que eso ya lo intente y me da muchos problemas al mover los datos y no me gustaria hacerlo asi. El problema es que las tablas no tienen cabecera y me gustaria saber si en esta estructura de datos podria definir las tablas con cabecera y si es asi como hacerlo.


Atentamente un saludo.


Husos Horarios son GMT. La hora en este momento es 10:24:01.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web