Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Impresión
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Ocultar filas en RAVE

Hola amigos

Espero ser claro con una idea loca que tengo en mente.

Como ya lo mencioné en otro hilo, estoy aprendiendo RAVE, pero se me ocurrio que no muestre los registros que tienen costo cero, pero que si los cuente en el total.

Esto lo podría hacer filtrando en un Query sin ningún problema, pero, aqui viene la locura de mi mente,

Por ejemplo:

Tengo estos registros

Registro 1 costo 10.00
Registro 2 costo 0.00
Registro 3 costo 5.00
Registro 4 costo 0.00
Registro 5 costo 20.00

y quiero que los muestre así:

Registro 1 costo 10.00
Registro 3 costo 5.00
Registro 5 costo 20.00

Pero que si los cuente en el total de registros

Total de Registros 5
Total Costo 35.00

Quiero que aunque no los muestre si sean parte del resultado final.

Estuve viendo los eventos de RAVE, por ejemplo en el BeforePrint donde puse lo siguiente

Código:
{ Event for  HeaderBand.OnBeforePrint }
function  Header_OnBeforePrint(Self: TRaveBand);
begin
if DataView1COSTO.AsFloat = 0.0 then
   Detail.visible := False;
else
   Detail.visible := True;
end  if;
end  OnBeforePrint;
Pero no hizo nada y ya no quiso mostrar el reporte. Le quité el evento y ya funcionó de nuevo, pero con todos los datos, espero haber sido claro dentro del desorden mental que me cargo.

Gracias anticipadas

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 11-07-2007 a las 06:22:24.
Responder Con Cita
  #2  
Antiguo 12-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Bueno como he visto que en otro hilo haces mención de este, te diré:
No conoczo RAVE, pero si utilizas Firebird, puedes armarte un stored procedure que te devuelva el resultado tal como quieres, y luego enchufarselo al report.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #3  
Antiguo 12-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Muchas gracias ArdiIIa, efectivamente, uso Firebird, haré el procedimiento haber que gestos hace.

Gracias por responder,

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #4  
Antiguo 12-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
De todas formas egostar, examinando el código que pones en el report, me da la impresión que lo que hace visible u oculto es la banda donde está la etiqueta a imprimir (Detail), cuando en realidad, únicamente deberías ocultar solamente la etiqueta (DataView1COSTO), y seguramente obtienes esos resultados inesperados.
Te repito que no conozco el RAVE, pero no debería resultar difícil o imposible ocultar un determinado valor, pero como digo, no ocultando la banda, sino el propio valor.

Corrígeme si me equivoco.

Saludos.
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #5  
Antiguo 12-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Así es ArdiIIa, probe con la banda Detail y tratando de ocultar todos los campos cuando la cantidad es cero pero en todos los casos el resultado es el mismo, el reporte se bloquea y no lo muestra.

Sin embargo, en base a tu comentario de hacerlo con un SP, llegue a esto y en la consulta obtengo la información que necesito.

Código SQL [-]
begin
  FOR
    select Fecha, Agente, Ventas from VENTAS
    where Ventas > 0
  INTO :S_Fecha, :S_Agente, :S_Ventas DO

  FOR
    select Fecha, COUNT(Fecha), SUM(Ventas) from VENTAS
    group by Fecha
  INTO S_FechaPaso, :S_Agentes, :S_TotalVentas DO

  begin
    suspend;
  end
end

Ahora solo lo voy a implementar en el reporte, pero pienso que ya consegui lo que deseaba.

Gracias por el tip.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #6  
Antiguo 12-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Pues nada, no me sirve el SP en Rave, solo sirve si existe al menos un dato con un valor mayor a 0.

Bueno, al mal tiempo darle buena cara, yo sigo experimentando, ya les diré que fué lo que al final me sirvió o si de plano no me sirvió nada.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #7  
Antiguo 12-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Yo haría algo así:
Código SQL [-]
Begin
  FOR   select Fecha, Agente, Ventas from VENTAS
    where Ventas > 0
  INTO :S_Fecha, :S_Agentes, :S_Ventas DO
suspend;


FOR   select Fecha, COUNT(Fecha), SUM(Ventas) from VENTAS
    group by Fecha
  INTO S_FechaPaso, :S_Agentes, :S_TotalVentas DO
   suspend;

end
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #8  
Antiguo 12-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Muy bien ArdiIIa, lo hice y efectivamente si me muestra los totales aunque no haya datos mayores a cero.

Ahora lo voy a implementar en Rave.

Salud OS y gracias
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #9  
Antiguo 13-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Bueno, yo sigo con mi inquietud, creo que ya se está convirtiendo en obsesión.

Pues efectivamente, lo que propones amigo ArdiIIa, está perfecto, solo que hay un detalle:

En el reporte si no hay datos mayores a cero me muestra todo bien, pero si existe al menos un dato mayor a cero, me duplica el registro o si hay mas de uno duplica el último registro.

Pues nada, sigo investigando.

Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
  #10  
Antiguo 13-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Bueno, al final quedo como pense al inicio, usando el evento OnBeforePrint, solo me faltaba un else anidado al final, pues nada, les pongo el código del evento y del SP para que pueda servir a alguien con la misma inquietud.

Código en el evento OnBeforePrint de RAVE:

Código:
{ Event for Detail.OnBeforePrint }
function Detail_OnBeforePrint(Self: TRaveDataBand);
begin
   if DataView1S_Ventas.AsInteger > 0 then
      Detail.visible := True;
   elseif DataView1S_Ventas.AsInteger = 0 then
      Detail.visible := False;
   else
      Detail.visible := True;
   end if;
end OnBeforePrint;
Y el Procedimiento Almacenado quedo así:

Código SQL [-]
begin
  FOR
    select Fecha, Agente, Ventas from VENTAS
    INTO :S_Fecha, :S_Agente, :S_Ventas DO
  suspend;
end

Muchas gracias amigo ArdiIIa.

Salud OS
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney

Última edición por egostar fecha: 13-07-2007 a las 07:35:40.
Responder Con Cita
  #11  
Antiguo 13-07-2007
Avatar de ArdiIIa
[ArdiIIa] ArdiIIa is offline
Miembro Premium
 
Registrado: nov 2003
Ubicación: Valencia city
Posts: 1.481
Poder: 22
ArdiIIa Va por buen camino
Vale egostar
Seguramente obtenías valores duplicados porque en el procedure compartes variables de retorno a la hora de hacer el segundo suspend, bastaría con haberlas puesto a null antes de hacer el segundo select.
En cuanto al procedimiento del report, no veo la razón por la cual no funcionaría así:


Código Delphi [-]
{ Event for Detail.OnBeforePrint }
function Detail_OnBeforePrint(Self: TRaveDataBand);
begin
   if DataView1S_Ventas.AsInteger > 0   then
      Detail.visible := True;
   else
      Detail.visible := False;
   end if;
end OnBeforePrint;
__________________
Un poco de tu generosidad puede salvar la vida a un niño. ASÍ DE SENCILLO
Responder Con Cita
  #12  
Antiguo 13-07-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.556
Poder: 25
egostar Va camino a la fama
Hola ArdiIIa, efectivamente, eso pienso, pero me quite de problemas y mejor comence de cero, seguro habia algo que no habia hecho bien, cosas de principiantes, invertí tres días en esto pero al final obtuve lo que queria.

Salud OS y muchas gracias.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ocultar filas o columnas karla Servers 1 10-08-2006 20:03:18
Imprimir solamente 6 filas en RAVE y continuar en la sgte. hoja Luis Impresión 1 05-11-2004 12:16:18
repetir filas en rave report SaLvaGe Impresión 1 19-10-2004 13:26:20
Ocultar Nathan Varios 2 11-03-2004 17:32:14
ocultar botones67 Varios 3 04-10-2003 15:35:37


La franja horaria es GMT +2. Ahora son las 15:41:21.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi