ReportViewer
Sistemde tanımlı bir raporu doğrudan formun içinde gösteren görsel nesnedir. Kullanıcı, ayrı bir ekrana gitmeden formdaki verilerle ilgili raporu aynı sayfada görebilir.
Değer tipi: Bu nesnenin bir değeri yoktur. ReportViewer veri tutmaz; yalnızca seçtiğiniz raporu ekranda gösterir.
Ne zaman kullanılır?
Form içinde bir raporu kullanıcıya göstermek istediğinizde kullanılır: özet tablo, fatura çıktısı, onay listesi gibi hazır raporlar. Forma girilen kayda bağlı bir rapor göstermek için raporu parametrelerle besleyebilirsiniz. Sadece bir dosya gömmek istiyorsanız Iframe, tek bir belgeyi göstermek için DocumentViewer daha uygundur.
Tasarımcı özellikleri
Bir ReportViewer seçildiğinde Özellik Görüntüleyici sekmelere ayrılır.
General
| Özellik | Açıklama |
|---|---|
Name | Nesnenin koddaki adı (ör. ReportViewer1). Koddan bu adla erişirsiniz. |
Behavior
| Özellik | Açıklama |
|---|---|
Report Id | Gösterilecek raporun kimlik numarası. Hangi raporun yükleneceğini belirler. |
Report Name | Gösterilecek raporun adı. Kimlik yerine adıyla seçmek için kullanılır. |
Parameters | Rapora gönderilecek parametre listesi. Forma bağlı raporlarda raporu süzmek için kullanılır (ör. kayıt numarası, tarih aralığı). |
Appearance
| Özellik | Açıklama |
|---|---|
Visible / Client Visible | Nesnenin görünürlüğü (sunucu / istemci tarafı). |
Enabled / Client Enabled | Nesnenin aktif olup olmadığı (sunucu / istemci tarafı). |
Title | Nesnenin başlığı (çok dilli olabilir). |
Olaylar
ReportViewer bir değer tutmadığı için değer / metin olayları yoktur. Açılış sırasındaki ortak olaylar ile görünürlük gibi özellikler değiştiğinde çalışan olaylar kullanılabilir.
Açılış sırası: OnInit → OnLoad → OnDataLoad → OnPreRender → OnRender
Olaylar iki tarafta çalışabilir: sunucu olayları C# kodunda, istemci olayları tarayıcıdaki TypeScript kodunda yazılır.
Sunucu olayları (Server)
| Olay | Ne zaman çalışır |
|---|---|
OnInit | Form açılırken nesne oluşturulduğunda, en başta. |
OnLoad | OnInit'in hemen ardından, nesne yüklenince. |
OnRender | Nesne ekrana çizilirken. |
İstemci olayları (Client)
Sunucudaki olaylara ek olarak tarayıcı tarafında şunlar da vardır:
| Olay | Ne zaman çalışır |
|---|---|
OnDataLoad | Nesnenin verisi yüklendiğinde. |
OnPreRender | Nesne ekrana çizilmeden hemen önce. |
OnClick / OnDoubleClick | Nesneye tıklanınca / çift tıklanınca. |
OnPropertyChanging / OnPropertyChanged | Bir özellik kodla değiştirilmeden önce / sonra. |
Kod örnekleri
ReportViewer'ın bir değeri olmadığı için .Value kullanılmaz. Koddan genellikle görünürlüğünü ya da aktifliğini değiştirirsiniz. Sunucu örnekleri turuncu, istemci örnekleri kırmızı çerçevelidir.
Form kodu (C#, sunucu)
Form kodunda nesneye doğrudan adıyla erişirsiniz:
// Göster / gizle
ReportViewer1.Visible = true;
ReportViewer1.Visible = false;
// Aktif / pasif
ReportViewer1.Enabled = false;
Akış (Flow) kodu (C#, sunucu)
Akış kodunda nesneye Document1.Controls üzerinden erişirsiniz:
// Göster / gizle
Document1.Controls["ReportViewer1"].Visible = true;
Document1.Controls["ReportViewer1"].Visible = false;
İstemci kodu (TypeScript, tarayıcı)
İstemci tarafında nesnelere this. ile erişilir ve özellik adları küçük harfle yazılır:
this.ReportViewer1.visible = true;
this.ReportViewer1.enabled = false;
Forma bağlı bir rapor göstermek istiyorsanız raporu sabit değil, parametreli kullanın. Tasarımcıdaki Parameters listesine, raporun beklediği parametreyi (ör. kayıt numarası) ekleyin; rapor bu parametreye göre süzülmüş şekilde açılır.
İpuçları
- ReportViewer veri tutmaz; bir değeri kaydetmeniz gerekiyorsa raporu değil, formdaki ilgili nesneleri kullanın.
- Rapor forma bağlı bir kayda göre değişiyorsa,
Report Idile birlikteParameterslistesini doldurmayı unutmayın; aksi halde rapor tüm kayıtları gösterir. - Belirli kullanıcılara raporu gizlemek için
Visibleözelliğini sunucu kodunda koşula bağlayabilirsiniz.
Tüm tasarımcı özellikleri (tam liste)
General: Name
Behavior: Report Id, Report Name, Parameters
Appearance: Visible, Client Visible, Enabled, Client Enabled, Title
Olaylar (Client): OnInit, OnLoad, OnDataLoad, OnPreRender, OnRender, OnClick, OnDoubleClick, OnPropertyChanging, OnPropertyChanged
Olaylar (Server): OnInit, OnLoad, OnRender