PDA

Ver la Versión Completa : Sumar un el valor de un Label en report builder


escorpionrojo43
31-07-2011, 04:12:37
: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


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, 04: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, 05:36:47
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, 05:52:59
Hola
Pues la verdad no lo se, me imagino algo asi:

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, 13: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, 23:49:01
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, 23:50:29
Podrian por favor ayudarme con este asunto...Gracias!:p

oscarac
10-08-2011, 00:12:11
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
10-08-2011, 00:18:34
Claro, tienen datos, cuado recorro las lineas de codigo me muestran que datos tienen.

Diana Carolina
10-08-2011, 00:20:42
Son float...:rolleyes:

ecfisa
10-08-2011, 00:30:50
Hola.

Al igual que oscarac no conozco R. Builder.

Pero se me ocurre que podés probar con una consulta, algo así:

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
10-08-2011, 00: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
10-08-2011, 00: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
10-08-2011, 00: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
16-10-2012, 00:50:44
Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo (http://www.clubdelphi.com/foros/guiaestilo.php)?, gracias por tu colaboración :)