Autor Thema: Notes hängt sich auf, beim Druck über Netzwerkdrucker bei Open "PRN" for Output  (Gelesen 2457 mal)

Offline Harald Wendt

  • Frischling
  • *
  • Beiträge: 11
  • Geschlecht: Männlich
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

Gruß Harald
« Letzte Änderung: 30.01.08 - 08:59:16 von Harald Wendt »

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Der junge Mann mit der Leseschwäche hat mitlerweile eine Lösung gefunden.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

klaussal

  • Gast
Dann wollen wir die hier auch mal reinhängen:

Zitat
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.).


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Cool - mal wieder ein Doppelposting ...

Die Antwort von Dirk ist hervorragend. Irgendwann wird man das sicher auch brauchen und braucht nicht mehr suchen.

Und das Problem von Harald hat m.E. nichts mit Notes zu tun. Dem ist es bei passenden Einstellungen egal, wie der Drucker seine Daten kriegt: Parallel, USB, IP oder sonstwas. Den Fehler müsste man auf OS-Ebene suchen (ich drucke auch auf Drucker, die sonstwie angeschlossen sind und hatte noch nie Probleme).

Bernhard

Offline ata

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
... ich denke das wäre eher bei "Companion & COM" aufgehoben - ich verschieb's
Grüßle Toni :)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz