Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-12-2011
lucas05 lucas05 is offline
Miembro
 
Registrado: ago 2010
Posts: 116
Poder: 14
lucas05 Va por buen camino
calcular porcentaje

Hola, estoy usando el QuickReport para imprimir el contenido de tablaA , previo filtrado.

Código Delphi [-]
QuickReport1:=TQuickReport1.Create(self);
QuickReport1.ADOQuery1.SQL.Add('select ta_fecha, ta_total');
QuickReport1.ADOQuery1.SQL.Add('from tablaA');
QuickReport1.ADOQuery1.SQL.Add('where  ta_fecha between'+QuotedStr(FormatDateTime('yyyy/mm/dd',DateTimePicker1.Date))
+'AND'+QuotedStr(FormatDateTime('yyyy/mm/dd',DateTimePicker2.Date)));

QuickReport1.ADOQuery1.Open;
QuickReport1.QRDBText1.DataField:='ta_fecha';
QuickReport1.QRDBText2.DataField:='ta_total';

QuickReport1.Preview;

Antes de imprimir el reporte como puedo aplicarle a cada uno de los valores del campo ta _total un descuento de 10%.
El 10% esta guardado en tablaB, en el campo tb _ porcentaje, este valor esta guardado en una tabla ya que el usuario puede modificarlo.

Espero haber sido claro. Muchas Gracias
Responder Con Cita
  #2  
Antiguo 09-12-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
y como relacionas la tablaA con la TablaB???
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 09-12-2011
lucas05 lucas05 is offline
Miembro
 
Registrado: ago 2010
Posts: 116
Poder: 14
lucas05 Va por buen camino
Hola, gracias por responder.
En tablaA tengo un campo ta_descuento que guarda la clave primaria tb_id de tablaB
Responder Con Cita
  #4  
Antiguo 09-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lucas.

Proba de este modo:
Código Delphi [-]
 ...
 with QuickReport1.ADOQuery1 do
  begin
    Close;
    SQL.Clear;
    SQL.Add('select tablaA.ta_fecha,');
    SQL.Add('tablaA.ta_total-(tablaA.ta_total * TablaB.Dcto/100) as descuento ');
    SQL.Add('from tablaA, tablaB ');
    SQL.Add('where tablaA.ta_descuento = tablaB.ID');
    SQL.Add('and ta_fecha between :DESDE and :HASTA');
    Parameters.ParamByName('DESDE').Value:= DateTimePicker1.Date;
    Parameters.ParamByName('HASTA').Value:=DateTimePicker2.Date;
    Open;
  end;
  QuickReport1.QRDBText1.DataSet:= ADOQuery1;
  QuickReport1.QRDBText1.DataField:= 'descuento';
  ...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #5  
Antiguo 09-12-2011
lucas05 lucas05 is offline
Miembro
 
Registrado: ago 2010
Posts: 116
Poder: 14
lucas05 Va por buen camino
Hola, gracias por la ayuda, probe con tu codigo pero no muestra nada (no aparecen errores al compilar).
Agregue esta linea al final para poder visualizar antes de imprimir
Código:
QuickReport1.Preview;
Pregunta: que es descuento
Código Delphi [-]
SQL.Add('tablaA.ta_total-(tablaA.ta_total * TablaB.Dcto/100) as descuento ');
Código Delphi [-]
QuickReport1.QRDBText1.DataField:= 'descuento'

Muchas Gracias
Responder Con Cita
  #6  
Antiguo 09-12-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
descuento es el nombre que tendra la columna resultante de la operacion

mira la siguiente consulta

Código Delphi [-]
Select pr1 as Precio, x_nombre, x_n As Articulo from tabla1

el campo pr1 tendra como titulo "Precio"
el campo x_nombre aparecera igual x_nombre
el campo x_n tendra como titulo "Articulo"
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 09-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lucas.

El motivo que no te lo muestre puede ser por el tipo de banda donde se encuentre el TQRDBText. Si está ubicado en un TQRSubDetail con su propiedad DataSet = ADOQuery1, tiene que mostrarte los precios descontados.

Sobre que es el campo 'descuento', es un alias que se le dá como nombre al resultado de la consulta (columna) tal como te explicó el amigo oscarac.

por ejemplo:
Código SQL [-]
SELECT TABLA_A.TOTAL - (TABLA_A.TOTAL * TABLA_B.DESCUENTO/100) AS PRECIO_REBAJADO
FROM TABLA_A, TABLA_B
WHERE TABLA_A.DESCUENTO = TABLA_B.ID
  AND TABLA_A.FECHA BETWEEN :DESDE AND :HASTA
La columna resultado tiene como nombre: PRECIO_REBAJADO .

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #8  
Antiguo 10-12-2011
lucas05 lucas05 is offline
Miembro
 
Registrado: ago 2010
Posts: 116
Poder: 14
lucas05 Va por buen camino
Hola, muchas gracias a todos por su ayuda, pero sigo sin poder hacer que funcione.
Este es el código que uso (al compilar no aparece ningún error), espero que puedan ayudarme a encontrar el problema.
Código Delphi [-]
   Try
       QuickReport1:=TQuickReport1.Create(self);
       QuickReport1.ADOQuery1.SQL.Add('select tablaA.ta_fecha');
      QuickReport1.ADOQuery1.SQL.Add('tablaA.ta_total-(tablaA.ta_total * tablaB.tb_porcentaje/100) as descuento');
       QuickReport1.ADOQuery1.SQL.Add('from tablaA, tablaB');
      QuickReport1.ADOQuery1.SQL.Add('where tablaA.ta_descuento = tablaB.tb_id');
       QuickReport1.ADOQuery1.SQL.Add('and ta_fecha between'+QuotedStr(FormatDateTime('yyyy/mm/dd',DateTimePicker1.Date))
       +'AND'+QuotedStr(FormatDateTime('yyyy/mm/dd',DateTimePicker2.Date)));


       QuickReport1.ADOQuery1.Open;
       QuickReport1.QRDBText1.DataField:='ta_fecha';
       QuickReport1.QRDBText2.DataField:='descuento';

       QuickReport1.Preview;
      finally
       QuickReport1.Free;
      end;

Gracias.
Responder Con Cita
  #9  
Antiguo 10-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lucas.

¿ Ya probaste poniendo el TQRDBText en un componente TQRSubDetail con la propiedad DataSet del mismo igual a ADOQuery1 como te sugerí ?

No te confundas con un componente TQRBand que tiene su propiedad BandType igual a rbSubDetail ya que no es lo mismo.

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 10-12-2011
lucas05 lucas05 is offline
Miembro
 
Registrado: ago 2010
Posts: 116
Poder: 14
lucas05 Va por buen camino
Hola ecfisa, si seguí tu consejo(gracias), el problema aparece cuando tiene que realizar el cálculo.
El problema esta en esta linea

Código Delphi [-]
QuickReport1.ADOQuery1.SQL.Add('tablaA.ta_total-(tablaA.ta_total * tablaB.tb_porcentaje/100) as descuento');

Gracias.
Responder Con Cita
  #11  
Antiguo 10-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por lucas05 Ver Mensaje
Hola ecfisa, si seguí tu consejo(gracias), el problema aparece cuando tiene que realizar el cálculo.
El problema esta en esta linea

Código Delphi [-]
QuickReport1.ADOQuery1.SQL.Add('tablaA.ta_total-(tablaA.ta_total * tablaB.tb_porcentaje/100) as descuento');

Gracias.
Hola lucas.

¿ Que problema te aparece, te dá algún error en tiempo de ejecución ?


Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #12  
Antiguo 11-12-2011
lucas05 lucas05 is offline
Miembro
 
Registrado: ago 2010
Posts: 116
Poder: 14
lucas05 Va por buen camino
Hola, gracias por su ayuda, por fin pude hacerlo funcionar bien.
Pero apareció otro problemita, cuando el resultado es un número con decimales,como puedo hacer para que solo muestre hasta con dos decimales.

Muchas Gracias
Responder Con Cita
  #13  
Antiguo 11-12-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola Lucas.

Por favor, poné tu nueva pregunta en un nuevo hilo. (Guía de estilo punto ocho)


Un saludo y gracias por tu colaboración
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Calcular tiempo restante y mostrar en porcentaje alquimista Varios 14 17-05-2011 09:52:13
Porcentaje Progressbar Er0s Varios 12 14-09-2010 13:11:58
Porcentaje de uso del CPU OSKR C++ Builder 2 13-07-2006 01:23:53
Porcentaje en un ProgressBar silviodp OOP 1 15-04-2004 06:41:41
Matemáticas: Calcular porcentaje DarkByte Varios 9 01-02-2004 17:42:08


La franja horaria es GMT +2. Ahora son las 11:27:49.


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