MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 03/03/09, 14:21:33
jordiC77 jordiC77 is offline
Junior Member
 
Fecha de Ingreso: nov 2008
Mensajes: 13
Exclamation OLE & ABAP: con visible = 0, ¿dónde lo guarda?

Hola!!

Estoy trabajando con OLE & ABAP con un fichero excel. Si le pongo
set property of e_appl 'VISIBLE' = 1.
deja el fichero excel abierto.

En cambio, si le pongo
set property of e_appl 'VISIBLE' = 0.
no abre el fichero. Esto es lo que quiero porque el proceso es en fondo y el usuario no tiene que verlo, pero además me gustaría especificarle una ruta en donde me guardara el fichero excel. No se si me he explicado. Más o menos és: créame este fichero excel en visible = 0 y guardalo en c:\temp\...

¿Alguien sabe hacerlo?

Muchas gracias de antemano,
Jordi.
Responder Con Cita
  #2  
Viejo 05/03/09, 14:22:38
eljota eljota is offline
Member
 
Fecha de Ingreso: dic 2008
Localización: Lima-Peru
Mensajes: 48
guardando excel

Hola,

tendrías que agregar en tu codigo:


DATA: nro_hoja TYPE i,
hoja TYPE OLE2_OBJECT,
e_appl TYPE OLE2_OBJECT.

....

CALL METHOD OF e_appl 'Worksheets' = hoja
EXPORTING #1 = Nro_hoja.

* Luego de hacer todo lo q tengas q hacer con el archivo excel, guardas...

CALL METHOD OF hoja 'SaveAs'
EXPORTING #1 = W_PATH
#2 = 1.

en donde W_path seria la ruta donde quieres q se guarde C:\data\archivo.xls

espero q esto te sirva

salu2
Responder Con Cita
  #3  
Viejo 05/06/09, 14:17:07
MEG30 MEG30 is offline
Junior Member
 
Fecha de Ingreso: oct 2008
Mensajes: 4
Question Modificar archivo excel existente

Hola:
Hice un programa que copia un txt almacenado en servidor de sap y genera un archivo ecxel y lo guarda en forma local. El problema es que, o es un error mío con el código(lo adjunto abajo), o realmente es así, para 4 registros tarda 16 segundos, hablando de pruebas en desarrollo con pocos datos, lo cual es demasiado lento. El archivo txt original tiene más de 5 mil registros. Lo probé con ole2 porque el cliente quiere que la primer hoja tenga el nombre de "EtiquetasNuevas" en lugar de Hoja1 y formato texto para las columnas 1 y 3, esto es porque la coluna 1 tiene un número de material(MATNR), que con formato general un numero '802313203000' lo pone así '802313E+11'. El cliente tiene un software de impresión de etiquetas que reconoce archivos excel con el formato antes mencionado. Por tema de lentitud quiero descargar a excel con una función pero no puedo con función dar nombre a la primer hoja ni formato texto a las columnas 1 y 3. La consulta es: ¿es posible abrir un archivo excel ya almacenado y cambiarle con ole2 el nombre a la hoja y dar formato texto a las columnas antes mencionadas? hablamos de con un describe table tener la cantidad de filas y ya sabemos la cantidad de columnas. Muchas gracias por tu ayuda.



*&---------------------------------------------------------------------*
*& Form F_GUARDA_EXCEL
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
form f_guarda_excel.

field-symbols: <fs_table> type any table,
<fs_line> type ty_file,
<fs_data> type any.

data v_filename type rlgrap-filename.
clear v_filename.
move p_path to v_filename.
************************************************************************
* Declaraciones para la llamada a EXCEL.
data: o_hoja_excel type ole2_object,
o_excel type ole2_object,
o_libro type ole2_object,
o_ole_sheets type ole2_object,
o_activesheet type ole2_object,
o_cell type ole2_object,
o_libros_trabajo type ole2_object,
o_l_lineas(10) type c,
o_rango type ole2_object,
v_line type i.

assign t_file to <fs_table>.

* Se crea el objeto Hoja Excel.
create object o_excel 'EXCEL.APPLICATION'.
* Se hace visible la aplicación Excel
set property of o_excel 'VISIBLE' = 1.
call method of o_excel 'WORKBOOKS' = o_libros_trabajo.
call method of o_libros_trabajo 'Add' = o_libros_trabajo.
get property of o_excel 'ActiveSheet' = o_activesheet.
set property of o_activesheet 'Name' = 'EtiquetasNuevas'.

clear v_line.
loop at <fs_table> assigning <fs_line>.
v_line = v_line + 1.

do.
assign component sy-index of structure <fs_line> to <fs_data>.

if sy-subrc ne 0.
exit.
endif.

call method of o_activesheet 'Cells' = o_cell
exporting
#1 = v_line
#2 = sy-index.

IF SY-INDEX EQ 1 OR SY-INDEX EQ 3.
set property of o_cell 'NUMBERFORMAT' = '@'.
ENDIF.

set property of o_cell 'Value' = <fs_data>.
set property of o_cell 'ColumnWidth' = 20.

enddo.

endloop.


call method of o_libros_trabajo 'SAVEAS'
exporting #1 = v_filename. "path de archivo como c:\Etiquetas.xls
call method of o_libros_trabajo 'close'.
* call method of o_excel 'QUIT'.
free object: o_excel,
o_libros_trabajo,
o_cell,
o_activesheet.

endform. " F_GUARDA_EXCEL
Responder Con Cita
  #4  
Viejo 08/06/09, 15:52:39
eljota eljota is offline
Member
 
Fecha de Ingreso: dic 2008
Localización: Lima-Peru
Mensajes: 48
Hola MEG30,

si quieres ganar velocidad, primero debes ocultar el progreso d llenado d la hoja d excel, es decir, donde pones ... visible = '1', cambialo por '0' y justo antes del Save, regresalo a '1'.

Lo otro q dices, de abrir un archivo con datos llenos y solo actualizar formatos también se puede hacer, fíjate en el siguiente ejemplo q está detallado:


Espero q esta info te sirva y si tienes alguna otra duda, intentaremos ayudarte
__________________
Jaime Zegarra V.
________________
ABAP Developer
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 23:53:24.


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