PDA

Ver la Versión Completa : Espacios en Blanco en Download


gerbeltran
09/01/08, 10:18:28
Buenos dias , alguien sabe de alguna función que me permita generar un archivo en un directorio servidor(del tipo ' \\') a partir de una tabla interna,exceptuando gui_download que no me permiten usar. La función en cuestión me tendría que tomar también los espacios en blanco que tenga los campos de mi tabla, aunque los mismos estén al final de la linea. Comento esto porque tengo una función Zeta que hace todo bien pero me elimina los espacios en blanco que tenga sobre el final de linea.


Saludos,
Germán.

robert_milan
09/01/08, 10:45:23
hola;

yo te recomendaria que hicieras una tabla interna it_file con la linea lo mas ancha posible

i mandas los campos de tus tablas internas y te resperara los espacios

por ejemplo

tienes una tabla it_hola con dos campos de 20 c y otro con 10

cuando le hags un loop at it_hola
le das move it_hola to it_file-line.

entonces con esto te respetara los espacios.


para descargarlo usa la siguiente instruccion 'WS_DOWNLOAD'

gerbeltran
09/01/08, 13:49:32
Robert es asi como lo estoy haciendo actualmente, en una tabla tengo todos los campos(y el ultimo es un char con 60 espacios en blanco) y lo paso a otra tabla con un solo campo de linea(con una cantidad de caracteres bastante mayor al total) pero cuando genero el archivo con ws_download me saca dichos espacios.
Si sabes de alguna otra manera te lo agradeceré.

Saludos,
German

robert_milan
09/01/08, 13:58:22
mira es lo malo de sap, que no es posible hacer eso, pero lo que puedes hacer es que al final de los 60 caracteres poner un simbolo con el cual delimitaras los 60 caracteres y ya el usuario tendra que modificar ese simbolo :D, no hay otra forma que yo conosca, siempre le tuvimos que hacer eso :S

luisgb
09/01/08, 18:23:52
Algo parecido me paso al querer descargar en excel. Existe un tipo de espacio en blanco llamado "no-break space" el cual segun los resultados que obtuve si funciona. Aqui como declararlo.

DATA: v_blank TYPE x VALUE 'A0'.

Es un dato tipo hexadecimal con valor 'A0' el cual equivale al "no-break space." Pasalo al campo de tu tabla y prueba que sale, pues a mi si me funciono.

Saludos,

Luis G.

javibest
23/05/08, 12:21:36
Gracias Luisgb.

Con el codigo ascii A0 funciona bien la gui_download. :)

marianoboni
26/08/09, 13:26:46
Hola, queria saber si dicha solución fue aplicada ala version 46C, ya q no pude hacerlo funcionar!
:(

marianoboni
26/08/09, 13:59:51
Para salvar este inconveniente, hice lo siguiente:
Defini una estructura con dos campos:

BEGIN OF arch_ln OCCURS 0,
linea(240) TYPE C,
car type C,
END OF arch_ln,
sln LIKE arch_ln,
arch_t LIKE STANDARD TABLE OF arch_ln INITIAL SIZE 0 .

sln-linea = sLinea. " sLinea contiene datos
sln-car = ''.
APPEND sln TO arch_t.

al agregar un campo mas y darle como valor un espacio en blanco me respeto el tamaño y contenido (aunque sean espacios en blanco ) del primer campo (240).

Saludos!

Abaunus
26/08/09, 16:05:56
Jaja, estas cosas que tiene Abap...

TBARILLAS
26/08/09, 22:06:17
Buenos dias , alguien sabe de alguna función que me permita generar un archivo en un directorio servidor(del tipo ' \\') a partir de una tabla interna,exceptuando gui_download que no me permiten usar. La función en cuestión me tendría que tomar también los espacios en blanco que tenga los campos de mi tabla, aunque los mismos estén al final de la linea. Comento esto porque tengo una función Zeta que hace todo bien pero me elimina los espacios en blanco que tenga sobre el final de linea.


Saludos,
Germán.

Estimado, prueba con el siguiente código y me dices que tal, esto te permite pasar los registros de la tabla interna y con las sentencias OPEN DATASET Y CLOSE DATASET lo puedes enviar al servidor.

concatenate 'usr/users/ARCHIVO.txt' into P_ARCHIVO.
open dataset P_ARCH_NUEVO for output in text mode encoding default.
loop at IT_TAB.
transfer IT_TAB to P_ARCHIVO.
endloop.
close dataset P_ARCHIVO.


Ojalá te sirva,

felipe_silvera
27/03/12, 16:33:36
Estimados, le paso una pequeña contribución al respecto.

Al momento de bajar el archivo con la función "GUI_DOWNLOAD", solo hay que desactivar el parámetro TRUNC_TRAILING_BLANKS = ' ', esto evitará que los espacios en blanco sean eliminados en la transferencias SAP-PC, este parámetro por defaul esta activado con "X"


call function 'GUI_DOWNLOAD'
exporting
filename = p_w_file
FILETYPE = 'ASC'
TRUNC_TRAILING_BLANKS = ' '
tables
data_tab = p_t_fld01.
if sy-subrc eq 0.
message i899(bd) with 'Se ha generado el archivo ' p_w_file.
Endif.


Saludos

rafa_fonseca
19/06/15, 14:40:54
Algo parecido me paso al querer descargar en excel. Existe un tipo de espacio en blanco llamado "no-break space" el cual segun los resultados que obtuve si funciona. Aqui como declararlo.

DATA: v_blank TYPE x VALUE 'A0'.

Es un dato tipo hexadecimal con valor 'A0' el cual equivale al "no-break space." Pasalo al campo de tu tabla y prueba que sale, pues a mi si me funciono.

Saludos,

Luis G.


Buenos días, aunque esta solución fue del 2008, hoy me tocó aplicar esta solución y me funcionó de maravilla, más para una versión tan antigua como la 31.i que se usa en el trabajo, no se si llerás esto pero muchas gracias por este aporte.

Saludos.

cesar-cortes
21/08/19, 16:52:54
Tenia un problema parecido y lo solucione agregando un parametro a la funcion

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = lv_file
TRUNC_TRAILING_BLANKS_EOL = '' :)