Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 28-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 20
Ivan_25 Va por buen camino
Generar informe en word

Hola a tod@s!!!. Tengo unos datos que muestro en un dbgrid. Los datos son de una base de datos access a la que accedo por conexion ADO. Lo que quiero hacer es generar un informe en word de un solo campo de los datos que muestro en el dbgrid, pero de todos los registros. ¿Como puedo hacerlo?. Gracias.
__________________
Un saludo.

Iván.
Responder Con Cita
  #2  
Antiguo 28-11-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.586
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Revisa ésta página, es un clásico y creo que te puede ser útil.
__________________
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.
Responder Con Cita
  #3  
Antiguo 29-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 20
Ivan_25 Va por buen camino
Ok. Gracias Neftali. De todas maneras yo lo que quiero es algo mas sencillo. Veras, yo muestro registros en un dbgrid, y quiero coger los emails que muestro e imprimirlos en un documento word, separados por comas, para lo que hago lo siguiente:


String cadena = "";;
int numcandidatos;
int i = 0;
numcandidatos = DBGCandidatos->DataSource->DataSet->RecordCount;

for (i = 0; i < numcandidatos-1; i++)
{
cadena = cadena + DBGCandidatos->DataSource->DataSet->FieldByName("email")->AsString;
DBGCandidatos->DataSource->DataSet->MoveBy(1);
cadena = cadena + ",";
}
cadena = cadena + DBGCandidatos->DataSource->DataSet->FieldByName("email")->AsString;
ShellExecute(NULL, "open","c:\\Archivos de programa\\Microsoft Office\\Office\\WINWORD.EXE", cadena.c_str(), NULL, SW_SHOWNORMAL);
En la cadena mete bien los emails separados por comas, pero sin embargo al ejecutar el ShellExecute, me abre el word y me dice que el nombre o ruta del documento no es valido. ¿Sabes porque puede ser esto?. Yo no abro ningun documento, sino que intento imprimir la cadena en un documento word. Gracias.
__________________
Un saludo.

Iván.
Responder Con Cita
  #4  
Antiguo 29-11-2005
Ivan_25 Ivan_25 is offline
Miembro
 
Registrado: oct 2005
Posts: 87
Poder: 20
Ivan_25 Va por buen camino
Ok. Ya esta solucionado. He encontrado el hilo en el foro:


http://www.clubdelphi.com/foros/show...documento+word

Lo que no se es como hacer retorno de carro, para que no se me junten las cadenas.
__________________
Un saludo.

Iván.
Responder Con Cita
  #5  
Antiguo 29-11-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.586
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por Ivan_25
ShellExecute(NULL, "open","c:\\Archivos de programa\\Microsoft Office\\Office\\WINWORD.EXE", cadena.c_str(), NULL, SW_SHOWNORMAL);
En la cadena mete bien los emails separados por comas, pero sin embargo al ejecutar el ShellExecute, me abre el word y me dice que el nombre o ruta del documento no es valido. ¿Sabes porque puede ser esto?. Yo no abro ningun documento, sino que intento imprimir la cadena en un documento word. Gracias.
Sí abres un documento,o es lo que estás intentando. A ShellExecute le estás pasando el parámetro "Open", luego el nombre del programa "...WINWORD" y el siguiente parámetro se refiere al archivo que vas a abrir. Por eso te dice que el archivo no existe.

Si quieres escribir el texto (la cadena) dentro del documento Word, en la página que te envié tienes cómo hacerlo, pero no puedes hacerlo con ShellExecute.

Esto sería un ejemplo correcto.
Código:
 // Abrirá Word con el documento   c:\temp\carta.doc
 ShellExecute(NULL, "open","c:\\Archivos de programa\\Microsoft Office\\Office\\WINWORD.EXE", 'c:\temp\Carta.doc', NULL, SW_SHOWNORMAL);
__________________
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.
Responder Con Cita
  #6  
Antiguo 29-11-2005
Avatar de alt126
alt126 alt126 is offline
Miembro
 
Registrado: dic 2004
Posts: 171
Poder: 20
alt126 Va por buen camino
bueno, yo creo que ya te han respondido...pero bueno.


Yo lo que si te puedo decir, es como crear un documento de word con lo que quieras....texto, una tabla, todo generado automaticamente desde c++, por lo que si tienes una cadena, pues podrias pasarla facilmente....

Por el foro tienes informacion de como hacerlo...si no te enteras, posssss, avisa!!!

...sino es eso lo que quieres...pos entonces no lo he pillado!!
__________________
Un saludo

Antonio
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 19:49:26.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi