sığmayan satırı yana yazdırma

1 2 3 4 5
27/09/2009, 15:13

benremix

Sn Mehmet Hocam raporda üç sütun olduğunda başlıklarını da üç sütüna yazdırabilirmiyiz? Saygılar...
27/09/2009, 15:52

mehmetdemiral

Aklıma gelen şöyle bir çözüm var. Rapordaki 3 sütunlu fatura listesinde her bir kayda sıra numarası verip toplamını da "tümü üzerinde" yapıp, denetim kaynağına da +1 yazarsanız, sayfadaki her kaydın başına bir numara gelecektir. Sol ilk sütunda diyelim 14 sıra var. 15.nci kayıt olduğunda her sütunun başına yerleştirdiğimiz etiketlerin içine bilgi göndereceğiz.

Şöyle ki, her sütunun üzerine bir etiket (boş) yerleştirdik diyelim. Soldaki ilk sütundaki (etiket1) mecbur yazılı olacak. 2. sütun (etiket2) ve 3. sütun için (etiket3) şu formülü kullanacağız:

Kod:
if sırano >15 then etiket2.caption= "Fatura Tarihi  Fatura Nosu  Tutarı"
if sırano >30 then etiket3.caption= "Fatura Tarihi  Fatura Nosu  Tutarı"

Tabii else ile gerektiğinde içini temizletebiliriz. Ayrıca bunları raporun biçimlendiğinde olayına yazacağız. Onu da belirteyim.
27/09/2009, 17:09

benremix

Sn Mehmet Hocam kendi örneğimde üç başlık yazdım. (3 etiket) Daha önce 3 sütun sığması için sayfayı 1/3 küçülterek tasarlıyordum. Şimdi sizden öğrendiğim basit sayfa ayarı ile buna gerek kalmadı ve başlıkları da ekledim. Benim örnek arkadaşınki gibi detaylı olmadığı için kolay oldu. Sizin yaptığınız açıklamalar ışığında örneği yapmaya çalıştım olmadı örnek ekte.
Saygılar...
27/09/2009, 20:04

cuneyt

mehmet seni tebrik ediyorum. sen örnek uygulamayı şekillendirmeyene kadarda ben soruyu da yanlış anlamıştım. emeğin için tşk.
27/09/2009, 21:10

mehmetdemiral

Teşekkür ederim. Yalnız Benremix öyle bir soru sordu ki, bütün günümü ona harcadım. Hala da bir adım yol ilerleyebildim.

Olay dediğim gibi oluyor. Fakat bir durum var. Raporun biçimlendirildiğinde olay yordamına yazılan kodlar şöyle:

Kod:
Private Sub Ayrıntı_Format(Cancel As Integer, FormatCount As Integer)
Dim a As Integer
Me.Etiket44.Caption = ""
Me.Etiket45.Caption = ""
'DoCmd.GoToRecord , , acNext

Me.Etiket62.Caption = Metin52
a = Me.Etiket62.Caption

'DoCmd.GoToRecord , , acPrevious
If a > 30 Then
Me.Etiket44.Caption = "Fatura Tarihi   Fatura No    Tutarı"
Me.Etiket45.Caption = ""
End If
End Sub

Burada tek sıkıntı, biçimlendiğinde oluşan olay, bir sonraki kayıtta ancak doğru sayıyı veriyor. Çünkü biçimlendiğinde olayından başka kod yazacak yer yok. Olay da gerçekleştiğinde iş işten geçmiş oluyor. Bu nedenle a değişkenine aktardığım metin52 değeri doğru kayıt sayısını gösterirken, rapor üzerinde göreyim diye koyduğum etiket 62 sayısı bir önceki kaydın değerini veriyor. Yani a değişkeni her zaman bir kayıt geriden geliyor. O nedenle, (hata verdiği için durdurduğum) önceki kayıt, sonraki kayıt kodları ile çözüm aradım. Yani bir kayıta gittiğimde hemen sonraki kayda gidecek, değeri a değişkenine atayacak sonra da gelip o değişken değeri üzerinden if mantığıyla etiketin içini doluracak ya da boşaltacaktı. Herşey çalışıyor fakat bir sonraki kayıtta )) Mesela 35 kayıt olan ikinci rapor, üçüncüye geçince işlediği için 2.nci sütunun etiketi doluyor. Hala uğraşıyorum. Yardım olacak önerilere açığım. Örnek de ekte.
27/09/2009, 21:14

mehmetdemiral

Bu arada unutmadan yazayım, sadece 2. sütunla uğraştım. 3. sütun işi aynısı olacağından ve örnekte 3. sütunluk veri olmadığından onu "" şeklinde geçtim. Hatırlatayım..
1 2 3 4 5