ReportViewer'da Custom Code kullanmak bazen hayat kurtarıyor. Ufak bir örnek vermek gerekirse.
VS.NET'te raporunuz.rdlc ye tıklayıp dizayn modunda açtığınızda Rapor Özelliklerine girin. Açılan Pencerede Code bölümü var. Buraya .NET ile istediğiniz fonksiyonu veya class'ı yazıp raporun çalışma zamanında rapor kontrollerinde atraksiyon yapabilirsiniz. Sadece VB.NET desteği var. Eğer vb.net yazmam diyosanız kendiniz herhangi bir .net dilinde Sınıf Kütüphanesi (class Library) oluşturup hemen yanındaki Tab'da References kısmından ekleyebilirsiniz. Mümkünlü
(Mümkünsüz değil. Bayburtlu Osman AKBAŞ'ı saygı ile anıyorum 
Senaryom: Fabrika da kolilerin üzerine etiket yapıştırıyorlar. Bu etikette ürün kodu bulunuyor. Fakat ürün kodu çok değişken 4 haneden 16 haneye kadar değişiyor bu değişkenlikte çıktı alırken ürün kodu kısa olursa etikete göre çok küçük kalmasını sağlıyor. Bunu aşmak için Code penceresine vb. ile şu kodu yazdım.
Function YaziBoyut(Boyut As Integer) As Integer
Dim Punto As Integer
Dim Karakter As Integer
Punto = 28
Karakter = 16
YaziBoyut = ((Punto/Boyut)*Karakter)
End Function
16 hanede 28 punto etiket kağıdına tam sığıyor. Bende bunu baz alarak yukarda ki gibi bir formul yazdım.
Kullanırken de TextBox kontrolünün FontSize özelliğinin deyimin de (Expression) aşağıdaki gibi bir cümle kurdum.
=Code.YaziBoyut(Len(First(Fields!UrunKodu.Value, "DataSetim"))).ToString() &"pt"
Burdaki Code, Custom Code'a ulaşmak için arkasından Len ile Field'ın karakter uzunluğunu bulup YaziBoyutu fonksiyonuma atadım ardından string'e çevirip arkasına sözdizimine uysun diye pt koydum sonuç olarak Npt diye bir şey çıkıyor.Tabi işlem daha çok sadeleştirilebilir örneğin fonksiyonun içinden direkt string döndürülebilir ama böyle sevdim
VS.NET'te raporunuz.rdlc ye tıklayıp dizayn modunda açtığınızda Rapor Özelliklerine girin. Açılan Pencerede Code bölümü var. Buraya .NET ile istediğiniz fonksiyonu veya class'ı yazıp raporun çalışma zamanında rapor kontrollerinde atraksiyon yapabilirsiniz. Sadece VB.NET desteği var. Eğer vb.net yazmam diyosanız kendiniz herhangi bir .net dilinde Sınıf Kütüphanesi (class Library) oluşturup hemen yanındaki Tab'da References kısmından ekleyebilirsiniz. Mümkünlü
Senaryom: Fabrika da kolilerin üzerine etiket yapıştırıyorlar. Bu etikette ürün kodu bulunuyor. Fakat ürün kodu çok değişken 4 haneden 16 haneye kadar değişiyor bu değişkenlikte çıktı alırken ürün kodu kısa olursa etikete göre çok küçük kalmasını sağlıyor. Bunu aşmak için Code penceresine vb. ile şu kodu yazdım.
Function YaziBoyut(Boyut As Integer) As Integer
Dim Punto As Integer
Dim Karakter As Integer
Punto = 28
Karakter = 16
YaziBoyut = ((Punto/Boyut)*Karakter)
End Function
16 hanede 28 punto etiket kağıdına tam sığıyor. Bende bunu baz alarak yukarda ki gibi bir formul yazdım.
Kullanırken de TextBox kontrolünün FontSize özelliğinin deyimin de (Expression) aşağıdaki gibi bir cümle kurdum.
=Code.YaziBoyut(Len(First(Fields!UrunKodu.Value, "DataSetim"))).ToString() &"pt"
Burdaki Code, Custom Code'a ulaşmak için arkasından Len ile Field'ın karakter uzunluğunu bulup YaziBoyutu fonksiyonuma atadım ardından string'e çevirip arkasına sözdizimine uysun diye pt koydum sonuç olarak Npt diye bir şey çıkıyor.Tabi işlem daha çok sadeleştirilebilir örneğin fonksiyonun içinden direkt string döndürülebilir ama böyle sevdim
