Forum üzerinden raporda sayfa düzeni yapmak

Katılım
13 Nisan 2006
Mesajlar
47
arkadaşlar öncelikle hepinize yardımlarınızdan dolayı teşekkür ediyorum.
benim sorunum yapmış olduğum bir programın hazır matbu evrak üzerine basımı sırasında yazıcılar arasında farklılıklar göstermesi ben istiyorumki programı kullanan kullanıcının sayfa yapısı üzerinde ayarlamayı kendi yapabilsin.
Mesala :HP 1010 yazıcıyla çıktı alındığında matbuu kağıt üzerinde herhangi bir problem yok. Ama 1020 yazıcı ile aynı matbu evrakta isteğim yerlere yazmıyor. yazıların yerleri kayıyor. Bunu kullanıcının yapılandırmasını istiyorum. Bu konu ile ilgili bir örnek veya yardımlarınızı bekliyorum. şimdiden teşekkürler.
 
Katılım
6 Ekim 2006
Mesajlar
371
Excel Vers. ve Dili
2010
merhaba kardeşim aslında mümkün fakat kolay birşey ve ya değil fakat zaman alacak bir kod türetmek gerekiyor o yüzden kolay olanı ve benim söylediğimi uygularsan kendin bu sorunu çözmüş olursun
şimdi raporunu alacağın formun üzerine Yazıcı diye bir açılankutu yerleştir ve adını yazıcı yap
ondan sonra aynı raporu farklı kaydet yöntemi yap diyelim ki sanin raporun
hp 1010 formatına göre ayarlanmış olan Rapor1 olsun
Epson 1070 formatına göre olan ise Rapor2 olsun

şimdi sfrapor butonu ardına ise bu vereceğim kodu yaz kurban

On Error GoTo Err_sfrapor_Click
If MsgBox("RAPOR AÇILSIN MI?", 36, "ÖNİZLEME") = 6 Then

Dim stDocName As String
Dim stDocName1 As String
stDocName = "Rapor1"
stDocName1="Rapor2"
'YENİLEN MEYEN ALAN KRİTER OLARAK SEÇİLİR
if me.yazıcı="HP 1010" then
DoCmd.OpenReport stDocName, acViewPreview, , "[FISNO]=Forms![ÇIKIŞFİŞİ]![FISNO]"
else
if me.yazıcı="Epson 1070" then
DoCmd.OpenReport stDocName1, acViewPreview, , "[FISNO]=Forms![ÇIKIŞFİŞİ]![FISNO]"
end if
end if
Exit_sfrapor_Click:
Exit Sub

Err_sfrapor_Click:
MsgBox Err.Description
Resume Exit_sfrapor_Click

End If


umarım işini görür iyi çalışmalar
 
Katılım
13 Nisan 2006
Mesajlar
47
teşekkür ederim Atilla 52
ben emniyette çalışıyorum ve bir ruhsat yazdırma proğramı hazırladım bu diğer trafik bürolarından veya şubelerindern isteyen arkadaşlar var onlara gönderdiğim zaman yazdırmada problem yaşıyorlar. bazen onların kullandığı yazıcı elimde veya çalıştığım kurumda olmuyor o zaman yazdırma düzeni anlatmakta problem çekiyorum bunu daha önce bir hazır programda bu olayı görmüştüm çok araştırdım ama bir örnek göremedim.
yinede ilgin için teşekkürler. Elinizde veya elinde buna benzer bir yazılım olan varsa eklerse sevinirim.
ilgilenen herkese teşekkürler.
 
Katılım
22 Ocak 2007
Mesajlar
815
Excel Vers. ve Dili
2003
cevap

access kod deposunda vardı
Access 2002'de Bir Raporun Yazıcı Ayarlarını Değiştirme
Veritabanındaki her rapor için sayfa ayarı seçeneklerini ayarlayabilirsiniz ancak ayarlar her veritabanı kullanıcısı için ayrı ayrı saklanmaz. Başka bir deyişle, Fatura raporunun yazdırma ayarlarında değişiklik yaparsanız, değişiklikleriniz bir önceki kullanıcının yaptığı değişikliklerin üstüne yazılacaktır.

Kod yazarak, kullanıcıların çalışma anında raporun varsayılan yazıcı veya sayfa ayarı seçeneklerini değiştirmeden özel ayarlar belirlemelerini sağlayabilirsiniz. Ayrıca kullanıcılara istedikleri ayarları belirleyebilecekleri bir iletişim kutusu veya form sunmanız da gerekebilir.

Aşağıda, kullanıcıya yazdırma ayarlarını özelleştirme, bir raporu önizleme veya yazdırma olanağı veren Yazıcı Ayarları formunu göreceksiniz.



Önizlemek veya yazdırmak istediğiniz raporu seçin.

Seçilen rapor için kullanmak istediğiniz yazıcıyı seçin.

Kağıt boyutunu ve yönünü belirleyin.

Raporu önizlemek için tıklatın.

Son yazdırma ayarlarını, Önizleme penceresinde zaten açık olan bir rapora uygulamak için tıklatın.

Raporu yazdırmak için tıklatın.

Yazıcı Ayarları formu oluşturma
Tasarım görünümünde bir form oluşturun ve aşağıdaki denetimleri yukarıdaki şekilde gösterilen biçimde ekleyin.
lbxSelectReport: rapor listesini görüntülemek için liste kutusu
cmbPrinter: kullanılabilir yazıcıların listesini görüntülemek için açılan kutu
cmbPaperSize: kağıt boyutları listesini görüntülemek için açılan kutu
opgOrientation: yönlendirme seçeneklerini görüntüleyen, iki seçenekten oluşan seçenek grubu
cmdPreview: raporu önizleme modunda açan komut düğmesi
cmdApplyChanges: son ayarları geçerli rapora uygulamak için komut düğmesi
cmdPrint: formda belirtilen ayarları kullanarak seçilen raporu yazdırmak için komut düğmesi
Denetimleri başlatmak için formun Aç olayına kodu ekleyin.
Örnek Aç olayı alt yordamı

Private Sub Form_Open(Cancel As Integer)

' Varsayılan yazıcı dizinini saklayan değişken.
Dim strDefaultPrinter As String

' Yazıcı nesnesini saklayan değişken.
Dim prt As Printer

' AllReports derlemesi içinde gezinirken rapor nesnesini
' saklayan değişken.
Dim accObj As AccessObject

' Yazıcı listesini doldur.
' RowSource değerinin boş olduğundan emin ol.
Me!cmbPrinter.RowSource = ""
Me!lbxSelectReport.RowSource = ""

' Bilgisayarda yüklü yazıcılar arsında sırayla geçiş yap ve bunları birleşik kutuya ekle.
For Each prt In Application.Printers
' Yazıcı adını birleşik kutuya eklemek için yeni AddItem yöntemini kullan.
Me!cmbPrinter.AddItem prt.DeviceName
Next

' Varsayılan yazıcıyı anımsa.
strDefaultPrinter = Application.Printer.DeviceName

' Birleşik kutuyu varsayılan yazıcıya ayarla.
Me!cmbPrinter = strDefaultPrinter
Me!cmbPaperSize = 1

' Rapor listesini doldur.
For Each accObj In CurrentProject.AllReports
Me!lbxSelectReport.AddItem accObj.Name
Next

' Liste kutusunu ilk rapora ayarla.
Me!lbxSelectReport.SetFocus
Me!lbxSelectReport.ListIndex = 0

End Sub
Seçilen raporu önizleme modunda açmak için, Rapor Önizleme komut düğmesine kodu ekleyin.
Rapor Önizleme komut düğmesi örnek Tıklatıldığında olay yordamı

Private Sub cmdPreview_Click()
' İşlenecek yazıcı nesnesini saklayan değişken.
Dim prt As Printer

' Seçili yazıcı için yazıcı nesnesini al.
Set prt = Application.Printers(Me!cmbPrinter.Value)

' Kullanıcı tanımlı ayarları oku.
prt.PaperSize = Me!cmbPaperSize
prt.Orientation = Me!opgOrientation

' Raporu önizleme modunda aç.
DoCmd.OpenReport Me!lbxSelectReport, acViewPreview

' Raporun yazıcısını değiştirilmiş yazıcı nesnesine ayarla.
Reports(Me!lbxSelectReport).Printer = prt

End Sub
Önizleme modunda zaten açık olan rapora değişiklikleri uygulamak için, Değişiklikleri Uygula komut düğmesine kodu ekleyin.
Değişiklikleri Uygula komut düğmesi örnek Tıklatıldığında olay yordamı

Private Sub cmdApplyChanges_Click()

If CurrentProject.AllReports(Me!lbxSelectReport).IsLoaded Then
With Reports(Me!lbxSelectReport).Printer
.PaperSize = Me!cmbPaperSize
.Orientation = Me!opgOrientation
End With
Else
MsgBox "Please preview the report first."
End If

End Sub
Seçilen raporu, kullanıcı tarafından belirlenen ayarlara göre yazdırmak için Raporu Yazdır komut düğmesine kodu ekleyin.
Raporu Yazdır komut düğmesi örnek Tıklatıldığında olay yordamı

Private Sub cmdPrint_Click()

' Raporun açık olup olmadığını denetle.
If CurrentProject.AllReports(Me!lbxSelectReport).IsLoaded Then
' Rapor zaten açıksa yazdır.
DoCmd.OpenReport Me!lbxSelectReport, acViewNormal
Else
' Uygulama yazıcısı için özel ayarlar belirle.
Application.Printer = Application.Printers(Me!cmbPrinter.Value)
Application.Printer.PaperSize = Me!cmbPaperSize
Application.Printer.Orientation = Me!opgOrientation

' Raporu, yeni uygulama düzeyi yazıcı ayarlarını kullanarak aç ve yazdır.
DoCmd.OpenReport Me!lbxSelectReport, acViewNormal

' Uygulama yazıcısını varsayılan olarak sıfırla.
Set Application.Printer = Nothing
End If

End Sub


buda başka bir kod
bir düğmeye ekleyin

DoCmd.OpenForm FormName:=strFormname, view:=acDesign, _
datamode:=acFormEdit, windowmode:=acHidden

With Forms(form1).Printer

.TopMargin = 1440
.BottomMargin = 1440
.LeftMargin = 1440
.RightMargin = 1440

.ColumnSpacing = 360
.RowSpacing = 360

.ColorMode = acPRCMColor
.DataOnly = False
.DefaultSize = False
.ItemSizeHeight = 2880
.ItemSizeWidth = 2880
.ItemLayout = acPRVerticalColumnLayout
.ItemsAcross = 6

.Copies = 1
.Orientation = acPRORLandscape
.Duplex = acPRDPVertical
.PaperBin = acPRBNAuto
.PaperSize = acPRPSLetter
.PrintQuality = acPRPQMedium

End With

DoCmd.Close objecttype:=acForm, objectname:=strFormname, _
Save:=acSaveYes
 
Üst