Forum

FİKİR ÖNERİSİ ...
 
Bildirimler
Hepsini Temizle

FİKİR ÖNERİSİ (Visual Studio C# Windows Form)

6 Yazılar
2 Üyeler
0 Likes
1,171 Görüntüleme
(@mehmetugur)
Gönderiler: 267
Reputable Member
Konu başlatıcı
 
Merhaba.
Bu konuyu fikir alış verişi olması açsından açmış bulunuyorum. Faturaların konulduğu zarflara müşterilerin adreslerini  basacak desktop uygulaması yapıyorum. Şuan geldiğim nokta sisteme müşterinin kaydının yapıldığı form ekranını hazırladım. 
Yapmak istediğim ikinci bir ekranda da Kullanıcı combobox dan semti seçecek örneğin Cumhuriyet Caddesi ni combobox dan seçip görüntüle dediğinde ilgili kayıtlar gelecek. Gelen kayıtları yataylamasına olan zarfa, müşterilerin adreslerini kağıda seri bir şekilde yazdırmak isitiyorum.
Sizce yazdırma işleminde nasıl bir yol izleyebilirim
Fatura Zarfının Ebatı: Eni: 24 cm , Boy: 10,5 cm
 
Gönderildi : 28/06/2015 21:50

(@BurakSenturk)
Gönderiler: 70
Trusted Member
 

Selam,

Soruyu tam anlayamamış olabilirim. Anladığım kadarı ile cevap vereyim.

Bir filtreye göre 15 tane adresin geldi. Bu 15 adresi iterasyon ile döndün. Her bir dönme işleminde dinamik bir page oluşturup baskıya gönderdin. Artık 15 adres basıldı. 

Bu noktaya kadar yaşadığın sorunları yazarsan yardımcı olmaya çalışırım.

 

İyi Günler Dilerim, 

 
Gönderildi : 29/06/2015 15:39

(@mehmetugur)
Gönderiler: 267
Reputable Member
Konu başlatıcı
 

Selam,

Soruyu tam anlayamamış olabilirim. Anladığım kadarı ile cevap vereyim.

Bir filtreye göre 15 tane adresin geldi. Bu 15 adresi iterasyon ile döndün. Her bir dönme işleminde dinamik bir page oluşturup baskıya gönderdin. Artık 15 adres basıldı. 

Bu noktaya kadar yaşadığın sorunları yazarsan yardımcı olmaya çalışırım.

 

İyi Günler Dilerim, 

 

 

Aynen hocam anladığınız gibi. Fakat bu windows form uygulaması.

Yaşadığım soruna gelince, Şuan konuda da belirttiğim gibi müşteri ekleme ekranını yaptım. Yapacağım yazdırma ekranı için böyle bir konu açma gereği gördüm.

Şuan Yazdırma ekranına başlamadım. Daha önceden belli bir ebata göre ve belli bir alana yazdırma yapmadım şuan fikir alıyorum. (Yazdırma ekranı için Crystal Report düşünüyorum fakat onda da zarfın belli bir yerine oranlama sıkıntı olabilir.)

Durum bundan ibaret

 
Gönderildi : 29/06/2015 22:31

(@BurakSenturk)
Gönderiler: 70
Trusted Member
 

Selam,

Crystal Reportta bir çözüm tabi ki ancak o kadar uzaklaşmana gerek olduğunu düşünmüyorum.  

PrintDocument, PrintPreviewDialog, PrintSetupDiaolog bu tarz işler için hazırlanmış kontrollerdir.

Bununla ilgili bir çok kod örneği rahatça bulabilirsin, dilersen ben sana mantığını anlatayım. Mevzu resim çizmek (grafik) gibidir, kalemini al kağıdını al renklerini fontlarını ve nereye neyi koyacağını belirle...

İlk olarak neyi yazdıraksın : Hazırladığın Sayfayı peki hazırladık mı hayır o zaman hazırlayalım.

Formuna bir adet printdocument  kontrolü ekle. Bu kontrolün eventlarına gel. Oradan print page eventini oluştur.

Gir bakalım eventin içine ;

kalemini tanımla (çizgi için)  

fontlarını tanımla (yazı için)

fırçanı tanımla (yazı için)

çizgi çizmek için drawline , yazı yazmak için drawstring bunlarada parametre olarak kalem / fırça ve hangi noktalar arasında bu işlemi yapacağın bilgilerini ata.. printpreview kontrolü ile test et verdiğin pointler uygun mu diye. Eğer uygun ise ;

iç içe 2 iterasyon ile istediğin baskıları rahatça yazıcıya yollarsın.

Takıldığın noktaları yaz beraber inceleyelim. 

İyi Günler Dilerim, 

 
Gönderildi : 30/06/2015 02:49

(@mehmetugur)
Gönderiler: 267
Reputable Member
Konu başlatıcı
 

Selam,

Crystal Reportta bir çözüm tabi ki ancak o kadar uzaklaşmana gerek olduğunu düşünmüyorum.  

PrintDocument, PrintPreviewDialog, PrintSetupDiaolog bu tarz işler için hazırlanmış kontrollerdir.

Bununla ilgili bir çok kod örneği rahatça bulabilirsin, dilersen ben sana mantığını anlatayım. Mevzu resim çizmek (grafik) gibidir, kalemini al kağıdını al renklerini fontlarını ve nereye neyi koyacağını belirle...

İlk olarak neyi yazdıraksın : Hazırladığın Sayfayı peki hazırladık mı hayır o zaman hazırlayalım.

Formuna bir adet printdocument  kontrolü ekle. Bu kontrolün eventlarına gel. Oradan print page eventini oluştur.

Gir bakalım eventin içine ;

kalemini tanımla (çizgi için)  

fontlarını tanımla (yazı için)

fırçanı tanımla (yazı için)

çizgi çizmek için drawline , yazı yazmak için drawstring bunlarada parametre olarak kalem / fırça ve hangi noktalar arasında bu işlemi yapacağın bilgilerini ata.. printpreview kontrolü ile test et verdiğin pointler uygun mu diye. Eğer uygun ise ;

iç içe 2 iterasyon ile istediğin baskıları rahatça yazıcıya yollarsın.

Takıldığın noktaları yaz beraber inceleyelim. 

İyi Günler Dilerim, 

 

Hocam ilginiz için tekrardan teşekkür ediyorum. Dün akşam sayfayı aşina olduğum Crystal Report u kullarak yaptım. Açıkçası biraz da iş aceleye bindi. Bu yöntemle çözdükten sonra bilgim olması açısından yazdırma işini ikinci yöntem olarak sizin dediğiniz şekilde de deneyeceğim.

Şuan ccrystal report da sayfanın boyutunu ayarlaam işlemi kaldı:

 public void Yazdir() 


try 

string SokakAdi = cmbSokak.Text; 

Baglanti.Open(); 
DataSet ds = new DataSet(); 
SqlDataAdapter adp = new SqlDataAdapter(" SELECT Adres,Il,Ilce FROM Musteri_KimlikBilgileri where BagliOlduguSokak = '" + SokakAdi + "' ", Baglanti); 
adp.Fill(ds); 

FaturaZarfiYazdirma rptDocument = new FaturaZarfiYazdirma(); 
rptDocument.Load(Application.StartupPath + "~\\FaturaZarfiYazdirma.rpt"); 
rptDocument.SetDataSource(ds.Tables[0]); 
crystalReportviewer1.ReportSource = rptDocument; 

catch (Exception ex) 

throw ex; 




bu kod btnYazidr da çalışıyor.

 
Gönderildi : 30/06/2015 11:55

(@mehmetugur)
Gönderiler: 267
Reputable Member
Konu başlatıcı
 
Sorunu çözdüm. Tam istediğim gibi çıktı alıyorum. Benim gibi kişilere de faydalı olması açısndan yöntemimi paylaşmak isterim.
Aşağıdaki linklerden yararlanarak yazıcı özelliklerinden özel sayfa boyutu verdim.
 
Gönderildi : 01/07/2015 19:07

Paylaş: