>1- Come posso impostare la clausola WHERE su una colonna di tabella
>in una query di un report che mi va a leggere un valore in un
>campo di sessione ?
>Sicuramente nn mi sono espresso al meglio !
>Esempio:
>SELECT * FROM tabella WHERE campoTabella = '" & sessione("valore").toString
>dove la variabile sessione e' di tipo httpSessionState
questa variabile non è accessibile dal report, se non tramite il passaggio di un parametro, o tramite il settaggio da codice della proprieta' "RecordSelectionFormula" che tenga conto della variabile.
Questo perche' è il framework che ti da accesso alla sessione, il report ha un engine suo il quale è accessibile tramite la classe ReportDocument.In poche parole un codice di questo tipo dovrebbe fare al caso tuo:
ReportDocument report = new ReportDocument();
report.Load(Server.MapPath("CrystalReport1.rpt"));
....
report.RecordSelectionFormula = "{campoUtente} = '" + Session["utente"] + '";
crystalReportViewer1.ReportSource = report;
crystalReportViewer1.DataBind();
Dove "{campoUtente}" è il campo del report.Ecco stai attento che la sintassi di filtro non è "proprio" sql standard, ci assomiglia ma è 1po sua.
Cmq puoi impostare questo filtro da dentro al report (menu Report->Report->Selection Formula), e poi copiarti la sintassi (ovviamente salvando il report senza)
>2- Quali differenze esistono tra un report .rpt e .rdlc in termini
>di licenze e prestazioni ?
Sinceramente non ho dei dati certi perche' purtroppo non ho mai avuto tempo a sufficienza per fare un controllo significativo.
Cmq sicuramente se usi in applicazioni web Crystal ha una limitazione "intrinseca" di prestazioni dovuto al fatto che vogliono che per applicazioni server venga usato una versione particolare:
http://www.businessobjects.com/product/catalog/crystalreports_server/
Tutto dipende dal tipo di applicativo che stai sviluppando, e dai tempi che hai perche' ci sono queste cose da tenere in considerazione:
- Crystal usato lato server funziona e il degrado di prestazioni potrebbe essere ininfluente rispetto agli accessi/dati che visualizzi
- Crystal è piu' completo di Sql Reporting, sviluppare report complessi è sicuramente piu' facile e veloce
- Crystal ha supporto a classi "css" quindi nell'ottica web è sicuramente importante
- Reporting è piu leggero sia da installare che come runtime di esecuzione
- Reporting lavori meglio con collection tipizzate
- Reporting puoi agganciarti delle dll scritte in .net ed usare il codice .net, e questo è un grandissimo vantaggio
- Reporting come rdlc non ha tutte le funzioni (tipo navigazione di parametri) come c'e' in RDL (ovvero quello che si appoggia ad un ReportServer)
non mi resta che consigliarti alcune prove, anche per capire sia la mole di dati da visualizzare, il carico di accessi a regime, e soprattutto la complessita' dei report che devi fare.
>Grazie a tutti in anticipo
di niente, spero di esserti stato utile!
ciao.
Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo