PDA

Ver la Versión Completa : Super duda con el RaveReport


BuRtOn
19-06-2008, 19:01:14
Saludos amigos, miren tengo un problema con el RaveReport, y es el siguiente, tengo 2 tablas en Paradox, una Tabla llamada Clientes, y otra llamada Pagos, y elabore una factura con el RaveReport, y me segui de un ejemplo que hizo mi profesora, y utilice lo siguiente:

1.)Rave Project
2.)RvDataSetConnection

despues de esto, ella conecta el RvDataSetConnection con una tabla que ella tiene llamada clientes, y dentro de esa tabla estan los campos, Nombre,Apellidos,Direccion, despues de esto, prosigue a otro paso que es ingresar al Rave Designer , en la pestaña de Delphi click en Tools --->Rave Designer y crea el objeto de datos, en la pestaña del Rave Report 5.0, click en File ---> New Data object, despues de ahi crea un Data View , y listo el muestra en pantalla la tabla que enlazo ella que son clientes, y de ahi sigue el report wizard, y ahi decides que campos quieres que salgan para el reporte.

y despues se agrega el codigo para configurar el nombre del proyecto e incluir el botn que va a enlazar el informe, hasta aqui explique los pasos que segui, y aqui esta mi problema:

Mi problema surge en que yo tengo 2 Tablas en paradox, una que se llama Clientes y otra que se llama Pagos, estan relacionadas con los siguientes campos:

* CliCodigo= Campo tabla Cliente
* PgCliCodigo=Campo tabla Pagos

La tabla Clientes contiene los siguientes campos:

* Nombre Cliente
* Apellido Cliente
* Direccion Cliente
* CliCodigo

la tabla Pagos contienen los siguientes campos:

* Fecha Pago
* Valor Pago
* Fecha Vnecimiento Pago
* PgCliCodigo

bueno el hecho es que al hacer el mismo proceso que explique al rpincipio del hilo, el que mi maestra me enseño, me encuentro con el problema que tengo 2 tablas, y nesecito elaborar una factura por el Rave report, donde me muestre la informacion de las dos Tablas, tanto la de Clientes como las de pago, por que una factura contiene lo siguiente:

* Nombre Cliente
* Apellido Cliente
* Direccion Cliente
* Fecha Pago
* Valor Pago
* Fecha Vnecimiento Pago

si ven, y si enlazo solo la tabla Pagos, pues es obvio que solo me apareceran estos campos:

* Fecha Pago
* Valor Pago
* Fecha Vnecimiento Pago

asi que decidi, añadir a mi Datamodulo, un Query y un DataSet, y dentro del Query elabore la siguiente consulta:

select * from Clientes,Pagos where (CliCodigo=PgCliCodigo)

despues de eso le di click al RvDataSetConnection, y lo enlace con el Query e hice el mismo procedimiento de mi profesora, y en el Rave report me salieron los campos de las dos tablas, e hice bonito el reporte y toda la cuestion, y coloque el boton que me ejecuta el reporte en el formulario de Pagos, y ejecuta bien, pero siempre me almacena es la informacion de 1 solo cliente y ya, cuando paso a otro cliente, no me arroja la informacion de ese 2 cliente, si no siempre arroja la del 1 cliente....encontre en el foro, que trabajara con un RvQueryConnectionn, y lo hice, pero me canta error...miren el codigo que utilizo para hacer la conexion el el reporte es el suguiente:


Mi proyecto se llama Giros, y en la Unidad de Giros agrego lo siguiente:


uses
SysUtils, //esta libreria la agrego
Forms,
ufrmPrincipal in 'ufrmPrincipal.pas' {frmprincipal},
ufrmSeguridad in 'ufrmSeguridad.pas' {frmSeguridad},



despues agrego esta otra parte de codigo:


{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TfrmPagosCliReg, frmPagosCliReg);
Application.CreateForm(TfrmSeguridad, frmSeguridad);
Application.CreateForm(TfrmClientes, frmClientes);
Application.CreateForm(Tfrmprincipal, frmprincipal);
Application.CreateForm(TfrmConsulAsistencia, frmConsulAsistencia);
Application.CreateForm(TfrmConsulPagoCliDia, frmConsulPagoCliDia);
Application.CreateForm(TfrmConsulPagoCliRegistrado, frmConsulPagoCliRegistrado);
Application.CreateForm(TfrmAgenda, frmAgenda);
Application.CreateForm(Tfrmnuevousuario, frmnuevousuario);
Application.CreateForm(TdtmDatos, dtmDatos);
Application.CreateForm(TfrmBienvenida, frmBienvenida);
Application.CreateForm(TfrmEjercicios, frmEjercicios);
Application.CreateForm(TfrmMedidas, frmMedidas);
Application.CreateForm(TfrmRutinas, frmRutinas);
Application.CreateForm(TfrmClientesDia, frmClientesDia);
Application.CreateForm(TfrmConsultasEjercicios, frmConsultasEjercicios);
Application.CreateForm(TfrmConsultasCliMedidas, frmConsultasCliMedidas);
Application.CreateForm(TfrmConsultaCliRutinas, frmConsultaCliRutinas);
Application.CreateForm(TfrmAsistencia, frmAsistencia);
Application.CreateForm(TfrmAsistenciCliReg, frmAsistenciCliReg);

dtmDatos.rvpFactura.ProjectFile:= ExtractFilePath(Application.ExeName)+'Factura.rav'; //esta es la otra parte de codigo que agrego.
Application.Run;
end.




y por ultimo en el boton que llama el reporte lo programe asi:


procedure TfrmPagosCliReg.btnImprimirClick(Sender: TObject);
begin
dtmDatos.rvpFactura.ExecuteReport('Reporte2');
end;
end.


y aun asi, siempre me muestra la informacion del primer cliente que agregue y no me muestra los otros clientes...por favor espero que me puedan ayudar en algo, la explicacion es larga, pero es mejor decir todo hasta el minimo detalle, gracias por su tiempo prestado....