maanantai 26. elokuuta 2013

VB.net ja ReportViewer


Tämä ominaisuus on mielestäni huonosti dokumentoitu, niin laitanpa sen itsellenikin tänne muistiksi.

Parametrin välittäminen ReportViewer:n SQL-kyselyyn:
1. Lisää "parametri" report.rdlc Report data:aan, ilman arvo (arvo välitetään koodilla myöhemmin).
2. Avaa Dataset ja siellä valitse Tableadapter - Configure:
    Lisää SQL- lauseeseen välittävän "parametrin" paikalle ?- merkki.

3. Jos toimit oikein tähän asti, niin Tableadapterissa näkyy nyt: Fill ("parametri")
4. Avaa Tableadapter.Fill("parameter")- ominaisuudet, ja SelectCommand. Ja lisää Parameters (Collection)- kohtaan se parametrin nimi, johon viittasit SQL-lauseessa. 
5. Koodissa sitten luot Reportviewerille vastaavan parametrin, ja annat sille arvon:

Esim.
Dim p_lahetenro As New ReportParameter("lahetenro", lahetenro.ToString)
Dim p_otsikko As New ReportParameter("laheteotsikko", laheteotsikko.ToString)
Lahete.Viewer.LocalReport.SetParameters(p_lahetenro)
Lahete.Viewer.LocalReport.SetParameters(p_otsikko)
Lahete.
Viewer.RefreshReport()
Lahete.Show()



Kuulostaa monimutkaiselta, mutta ei loppujen lopuksi sitä ole :)
Toinen vaihtoehto antaa parametri ReportViewerille on käyttää Filter ominasuutta, mutta sille löytyy paremmin googlesta vinkkejä!

Ei kommentteja:

Lähetä kommentti