Power Builder - Datawindow a WOrd

 
Vista:

Datawindow a WOrd

Publicado por Cesar (1 intervención) el 17/11/2011 22:01:42
Por favor amigos, tengo un problema.

Necesito exportar un datawindow a word, por ejemplo un formato de carta, o una solicitud, con el mismo formato, fuente, tamaño a word.

Alguien sabe de alguna herramienta para lograrlo?

estare muy agradecido.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Datawindow a WOrd

Publicado por Daniel Rodas (27 intervenciones) el 17/01/2012 15:49:16
Saludos

En ninguna version de PB se puede hacer esa exportación de forma nativa; pero para eso puedes usar objetos y controles OLE, tal como se hace para importar o exportar a excel.

Deberias definir el objeto OLE en la seccion de instance variables, por ejemplo:

OLEObject io_archivo_exportado

Yo tengo la siguiente funcion con la cual importo un archivo desde Excel hacia una DW; pero la idea es la misma para exportar desde una DW y tambien para word

funcion of_exportaexcel(adw_dwimport datawindow)
//10-08-2010 DR: Script de http://www.mtbase.com/foros/respuestas.jsp?t_id=3683&t_prd=3&foro=PowerBuilder
//20-12-2011 DR. Se agrega la datawindow en donde inserta como parametro
string ls_err
long ll_rc,li_ret

OLEObject loo_excel

If GetFileOpenName("Elija el nombre del archivo Excel", &
is_PathFileName, is_FileName, "XLS", &
"Archivo Excel 2007 (*.xlsx),*.xlsx," &
+"Archivo Excel (*.xls),*.xls") < 1 Then return 0

loo_excel = CREATE OLEObject
li_ret = loo_excel.ConnectToObject("excel.application")

if li_ret <> 0 then
li_ret = loo_excel.ConnectToNewObject("excel.application")
end if

Choose Case li_ret
case 0
ls_err='Conexión Satisfactoria con OLE (Excel)'
case -1
ls_err='Error. Llamada Inválida a objeto OLE (Excel)'
case -2
ls_err='Error. Nombre de la clase no encontrada con OLE (Excel)'
case -3
ls_err='Error. El objeto OLEObject no puede ser creado (Excel)'
case -4
ls_err='Error. No se puede conectar con el objeto (EXCEL)'
case -5
ls_err='Error no tratado (EXCEL)'
case else
ls_err='Error desconocido: '+string(li_ret)+'(EXCEL)'
End Choose

if li_ret <> 0 then// Se desconecta el objeto OLE y se destruye
clipboard('')
loo_excel.workbooks.close()
loo_excel.Application.Quit
loo_excel.disconnectobject()
DESTROY loo_excel
return 0
end if

loo_excel.workbooks.open( is_PathFileName )

loo_excel.visible = false

loo_excel.ActiveCell.CurrentRegion.Select()
loo_excel.Selection.Copy()

ll_rc = adw_dwimport.ImportClipBoard (2)

Choose Case ll_rc
case -1
messagebox('Error -1','No rows or startrow value supplied is greater than the number of rows in the string')
case -3
messagebox('Error -3','Error. Argumento Inválido..!!')
case -4
messagebox('Error -4','Error. Entrada Inválida..!!')
case -13
messagebox('Error -13','Error. Datawindows no soporta importación de datos..!!')
case -14
messagebox('Error -14','Error. Al resolver Datawindows anidado..!!')
End Choose

if ll_rc < 0 then // Se desconecta el objeto OLE y se destruye
clipboard('')
loo_excel.workbooks.close()
loo_excel.Application.Quit
loo_excel.disconnectobject()
DESTROY loo_excel
return 0
end if

clipboard('')
loo_excel.workbooks.close()
loo_excel.Application.Quit
loo_excel.disconnectobject()

DESTROY loo_excel

return 1

/////////////////////////////
Espero te sirva, sino en el link del primer comentario que tengo en la funcion puedes encontrar ayuda.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar