Raporda bir kaydın bir çok kez tekrarlanması

1 2 3 4
22/06/2009, 12:39

Seruz

temp dosya kullanmak tek çözüm değil.
Raporda, detail kısmında nextrecord özelliği ile oynanarak da yapılabilir.
Örneği ekledim.

Kod:
Dim Basilan_Etiket_Sayisi As Integer

Private Sub Report_Open(Cancel As Integer)
    Basilan_Etiket_Sayisi = 0
End Sub

Private Sub Ayrıntı_Print(Cancel As Integer, PrintCount As Integer)
    Basilan_Etiket_Sayisi = Basilan_Etiket_Sayisi + 1
    If Basilan_Etiket_Sayisi >= Forms!musteri!ADETAL Then
        Me.NextRecord = True
    Else
        Me.NextRecord = False
    End If
End Sub
22/06/2009, 16:00

okileturc

Sn. Seruz çok tşk ederim
özet ve net bir çözüm olmuş

___________________________

Sn. tartini
Bu durumda tmp tablo çözümünü devre dışında
bırakmak gerekir çünkü fazladan bir tablo ve kayıt ekle/sil
komutlarına gerek kalmadı.

Tmp tablo metodunu belki başka bir ihtiyaca yönelik
kullanabilirsiniz. Şu an aklıma gelen; birçok müşterinin
olduğu bir listeden etiket basılırsa ve ayni anda :
1. den 5 tane ,2. den 3 tane, 3. den 1 tane, ..... vb
gibi farklı adetlerde basılırsa kullanmak zorunda kalabilirsiniz.

Sn. Seruz eklentisinde gerekli değişiklikleri yapmış,
son halini indirmelisiniz.

Selamlar
22/06/2009, 16:07

Seruz

Alıntı:birçok müşterinin
olduğu bir listeden etiket basılırsa ve ayni anda :
1. den 5 tane ,2. den 3 tane, 3. den 1 tane, ..... vb gibi farklı adetlerde basılırsa kullanmak zorunda kalabilirsiniz.

Temp dosyasını yine kullanmak zorunda kalmazsınız, aynı nextrecord metoduyla o da yapılabilir.
Sadece her yeni kodda basılan etiket sayısını sıfırlamak ve yeni kodda basılacak etiket sayısını bulmak için bir kaç satır daha kod ilavesi gerekir.
22/06/2009, 16:22

okileturc

Hocam, desenize ben barcode uygulamamda boşuna
tablolar yapmışım Ürün kartlarım var, Bilgisayarcı nın önerdiği gibi sadece URUN_ID alıyorum
ancak kullanıcıya basılacak adedi girdirmem lazım,
bu bilgiyi nerede tutacağız ? Eğer ürün kartına böyle bir alan ekleyeceksem
sonuçta o alanlara yazma ve sıfırlama işlemi yine yapılmak zorunda. Üstelik
ürün kartına koyarsam ağ üzerinden ayni anda etiket basan bir kullanıcı
benim adetlerimle basacaktır, trafik karışacaktır. Oysa temp dısyası localde yaratılabilir.
Yardımlarınızı rica ediyorum
22/06/2009, 16:27

assenucler

Sayın Seruz;

Sitemizde her bir hocamızın farklı yaklaşım ve çözümleri, benim gibi sanırım bir çok arkadaşımızı heyecanlandırıyor. Bir konuda birden fazla çözüm yolunun hocalarımızca örneklerle işlenmesi bizler için çok öğretici olduğu gibi, aynı zamanda güzel bir arşiv için kaynak oluyor.

Emeği geçen ve katkıda bulunan herkese sonsuz teşekkürler.
22/06/2009, 16:53

Seruz

Benim söylediğim şu; a ürünü için 5, b ürünü için 8, c ürünü için 3 adet etiket yazdırılmak istenirse, ayrıca bir temp dosyasına 5+8+3=16 adet kayıt açmanıza gerek yok, ürün tablosuna eklenecek bir alanla, yukarıdaki kodla yapabilirsiniz.

Kullanıcı ve ürün bazında ayrı miktarlar girilsin ve her kullanıcı kendi girdiği miktar bazında etiket üretsin diyorsanız, kullanıcı ve ürün bazında miktarı saklayan bir temp dosya tabii ki olmalı. Ayrıca etiket miktarı kadar kayıt yaratılan bir temp dosyaya ihtiyaç yok.

Normalde sizin uygulamanızda 1 değil 2 ayrı temp dosyaya ihtiyaç var. 1.cisi kullanıcı ve ürün bazında miktar bilgisi içeren, 2.cisi etiket basımı esnasında, her ürün miktarı kadar etiket kaydı yaratılan bir dosya.
Bir alış faturası düşünün, içerisinde a ürünü için 5, b ürünü için 8, c ürünü için 3 ad. giriş var. Bu faturada gelen tüm malzemeler için etiket basımı gerektiğinde ayrıca bir temp tablo ihtiyacı olmadan tüm ürünlere faturadaki adet kadar etiket basabilirsiniz.
1 2 3 4