Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » visual basic hazır kodlar » Mükemmel DataGrid Print
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

Nedir Bu MS Scripting Runtime?

Yazar: idolater
Çalışma anında Dosya İşlemleri...


Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 7206
Yayın Tar:26.05.2006
Yazar : guner140
Hit :3423

Bu Yazarın Yazıları Sadece bu yazarın  göster
Bu Yazıyı Tavsiye Et

Slm arkadaslar,
bildiginiz gibi datagrid icindeki veriyi yaziciya gondermek bayaa sorun oluyor...
Yazi cok yukarıda,cok solda olabiliyor.. Veya datagrid icindeki sutun sayisi degistigi zaman yazdirmada problemler olabiliyor.. Asagidaki kod once "toplam yazdirilacak metnin uzunlugunu" buluyor. Sonra da Grid icindeki sutun sayisina ve toplam metin uzunluguna gore yazilar arasindaki bosluklari hesapliyor... Sonucta Gayet guzel bi Print oluyor :)

KOD:
'-----------------------------------------------------
Bir CommandButton'un Click olayina;

Call GRIDPrinTT(DataGrid1)


'-----------------------------------------------------
'--------------- FONKSIYON-----------------------
'-----------------------------------------------------
'Bir Modul icine;

Public Sub GRIDPrinTT(GriD As DataGrid)

Dim NCols As Integer, NRows As Integer, I As Integer, J As Integer
Dim K As Integer, Tabs(50) As Integer, Maxs(50) As Integer
Dim TotalMaxs As Integer, Spaces As Integer, EachSpace As Integer
Dim TempMax As Integer, Title As String
Dim A4W,PBlank


'--- Hesaplama kismi ---
A4W=9900
PBlank=1000

NRows = GriD.ApproxCount
NCols = GriD.Columns.Count
Spaces = NCols - 1

For I = 0 To NCols - 1
GriD.Col = I
For J = 0 To NRows - 1
GriD.Row = J
TempMax = Printer.TextWidth(Trim(GriD.Text))
If TempMax > Maxs(I) Then
Maxs(I) = TempMax
End If
Next J
Next I

For I = 0 To NCols - 1
TotalMaxs = TotalMaxs + Maxs(I)
Next I
EachSpace = (A4W - TotalMaxs + 1) / Spaces
For I = 0 To NCols - 1
If I = 0 Then
Tabs(I) = 1000 + Maxs(I) + EachSpace
Else
Tabs(I) = Tabs(I - 1) + Maxs(I) + EachSpace
End If

If I = NCols - 1 Then
Exit For
End If

Next I

' -- Yazdirma Kismi ---

Printer.CurrentY = 1000
Printer.PaperSize = vbPRPSA4 'A4 kagit boyutu

Printer.FontSize = 14
Title = InputBox("Basligi Yazin:", "Baslik")
Printer.CurrentX = (11907 - (Printer.TextWidth(Title))) / 2
Printer.Print Title
Printer.Line (1000, Printer.CurrentY)-(10900, Printer.CurrentY)

Printer.CurrentY = 1400
Printer.FontName = "Tahoma"
Printer.FontSize = 10

For I = 0 To NRows - 1

If Printer.CurrentY + Printer.TextHeight(GriD.Text) > Printer.ScaleHeight - 1000 Then
Printer.NewPage
End If

GriD.Row = I 'Satir Secme

If I = 0 Then
For K = 0 To NCols - 1

GriD.Col = K
If K = 0 Then
Printer.CurrentX = PBlank
End If

Printer.Print Trim(GriD.Columns(K).Caption);
Printer.CurrentX = Tabs(K)
Next K
Printer.Print
Printer.Line (1000, Printer.CurrentY)-(10900, Printer.CurrentY)
Printer.CurrentY = 1800
End If

For J = 0 To NCols - 1
GriD.Col = J 'Sutun Secme
If J = 0 Then
Printer.CurrentX = PBlank
End If
Printer.Print GriD.Text;
Printer.CurrentX = Tabs(J)
Next

Printer.Print
Next I
Printer.EndDoc

End Sub




Yorumlar, eklemeler ve düşünceler
        Çok Teşekkürler Ama şu nrows = GriD.ApproxCount bolumunde hata veriyor GriD.ApproxCount Ne anlama Geliyor Onu da Biriniz Açıklarsanız sewinirim Ve Tekrardan Eline Saglık.........:)

   iventor450, 14.05.2007 13:35
   Mrb iventor,
Bu yazıyı yazalı sanirim 1 sene kadar oldu, Tam emin değilim ama %99 ihtimalle Grid.ApproxCount Gridin satir sayisini buluyordu... Kodlari VB-6'da yazmistim ve en son çalışan halini koymuştum siteye, Hata olmaMAsı lazim... Kolay Gelsin...

   guner140, 26.07.2007 03:51
   Kardeş bunu yanlamasına yazdırmak için ne gibi değişiklik yapmam gerekiyor ?

   Tolga148, 15.05.2008 14:41
   Dostum çok teşekkürler çok iyi çalışıyor.

   yokediciabidin, 27.10.2013 16:47
© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin