liberoffice direkt yazdırma nasıl our ?

Cevapla
murat23351
Mesajlar: 1
Kayıt: 01 Şub 2024, 20:16
İşletim Sisteminiz: antix
LibreOffice Sürümü: 20.4

liberoffice direkt yazdırma nasıl our ?

Mesaj gönderen murat23351 »

merhaba arkadaşlar microsoft excel de vba kodu olan

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

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

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



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

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())
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.
Cevapla