FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Modificar Word (.DOC) desde Delphi
Hola Compañeros:
He estado leyendo en el foro, para ver la posibilidad de modificar un documento Word desde delphi, y lo que mas se parece a lo que busco es el siguiente hilo: http://www.clubdelphi.com/foros/showthread.php?t=30762 Pero en ese ejemplo, parten de una plantilla de Word .dot . Yo realmente lo que necesito es que si el fichero no existe, lo cree a partir de la plantilla.dot (esto lo he resuelto gracias al hilo anterior), pero si existe, que me permita modificar los campos, y por mas que lo he intentado, no me deja hacer esto ultimo. Tambien algien me comento que se puede hacer usando marcadores en lugar de campos, pero no se como se hará eso. ¿Alguien tiene algun ejemplito de como puedo resolver este problema? Gracias de antemano |
#2
|
||||
|
||||
Puedes buscar información sobre Automatización en Word. en los foros debes encontrar más hilos y si no páginas como esta, la de Deborah Pate, o alguna otra que hay en Codegear/Embarcadero te pueden servir.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
En estos casos, nunca está de más indicar cuáles son los intentos que has hecho y cuáles los problemas que has tenido.
Hasta donde yo veo, la asignación de valores a campos DocVariable como los usados en el hilo que refieres, puede hacerse tanto si se trata de un documento creado a partir de una plantilla como si se trata de un documento existente. El único problema que he observado es que si el campo ya contiene un valor, la sentencia
produce un error, porque, tal como se lee en la referencia de Microsoft Word Visual Basic, no puede agregarse una variable que ya existe. Lo que hay que hacer en ese caso, es verificar si ya existe la variable y, de ser así, asignarle un valor directamente. Aquí pongo un ejemplo de cómo tratar ambos casos:
IndexOfName obtiene el índice de la variable indicada en caso de que ya exista o 0 en caso contrario. Está definida así:
El código no es óptimo porque tienes que recorrer toda la lista de variables por cada variable, pero sirve para que te des una idea de lo que hay que hacer. // Saludos |
#4
|
|||
|
|||
Hola de nuevo.
Gracias pos las respuestas que me habeis enviado. Basandome el la respuesta de Roman (Gracias, eres un crack), he conseguido que me funcione, y ya me modifica las variables. Os dejo aqui el codigo. Como veras, he quitado la funcion, pero me he quedado con el bucle y le he metido un case para distinguir las variables.
Segun el Case (ya que solo puede usar valores integer o char), no puedo tener dos variables que empiecen por el mismo caracter en mi plantilla word, pero a mi me sirve usando el primer caracter del nombre de mi variable. En el IF, primero esta el caso de que ya exista el fichero, y despues del else, el caso de que no exista el fichero y tenga que crearlo nuevo a partir de la plantilla. Espero que este post le sirva a alguien que se encuentre en el mismo problema que yo. Muchas gracias a Roman y a Neftali por haberme abierto el camino. Última edición por Siem fecha: 21-11-2008 a las 07:45:10. |
#5
|
|||
|
|||
Hola Siem, y otros del club Delphi Ayuda de Word
Hola Siem y otros del Club Delphi gracias por los aportes de enviar datos a word, pero quisiera que me ayudaran a resolver el problema de enviar datos para rellenar una factura que tiene:
HEADER Codigo Cliente, Nombre , etc DETALLES Linea CodPro DescipcionProducto Precio Unit Valor Total 01 xxxxx xxxxxxxxxxxxxxxxx xxxxxxxx xxxxxxxxxxx 02 xxxxx xxxxxxxxxxxxxxxxx xxxxxxxx xxxxxxxxxxx 03 xxxxx xxxxxxxxxxxxxxxxx xxxxxxxx xxxxxxxxxxx 04 xxxxx xxxxxxxxxxxxxxxxx xxxxxxxx xxxxxxxxxxx ... PIE DE PAGINA TOTAL XXXXXXXXX usando este ejemplo y otros he logrado rellenar las linea del cliente pero no en el header del documento, ni en el pie de pagina del documento, asi mismo como hago para replicar el detalle de la factura? Me podrian dar una yuda por favor |
#6
|
|||
|
|||
te falta una instruccion para que muestre el word de resultado
Word.Visible := true;
y los campos se modifican antes de crear el documento, como te lo explicaban en el hilo anterior atte. Rodrigo |
Herramientas | Buscar en Tema |
Desplegado | |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
tabla en word desde delphi | creedence | Varios | 0 | 21-02-2008 16:21:32 |
word desde delphi | creedence | Varios | 5 | 07-02-2008 09:18:27 |
Word desde Delphi | Silvia | Servers | 0 | 05-04-2005 09:45:17 |
modificar documento word desde un servidor | joaquinmol | Internet | 0 | 31-03-2005 19:41:23 |
modificar documento word sin el word instalado | joaquinmol | Servers | 0 | 30-03-2005 19:58:54 |
|