 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Laurana Cdt

Registrado: 15 Oct 2006Mensajes: 12
|
Publicado: Mar 28 Nov, 2006 12:27 pm Asunto: Problemas con el QuickReport |
|
|
Hola, el problema es el siguiente...
Tengo un QuickReport asociado a una consulta, pero cuando lo previsualizo no aparece nada, el código es el siguiente:
- El QuickReport tiene como DataSet la consulta, y 3QRDBText dentro de una BandDetail con DataSet la misma consulta.
En el evento OnActivate del formulario con el QR escribo lo siguiente:
Consulta -> SQL -> Clear();
Consulta -> SQL -> Text = "select NumFactura, FormaPago, Total from Pagos where NumFactura=2;";
Consulta -> Prepare();
Consulta -> Open();
NumFactura -> DataField = "NumFactura";
FormaPago -> DataField = "FormaPago";
Total -> DataField = "Total";
- La consulta tiene que devolver un registro de la BD ( creado para probar el report), pero en el preview no muestra nada, así que supongo que la asignación de los DataField está mal, pero no se cómo hacerlo....
he probado a hacer
NombreQRBDText ->DataField = Consulta->Fields->Fields[0]->FieldName;
Pero tampoco me muestra nada :s |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Mar 28 Nov, 2006 4:25 pm Asunto: |
|
|
Bien, desconozco que componente utilices, pero lo más sano es que la sentencia de tu consulta (SELECT ...) la cargues en la propiedad correspondiente del componente. Por ejemplo, si utilizas TADOQuery agrega a la propiedad SQL tu sentencia... pero esto en modo diseño, no a través de código como lo haces.
Al cargar la sentencia en el componente, da doble clic sobre el componente y se mostrará la ventana de campos de tu consulta, haz clic derecho y selecciona "Agregar todos los campos".... con esto obtendras un listado de todos los campos de tu consulta.
Ahora selecciona uno de los QRDBText y asigna la propiedad DataSet hacia tu consulta, ahora selecciona la propiedad DataField y se mostrara el listado de los campos que acabas de agregar en el paso anterior, de esta manera estaras asignando de manera visual el campo que desees que se muestre en el QRDBText. Repite esto para cada QRDBText que tengas en tu reporte.
Por lo general, yo utilizo un método llamado MostrarReporte() para presentar el informe, este método se debe declarar en la clase de tu reporte y debe ser público para poder utilizarlo.
Ej.
| Código: | void __fastcall TReporte::MostrarReporte()
{
MiConsulta->Open();
try {
if ( MiConsulta->IsEmpty() )
Application->MessageBoxA("No hay datos.",
"¡Atención!", MB_ICONINFORMATION);
else
PreviewModal();
} __finally {
MiConsulta->Close();
}
} |
En este caso mi clase se llama Reporte, con un metodo llamado MostrarReporte, en este método abro la consulta y si la consulta está vacia se manda en mensaje que indica que no hay datos, en caso contrario, se hace el Preview del reporte, una vez que se haya visualizado el reporte se cierra la consulta.
Como puedes observar, aqui no se ha especificado ninguna sentencia select a través de código, todo se ha hecho de manera visual.
Y la menara de llamarlo por ejemplo desde otro form es la siguiente:
| Código: | void __fastcall TForm1::Button1Click(TObject *Sender)
{
Reporte = new TReporte(this);
Reporte->MostrarReporte();
delete Reporte;
} |
Claro, todo lo podrias personalizar de acuerdo a tus necesidades, por ejemplo, que el método tenga más argumentos, para poder pasar parámetros a la consulta, etc.
Saludos! _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
Laurana Cdt

Registrado: 15 Oct 2006Mensajes: 12
|
Publicado: Mar 28 Nov, 2006 10:12 pm Asunto: |
|
|
Muchas gracias Buildero, lo hice visualmente como me dijiste y ya funciona ^^
Le voy a echar un ojo también a tu código para ver si puedo hacer algo parecido, me gusta tu idea del método para mostrar el report. |
|
| Volver arriba |
|
 |
likibuay Master


Registrado: 24 Abr 2006Mensajes: 190Ubicación: COLOMBIA
|
Publicado: Mar 05 Dic, 2006 12:39 am Asunto: |
|
|
Buildero como te va.... ya tengo rato de tratar de mostrar una simple consulta con el QReport hice todo lo q dice aqui..pero cuando llego a esta parte me sale un mesajito qeu dice: Error catastrofico, eso por que?
Ahora selecciona uno de los QRDBText y asigna la propiedad DataSet hacia tu consulta, ahora selecciona la propiedad DataField y se mostrara el listado de los campos que acabas de agregar en el paso anterior, de esta manera estaras asignando de manera visual el campo que desees que se muestre en el QRDBText. Repite esto para cada QRDBText que tengas en tu reporte.
gracias! _________________ ><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________ |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Mar 05 Dic, 2006 4:40 pm Asunto: |
|
|
| likibuay escribió: | | Buildero como te va.... ya tengo rato de tratar de mostrar una simple consulta con el QReport hice todo lo q dice aqui..pero cuando llego a esta parte me sale un mesajito qeu dice: Error catastrofico, eso por que? |
Que tal likibuay, pues asi, sin tener más detalles de tu problema es dificil que podamos dar con la solución. ¿Que BD manejas?, ¿Con qué componentes trabajas?, ¿Tienes la conexión abierta mientras diseñas el reporte?, ¿Qué versión del Builder trabajas?, ¿Que vérsión del QR utilizas?.
Entre más datos nos proporciones mucho mejor.
Saludos! _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
likibuay Master


Registrado: 24 Abr 2006Mensajes: 190Ubicación: COLOMBIA
|
Publicado: Mar 05 Dic, 2006 4:59 pm Asunto: |
|
|
Buildero je je pequeños detalles!
trabajo con:
bd -> Mysql
componentes:
TADOConnection *ADOConnection1;
TADOQuery *ADOQuery1;
TQuickRep *QuickRep1;
TQRDBText *QRDBText1;
¿Tienes la conexión abierta mientras diseñas el reporte? si
¿Qué versión del Builder trabajas? builder 6
¿Que vérsión del QR utilizas? no se, la que trae builder 6
, como se que version del Qr tengo?
yo solo quiero mortras una simpel consulta por el report pero nada...
gracias....
Salu2 _________________ ><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________ |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Mar 05 Dic, 2006 6:22 pm Asunto: |
|
|
Bien, para ver la versión del QR, solo haz clic derecho sobre el area del QR (no sobre los elementos) y selecciona el famoso "About".
Y pues nunca he trabajado con MySQL desde el Builder, pero acabo de hacer una prueba conectándome a una base de MySQL utilizando ODBC y no tuve ningun problema en obtener los datos y mostrarlos en el reporte.
¿Cómo te conectas tú?
Saludos! _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
likibuay Master


Registrado: 24 Abr 2006Mensajes: 190Ubicación: COLOMBIA
|
Publicado: Mar 05 Dic, 2006 6:38 pm Asunto: |
|
|
BuilderoAsi me conecto..
DOConnection1->Close();
ADOConnection1->ConnectionString =
"Provider=MSDASQL.1;"
"Persist Security Info=False;"
"Data Source=local2;" //Nombre del origen de datos -- igual al nombre del DSN
"Extended Properties=DATABASE=controles;"
"OPTION=0;"
"UID=root;" // Nombre de usuario
"PASSWORD=qwerty"; // Password
ADOConnection1->Open();
con otras consultas me funciona perfeco..pero al tratar de mostrar datos por el report nada...
siemrpe cuando trato d cambiar el datafield de los QRDBText...
estamos en contacto...
Salu2 _________________ ><(((((º> From °l||l° §ÂN ÅNЮ€$ i§Lã$ °l||l°
_____________________ |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|