Trovare il minimo tra campi raggruppati??

venerdì 05 settembre 2008 - 11.35

sankyu Profilo | Senior Member

ciao a tutti,

devo fare una cosa apparentemente semplice:

in un report tramite l'esperto gruppo sommo dei valori di fatturato raggruppati per mese

alla fine vorrei stampare il nome del mese in cui il fatturato è minimo ed il valore di tale fatturato. come posso fare?? non mi viene in mente niente!!

esempio:

Aprile 50000
maggio 30000
giugno 15000

a fine report mi dovrebbe stampare
giugno 15000

sto provando con questa formula ma niente!!
currencyVar primo;
currencyVar secondo;
WhilePrintingRecords;
primo:=Sum ({Comando.monto_enviado}, {Comando.fecha_transferencia}, "monthly");
if primo>secondo then
secondo:=primo;
secondo

SSUPERPIPPO Profilo | Guru

Usi Crystal Report?


http://blogs.dotnethell.it/alebadalin

freeteo Profilo | Guru

ciao,
io proverei con una formula che faccia questo calcolo:
shared numbervar x := 0; //--- caso iniziale if recordnumber = 1 then shared numbervar x := {fatturato}; if shared numbervar x > {fatturato} then ( shared numbervar x:= {fatturato}; shared stringvar nome := {cliente}; )
e la metterei nella sezione dettaglio, in modo che venga calcolata ogni record stampato, ma la sopprimi in modo che non venga visualizzata.

Come vedi appena si trova ad essere > del fatturato (il campo che hai tu che contiene il numero insomma) si setta con quel valore e memorizza anche il nome del cliente con un'altra variabile shared ancora.
*: usando una "shared var", la puoi riprendere anche in un'altra formula del report (e anche sottoreport se vuoi)


Nella sezione finale metti un'altra formula che raccolga la stringa con mese e valore:
shared stringvar nome & " " & shared numbervar x

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

sankyu Profilo | Senior Member

Grazie provo e ti dico, ma possibile che sia così complicato?? reporting service lo fa in un attimo!!

freeteo Profilo | Guru

>Grazie provo e ti dico, ma possibile che sia così complicato??
>reporting service lo fa in un attimo!!
in teoria lo puoi fare tranquillamente con un campo "Running Total Field" ovvero i campi "Sommatoria" che hanno però un'elaborazione che è slegata dal flusso normale del report, ma se non ho capito male mi hai detto che con questi hai già provato senza riuscire...o no?

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5