Dettagli da più tabelle

venerdì 14 novembre 2008 - 15.12

201alex Profilo | Newbie

Ho la necessità di stampare un elenco nominativo da una tabella clienti Access con alcuni dettagli provenienti da 2 tabelle diverse, per ogni riga della tabella clienti

Ho 3 tabelle (access) tbl_clienti, tbl_dettaglio1, tbl_dettaglio2 e ho creato un report tramite il report Expert.

Il report visualizza tutti i record della tbl_clienti (raggruppati per il campo "Codice") e ogni raggruppamento visualizza i dettaglio delle 2 tabelle tbl_dettaglio1 e tbl_dettaglio2.

Inoltre, ogni raggruppamento ha le somme dei campi delle 2 tabelle dettaglio.

Esempio: se in tbl_dettaglio1 ci sono da visualizzare 2 record e in tbl_dettaglio2 ci sono 3 record vengono stampate 5 righe (e questo è giusto) il problema è che ogni riga contiene sia i campi di tbl_dettaglio1 che tbl_dettaglio2 e la relativa somma dei valori di tbl_dettaglio1 riporta la somma di 5 righe mentre dovrebbe essere di sole 2 righe e quella di tbl_dettaglio2 dovrebbe essere di 3 righe.

Esempio grafico

Group1 (header)
Nome Cliente1
dati cliente
--------------------------------------------------------------------------------(dettails)
Data Importo (da tbl_dettaglio1) Valore Numero (da tbl_dettaglio2)
01/01/2008 20 10 2 (questa è ripetuta)
01/01/2008 22 10 2 (questa è ripetuta)
01/01/2008 22 (questa è ripetuta) 14 1
01/01/2008 22 (questa è ripetuta) 20 3
01/01/2008 22 (questa è ripetuta) 12 4
--------------------------------------------------------------------------------(group1 footer)
128 (dovrebbe essere 66) 12 (dovrebbe essere 8)

Scusate la complessita delle spiegazioni!!

freeteo Profilo | Guru

Ciao,
effettivamente non mi è molto chiaro come tu abbia impostato il report, presumo tu abbia caricato le 3 tabelle e poi linkate dentro al report stesso.
Questa operazione io la sconsiglio fortemente perchè purtroppo può essere una fonte di problemi il link delle tabelle, soprattutto per più di 2.

Quello che ti consiglio è legarle a livello di Join della sintassi sql (quindi non caricare tutta la tabella nell'esperto database, ma dargli un "comando" ossia la query sql) e caricare un risultato piatto con i campi che ti servono.
Poi dentro al report fare i raggruppamenti per i campi comuni (che avranno sicuramente i dati duplicati).

Nel caso in cui queste tabelle poi non fossero realmente legate, o cmq si trattasse di un master-details troppo complesso da fare via query, usa dei sottoreport e poi mettici il "subreport-link" ossia il filtro dei dati di quest'ultimi.
ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

201alex Profilo | Newbie

Mi scuso per la spiegazione.

cmq hai centrato il problema, ora provo con una join.

Ma sono sicuro che alla fine i sottoreport saranno la scelta migliore.

Grazie.
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