Problema crystal a campi incrociati

martedì 09 maggio 2006 - 00.46

sergheim68 Profilo | Newbie

Devo creare dei report in crxi a campi incrociati con i dati raggruppati per mese(colonne) ed anno (riga) con dei valori (es. fatturato)

naturalmente i dati che mi vengono proposti da crystal sono crretti, solamente che visualizzo solamente le colonne
valorizzate (solamente i mesi con dei valori)

domande:
1. come posso fare ad avere un report dove le colonne sono (tutti i mesi) e naturalente il valore ZERO se non presente alcun valore
2. se volessi fare un report con due tabelle incrociate con elenco annuale fatturato ed elenco annuale incassato e ricavare una colonna per poter calcolare le differnze.

grazie a tutti
serghei

freeteo Profilo | Guru

>1. come posso fare ad avere un report dove le colonne sono (tutti
>i mesi) e naturalente il valore ZERO se non presente alcun valore
la cosa è abbastanza complessa, potresti fare 1a union con almeno 1record con i mesi che ti mancano e quindi poi la cross-tab ti fa lei gli incroci.
La soluzione è poco elegante ma crystal almeno fino alla 10 non dava la possibilita' di fare degli array come risultati di campi formula...ma con la XI magari hanno aggiunto qualcosa...al momento non saprei consigliarti altro


>2. se volessi fare un report con due tabelle incrociate con elenco
>annuale fatturato ed elenco annuale incassato e ricavare una
>colonna per poter calcolare le differnze.
puoi usare 1campo formula che faccia la differenza ({fatturato}-{incassato}) e poi la inserisci nella cross-tab


ciao.

Matteo Raumer
MCAD ... .net addicted :-)
http://blogs.dotnethell.it/freeteo

sergheim68 Profilo | Newbie

Ho fatto un pò di prove con crystal ed ho trovato la soluzione per il problema di reportistica che avevo evidenziato.

Per fare un report con elenco mensile (fatturato) ed elenco mensile (incassato) con riepilogo differenza (incassato - fatturato).

Invece di utilizzare le cross-table mi sono costruito manualmente il report:

1. creazione di una vista sql raggruppata per mese ed anno, dove ho il valore del fatturato totale
2. creo un report principale con 2 sottoreport (rptIncassato e rptFatturato)
2. nel report filtro naturalmente l'anno che mi interessa...
3. creo un campo con la seguente formula

If tabelle.Mese = 1 then
TotaleFatturato
else
0

Quindi ho il valore corretto per dodici mesi.
4. Creo inoltre una variabile globale che poi restituisco al report principale per poter fare poi un campo con le differenze

p.es. per gennaio

Shared numbervar varGennaio;
varGennaio:={#totaleGennaio}

5 Nel report principale ho un campo con il valore DifferenzaGennaio

Shared numbervar variabileGennaio;
Shared numbervar vIncassatoGennaio;
vGennaio-vIncassatoGennaio

così funziona tutto..

Inserisco tutto nel newsgroup sperando di poter aiutare qualcuno che ha avuto lo stesso problema

Saluti
Serghei
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5