Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Problemas con el QuickReport

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Problemas con el QuickReport Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email Visitar sitio web del autor MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.