Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
Crystal Reports e reportistica
Operazioni report a campi incrociati
mercoledì 02 novembre 2005 - 10.24
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Andy71
Profilo
| Newbie
4
messaggi | Data Invio:
mer 2 nov 2005 - 10:24
Ciao a tutti...
è poco che sto usando la versione XI di Crystal Reports (che poi è la prima che uso)...
io avrei la necessità di effettuare un confronto di dati tra due anni diversi ed avere un'ulteriore tabellina con delle operazioni sugli stessi (es. differenze tra i periodi, incremento in percentuale etc...)
una cosa del genere
2004 2005 Variazioni
num % num % num %
dato1 10 80% 15 75% 5 40%
dato2 2.5 20% 5 25% 2.5 20%
--------------------------------------------------------------
12.5 100% 20 100% 7.5 60%
in pratica sulla terza colonna c'è l'incremento numerico oltre che in percentuale (solo sul totale)
i report a campi incrociati espandono l'intero set (al limite posso limitalo e fin qui ci sono arivato)...ma è possibile accedere al singolo membro???
altrimenti la mia soluzione sarebbe quella di utilizzare non una ma due griglie a campi incrociati.... una limitato al 2004, una al 2005 più la terza per effettuare le operazioni... (ma ho il dubbio che i membri del 2004 e del 2005 abbiano lo stesso nome)...
sperando di non essere stato troppo lungo e di essermi spiegato.... c'è una soluzione più semplice e pulita per fare tutto ciò?? ;-)
Grazie
Andrea
Andy71
Profilo
| Newbie
4
messaggi | Data Invio:
mer 2 nov 2005 - 10:36
scusate... sempre io...
mi sono scordato... CR deve accedere direttamente al db (che sarà Access suppongo)...
quindi non posso passargli i numeretti da stampare direttamente da un'applicazione...
valutando l'idea di fare un'applicazione invece sarebbe facilmente risolvibile la cosa???
in pratica posso passare direttamente i risultati al report??
di nuovo grazie
Andrea
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
gio 3 nov 2005 - 01:32
ciao,
non so se ho capito correttamente cosa vuoi fare cmq se è come penso ti basta ricavarti 1a struttura di dati che ti permette di avere n-righe di dettaglio come hai scritto tu (dato1 ,dato2) e poi nel report fare i campi con le somme o sottrazioni o qualsi altro... usando i campi totale parziale/generale/riepilogo o i campi fomrula che ti facciano i calcoli.
Il tuo problema è piuttosto avere la struttura risultante da query corretta, che poi andrai a passare tu con il metodo "setDataSOurce" dell'oggetto ReportDocument che gli dici di caricare il tuo file...
Per fare cio' basta che nel dargli la sorgente dati in fase di costruzione tu gli dici non la tabella intera ma "1 comando" ovvero 1a query, poi metti giu i campi nel report e fai i calcoli che ti servono.
Poi la stessa query (importante che la tabella risultante abbia la stessa struttura) carichi 1a DAtaTable di ADO.net e glielo dai in pasta.
1'ultima cosa, puoi anche pensare di caricarti i record con 1a colonna anno (o cmq data) per la quale raggrupperai il tutto cosi avrai i valori sia divisi per anno che poi raffrontati con gli altri anni...
Insomma spero di non aver fatto casino,altrimenti bisogna che posti 1 report con 1 db di prova che provo a modificartelo io dandoti qualche suggerimento "piu pratico" :-)
ciao
Matteo Raumer
.net addicted :-)
http://blogs.dotnethell.it/freeteo
Andy71
Profilo
| Newbie
4
messaggi | Data Invio:
gio 3 nov 2005 - 09:03
>ciao,
Ciao Matteo...
in primis grazie per la gentilezza e la rapidità della risposta :-)
provo a spiegarmi visto che alcuni termini che usi tu ancora non mi sono propri...
>non so se ho capito correttamente cosa vuoi fare cmq se è come
>penso ti basta ricavarti 1a struttura di dati che ti permette
>di avere n-righe di dettaglio come hai scritto tu (dato1 ,dato2)
>e poi nel report fare i campi con le somme o sottrazioni o qualsi
>altro... usando i campi totale parziale/generale/riepilogo o
>i campi fomrula che ti facciano i calcoli.
guarda... non so proprio ancora come sarà il db... ho visto solo dei report fatti a mano che andranno realizzati in CR...
diciamo che dato1, dato2 etc... in questo caso dovrebbero essere regioni se non in alcuni casi aggregazioni delle stesse (es. per macroaree.... si complica ulteriormente??? mi sembra di aver visto che è fattibile in CR)
io ho provato a fare una cosa del genere ma su un db di 3 righe....
funzione A:
if {Campi.Anno}="2002" then {Campi.Fatturato prodotto}
funzione B:
if {Campi.Anno}="2003" then {Campi.Fatturato prodotto}
funzione C:
B-A
funzione D:
(B-A)*100/A
dando per scontato che 2003 sia parametrizzabile.... (vero?? eh eh)
o meglio se è l'anno corrente ho visto che è ancora più semplice... però mi piacerebbe poter scegliere di volta in volta...
e la cosa dà i risultati previsti...
non so ancora se andrà bene per dato1, dato2 ma suppongo di si...
però non so se la soluzione trovata sia pulita... e la più semplice da realizzare anche in termini di tempo...
>Il tuo problema è piuttosto avere la struttura risultante da
>query corretta, che poi andrai a passare tu con il metodo "setDataSOurce"
>dell'oggetto ReportDocument che gli dici di caricare il tuo
>file...
>Per fare cio' basta che nel dargli la sorgente dati in fase di
>costruzione tu gli dici non la tabella intera ma "1 comando"
>ovvero 1a
query, poi metti giu i campi nel report e fai i calcoli
>che ti servono.
qui mi sono un attimo perso...
in teoria io vorrei usare CR per generare la reportistica senza creare un'applicazione...
quel che dici tu suppongo si riferisca a .NET
e la cosa non sarebbe neanche male.... visto che magari si potrebbe realizzare un'interfaccia di selezione del record da stampare (solo quello... tutte le altre modifiche sul db avvengono su un'altra applicazione)...
magari ci posso studiare un po'....
ho visto che effettivamente posso selezionare come datasource 1 comando...
>Poi la stessa query (importante che la tabella risultante abbia
>la stessa struttura) carichi 1a DAtaTable di ADO.net e glielo
>dai in pasta.
qui non ti seguo... :-)
>1'ultima cosa, puoi anche pensare di caricarti i record con 1a
>colonna anno (o cmq data)
perfetto... come dovrebbe essere nella realtà...
> per la quale raggrupperai il tutto
>cosi avrai i valori sia divisi per anno che poi raffrontati
>con gli altri anni...
ecco... questo non sono ruscito a fare.... due gruppi distinti sulla stessa riga...
cioé il confronto andrebbe in orizzontale...
_________2002______2003______Variazioni
Lombardia___10________20_______10
RestoNord____5________8________3
Centro______9_________4________-5
Sud________6_________2_________-4
secondo te si possono fare più gruppi sulla stessa riga???
>Insomma spero di non aver fatto casino,altrimenti bisogna che
>posti 1 report con 1 db di prova che provo a modificartelo io
> dandoti qualche suggerimento "piu pratico" :-)
si si magari...
intanto vediamo se riusciamo a risolvere...
altrimenti te lo creo un db demo (che ancora non ho l'originale) e ti ci metto anche un report di esempio...
sei un grande ;-)))
Ciao
Andrea
freeteo
Profilo
| Guru
6.542
messaggi | Data Invio:
gio 3 nov 2005 - 23:07
ciao,
ti posto io 1 report fatto con la xi, che fa quello che dici tu, prova adarci 1occhiata...
ciao
ps: ho fatto con le cross-tab perche risultava piu facile impaginarlo... ;-)
Matteo Raumer
.net addicted :-)
http://blogs.dotnethell.it/freeteo
Andy71
Profilo
| Newbie
4
messaggi | Data Invio:
ven 4 nov 2005 - 14:56
>ciao,
>ti posto io 1 report fatto con la xi, che fa quello che dici
>tu, prova adarci 1occhiata...
>ciao
Ciao Matteo...
il report fa esattamente quello che dicevo io...
non mi è chiaro se i dati di dettaglio li hai messi giusto per farmeli confrontare o servono effettivamente a qualcosa...
comunque è stato di grande aiuto... anche perché nel provarlo ho visto dove si potevano fare le aggregazioni per macroaree (nell'ordinamento gruppo) ed è una cosa di una praticità estrema oltre ad essere immediata...
ma secondo te esistono anche altri metodi?? quello da me provato sembrava funzionare...
quello della selezione sui dati in base all'anno.... ma forse questo è sicuramente migliore...
>ps: ho fatto con le cross-tab perche risultava piu facile impaginarlo...
> ;-)
eh eh
e qui ti volevo...
diciamo che ci sto giocando un po' con le crosstab e ci inizio a capire :-))
solo che non so se ci sono metodi alternativi.... che non dico siano migliori o peggiori... ma magari più o meno utili secondo il caso....
e poi... nelle crosstab possono essere inserite colonne vuote per spaziarle ??? se così fosse sarebbe perfetto....
comunque sei stato veramente gentile... ti ringrazio tantissimo...
spero di poterti interpellare nuovamente in caso di necessità...
indubbiamente CR è un mondo tutto da esplorare.... solo che con l'help in linea diventa faticoso....
ho trovato 3 libri su XI... tutti in inglese... posso chiederti consiglio su un libro utile che non sia la copia pedissequa dell'help in linea ma magari si basi più su esempi pratici??
Grazie per la disponibilità :-)))
Andrea
Torna su
Stanze Forum
Elenco Threads
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 !