Bu makalemizde Reporting Service te bulunan bir raporu hazırlayacağımız web arayüzünde parametreleri göndererek nasıl görüntüleyebileceğimizi göreceğiz.

Rapor Görüntüleme SSRS

Bu makalemizde Reporting Service te bulunan bir raporu hazırlayacağımız web arayüzünde parametreleri göndererek nasıl görüntüleyebileceğimizi göreceğiz. Bunun için öncelikle Visual Studio da bir web uygulaması açalım. Ardından bu uygulamamıza Microsoft.ReportViewer.Comon ve Microsoft.ReportViewer.WebForms referans olarak ekleyelim. Şimdi ise App_Code kısmına raporu çağırırken kullanıcı kodu ve şifre girebilmek için gerekli olan kullanıcı kodu ve şifreyi belirtebileceğimiz classımızı ekleyelim. 

using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Reporting.WebForms;
using System.Security.Principal;
using System.Net;
public partial class ReportViewerCredentials : IReportServerCredentials
{
    private string _userName;
    private string _password;
    private string _domain;
    public ReportViewerCredentials(string userName, string password, string domain)
    {
        _userName = userName;
        _password = password;
        _domain = domain;
    }
    public WindowsIdentity ImpersonationUser
    {
        get
        {
            return WindowsIdentity.GetCurrent();
        }
    }
    public ICredentials NetworkCredentials
    {
        get
        {
            return new NetworkCredential(_userName, _password, _domain);
        }
    }
    public bool GetFormsCredentials(out Cookie authCookie,
             out string userName, out string password,
             out string authority)
    {
        authCookie = null;
        userName = _userName;
        password = _password;
        authority = _domain;
        return false;
    }
}

Bu classımızı IReportServerCredentials interface inden türettik. Şimdi Raporumuzda bulunan parametreleri kullanıcıların web sayfamızdan filtre olarak girebilmeleri için iki adet textbox ve görüntüleyebilmesi için bir adet te button ekleyelim. 

    <label>Başlangıç Kodu : <asp:TextBox ID="txtBasKodu" runat="server" Text="aaaaa"></asp:TextBox></label>
    <label>Bitiş Kodu : <asp:TextBox ID="txtBitKodu" runat="server" Text="zzzzz"></asp:TextBox></label>
    <asp:Button ID="btnGoster" runat="server" Text="Göster" onclick="btnGoster_Click" />

Göster butonuna tıklandığında txtBasKodu ve txtBitKodu na girilen değerler arasında kalan müşteri listesini ekrana listelemesini istedik. btnGoster kısmının hemen altına toolbox tan Reporting in altında yer alan MicrosoftReportViewer nesnesini ekleyelim. 

    <rsweb:ReportViewer ID="rptRapor" runat="server" Font-Names="Verdana" 
        Font-Size="8pt" Height="800px" ProcessingMode="Remote" Width="100%">
        <ServerReport ReportServerUrl="" />
    </rsweb:ReportViewer>

Burada yükseklik ve genişliğini ayarladıktan sonra raporun hangi modda çalışacağını belirliyoruz. Lokaldeki bir raporu mu görüntüleyeceğini yoksa report server daki bir raporumu görüntüleyeceğini belirtiyoruz. Şimdi btnGoster butonuna basıldığında click olayında neler yapacağını yazalım. 

protected void btnGoster_Click(object sender, EventArgs e)
{
    //Rapora kullanıcının belirlediği parametreleri gönderiyoruz. 
    ReportParameter[] parm = new ReportParameter[2];
    parm[0] = new ReportParameter("fldBasKod", txtBasKodu.Text);
    parm[1] = new ReportParameter("fldBitKod", txtBitKodu.Text);

    rptRapor.ShowCredentialPrompts = false; //Kullanıcı kodu ve şifre sormamısını sağlıyoruz.
    rptRapor.ShowParameterPrompts = false; //Parametre bölümünü göstermemesini sağlıyoruz

    //raporu görüntülemeye yetkili bir kullanıcı kodu ve şifresi ile giriş yapılıyor. 
    rptRapor.ServerReport.ReportServerCredentials = new ReportViewerCredentials("kullanici", "sifre", "domainadi");
    rptRapor.ProcessingMode = Microsoft.Reporting.WebForms.ProcessingMode.Remote;
    //Report Server adresi
    rptRapor.ServerReport.ReportServerUrl = new System.Uri("http://localhost/ReportServer");
    //Rapor Yolu
    rptRapor.ServerReport.ReportPath = "/YazilimUzmanlari/MusteriListesi";
    //Girilen parametreler 
    rptRapor.ServerReport.SetParameters(parm);
    rptRapor.ServerReport.Refresh();
}

Klik olayında rapordaki parametreleri güncelledik. Ardından kullanıcı kodu, şifre ve domain i girdik. Hangi raporu görüntülemek istediğimizi belirttikten sonra parametreleri nesnemize verdik ve refresh ile görüntülenmesini sağladık. Buna göre aşağıdaki ekran görüntüsünü aldık. 

 

İlgili Makaleler

Bu yazıya 0 yorum yapılmış.

Yorum Gönder