Notes hängt sich auf, beim Druck über Netzwerkdrucker bei Open "PRN" for Output

  • Hallo miteinander,
    ich habe da ein Problem mit dem nachfolgenden Script, wenn der Drucker nicht lokal angeschlossen ist. Dann habe ich die EierUhr und das war es denn.
    Gedruckt werden soll eine formatierte Liste von Teilnehmern.
    Ich habe da mit Escape-Sequenzen zur Druckerinitialisierung gearbeitet, da ich sonst keinen vernünftigen Ausdruck - wie gewünscht/erforderlich - realisieren konnte.
    Meine Frage: gibt es eine Möglichkeit, dass Notes zuvor feststellen kann, ob ein lokaler Drucker angeschlossen ist ?


    On Error Resume Fehler
    Dim session As New notessession
    Dim wks As New NotesUIWorkspace
    Dim Doc As NotesDocument
    Dim db As NotesDatabase
    Dim FileName As String
    Dim DateiName As String
    Set uidoc = wks.CurrentDocument
    Set session = New NotesSession
    Set db = Session.Currentdatabase
    Set Doc = wks.CurrentDocument.Document

    FieldList=Evaluate(|Teilnehmer2_2|,doc)

    Dim TempFile As Variant
    Redim TempFile (0 To Ubound(Fieldlist))
    A = -1
    Forall Data0 In Fieldlist
    Data3=""
    Data2=""
    Data1=""
    A = A +1

    X = Instr(Data0," ") 'das 1.Leerzeichen im Text ermitteln = Vorname
    Data1 = Mid(Data0,1,X-1) 'Vorname = Text bis zum Leerzeichen
    Data2 = Mid(Data0,X+1,Len(Data0)) 'Nachname = Text ab Leerzeichen

    'mal sehen, ob im Nachnamen noch ein Leerzeichen enthalten ist
    X = Instr(Data2," ") '3.
    'falls Ja, dann
    If X > 0 Then
    Data3 = Mid(Data2,X+1,Len(Data2))
    Data2 = Left(Data2,X-1)
    End If

    'Zusammensetzen des neuen Textes (Nachname, Vorname)
    If Data3 > "" Then
    Data0 = Data3+", "+Data1+" "+Data2 'Nachname, Vorname1 + Vorname2
    Else
    'wenn Data3 nichts enthält
    Data0 = Data2+", "+Data1 'Nachname, Vorname1
    End If
    TempFile(A) = Data0
    End Forall

    Call QuickSort(TempFile)
    Call doc.ReplaceItemValue("Teilnehmer2_2",SortedArray)

    FieldList=Evaluate(|Teilnehmer2_2|,doc)

    SpacesUnderLine = "_______________________________________________________________________"

    Open "PRN" For Output As #1
    Print #1, Chr$(027);Chr$(037);Chr$(045);Chr$(049);Chr$(050);Chr$(051);Chr$(052);Chr$(053);Chr$(088)
    Print #1, Chr$(027);Chr$(040);Chr$(057);Chr$(085)
    Print #1, Chr$(027);Chr$(040);Chr$(115);Chr$(051);Chr$(066)
    Print #1, doc.ProductArea(0)
    Print #1 , doc.title_(0)
    Print #1, "am "+Cstr(doc.Date__1(0) )
    Print #1, Chr$(13)
    Print #1, Chr$(13)
    Print #1, Chr$(13)

    Forall Data In Fieldlist
    Temp = Data + Mid(SpacesUnderLine,1, (Len(SpacesUnderLine)-Len(Data)) )
    Print #1, Temp
    Print #1, Chr$(13)
    End Forall
    Print #1, Chr$(027);Chr$(037);Chr$(045);Chr$(049);Chr$(050);Chr$(051);Chr$(052);Chr$(053);Chr$(088)
    Close #1
    uidoc.refresh
    Exit Sub
    Fehler:
    End Sub

    • Offizieller Beitrag

    ja geht aber nur über dien WIN-API.


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein

    • Offizieller Beitrag
    Code
    Declare Function GetProfileString Lib "Kernel32" Alias "GetProfileStringA" (Byval lpAppName As String, Byval lpKeyName As String, _
    Byval lpDefault As String, Byval lpReturnedString As String, Byval nSize As Long) As Long
    
    
    def$ = String(128, 0)
    di = GetProfileString("WINDOWS", "DEVICE", "", def$, 127)
    Print Trim(def$)


    es kommt ein String zurück, in dem an erster Stelle der Drucker steht. Beginnt der mit "\\" handelt es sich in der Regel um einen Netzwerkdrucker. An 3. Stelle Steht die Schnittstelle (z.B. LPT1, LPT2 usw.).


    Gruß
    Dirk

    Rein logisches Denken verschafft uns keine Erkenntnis über die wirkliche Welt.
    Alle Erkenntnis der Wirklichkeit beginnt mit der Erfahrung und endet mit ihr.
    Alle Aussagen, zu denen man auf rein logischen Wegen kommt, sind, was die Realität angeht, vollkommen leer.
    Albert Einstein