Visual Studio 2010 ile gelen en güzel GÜNCELLEME maalesef Visual Studio 2008 de EKSİK olan ReportViewer daki GetTotalPage() fonksiyonu. VS2008 de bu fonksiyon maalesef yoktu ve düzgün olarak toplan sayfayı göremiyordunuz. VS2010 da bu fonsiyonu eklediler AMA kullanırken çok dikkat etmelisiniz. yoksa YANLIŞ toplan sayfa değerini alırsınız. Gerçek toplam safa sayısını ( Fiziksel olarak A4 boyutunda ) şu şekilde çağırmanız gerek ;
private void Form1_Load(object sender, EventArgs e)
{
reportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout);
reportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.PageWidth;
// TODO: This line of code loads data into the 'DataSet1.yy' table. You can move, or remove it, as needed.
this.yyTableAdapter.Fill(this.DataSet1.yy);
this.reportViewer1.RefreshReport();
}
private void reportViewer1_RenderingComplete(object sender, Microsoft.Reporting.WinForms.RenderingCompleteEventArgs e)
{
Int32 _a = reportViewer1.GetTotalPages();
MessageBox.Show(_a.ToString());
}
Burda dikkat etmeniz gereken RAPORUN RENDER EDİLMESİDİR. Rapor render edilirken ( yani tüm bilgiler sayfalara yazılıken biraz bekleme olur ) o enada GetTotalPages() size SIFIR değeri döndürür. Onun için RenderingComplete fonksiyonunda toplam sayafı alın.
Hiç yorum yok:
Yorum Gönder