Ver la Versión Completa : varios sheets con ole
apozosanz
06/06/06, 15:49:49
Objetos ole para excel.
Quiero meter en un excel datos pero en distintas hojas.
Lo que me pasa es que cada hoja me machaca la anterior y al final solo me sale una.
cada una de las hojas nuevas la creo asi:
*&---------------------------------------------------------------------
*& Form nuevas_hojas
*&---------------------------------------------------------------------
form nuevas_hojas using sheetname .
CALL METHOD OF g_xlapp 'Worksheets' = g_newsheet "no flush
EXPORTING #1 = 1 .
CALL METHOD OF g_newsheet 'Activate'.
CALL METHOD OF g_newsheet 'cells' = g_cell. "no flush.
set property of g_newsheet 'NAME' = sheetname.
endform.
hay algun metodo o algo para ir pasando paginas.
Nota: a priori no se cuantas hojas voy a necesitar
carlosalcala
07/06/06, 07:33:37
Cambia de trabajo preguntón!
carlosalcala
07/06/06, 13:25:05
Prueba con esto, a mi me funciona en un report normalito que solo hace esto
REPORT Z_PRUEBAS_OLE .
INCLUDE ole2incl.
DATA: application TYPE ole2_object,
workbook TYPE ole2_object,
sheet TYPE ole2_object,
cells TYPE ole2_object.
START-OF-SELECTION.
data: val type i value 8,
nh type i value 1.
create object application 'Excel.application'.
set property of application 'Visible' = 1.
call method of application 'Workbooks' = workbook.
set property of application 'SheetsInNewWorkbook' = 5.
call method of workbook 'Add'.
call method of application 'Worksheets' = sheet
exporting #1 = 2.
call method of workbook 'ADD'.
CALL METHOD OF application 'CELLS' = CELLs EXPORTING #1 = 2 #2 = 2.
SET PROPERTY OF CELLs 'VALUE' = val.
free object cells.
free object sheet.
do 4 times.
add 1 to nh.
call method of application 'Worksheets' = sheet
exporting #1 = nh.
CALL METHOD OF sheet 'Activate'.
CALL METHOD OF application 'CELLS' = CELLs
EXPORTING #1 = 3 #2 = 3.
SET PROPERTY OF CELLs 'VALUE' = 14.
free object cells.
enddo.
Objetos ole para excel.
Quiero meter en un excel datos pero en distintas hojas.
Lo que me pasa es que cada hoja me machaca la anterior y al final solo me sale una.
cada una de las hojas nuevas la creo asi:
*&---------------------------------------------------------------------
*& Form nuevas_hojas
*&---------------------------------------------------------------------
form nuevas_hojas using sheetname .
CALL METHOD OF g_xlapp 'Worksheets' = g_newsheet "no flush
EXPORTING #1 = 1 .
CALL METHOD OF g_newsheet 'Activate'.
CALL METHOD OF g_newsheet 'cells' = g_cell. "no flush.
set property of g_newsheet 'NAME' = sheetname.
endform.
hay algun metodo o algo para ir pasando paginas.
Nota: a priori no se cuantas hojas voy a necesitar
el detalle en tu codigo es q pones:
CALL METHOD OF g_xlapp 'Worksheets' = g_newsheet "no flush
EXPORTING #1 = 1 .
cuando deberías poner:
CALL METHOD OF g_xlapp 'Worksheets' = g_newsheet "no flush
EXPORTING #1 = nro_hoja .
donde nro_hoja varia segun la hoja donde quieres trabajar (1 , 2 , 3, ...)
ahora, esto te servira solo para 3 hojas, ya q son las q tiene x defecto un libro excel.
Si necesitas mas hojas, tendrías q declarar al incio:
IF total_paginas > 3.
total_paginas = total_paginas - 3.
CALL METHOD OF APPLICATION 'WorkSheets' = SHEET.
DO total_paginas TIMES.
CALL METHOD OF SHEET 'Add'.
ENDDO.
ENDIF.
o poner set property of application 'SheetsInNewWorkbook' = 5.
salu2
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web