Lizbeth,
Esto mismo que solicitas me canse de buscarlo y a la fecha no he encontrado una solución satisfactoria, yo se lo que es querer encontrar una solución rápida a esta situación, por eso me atrevo a responderte sin una solución realmente completa. He aquí algunas de las respuestas que logre rescatar:
Primero: generar un archivo de la siguiente manera:
dw_1.saveas("c:\salida.xls", HTMLtable!, false)
Esto experota el dw con todas las imágenes, sin embargo el resultado no es el esperado dado que desajusta todo el formato.
Segunda: El siguiente código es muy bueno, me ha servido mucho porque te genera en lugar de la imagen la trayectoria de donde la esta tomando, y genera una salida separada por tabuladores de lo que realmente estas viendo en el dw, sin embargo tampoco te ofrece el resultado esperado. La idea aquí es, teniendo las trayectorias de las imágenes tratar de incrustarlas en el excel pero totalmente fuera de PB.
String ls_named,ls_txtname
String ls_defext = "xls"
String ls_filtro = "Archivo de Excel(*.xls),*.xls"
GetFileSaveName("Guardar Achivo",ls_txtname,ls_named,ls_defext,ls_filtro)
cdw_exportar.SaveAsAscii(ls_txtname, 't', '')
Tercera: la siguiente solución no la he probado porque me basto con la anterior
Puedes exportar la imagen fiel del resultado de un dw, a un archivo del tipo acrobat. A partir de allí puede hacer el resto,
sigue estos pasos.
*- instalar el acrobat writer, este instala una impresora virtual llamada ACROBAT DISTILLER.
*- una vez hecho esto, ejecutas tu datawindow, y la imprimes, si en tu proceso de impresion no presentas un cuadro de dialogo para seleccionar la impresora, entonces simplemente indicas e tu sistema que ACROBAT DISTILLER, es la impresora por omision.
El resultado de todo esto es la generación de un fichero de tipo pdf. El cual puede ser abierto con acrobat, y ademas contiene todo lo que puedes ver en pantalla y papel, de un datawindow.
a partir de este resultado ya puedes importar dicho fichero por medio de excel o word.
Cuarta: acabo de encontrar esto y no se si funcione, podrías probarlo, se supone que copia un dw a celdas especificas de un excel
long ll_numcols, ll_numrows, ll_c, ll_r
OLEObject xlapp, xlsub
int li_ret
// Este script copia todo el DW pero ud puede solo copiar las celdas
// que desee
ll_numcols = long(dw_1.Object.DataWindow.Column.Count)
ll_numrows = dw_1.RowCount()
xlApp = Create OLEObject // Crea el oleobject en la variable xlapp
// Se conecta a Excel y verifica el código de retorno
li_ret = xlApp.ConnectToNewObject( "Excel.Sheet" )
if li_ret < 0 then
MessageBox("Error Conectandose a Excel !",string(li_ret))
return
end if
xlApp.Application.Workbooks.Open("c:ejemplo.xls") // Abre archivo
// especifico Excel
xlApp.Application.Visible = true // Hace Excel visible
xlsub = xlapp.Application.ActiveWorkbook.Worksheets[1]
For ll_c = 1 to ll_numcols // Copia todas las filas de cada columna
For ll_r = 1 to ll_numrows
xlsub.cells[ll_r,ll_c] = dw_1.object.data[ll_r,ll_c]
Next
Next
//xlApp.Application.Activeworkbook.Save() // Guarda el archivo
// abierto
//xlApp.Application.Activeworkbook.SaveAs("c:ejemplo2.xls")
// Guarda con otro nombre
xlApp.DisConnectObject() // se desconecta de excel
Destroy xlapp
Quinta: En algún lugar leí que hay una solución de terceros que hace lo que solicitas, pero hay que comprarla y no creo que sea el caso, además que no recuerdo donde lo vi.
Por último si en algún momento encuentras la solución, te agradecería compartirla.
[email protected]