PDA

Ver la Versión Completa : Como imprimir un solo registro en rave


kurono
13-07-2007, 19:44:19
hola amigos del foro como estan soy nuevo aqui tengo un problema y espero que me ayuden el problema es el siguiente estoy haciendo un reporte en rave y hasta ahora todo esta bien lo hice de forma tal que me salga un registro por pagina pero el problema surge cuando voy a imprimir me imprime todos los registro osea que si tengo 10 registro me imprime 10 pagina un registro por pagina lo que quiero hacer es que me imprima el registro que yo selecione osea un registro el selecionado

si alguin sabe como hacerlo se lo agradeceria mucho realmente necesito como hacerlo

egostar
13-07-2007, 20:04:23
Esto me parece que debe ser controlado a través de un filtro en tu Tabla o Query, lo que estes usando.

En un Query


Select * from Tabla
where registro = x


En una Tabla


Filtered = True
Filter = Registro = x


Salud OS.

kurono
13-07-2007, 20:10:17
es una tabla la que estoy usando gracia por la respuesta realmente lo necesitaba lo pondre en pratica

kurono
13-07-2007, 20:34:05
disculpa egostar he estado praticando los codigo que me diste para filtral las tablas y query pero hay algo que no entiendo que debo poner en la propiedad filter en la cual tu me pusiste filter=registro=x me gustaria que me explicara esa parte

egostar
13-07-2007, 20:39:02
Bueno, es que depende que quieras filtrar, por lo que dices me imagino que deberias de tener un campo de ID, por ejemplo ClienteID

Lo que debes hacer es en tiempo de ejecución cambiar esa variable, algo así.


Table1.Filter := 'ClienteID = '+Variable;


Debes de tener la propiedad Filtered de la Tabla en True.

Salud OS.

kurono
13-07-2007, 21:06:37
la variable como la declaro como integer supongo que es asi

egostar
13-07-2007, 21:18:06
la variable como la declaro como integer supongo que es asi

Si es Entera deberias hacer estio


Table1.Filter := 'ClienteID = '+IntToStr(Variable);


Salud OS.

kurono
13-07-2007, 21:30:41
egostar tengo una idea mejor yo te envio el proyecto mio y tu lo corrige porq he hecho lo que tu me dices pero al filtral la tabla el reporte sale en blanco si no es mucha molestia podria darme tu correo para enviartelo

egostar
13-07-2007, 22:26:45
Pues si, me parece una idea genial:D, solo que las cosas no funcionan así en el foro.


Tu preguntas,
Nos comentas con lujo de detalles lo que has hecho,
Nos dejas saber que base de datos usas,
Si se presenta algun error indicas que error y que dice el error
Posteas lo que has hecho hasta el momento
Con estas simples pero eficaces prácticas cualquiera de los miembros del foro te pueda auxiliar.

La idea principal es que tú aprendas y pronto puedas ayudar a otros miembros del foro.

Te invito a que leas la guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php) y la otra guía de estilo (http://www.clubdelphi.com/foros/showpost.php?p=112824&postcount=6) para que conozcas las reglas de convivencia.

Salud OS

kurono
14-07-2007, 04:50:46
ok es verdad el objetivo es que uno aprenda disculpa por hacer esa pregunta aunque era genial lo mejor sera que siga intentando y praticando haber que encuentro muchas gracias de todas forma

Delphius
14-07-2007, 05:26:33
Hola kurono,

Se que voy a repetir y redundar lo dicho. Como te ha dicho egostar, si algo te está fallando. Dinos el error.

Según veo, tus últimas lineas fueron:

muchas gracias de todas forma

¿Lograste solucionarlo?

Para resolver lo que te han dicho debes hacer esto:

Table1.Filtered := True; // Activamos el filtro
Table.Filter := 'IDCliente = ' + Edit1.Text; // Filter es del tipo string
// El filtro está compuesto por una condición de igualdad. Y se obtiene el valor desde un Edit

// Otro ejemplo:

Table1.Filter := 'IDCliente = A543-1';

Saludos,

kurono
14-07-2007, 05:36:06
hola marcelo gracia por responder no he solucionado el problema en realidad no me da error lo que pasa es que al filtral la tabla el reporte me sale en blanco pero creo que sere mas especifico estoy usando una base de datos en access y los componete que utilizo en delphi son la tabla y query ado y como he dicho antes el reporte esta hecho en rave

Delphius
14-07-2007, 06:04:54
A vista rápida lo que puedo saber es que estas ingresando algún valor en la condición de filtrado de modo tal que NO hay registros que la cumplan.

Escribe el código que estas usando. De ser posible adjunta y describe con la mayor cantidad de detalles posibles sobre tus pruebas, ideas, etc.
No te vamos a cobrar por las lineas.

Saludos,

kurono
14-07-2007, 06:12:27
bueno los codigos que estoy usando son lo que ustedes me an proporcionado en este foro pues de otra forma no sabria como hacerlo no se si lo estoy haciendo mal pero los codigo que ustedes me prporcionan lo estoy poniendo en el evento formcreate del formulario si en tal caso estoy mal me gustaria que me dijieran donde ponerlo de lo contrario por lo menos digame como visualizar el ultimo registro en rave lo se hacer en quick report pero en rave no veo el componente que lo hace con lo ultimo que te dijo puedo solucionar parte de mi problema

un ejemplo de como pongo los codigo es este

cliente.Filter := 'idcedula= A543-1'; donde idcedula es el campo que selecciono

otro

cliente.Filtered := True;
cliente.Filter := 'idcedula = ' + txt1.Text;

egostar
14-07-2007, 07:50:03
bueno los codigos que estoy usando son lo que ustedes me an proporcionado en este foro pues de otra forma no sabria como hacerlo no se si lo estoy haciendo mal pero los codigo que ustedes me prporcionan lo estoy poniendo en el evento formcreate del formulario si en tal caso estoy mal me gustaria que me dijieran donde ponerlo de lo contrario por lo menos digame como visualizar el ultimo registro en rave lo se hacer en quick report pero en rave no veo el componente que lo hace con lo ultimo que te dijo puedo solucionar parte de mi problema

un ejemplo de como pongo los codigo es este

cliente.Filter := 'idcedula= A543-1'; donde idcedula es el campo que selecciono

otro

cliente.Filtered := True;
cliente.Filter := 'idcedula = ' + txt1.Text;

Bueno, ahi está el problema, necesitas encerrar entre apostrofos la variable.

Algo asi


Cliente.Filter := 'idcedula = '+QuotedStr('A543-1');


Salud OS

kurono
14-07-2007, 08:27:40
con este codigo que me diste egostar tampoco me funciona

Cliente.Filter := 'idcedula = '+QuotedStr('A543-1');

pero tengo una idea en quick report se pueden guardar los reporte y cargalo cuando uno lo desee e imprimirlo lo se por lo e hecho pero ahora que e emigrado rave veo que tambien se guardan lo reporte pero al momento de cargalo el sistema tira el siguiente error

"el sistema no puede hallar la ruta especificada"

lo que yo quiero hacer ahora ya que no puedo imprimir el reporte selecionado es guardar el reporte e imprimirlo cuando lo desee de esta forma seria casi el equivalente a selecionar el reporte e imprimirlo instantaneamente el cual era mi idea principal

egostar
14-07-2007, 18:14:50
con este codigo que me diste egostar tampoco me funciona

Cliente.Filter := 'idcedula = '+QuotedStr('A543-1');


Se me hace raro que no te funcione, pero seria bueno que hicieras una prueba ligando a tu Table un DBGrid y veas que registros te está regresando, si el dato que estás pasando es único debería de regresarte solo uno, pero...:rolleyes: si existe mas de un registro que coincide con ese filtro, obviamente te mostrará todos los que coincidan.

Salud OS.

Delphius
14-07-2007, 20:50:31
Hola de nuevo,

con este codigo que me diste egostar tampoco me funciona

Cliente.Filter := 'idcedula = '+QuotedStr('A543-1');

pero tengo una idea en quick report se pueden guardar los reporte y cargalo cuando uno lo desee e imprimirlo lo se por lo e hecho pero ahora que e emigrado rave veo que tambien se guardan lo reporte pero al momento de cargalo el sistema tira el siguiente error

"el sistema no puede hallar la ruta especificada"
Insisto en que expongas un poco de TU código. No podemos ver lo que tu tienes en pantalla. Por favor, te lo pido amablemente, da mayores detalles... es el modo en que podremos saber y/o detectar porqué no te está funcionando.

lo que yo quiero hacer ahora ya que no puedo imprimir el reporte selecionado es guardar el reporte e imprimirlo cuando lo desee de esta forma seria casi el equivalente a selecionar el reporte e imprimirlo instantaneamente el cual era mi idea principal
:confused: ¡No te entiendo! No hay ningún signo de puntuación... se me hace dificil intepretar ese párrafo.

Y como dice egostar, comprueba que registros (y cuántos) te está devolviendo.

Saludos,

kurono
15-07-2007, 02:55:10
este es el codigo que tengo puesto en un boton con el evento click

begin
rv.Execute;
cliente.Filtered := True;
cliente.Filter := 'idcedula = '+QuotedStr('A543-1');
end;

donde rv.execute es donde se ejecuta rave para ver los reporte ya diseñado y enlasado con labase de datos y su data set como dije antes los componenete que estoy usando es adotable , adoquery , rave , ravesystem y rvdatasetconetion1

debo aclarar que este codigo no me da error sino que al momento de imprimir me sigue poniendo 1-14 osea que imprimira del registro 1 hasta el 14 y lo que debe de poner es el registro que yo selecione

egostar
15-07-2007, 14:50:35
Y si pruebas de esta manera


cliente.Filtered := True;
cliente.Filter := 'idcedula = '+QuotedStr('A543-1');
rv.Execute;


Salud OS.

Delphius
15-07-2007, 20:24:54
Me uno a lo dicho por egostar. El problema que pareces tener es que primero estás lanzando el reporte y después el filtrado.

El código que egostar ha expuesto te tiene funcionar.
Si sigues teniendo problemas es posible que sea un problema del reporte.

Saludos,

kurono
16-07-2007, 03:13:47
de esta manera

cliente.Filtered := True;
cliente.Filter := 'cedula = '+QuotedStr('A543-1');
rv.Execute;

el reporte me sale basio solo me muestra el titulo del reporte pero los datos no
si en tal caso es el reporte que tiene problema lo mejor seria guardalo pero eso me da un error al cargar el archivo el cual es el siguiente

"el sistema no puede hallar la ruta especificada"

como puedo hacer para cargar ese archivo sin problema

egostar
16-07-2007, 04:59:45
Insisto que deberias de probar tu código con un DBGrid antes de enviarlo a Rave. Si no te muestra registros al cambiar de lugar las lineas, entonces habría que ver si realmente lo que estas filtrando exite en la tabla.

Salud OS.