Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Impresión (https://www.clubdelphi.com/foros/forumdisplay.php?f=4)
-   -   Sumar un el valor de un Label en report builder (https://www.clubdelphi.com/foros/showthread.php?t=75131)

escorpionrojo43 31-07-2011 03:12:37

Sumar un el valor de un Label en report builder
 
:cool:Hola Colegas.

Tengo una duda de la cual necesito de la ayuda de ustedes para su solucion.

Tengo un reporte en report builder en el cual tengo un valor calculado de acuerde a una condicion x.

hasta aqui todo bien, en el detalle me da los valores cuando cumplen una de las condiciones. el problema reside en quiero al final de la pagina"Footer" el total de la suma de ese label para mayor comprension aqui parte de mi codigo

Código Delphi [-]
procedure label41OnGetText (var Text : String);
begin
   if dbp_bien['campo11'] = 'Primera' then
   begin
    Text := (dbp_bien['VALOR']*60)
   end
   else if dbp_bien['campo11'] = 'Segunda' Then
   begin
    Text := (dbp_bien['VALOR']*12)
   end
   else if dbp_bien['campo11'] = 'Tercera' Then
   begin
    Text := (dbp_bien['VALOR']*4)
   end
   else if dbp_bien['campo11'] = 'P1' Then
   begin
    Text := (dbp_bien['VALOR']*1000)
   end
   else if dbp_bien['campo11'] = 'P2' Then
   begin
    Text := (dbp_bien['VALOR']*100)
   end
   else if dbp_bien['campo11'] = 'TRIPLETA' Then
   begin
    Text := (dbp_bien['VALOR']*10000)
   end;
end;

con esto puedo tener varios valores en el detalle, lo que quiero es que en otro label me sume el resultado del label41

suponiendo que en el detalle label41.caption tiene valores como
1000
100
10000

necesito tener la suma de todos estos en otro label llamado label45 el cual va a al final de la pagina.
Espero haberme explicado bien. ahh! esto esta en el lenguage RAP "(Report Application Pascal"

Caral 31-07-2011 03:32:33

Hola
No conozco report builder pero me pregunto viendo el codigo:
No se podria colocar una o varias variables que obtengan el resultado y simplemente exponerla?.
En QReport existe un componente que hace lo que necesitas, es una lastima que report builder no lo tenga.
Saludos

escorpionrojo43 31-07-2011 04:36:47

Cita:

Empezado por Caral (Mensaje 408026)
Hola
No conozco report builder pero me pregunto viendo el codigo:
No se podria colocar una o varias variables que obtengan el resultado y simplemente exponerla?.
En QReport existe un componente que hace lo que necesitas, es una lastima que report builder no lo tenga.
Saludos

Que idea me puedes dar de como poner esa variable? como podria referirme a esa variable con los valores que obtengo para luego sumarlo?

Caral 31-07-2011 04:52:59

Hola
Pues la verdad no lo se, me imagino algo asi:
Código Delphi [-]
procedure label41OnGetText (var Text : String);
Var suma: Real;
begin
   suma:= 0;
   if dbp_bien['campo11'] = 'Primera' then
   begin
    Text := (dbp_bien['VALOR']*60)
   end
   else if dbp_bien['campo11'] = 'Segunda' Then
   begin
    Text := (dbp_bien['VALOR']*12)
   end
   else if dbp_bien['campo11'] = 'Tercera' Then
   begin
    Text := (dbp_bien['VALOR']*4)
   end
   else if dbp_bien['campo11'] = 'P1' Then
   begin
    Text := (dbp_bien['VALOR']*1000)
   end
   else if dbp_bien['campo11'] = 'P2' Then
   begin
    Text := (dbp_bien['VALOR']*100)
   end
   else if dbp_bien['campo11'] = 'TRIPLETA' Then
   begin
    Text := (dbp_bien['VALOR']*10000)
   end;
  suma:= suma + StrToFloat(Text);
end;
No se, probar no cuesta nada.
Saludos

Casimiro Notevi 31-07-2011 12:01:30

En lugar de usar una label, lo que tienes que hacer es usar una variable de tipo float, por ejemplo, y le le dices que sume. Es lo normal en cualquier generador de informes.

Diana Carolina 09-08-2011 22:49:01

Componente Tipo Variable
 
Hola,,,Yo estoy tratando de sumar dos campos que tengo en un qry en un componente variable de Report Builder.

valor := (QryPapeletaLocmontonetofracc.AsFloat + QryPapeletaLocvlrIva.AsFloat);
ppVNeto.Value := FormatFloat('#,0.00', Valor);

Pero en el reporte el dato es 0.00 deberia mostrarme el valor de la suma puesto que ambos campos contienen valores.

Diana Carolina 09-08-2011 22:50:29

Ayuda!
 
Podrian por favor ayudarme con este asunto...Gracias!:p

oscarac 09-08-2011 23:12:11

Cita:

Empezado por Diana Carolina (Mensaje 408954)
Podrian por favor ayudarme con este asunto...Gracias!:p

no conozco mucho Report Builder pero me imagino que el tratamiento debe ser igual
estas segura que esos campos tienen datos? son de tipo numerico? o float?

Diana Carolina 09-08-2011 23:18:34

Float
 
Claro, tienen datos, cuado recorro las lineas de codigo me muestran que datos tienen.

Diana Carolina 09-08-2011 23:20:42

Son float...:rolleyes:

ecfisa 09-08-2011 23:30:50

Hola.

Al igual que oscarac no conozco R. Builder.

Pero se me ocurre que podés probar con una consulta, algo así:
Código Delphi [-]
 with qyPapeleta do
 begin
   Close;
   SQL.Text:= 'SELECT SUM(NETOFRACC)+SUM(LOCVLRIVA) AS TOTAL FROM TU_TABLA';
   Open;
 end;
Y suponiendo que 'ppVNeto' sea un XXDBText, asignar a la propiedad DataSource el DataSource de la consulta y como DataField al campo 'NETO'.
Si abrís la consulta en tiempo de diseño podrás seleccionar las propiedades desde el Object Inspector.

Saludos.

Diana Carolina 09-08-2011 23:43:29

ppVNeto es un compnente variable de Report Builder, se supone que este compnente me deja hacer el calculo que requiero, Gracias.:confused:

oscarac 09-08-2011 23:46:41

quiza es como el qrexpression del qreport

una solucion seria crear un campo calculado en la tabla o en el query agregar ese campo (con la suma de los otros 2) segun ejemplo de eficsa y en el report builder solo mostrar el campo resultado

Diana Carolina 09-08-2011 23:48:08

Muchas Gracias creo que esa es la solucion, es que intentaba no tener q modificar mi consulta y hacerlo todo con el report Builder. Pero creo q es lo mas optimo...Gracias:p

Casimiro Notevi 15-10-2012 23:50:44

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)


La franja horaria es GMT +2. Ahora son las 23:30:41.

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