PDA

Ver la Versión Completa : Ayuda con Rave Report 6 y Delhpi 2005


MaSSaKKre
05-03-2008, 20:39:30
hola a todos, he desarrollado un sistema para credenciales e informes de personal, el cual esta completo hasta cierto punto 8pues me faltan algunas funciones mas), el problema que tengo es que nunca en mi vida he trabajado con Rave Reports:eek: y por lo tanto no se como enviar los datos de una consulta hacia la realizacion de un informe; según he leido se utilizan 3 componentes q son RvSystem,RvProject y RvDataSetConnection.
pero no se como enviar la informacion hacia el informe, ni como hecharlo a andar.

el procedimiento de mi consulta es el siguiente, esta en un dbgrid, que al ir pulsando hacia abajo, me hace una consulta sobre el registro en el que ando y me envia los valores a unas labels; tambien tengo un procedimiento llamado foto, donde se busca la foto del empleado, la cual esta almacenada en una carpeta en el disco duro y no la puse almacenada en la bd xq me alentaria la bd al momento de mis consultas, ya que manejo mas de 1500 registros y seria muy pesada la consulta. Mi base de datos esta en Access.

primero pongo el procedimiento de la busqueda de la foto y posteriormente el de mi adoquery.


PROCEDURE TBUSQUEDAGENERAL.FOTO;
VAR NUM_EMPLEADO:STRING;
RUTAFOTO:STRING;
FOTO:TJPEGIMAGE;
BEGIN NUM_EMPLEADO:=LABEL11.Caption; RUTAFOTO:=''; //BUSCANDO EN LA RUTA DE LAS FOTOS
RUTAFOTO:=( (ExtractFilePath( Application.ExeName ) + 'Fotos\'+NUM_EMPLEADO+'.jpg'));
//CARGANDO LA FOTO
IF FILEEXISTS (RUTAFOTO) THEN BEGIN FOTO:=TJPEGImage.Create; FOTO.LoadFromFile(RUTAFOTO); IMAGE1.Picture.Assign(FOTO); //Image1.Visible:=true;
FOTO.Free;
END ELSE BEGIN RUTAFOTO:=( (ExtractFilePath( Application.ExeName ) + 'Fotos\LOGO.jpg'));
FOTO:=TJPEGImage.Create;
FOTO.LoadFromFile(RUTAFOTO);
IMAGE1.Picture.Assign(FOTO);
END;
END; //END ELSES




procedure TBUSQUEDAGENERAL.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var NUM_EMPLEADO:STRING;

begin IF DBGRID1.Enabled=FALSE THEN BEGIN EXIT; END;

NUM_EMPLEADO:=DBGRID1.SelectedField.ASSTRING;
IF (NUM_EMPLEADO='') THEN
BEGIN
EXIT;
END
ELSE
BEGIN
WITH ADOQUERY2 DO
BEGIN
CLOSE;
SQL.Clear;
SQL.Add('SELECT * FROM Tbl_Personal WHERE NUM_EMPLEADO LIKE "%'+NUM_EMPLEADO+'%"');
OPEN;
END;
//ENVIAR VALORES OBTENIDOS
LABEL11.Caption:= ADOQUERY2.FieldByName('NUM_EMPLEADO').ASstring;
LABEL12.Caption:= ADOQUERY2.FieldByName('NOMBRE').ASstring;
LABEL13.Caption:= ADOQUERY2.FieldByName('APELLIDO_P').Asstring;
LABEL14.Caption:= ADOQUERY2.FieldByName('APELLIDO_M').AsSTRING;
LABEL15.Caption:= ADOQUERY2.FieldByName('CARGO').AsSTRING;
LABEL16.Caption:= ADOQUERY2.FieldByName('AREA').AsSTRING;
LABEL17.Caption:= ADOQUERY2.FieldByName('STATUS').ASSTRING;
FOTO;
IF LABEL11.Caption='' THEN
BEGIN
BITBTN1.Enabled:=FALSE;
END
ELSE
BEGIN
BITBTN1.Enabled:=TRUE;
END;
EXIT;
END;

END;


la foto esta guardada en *.jpg y se muestra en un contro Timage.

lo que en realidad
quiero hacer es que los datos que estan en las labels (los que envie directo al reporte) asi como tambien la foto que muestro en el Timage.

espero me puedan ayudar u orientar.

ya he leido varios post y manuales pero la vdd no tengo claro los procedimientos.

espero su ayuda, saludos.

MaSSaKKre
05-03-2008, 23:38:00
bueno, despues de tanto estar batallando, he logrado enviar los datos a mi reporte y esto desde el rave designer, compile mi programa y logre hacer la conexion que necesitaba para que mi dataview cargara los elementos a mostrar...

solo necesito un poco de ayuda al momento de querer enviar mi imagen que esta en jgp y q se encuentra en mi disco duro...

a ver si alguien me logra ayudar para facilitarme un poco la vida jejeje...

saludos.

MaSSaKKre
06-03-2008, 18:23:28
pues despues de tanto dolor de cabeza y de leer muchas paginas por internet y visitar sitios, ejemplos, etc.

ahi en el foro encontre un hilo (http://www.clubdelphi.com/foros/showthread.php?t=50617&highlight=imagen+rave) donde decian como manipular un objeto del Rave desde delphi, el cual lo adapte y lo hice funcional segun mis necesidades.

mi procedimiento quedo de la siguiente forma


procedure TBUSQUEDAGENERAL.Button1Click(Sender: TObject);
var
NUM_EMPLEADO:STRING;
RUTAFOTO:STRING;
FOTO:TJPEGIMAGE;
reporte: TRavePage;
fotorave: Travejpegimage;
begin
RvProject1.ProjectFile:= ( (ExtractFilePath( Application.ExeName ) + 'Individual.rav'));
RvProject1.Open;
//********************************

NUM_EMPLEADO:=LABEL11.Caption;
RUTAFOTO:=''; //BUSCANDO EN LA RUTA DE LAS FOTOS
RUTAFOTO:=( (ExtractFilePath( Application.ExeName ) + 'Fotos\'+NUM_EMPLEADO+'.jpg'));
//CARGANDO LA FOTO
IF FILEEXISTS (RUTAFOTO) THEN
BEGIN
FOTO:=TJPEGImage.Create;
FOTO.LoadFromFile(RUTAFOTO);
IMAGE1.Picture.Assign(FOTO);
//Image1.Visible:=true;
FOTO.Free;
With RvProject1.ProjMan do begin
reporte := FindRaveComponent('Report1.Page1',nil) as TRavePage;
fotorave := FindRaveComponent('JPEGImage1',reporte) as TRavejpegimage;
fotorave.Image.LoadFromFile(RUTAFOTO);
end;
END
ELSE
BEGIN
RUTAFOTO:=( (ExtractFilePath( Application.ExeName ) + 'Fotos\LOGO.jpg'));
FOTO:=TJPEGImage.Create;
FOTO.LoadFromFile(RUTAFOTO);
IMAGE1.Picture.Assign(FOTO);
FOTO.Free;
With RvProject1.ProjMan do begin
reporte := FindRaveComponent('Report1.Page1',nil) as TRavePage;
fotorave := FindRaveComponent('JPEGImage1',reporte) as TRavejpegimage;
fotorave.Image.LoadFromFile(RUTAFOTO);
end;
END; //EN ELSES


//********************************
RvProject1.Execute;
RvProject1.Close;
end;



bueno, deje mi código xq tal vez alguien mas este interesado en hacer lo mismo y no tenga la menor idea de como hacerlo.

Saludos y gracias a los q por lo menos leyeron con la intencion de aportar algo, pero que supongo no saben manejar el Rave al igual que yo.:p

saludos