MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   varios sheets con ole (foro/showthread.php?t=806)

apozosanz 06/06/06 15:49:49

varios sheets con ole
 
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.

eljota 05/03/09 14:58:16


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


Husos Horarios son GMT. La hora en este momento es 01:27:48.

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