- Raporunuz içindeki elemanları Toolbox'daki List kontrolünün içine koyun.
- List ekleyince en altta row groups açılıyor. Buradan group properties'e girerek gruplama özelliklerini belirleyebilirsiniz.
18 Ağustos 2010 Çarşamba
ReportViewer'da Her Bir Veri Satırını Ayrı Sayfada Gösterme
ReportViewer'ın datasource'ına eklenen her bir satırın (yani dataset'in her bir datarow'unun) ayrı birer sayfada görünmesini istiyorsanız;
14 Temmuz 2010 Çarşamba
Windows Servis Uygulamasında HttpWebResponse Alma
Daha önce Windows uygulaması olarak yazdığım kodları Windows servise geçirince response boş geliyordu. Örnek kodlar aşağıdadır:
Bunun sebebi windows formda user account'ının, windows serviste ise network account'ının kullanılmasıymış. Çözüm için, ProjectInstaller.cs içindeki serviceProcessInstaller özelliklerinden Account özelliğini "User" olarak değiştirmek gerekiyor.
1: HttpWebRequest wreq = (HttpWebRequest)System.Net.WebRequest.Create(url);
2: System.Net.WebProxy pry = new System.Net.WebProxy("x.x.x.x", 80);
3: pry.Credentials = System.Net.CredentialCache.DefaultCredentials;
4:
5: wreq.Proxy = pry;
6: wreq.Method = "GET";
7: wreq.Timeout = 3000;
8: HttpWebResponse wr = (HttpWebResponse)wreq.GetResponse();
9: if (wr.StatusCode == System.Net.HttpStatusCode.OK)
10: {
11: System.IO.Stream s = wr.GetResponseStream();
12: System.Text.Encoding enc = System.Text.Encoding.GetEncoding("windows-1254");
13: System.IO.StreamReader readStream = new System.IO.StreamReader(s, enc);
14: result = readStream.ReadToEnd();
15: }
Bunun sebebi windows formda user account'ının, windows serviste ise network account'ının kullanılmasıymış. Çözüm için, ProjectInstaller.cs içindeki serviceProcessInstaller özelliklerinden Account özelliğini "User" olarak değiştirmek gerekiyor.
1 Haziran 2010 Salı
HTTP 404.17 Not Found Hatası
Web site projesine WCF Servisi ekleyip, gerekli işlemleri yaptıktan sonra, Gözat dediğimde HTTP 404.17 hatası alıyordum. IIS üzerinden açmak istediğimde de sonuç değişmedi. Bir araştırma sonucunda çözümü buldum. Bu arada projem framework 3.5 versiyonunda.
VS2008 Command Prompt’u açtıktan sonra C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation altındaki ServiceModelReg.exe dosyasını sürekleyip command prompta bırakıyoruz ve –i yazıp çalıştırıyoruz:
“ C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe” –i
Sanırım sorun, visual studio IIS’den önce yüklenince WCF bileşenlerinin yüklenmemesinden kaynaklanıyormuş.
VS2008 Command Prompt’u açtıktan sonra C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation altındaki ServiceModelReg.exe dosyasını sürekleyip command prompta bırakıyoruz ve –i yazıp çalıştırıyoruz:
“ C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe” –i
Sanırım sorun, visual studio IIS’den önce yüklenince WCF bileşenlerinin yüklenmemesinden kaynaklanıyormuş.
27 Nisan 2010 Salı
ReportViewer'da Textbox İçine Boşluk Karakteri Yazma
.Net içindeki ReportViewer'da rapor oluştururken yazıları göstermek için textbox'lar kullanıyoruz. Fakat 1 karakterden fazla olan boşluklara otomatik olarak trim yapıp, 1 karaktere indiriyor. Örneğin yazıya paragraf başı koymak istediğimizde bu sorun oluşuyordu. Çözümü şu şekildeymiş:
6 Nisan 2010 Salı
Sql Server'da Değişiklikleri Kaydetme Sorunu
SQL Server 2008'i ilk kurduktan sonra, tablolarda yaptığım her değişiklikte kaydederken Post-Save Notifications hatası vermeye başladı. "Errors were encountered during the save process. Some database objects were not saved." Hiç bir değişikliği kabul etmiyordu. Hatanın ekran görünütüsü aşağıda:
5 Şubat 2010 Cuma
Generic List<T> Sıralama
Elimizde bir nesnemiz olsun. Örneğin doküman bilgilerini tutan DocumentInfo gibi.
public class DocumentInfo {
public string documentName;
public string documentId;
public string documentId;
}
Bir de DocumentInfo nesnelerinden oluşan bir listemiz var.
List<DocumentInfo> documentList = new List<DocumentInfo>();Bu listeyi doküman isimlerine göre (documentName) sıralamak istiyoruz. Şu şekilde yapabiliriz:
documentList.Sort(delegate(DocumentInfo document1, DocumentInfo document2) { return document1.documentName.CompareTo(document2.documentName); });
3 Şubat 2010 Çarşamba
ListView’de EnsureVisible
Belki bilinen bir metottur ama ben yeni öğrendim ve benim için güzel bir püf noktası oldu. ListView’e yeni bir item eklediğimizde scroll’un aşağı kaymasını sağlıyor.
Yeni bir item ekledik ve satırı bir aşağı kaydırdık. Ben bu metodu item için kullandım, fakat listview için de şöyle bir kullanımı varmış:
ListViewItem item = new ListViewItem("x"); item.EnsureVisible();
Yeni bir item ekledik ve satırı bir aşağı kaydırdık. Ben bu metodu item için kullandım, fakat listview için de şöyle bir kullanımı varmış:
ListView myListView = new ListView(); myListView.EnsureVisible(myListView.Items.Count - 1);
Bunun farkı parametre olarak index değerini alması. Hangi satıra kaymasını istiyorsanız o satırın index değerini
yazıyorsunuz. Yukarıdaki örnekte scroll en alttaki item’a kayacaktır.
28 Ocak 2010 Perşembe
Generic Listede Case Insensitive Arama
Herhangi bir eleman generic listede var mı diye kontrol ederken, büyük-küçük harfi önemsemeden kontrol etmek istiyorsak bunu nasıl yapabiliriz? Bir örnek verecek olursak;
List<string> imageFormats =
Resim formatlarını yazdığımız bu listede bu uzantılar büyük harflerle de yazılmış olabilir. Herhangi bir dosyaya resim formatında mı diye bakmak istediğimizde hata alırız. Bunu aşağıdaki gibi Contains metoduna parametre ekleyerek çözebiliriz:
private bool isImageFormat(string extension) { List<string> imageFormats =
List<string> imageFormats =
new List<string>() { "bmp", "png", "gif", "jpg", "jpeg" };
Resim formatlarını yazdığımız bu listede bu uzantılar büyük harflerle de yazılmış olabilir. Herhangi bir dosyaya resim formatında mı diye bakmak istediğimizde hata alırız. Bunu aşağıdaki gibi Contains metoduna parametre ekleyerek çözebiliriz:
private bool isImageFormat(string extension) { List<string> imageFormats =
new List<string>() { "bmp", "png", "gif", "jpg", "jpeg" };
return imageFormats.Contains (extension, StringComparer.OrdinalIgnoreCase);
}
return imageFormats.Contains (extension, StringComparer.OrdinalIgnoreCase);
}
Kaydol:
Kayıtlar (Atom)