Power Builder - Manejo de Word

 
Vista:

Manejo de Word

Publicado por Ricardo (37 intervenciones) el 12/12/2006 22:05:58
Buena tarde, de antemano gracias por la atencion prestada, tengo la siguiente inquitud:

Tengo un evento que me toma un documento en Word (previamene creado en word ) y me inserta unos datos de una Datawindow y crea unas tablas, pero resulta que tuve incluirle unos marcadores a este documento para que las tablas no quedaran una dentro de la otra. Pero lo que necesito es eliminar esos marcadores asi que necesito saber como le digo desde PB. que finalize la tabla y seguir en otra.
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

RE:Manejo de Word

Publicado por dany rojas (27 intervenciones) el 13/12/2006 13:05:53
Buenos Dias:

seria bueno saber que informacion es la que estas manejando, los marcadores no deben borrarse, y cada unoes independiente lo que yo hago es invocar los existentes trabajar con una clausula de busqueda exists para saber cuales se llenan y cuales no, y si se requiqren de varios documentos lo que manejo es un mailmerge.

espero que algo de esto te sirva para solucionar tu inconveniente

Un Saludo desde COLOMBIA
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

RE:Manejo de Word

Publicado por Ricardo (37 intervenciones) el 13/12/2006 19:17:08
Buen dia Dany, gracias por responder, pero es necesario tener marcadroes para manejar la creacion de tablas en Word, desde PB.?

Me imagino que asi como hay una instruccion "ole_object.ActiveDocument.Tables.Add(ole_object.Selection.Range,ll_num_filas,ll_num_columnas)"; existira una para definir que la tabla o el apuntador ya no esta dentro de la tabla si no que sigue en el documento pero por fuera de la tabla. Y lo otro como creo un documento en Word desde pb sin tenerlo creado previamente?

Mira este es el codigo que utilizo... en el llamo un archvio previamente creado, le asigno tipo de letra, tamaño, y selecciono un marcador; luego creo una tabla y vacio la nformacion del un DW, luego seleccion otro marcador y alli si puedo crear otra tabla, si no hago esto entonces la ultima tabal creada me queda dentro de la primera; por ultimo lo desconecto y lo destryo.

string ls_archivo='C:plantilla.doc'
OLEObject ole_object
ole_object = CREATE OLEObject

ls_connect = "word.application.8"
If ole_object.ConnectToNewObject(ls_connect) = 0 Then
//Abro el archivo
ole_object.Documents.open(ls_archivo)
ole_object.Visible=False
ole_object.Selection.Font.Name = "Arial"
ole_object.Selection.Font.Size = 10

String ls_cadena
Long ll_fila, ll_columna
long ll_num_filas, ll_num_columnas

//Selecciono Marcador a
ole_object.ActiveDocument.Bookmarks.item("a").Select
ole_object.Selection.Font.Name = "Arial"
ole_object.Selection.Font.Size = 10

// Definir el número de filas y columnas
ll_num_filas = dw_crdndor.RowCount()
ll_num_columnas = 5

If ll_num_filas > 0 Then

// Crear la tabla
ole_object.ActiveDocument.Tables.Add (ole_object.Selection.Range,ll_num_filas,ll_num_columnas)

For ll_fila = 1 To ll_num_filas
For ll_columna = 1 to ll_num_columnas
Choose Case ll_columna
Case 1
ls_cadena = dw_crdndor.GetItemString(ll_fila,"nmbre_crdndor")
Case 2
ls_cadena = dw_crdndor.GetItemString(ll_fila,"aplldo_crdndor")
Case 3
ls_cadena = dw_crdndor.GetItemString(ll_fila,"drccion_crdndor")
Case 4
ls_cadena = dw_crdndor.GetItemString(ll_fila,"tlfno_crdndor")
Case 5
ls_cadena = dw_crdndor.GetItemString(ll_fila,"email_crdndor")
End Choose
ole_object.Selection.typetext(ls_cadena)

If ll_columna <= ll_num_columnas Then
If ll_fila <= ll_num_filas then
If ll_columna = ll_num_columnas and ll_fila = ll_num_filas then
else
ole_object.Selection.MoveRight(12)
end if
end if
End If
End For
End For
End If

//Selecciono Marcador b
ole_object.ActiveDocument.Bookmarks.item("b").Select
ole_object.Selection.Font.Name = "Arial"
ole_object.Selection.Font.Size = 10

ls_cadena = "~n"
ole_object.Selection.typetext(ls_cadena)

// Definir el número de filas y columnas
ll_num_filas = dw_intgrnte.RowCount()
ll_num_columnas = 5

If ll_num_filas > 0 Then

// Crear la tabla
ole_object.ActiveDocument.Tables.Add(ole_object.Selection.Range,ll_num_filas,ll_num_columnas)

For ll_fila = 1 To ll_num_filas

For ll_columna = 1 to ll_num_columnas
ole_object.Selection.Font.bold = FALSE
Choose Case ll_columna
Case 1
ls_cadena = dw_intgrnte.GetItemString(ll_fila,"nmbre_intgrnte")
Case 2
ls_cadena = dw_intgrnte.GetItemString(ll_fila,"aplldo_intgrnte")
Case 3
ls_cadena = dw_intgrnte.GetItemString(ll_fila,"drccion_intgrnte")
Case 4
ls_cadena = dw_intgrnte.GetItemString(ll_fila,"tlfno_intgrnte")
Case 5
ls_cadena = dw_intgrnte.GetItemString(ll_fila,"email_intgrnte")
End Choose

ole_object.Selection.typetext(ls_cadena)

If ll_columna <= ll_num_columnas Then
If ll_fila <= ll_num_filas then
If ll_columna = ll_num_columnas and ll_fila = ll_num_filas then
else
ole_object.Selection.MoveRight(12)
end if
end if
End If
End For
End For
End If

// ole_object.quit(0) para grabar
ole_object.DisconnectObject()
DESTROY ole_object
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

Como accedo a word

Publicado por Carlos tinta (3 intervenciones) el 01/06/2007 03:10:57
hola q tqal queiro hacerte un par de preguntas y agradeceria q me lo respondieras..
estoy ahora en el elaboracion de un software..pero en vez de usar un documento de word utilizo una plantilla.. y en esta plantilla esta un contrato ... hay espacios vacios para ser llenados.. obviamente estos datos debo jalarlos de PB exacatamente un DW se q se usa un objeto ole pero necesito mas informacion.. mi pregunta seria como hago eso.. teniendo en cuenta q es plantilla... espero que sepa como ayudarme ya q es un trabajo de estudio...
atte
Carlos Tinta -
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

RE:Como accedo a word

Publicado por Lissette Rivas (1 intervención) el 23/07/2008 22:32:09
Hola!

Quisiera me ayudaran a hacer el mismo rellenado que solicita Carlos Tinta, necesito hacer un merge hacia un formulario en Word, el cual su texto esta protegido y solamente pueden ser editados ciertos campos, los cuales yo recupero de la base de datos, pero no se como hacer un merge a estos campos del formulario (campos no bookmarks o marcadores).

Saludos,

Liss
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