Inicio > Power Builder > gmoandrade > pasar datos de un datawindow a word

pasar datos de un datawindow a word

Experto:
Usuario:
Fecha: 23/07/2008
Valoración: (2,00 sobre 5) Categoría: Power Builder
22/07/2008
william4425, usuario preguntando en Power Builder
Usuario
Hola experto,tengo un problema con este programa. Tengo un archivo .doc, en ese archivo hay dos lineas, codigo y nombre.quiero llenar esos datos enviandolos desde un datawindw.tengo este scrip...pero sale error.derrepente estpy haciendo algo mal.te agradeceria mucho tu ayuda...gracias.
string ls
string codigo,nombres
oleobject lole_word
codigo=dw_1.object.codigo[dw_1.getrow()]
nombres=dw_1.object.nombres[dw_1.getrow()]
lole_word=create oleobject
ls=GetCurrentDirectory()+'\datos.doc'
IF lole_word.connecttonewobject('word.application.8')=0 THEN
lole_word.documents.open(ls)
ELSE
messagebox('ERROR','¡ No se puede abrir el archivo !',stopsign!)
return
END IF
lole_word.visible=false
IF lole_word.ActiveDocument.bookmarks.Exists("Codigo") THEN
lole_word.selection.goto(true,0,0,"Codigo")
lole_word.selection.typetext(codigo)
ELSE
lole_word.ActiveDocument.bookmarks.add("Codigo")
END IF
IF lole_word.ActiveDocument.bookmarks.Exists("Nombres") THEN
lole_word.selection.goto(true,0,0,'Nombres')
lole_word.selection.typetext(nombres)
ELSE
lole_word.ActiveDocument.bookmarks.add("Nombres")
END IF
lole_word.activedocument.save()
lole_word.activedocument.close()
lole_word.application.quit()
lole_word.disconnectobject()
destroy lole_word
22/07/2008
william4425, experto respondiendo en Power Builder
Experto
Mira no me queda claro cual es el problema que quieres resolver ya que si salvas el documento despues de agregar los datos a los bookmarks apareceran todos los codigos y todos los nombres en un mismo renglón.
Te mando la codificación para que puedas manejar los bookmarks.
string ls
string ls_codigo,ls_nombres
integer i
oleobject lole_word
lole_word=create oleobject
ls = GetCurrentDirectory()+'\datos.doc'
IF lole_word.ConnectToNewObject('word.application')=0 THEN
lole_word.Application.Visible=false
lole_word.Application.Activate()
lole_word.Application.Documents.open(ls)
ELSE
messagebox('ERROR','¡ No se puede abrir el archivo !',stopsign!)
return
end if
for i = 1 to dw_1.RowCount()
ls_codigo = dw_1.GetItemString(i,'codigo')
ls_nombres = dw_1.GetItemString(i,'nombres')

lole_word.activedocument.bookmarks.item('codigo').range.text = ls_codigo
lole_word.activedocument.bookmarks.item('nombre').range.text = ls_nombres
next
23/07/2008
william4425, usuario preguntando en Power Builder
Usuario
weno te explico. Tengo un documento algo asi...
          Codigo    :
          Nombres :
     xxxxxxxxxxxxxxxxx
     xxxxxxxxxxxxxxxxx
     xxxxxxxxxxxxxxxxx
...El codigo y el nombre los tengo en un datawindow;lo q necesito es llenar esos espacios(codigo y nombres) con los datos de la fila q seleccioné.Probe el codigo q me mandaste pero,sale error en, lole_word.application.activate() .
23/07/2008
william4425, experto respondiendo en Power Builder
Experto
Antes de seguir con que versión de office estas trabajando
23/07/2008
william4425, usuario preguntando en Power Builder
Usuario
weno stoy trabajando con el office 2003.
23/07/2008
william4425, experto respondiendo en Power Builder
Experto
Tienes razón esto es porque pusimos la aplicación como no visible para que corra correctamente puedes poner visible = true o quitar la linea Application.Activate
 
23/07/2008
william4425, usuario preguntando en Power Builder
Usuario
weno, aún sigo teniendo ese problema. gracias de todos modos...buenas tardes
Enlaces patrocinados