PDA

Ver la Versión Completa : problema cargar tabla interna a excel


pancho6102
07/10/10, 22:26:37
que tal foro estoy realizando un reporte donde lleno una tabla con la siguiente definicion de estructura:
BEGIN OF s_excel,
vers type C LENGTH 3,
vcode type c LENGTH 5,
deal type c LENGTH 10,
matnr type c LENGTH 18,
oquality type c LENGTH 5,
message type c LENGTH 30,
price type c LENGTH 11,
ubication type c LENGTH 10,
END OF s_excel,
a una it_excel.

al imprimer se muestran mas o menos asi:
1.0 00007 V735 008-290-00 1 7 1189.10 08C04
los espacios es donde acaba campo.

ya llena la tabla con varios registros como este uso la funcion:
CALL FUNCTION 'MS_EXCEL_OLE_STANDARD_DAT'
EXPORTING
FILE_NAME = 'c:\pruebaexcel2'
* CREATE_PIVOT =
* DATA_SHEET_NAME = ' '
* PIVOT_SHEET_NAME = ' '
* PASSWORD = ' '
* PASSWORD_OPTION = 0
TABLES
* PIVOT_FIELD_TAB =
DATA_TAB = it_excel
* FIELDNAMES =
* EXCEPTIONS
* FILE_NOT_EXIST = 1
* FILENAME_EXPECTED = 2
* COMMUNICATION_ERROR = 3
* OLE_OBJECT_METHOD_ERROR = 4
* OLE_OBJECT_PROPERTY_ERROR = 5
* INVALID_PIVOT_FIELDS = 6
* DOWNLOAD_PROBLEM = 7
* OTHERS = 8
.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.

el resultado si es un excel con cada campo independiente en cada celda pero hace un cambio inesperado en un campo lo muestra asi el regitro en el excel
1 7 V735 -008 290 00 1 1189.1 08C04

el tercer campo matnr en la tabla esta asi: 008-290-00 pero en el excel me lo muestra asi: -008 290 00.

quiero que conserve el formato que como esta en la tabla igual en vers lleva 1.0 y en el excel es solo 1 necesito de su ayuda, para saber que es lo que me esta fallando ya cheque para metros pero no veo alguno que me diga algo al respecto.

gracias.

pancho6102
19/10/10, 19:53:50
Desgraciadamente no encontre una solucion directa para hacer esto asi que en el ws_dowload puse que para mi tabla de salida al crear el archivo lo ponga en extension .csv osea filename ejemplo c:\file.csv este formato al abrir directamente en excel me los pone uno en cada celda pero tiene un inconveniente que cuado hay un dato por ejemplo 234E06 no me lo toma como tipo texto sino que lo toma como un exponencial a la 06.

asi que mejor lo puse de salida como archivo normal en txt y le dije al usuario que primero abriera su excel y desde ahi le diera abrir al archivo y asi le pide propiedades de el archvi como separador en este caso espacio y ponerle a las columnas tipo texto y no general.

espero y a alguien le sirva esto y si hay otra forma ojala y la posteen para saberla gracias.