Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-06-2005
escullar escullar is offline
Miembro
 
Registrado: feb 2005
Posts: 67
Poder: 20
escullar Va por buen camino
Question Ayuda con el qrExpr()

Hola

Necesito realizar la suma de unos campo del detalle del documento.El problema es que esta conectado a datos a traves de codigo y obtiene esos datos a partir de otro formulario y no se como relizar la suma del campo.

Los nombres de los campos son eBase, eImpuestos y eTotal que son qrdbText.

¿Sabría alguien decirme como puedo relizarla la suma al final de cada pagina tanto con el qrexpr o con otro componente del quickreport?

Un saludo y muchas gracias por todo.
Responder Con Cita
  #2  
Antiguo 07-06-2005
lgarcia lgarcia is offline
Miembro
 
Registrado: jul 2004
Posts: 479
Poder: 20
lgarcia Va por buen camino
Ayuda con el qrExpr()

Hola:

Me parece que debes poner un ADOStoredProcedure en el Reporte y de ahi coger los datos que van a formar parte del qrExpr() y para totalizar al final de la pagina utiliza la banda PageFooter y al qrExpr() trabaja con la propiedad ResetAfterPrint.

Saludos
Luis Garcia

_____________________________
La mejor manera de decir es hacer
Responder Con Cita
  #3  
Antiguo 07-06-2005
escullar escullar is offline
Miembro
 
Registrado: feb 2005
Posts: 67
Poder: 20
escullar Va por buen camino
Question sigo investigando pues no es lo que necesito

Muchas gracias por la contestacion pero no es lo necesito.

El caso es que los datos del qr se los asigno yo desde otro formulario y por lo tanto la formula tambien se la tendría que asignar.

Mi pregunta es sino es capaz de hacer la suma de unos de los campos detalle sin que proceda de la base de datos?. Yo tengo un campo en el detalle que se llama ebase, ¿Cómo se puede sumar?. O en caso de que proceda de la base de datos como asignarselo de forma directa al qrexpr desde el otro formulario que realiza la llamada?


Un cordial saludo.
Responder Con Cita
  #4  
Antiguo 07-06-2005
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 21
sitrico Va por buen camino
Puedes usar el evento OnPrint del tQrExpr y asignar la operación que quieras realizar al parametro Value (que es un String)

Código Delphi [-]
procedure Tform1.QRExpr1Print(sender: TObject; var Value: String);
begin
Value := IntToStr(q.FieldByName('eBase').AsInteger * 
                  q.FieldByName('eImpuestos').AsInteger); 
end;
Claro que deberás usar la conversión de los tipos de datos y calcular la operación correspondiente a tu caso.

Con este método también es posible (y recomendable) usar un QRLabel en lugar de QRExpr.

Espero te sirva.
__________________
Sitrico
Responder Con Cita
  #5  
Antiguo 08-06-2005
escullar escullar is offline
Miembro
 
Registrado: feb 2005
Posts: 67
Poder: 20
escullar Va por buen camino
Question Sigue sin funcionarme

Gracias por todo pero no es lo que busco.

Yo necesito la suma de un campo que se encuentra en el detalle del qr y que se llama ebase. Quiero que realice la suma de este campo a traves del qrexpr y no a traves de codigo.

Lo que quiero saber es si se puede con el qrexpr realizar la suma de un campo detalle?

Un cordial saludo.
Responder Con Cita
  #6  
Antiguo 08-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Esto debería funcionar:

qrExpr.Expression := SUM(ebase)

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 08-06-2005
escullar escullar is offline
Miembro
 
Registrado: feb 2005
Posts: 67
Poder: 20
escullar Va por buen camino
Question Eso pensaba yo

Hola Lepe.

El caso es que eso es lo que he puesto desde el principio pero no me sale nada. De ahí que le este dando tantas vueltas y no logro descifrar el porqué.

El caso es que al final tendré que hacerlo a través de codigo aunque me parece una chapucilla pues yo pensaba que se podia realizar por qrExpr.

Un saludo y muchas gracias pues me quedo a la espera de nuevas soluciones a ver si a alguien se le ocurre de hacer que funcione con el qrExpr.
Responder Con Cita
  #8  
Antiguo 08-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Como los datos estan enlazados por código, según dices, no puedes hacerlo en diseño, tienes que hacerlo en ejecución. No se trata de ninguna chapuza, incluso puede ser más flexible y eficiente, ya que puedes reutilizarlo .

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 08-06-2005
escullar escullar is offline
Miembro
 
Registrado: feb 2005
Posts: 67
Poder: 20
escullar Va por buen camino
Question Nada de nada

Hola Lepe.

El hacerlo por codigo si me supone una chapucilla pues se supone que va a ser mas eficiente con el qrexpr que el hecho de recorrer lineas de codigo.

El caso es que le he asignado la expresion en tiempo de ejecucion igual que los datos pero nada de nada.

Una pregunta que me estoy planteando ahora es en qué tipo de Band tiene que colocarse?. Yo lo he puesto en uno de tipo PageFooter.

¿Puede ser este el problema?

Un saludo y gracias por la atencion que me prestais pues no llevo mucho tiempo utilizando el quick report y la verda que me he decido por este tipo de impresion por los comentarios de la gente pero no paro de chocarme con un problema detras de otro. Tengo parado el tema de las impresora matricial esperando una contestacion en el foro pues ese si que es un problema mas serio.
Responder Con Cita
  #10  
Antiguo 08-06-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por escullar
Una pregunta que me estoy planteando ahora es en qué tipo de Band tiene que colocarse?. Yo lo he puesto en uno de tipo PageFooter.

¿Puede ser este el problema?
No, yo tengo en Pies de páginas unos qrExpr y van de maravilla.

Será una tontería, pero ahora mismo se hace cuesta arriba, quizás con un poco de código de como un formulario llama y configura al QuickReport, y la descripción más relevante de los Datasets implicados sirva para aclarar el tema.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #11  
Antiguo 08-06-2005
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 21
sitrico Va por buen camino
Usar una Banda PageFooter no debería ser problema, (prueba con una banda Summary para asegurarte) el problema (me parece) es con la definicion de la expresión en sí, normalmente si defines la expresión en tiempo de diseño queda algo como:

Código Delphi [-]
Sum(Query1.Campo)

Si la pones en sum(Campo) hay un error, en esos casos yo asigno temporalmente los campos de la tabla del reporte (con FieldEditor) y preparo la expresión en tiempo de diseño, luego la copio a la definición de la expresión para usarla en tiempo de ejecución y limpio los campos y cualquier otra configuración de tiempo de diseño.


Asegurate también de asignar el "Parent" de la expresión al crear el objeto

QrExpr1.Parent := QRBandX;
__________________
Sitrico
Responder Con Cita
  #12  
Antiguo 09-06-2005
escullar escullar is offline
Miembro
 
Registrado: feb 2005
Posts: 67
Poder: 20
escullar Va por buen camino
Question Sigo sin conseguir resultados

Hola.

Lo he intentado todo pero parece que no quiere funcionar. No se el porque no puedo realizar esta asignacion:

qrExpresion.Expression:= 'SUM(dsFacturas.dataset.fieldbyname(' + 'PR_SUMA_BASE' + ').asfloat)';

Lo que no entiendo es la propiedad "PARENT". No se que le tengo que asignar pues Sitrico me pone que le asigne una banda pero cual de ellas?

Un saludo y muchas gracias por vuestra atencion y ayuda. Yo creo que al final se consiguirá pues tiene que ser alguna chorrada aunque no me lo explico pues esto deberia de ser muy facil e intuitivo.

Chaito.
Responder Con Cita
  #13  
Antiguo 13-06-2005
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 21
sitrico Va por buen camino
Cita:
Empezado por escullar
Lo que no entiendo es la propiedad "PARENT". No se que le tengo que asignar pues Sitrico me pone que le asigne una banda pero cual de ellas?
El parent del qrExpresion DEBE ser la banda donde quieres que muestre el resultado de la expresión (normalmente QRDetail). Esto es aplicable únicamente a los componentes creados en tiempo de ejecución. Si creas qrExpresion en tiempo de diseño y sólo asignas la expresión en tiempo de ejecución no tienes que asignar el Parent.

De cualquier manera te recomiendo que pruebes crear la expresión en un reporte en tiempo de diseño y luego pasarla a tiempo de ejecución.
__________________
Sitrico
Responder Con Cita
  #14  
Antiguo 13-06-2005
escullar escullar is offline
Miembro
 
Registrado: feb 2005
Posts: 67
Poder: 20
escullar Va por buen camino
Question Graciar por el interes

Te agradezco mucho tu ayuda pues eso es lo que he intentado desde un principio, crearla en diseño y luego pasarla a codigo pero no he conseguido nada de nada.

Supongo que tiene que ser un error mio pero no se de donde pues es tan facil como asignarle el campo a sumar pero no le da la gana de sumar nada aunque sí me aparecen todas las lineas del detalle.


Un saludo.
Responder Con Cita
  #15  
Antiguo 15-06-2005
Avatar de sitrico
[sitrico] sitrico is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Caracas, Venezuela
Posts: 295
Poder: 21
sitrico Va por buen camino
Un último detalle: prueba cambiar la comilla simple de la expresion:

Cita:
... (' + 'PR_SUMA_BASE' + ')...
Por

Código Delphi [-]
' ... ('+#39+'PR_SUMA_BASE'+#39+') ... '

porque lo que estas haciendo genera el código de la expresión:

SUM(dsFacturas.dataset.fieldbyname(PR_SUMA_BASE).asfloat)

el campo PR_SUMA_BASE DEBE estar entre comillas simples
__________________
Sitrico
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 21:54:39.


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