liberoffice direkt yazdırma nasıl our ?
Gönderilme zamanı: 01 Şub 2024, 20:31
merhaba arkadaşlar microsoft excel de vba kodu olan
sıra al dediğimde hemen yazıcıdan çıktı alacak düzeyde düzgün çalışıyor ben bu kodu liberoffice çalıştırmak üzere
kodunu yazdım ama sıra al dediğimde iste hata olarak " ThisComponent.CurrentController.Frame.print(Array()) " kodunu göstererek BASIC ÇALIŞMA HATASI , özellik ya da yöntem bulunamadı: print. hatası veriyor
bu sorunu çözmek için bir çok kod denedim direkt yazdıramadım. makro kaydetten yazdırma makrosu alıp
bu hata kodu olan
ThisComponent.CurrentController.Frame.print(Array())
yerine
yazdım bu sefer yazdırma önizleme kısmı çıkıyor tekrar yazdır seçeneğine tıklayınca yazdırıyor. microsoft excel deki gibi sıra al tıklanıldıgında direkt yazdıracak uygun kod ne olur. teşekkürler.
Kod: Tümünü seç
Sub doktor1()
If [B2] = "" Then [B2] = 1
[A9] = "UZM.DR. doktor adi"
[A08] = Date & " " & " " & " " & " " & "SIRA NO : " & [B2]
yazdır = MsgBox("SIRA NUMARASI YAZDIRILSIN MI?", vbYesNo)
If yazdır = vbYes Then
[B2] = [B2] + 1
ActiveSheet.PrintOut
End If
End Sub
Kod: Tümünü seç
Sub doktor1()
If ThisComponent.Sheets(0).getCellRangeByName("B2").getString() = "" Then ThisComponent.Sheets(0).getCellRangeByName("B2").setValue(1)
ThisComponent.Sheets(0).getCellRangeByName("A9").setString("UZM.DR. doktor adı")
testDate = Now()
ThisComponent.Sheets(0).getCellRangeByName("A11").setString(Date() & " " & "Saat:" & Format(testDate, "hh:mm") & "-" & "SIRA NO : " & ThisComponent.Sheets(0).getCellRangeByName("B2").getString())
yazdir = MsgBox("SIRA NUMARASI YAZDIRILSIN MI?", 4) 'vbYesNo = 4
If yazdir = 6 Then 'vbYes = 6
ThisComponent.CurrentController.Frame.print(Array())
ThisComponent.Sheets(0).getCellRangeByName("B2").setValue(ThisComponent.Sheets(0).getCellRangeByName("B2").getValue() + 1)
End If
End Sub
bu sorunu çözmek için bir çok kod denedim direkt yazdıramadım. makro kaydetten yazdırma makrosu alıp
bu hata kodu olan
ThisComponent.CurrentController.Frame.print(Array())
yerine
Kod: Tümünü seç
Dim oSheet As Object
Dim oPrintRanges As Object
Dim oPrintRange As Object
oSheet = ThisComponent.Sheets(0) ' İlgili sayfaya erişim
' Print alanını ayarla (A1'den A15'e)
oPrintRanges = oSheet.getPrintAreas()
oPrintRange = oPrintRanges.insertNewByName("PrintArea", "$A$1:$A$15")
' Sayfa düzenini ayarla
oSheet.getPrintSettings().PrintRanges = oPrintRanges
' Sayfayı yazdır
oSheet.Print(Array())