Lavori e movimenti: come fare?

mercoledì 03 giugno 2009 - 10.39

Luka90 Profilo | Junior Member

Un saluto a tutti! Ancora una volta

Vi anticipo che dovrete avere pazienza con me, mi avvicino solo ora a Crystal Repost e sto facendo un pò fatica a comprenderne il funzionamento.
Per ora ho capito (o credo di aver capito) come si riempie un report con una lista di result di una query.
Imposto un "comando" nell'esperto database del tipo "select * from lavori", cosìcchè mi propone tutti i campi che mi ritornano (nome, data_inizio, descrizione). Li metto nel report e tramite codice importo al report stesso con SetDataSource() una datatable che ho riempito con una query UGUALE a quella impostata nel comando.

Ha senso vero?

Ora il mio problema è questo: ad ogni lavoro corrispondono 1 o più movimenti. Voglio visualizzare il LAVORO con la sua descrizione e sotto tutti i movimenti relativi a questo. 1:N insomma.
Come posso fare?

Grazie in anticipo!


Luca

Jeremy Profilo | Guru

Ciao Luca.
Premetto che io Crystal Report non lo uso come lo stai usando tu!
Ma , seguendo il tuo ragionamento, mi verrebbe da consigliarti di modificare la query in modo da recuperare anche i dati relativi ai movimenti.
Quindi:
"select * from lavori,movimenti where lavori.Id = movimenti.IdLavoro" o qualcosa del genere insomma...(potresti fare anche una Join).

Qualora questa fosse la soluzione ... tieni presente che la risposta te la sei data da solo.

Facci sapere..
Ciao

Luka90 Profilo | Junior Member

Ciao :)

Sarebbe la soluzione, ma io anche con una seplice SELECT ALL, quando visualizzo il report, mi scrive SOLO il primo record e non una lista di tutti!
Dici che non lo usi come faccio io. Sai spiegarmi il modo corretto? :(

Sono proprio ignorante su questo fronte e non riesco ad uscirvene!

grazie


Luca

Jeremy Profilo | Guru

Ciao Luca
>Dici che non lo usi come faccio io. Sai spiegarmi il modo corretto? :(
Non intendevo dire che il tuo metodo fosse sbagliato ... era solo per giustificare il fatto che non sapessei darti una soluzione certa.

Ad ogni modo io mi creo un Dataset ad hoc per costruire il report e, dopo averne creato un'istanza e averlo popolato, lo passo con SetDataSource.

Dici che "sarebbe la soluzione" ..... cosa impedisce l'eliminazione del condizionale???

Il fatto che ti visualizza solo un record, dipende da come hai costruito il report e, sopratutto in quale sezione del report hai inserito i campi, ma dipende anche da quanti record inserisci nella datatable che passi al metodo SetDataSource.

Facci sapere...
Ciao

Luka90 Profilo | Junior Member

Ho risolto il problema "solo un record" ^_^

Ho provato come giustamente mi hai indicato (usando le join però) e va tutto ok, se non per il fatto che ogni riga che visualizzo (movimento) ha indicata anche l'attività relativa che quindi si ripete tante volte (ogni lavoro ha TANTI movimenti).
Quello che volevo fare era raggrupparli in modo che in alto ci fosse indicato il lavoro e sotto a questo tutti i suoi movimenti e così via.

Forse la cosa che volgio fare è impossibile

In più mi si presenta un altro problema. Avendo dei campi DATETIME nel DB, quando provo a visualizzarli non mi stampa nulla sul report. Che siano incompatibili? Forse devo agire sul contenuto del DataTable e convertire ogni campo di quelle colonne con un'opportuno e compatibile. Possibile?

Grazie mille!


Luca

Jeremy Profilo | Guru

Ciao.
>Quello che volevo fare era raggrupparli in modo che in alto ci
>fosse indicato il lavoro e sotto a questo tutti i suoi movimenti
>e così via.
Puoi inserire una sezione "Gruppo" e impostarla in modo che visualizzi i "Dettagli" raggruppati in funzione del valore di un campo.

>In più mi si presenta un altro problema. Avendo dei campi DATETIME
>nel DB, quando provo a visualizzarli non mi stampa nulla sul
>report. Che siano incompatibili? Forse devo agire sul contenuto
>del DataTable e convertire ogni campo di quelle colonne con un'opportuno
>e compatibile. Possibile?
Non so perche non te li visualizzi nel Report, ma non mi risulta ci siano icompatibilità o quant'altro con i campi DateTime.

Facci sapere...
Ciao

Luka90 Profilo | Junior Member

Io invece avevo letto qulcosa e anzi, ci avevo lottato proprio quando dovevo inserire DateTime nel mio DB MySql. E' proprio di MySql questa incompatibilità!
Ho dovuto agire sulle ToString e inpostare un certo formato COMPATIBILE.

Per il raggruppamento, era così banale che mi vergogno
Ora ho visto che posso aggiungere anche altre sezioni... MannaCC.

Grazie mille! Spero di risolvere il problema con i DateTime ora però... Che fregatura sennò!


Luca
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