Pasar datos de un datawindow a word

Tengo un problema con este programa. Tengo un archivo .doc, en ese archivo hay dos lineas, código y nombre. Quiero llenar esos datos enviándolos desde un datawindw. Tengo este script... Pero sale error. De repente estoy haciendo algo mal.te agradecería 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

1 respuesta

Respuesta
No me queda claro cual es el problema que quieres resolver ya que si salvas el documento después de agregar los datos a los bookmarks aparecerán todos los códigos 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
Bueno te explico. Tengo un documento algo así...
          Código :
          Nombres :
     xxxxxxxxxxxxxxxxx
     xxxxxxxxxxxxxxxxx
     xxxxxxxxxxxxxxxxx
... El código y el nombre los tengo en un datawindow;lo que necesito es llenar esos espacios(código y nombres) con los datos de la fila que seleccioné. Probé el código que me mandaste pero, sale error en, lole_word.application.activate() .
Antes de seguir con que versión de office estas trabajando
Bueno estoy trabajando con el office 2003.
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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas