MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Crear y maquetar .slx desde SAP (foro/showthread.php?t=6277)

BY_MY 29/06/07 09:04:18

Crear y maquetar .slx desde SAP
 
Buenas a todos.

Estoy intentando crear y maquetar un Excel para descergar una serie de datos de forma automatica. He leido algo de un servicio que es 'OLE' pero la verdad es que no termino de comprender su funcionalidad y despues de crear una maqueta de programa, no puedo ver si hace algo o no, entre otras cosas porque no parece que lo grave.

* Así sucesivamente por cada celda ….
* Al final ....
* Protejo el libro y lo grabo con el nombre elegido
CALL METHOD OF excel 'ActiveWorkbook' = libro_activo.
CALL METHOD OF excel 'ActiveSheet' = hoja_activa.
CALL METHOD OF hoja_activa 'Protect' EXPORTING #1 = 'sap'.
CALL METHOD OF libro_activo 'SaveAs' EXPORTING #1 =
'C:\MFP\prueba_mjf.xls'.

El caso es que no devuelve error ni nada parecido pero no lo grava.

Acepto cualquier sugerencia, informacion, manual, etc. (ya que no se por donde seguir y me corre muchisima prisa)


Otra cosita. ¿Sabeis como puedo dercargar y gravar en mi maquina y no en el servidor?



Muchas Gracias un saludo a todos.

BY_MY 29/06/07 09:11:17

Ok, solucionado, aunque solo en parte. Realmente el Xls te lo genera en tu maquina y la ruta tiene que existir.Con lo que cambio la pregunta ¿como grabaria yo en el servidor? quiza tenga que programar y lanzarlo en job ¿si es en job, generara el fichero en la maquina de SAP?


Por otro lado sigo en busca de mas informacion y manuales de OLE.


Muy agradecido por todo lo que nos ayudais.

carlosalcala 29/06/07 09:43:53

Hola,

Prueba a poner en la ruta la del servidor, suele reconocerla a través de las barras, ej. '/usr/sap/tmp/', sino puedes probar con la función 'archiv*file*client' para subirlo o alguna 'gui_upload'. Los objetos OLE hay que liberarlos de memoria ya que luego da error el excel al abrirlo independientemente y se queda residente en memoria, debes hacerlo en orden inverso, creo recordar y es con FREE libro_activo.
FREE hoja_activa, mira los sy-subrc para ver que sea correcto y si no prueba cambiando el orden.
Manuales tienes si buscas un poco por internet con 'call method of ... exporting' de sap aunque no están muy completos. Todo es probar o grabar una macro y sacar el código el cual es el método utilizado en sap.

BY_MY 29/06/07 09:57:06

Muchisimas gracias. Me aclara bastante, aunque el report empieza a funcionar poco a poco. He leido varias veces lo que me dices de generar una macro y ver el codigo y la verdad, diculpen mi ignorancia, pero creo que todo se refiere a excel y no tengo ni idea de excel.

¿alguna explicacion breve?



Saludo y de verdad muchisimas gracias.

ballan 29/06/07 10:07:00

Pues que yo sepa para dejar un ficharo excel en servidor puedes hacer dos cosas:

1.- Crear el fichero normal y transferirlo con las funciones de ftp
2.- Esta es mas complicada, un fichero excel realmente es un fichero txt separado por tabuladores, entonces con SAP se puede "simular" algo parecido, te pongo un ejemplo

esta es la tabla del excel que quiero descarga

data: begin of gt_excel occurs 0,

vbeln like vbak-vbeln,
tabulador1 type x,
posnr like vbap-posnr,
tabulador2 type x,
kwmeng like vbap-kwmeng,
carry_return type x,
line_feed type x,
end of gt_excel.

es muy importante que entre cada par de campos incluyas en tu tabla un campo tabulador de type hexadecimal al que le pasaras el valor '09' que es el tabulador (te estoy hablando de memoria a lo mejor es otro codigo pero puedes mirarlo por internet) luego los codigos del cr y lf son 10 y 13 respectivamente pero los tienes que poner en hexadecimal ('0A' 'OD')

despues solo te quedaria enviar el fichero normalmente con un open dataset y transfer, dejandolo en el servidor con extension xls

si tienes algun problema dilo aqui y aver si podemos ayudarte

Un saludo

BY_MY 29/06/07 11:27:01

Vale, he conseguido generar la macro en excel pero no se muy biencomo pasarla a codigo abap.

¿Alguien me podria dar algunas pincelada, una clase rapida?


Sub Macro1()
'
' Macro1 Macro
' Macro recorded 29/06/2007 by Accenture
'
' Keyboard Shortcut: Ctrl+a
'
Rows("1:1").Select
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="ANTUNEZF"
End Sub



Muchas gracias

BY_MY 03/07/07 13:43:46

hola a todos.


Gracias por la ayuda, ya he conseguido generar el excel y aunque no me convence la solución creo que tirare para delante con ella y luego quiza busque otra, por ello me gustaria saber si alguien controla este tema para depurar un par de cosillas o alguien tiene un manual bueno sobre esto.


saludos.


Husos Horarios son GMT. La hora en este momento es 09:10:22.

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