Fehler beim Drucker auslesen

Von Ausgaben mit der Gra-Engine über Generatoren bis zum Export in diversen Formaten

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Fehler beim Drucker auslesen

Beitrag von Wolfgang_B »

Mahlzeit,
ich verwende Huberts Druckerklasse. Kann man hier irgendwie den vom Drucker gelieferten Fehler auswerten z.B. Papierstau oder kein Papier usw.?
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
flanelli
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 151
Registriert: Di, 11. Mai 2010 16:27
Hat sich bedankt: 3 Mal
Danksagung erhalten: 9 Mal

Re: Fehler beim Drucker auslesen

Beitrag von flanelli »

Ohne Gewähr auf Korrektheit der Errorcodes...
Habe das Ganze auch nur übernommen ( woher weiß ich nicht mehr ) und geringfügig modifiziert

Code: Alles auswählen

METHOD _HBPrinter:IsPrinterError(oDC)                       // Printer # READY -> error
   local lIsPrinterError := .f., cErrTyp1:="", error_test:=file("DRUCKERROR.CHK")
   LOCAL tmp_err:=1
   DEFAULT oDC TO ::oPS:device()

   do case
      case ::_PrinterCreateErr               // error at create -> there could be nothing
           lIsPrinterError := .t.            // Fehler schon bei create -> da kann nichts sein
           if error_test
              cErrTyp1:="CREATE-ERROR"
           endif
      case IsNil(oDC)
           lIsPrinterError := .t.            // NIL !
           if error_test
              cErrTyp1:="ISNIL-ODC-ERROR"
           endif
      case oDC:isDerivedFrom( "XbpPrinter" ) .and. IsMethod(oDC,"printerStatus")
           lIsPrinterError := ( oDC:printerStatus() # XBPPRN_STATUS_READY )
           if error_test
              tmp_err:=oDC:printerStatus()
              tmp_str:=""
              if tmp_err=0
              	  tmp_str:="Drucker wurde angehalten"
              elseif tmp_err=1
                 tmp_str:="Drucker ist bereit"
              elseif tmp_err=-1
                 tmp_str:="Drucker ist beschäftigt"
              elseif tmp_err=-2
                 tmp_str:="Drucker braucht Wartung ( Toner oder Papierstau )"
              elseif tmp_err=-3
                 tmp_str:="Drucker hat kein Papier"
              elseif tmp_err=-4
                 tmp_str:="Drucker offen oder wärmt auf"
              elseif tmp_err=-5
                 tmp_str:="Drucker nicht erreichbar"
              elseif tmp_err=-6
                 tmp_str:="Drucker ist im Fehlerstatus"
              elseif tmp_err=-7
                 tmp_str:="Drucker ist offline"
              else
                 tmp_str:="Druckerproblem nicht identifizerbar"
              endif
              cErrTyp1:=oDC:devname+" > STATUS = "+alltrim(str(tmp_err))+" > "+tmp_str+" > Station "+usernum+" > "+LW_USERNAM
           endif
   endcase
   if error_test .and. tmp_err<>1
      strfile(dtoc(date())+"  "+cErrTyp1+chr(13)+chr(10),"DRUCKERROR.LOG",.T.)
   endif
return lIsPrinterError
Ahoile aus dem Süden
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Fehler beim Drucker auslesen

Beitrag von Wolfgang_B »

prima, vielen Dank!!
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Antworten