Duplex Druck an- ausschalten

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

Moderator: Moderatoren

Antworten
gf210957
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Mi, 21. Dez 2005 10:18

Duplex Druck an- ausschalten

Beitrag von gf210957 »

Hallo an alle,

ist es eigentlich möglich, den DUPLEX DRUCK an einem Drucker während eines Druckjobs an- bzw. umzuschalten?

Ich benötige dies zum Bedrucken der 1. Rechnungsseite mit den Liefer- und Zahlungsbedingungen.

Wenn nein, hat jemand eine Idee, wie man das machen kann?

Vielen Dank für Eure Hilfe.

Günter Früholz
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Günter,
ich meine, ja.
Allerdings musst Du dann jeweils eigene Druckjobs machen - also einseitig, beidseitig, einseitig.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
gf210957
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Mi, 21. Dez 2005 10:18

Beitrag von gf210957 »

Hallo Martin,

danke für Deine Antwort.

Das würde bedeuten, dass die Rechnung nicht in einem Druckjob gedruckt werden kann. In diesem Fall müssten dann mehrere separate Seiten erstellt werden?

Wie funktionier das aber z. Bsp bei Ausgabe in PDF?

Günter Früholz
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Günter,
ja - so meine ich das in der Newsgroup damals gelesen zu haben.
Man kann wohl nur beim Erzeugen eines Druckjobs die Orientation angeben.
Ich selber nutze das jedoch nicht und kann Dir da nicht wirklich weiterhelfen, fürchte ich.
Ich habe solch einen Wechsel bei mir nur beim Erzeugen von RTF-Dateien, da geht das problemlos.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Günter,
hast Du Dir mal :setOrientation() angeschaut? Damit kann man (laut aktueller Onlinehilfe) nach einem :endPage() (und natürlich vor dem nächsten :startPage()) die Ausrichtung ändern.
Schau mal in der Hilfe unter :endPage()

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Martin,

ich arbeite ständig mit :setOrientation(). Das mitten im Ausdruck zu ändern sollte kein Problem sein. Ich meine mich erinnern zu können, daß ich das auch schon mal gemacht habe.

Jan
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jan,
hatte ich ja bereits geschrieben.
Meine Aussage beruht auf einer bereits etwas älteren Version...
Die Doku wurde ja auch vor kurzem überarbeitet - darum ist die Überschrift dort blau.
Man muss halt nach dem Ändern der Ausrichtung unbedingt ein Configure auf den PresentationSpace ausführen, bevor man mit :StartPage() die nächste Seite beginnt!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Martin,

meine Aussage war auch nur als Unterstützung zu Deinem Beitrag davor gemeint. Ich hatte den so verstanden daß Du meintest, daß das vielleicht die Lösung sein könnte und er sich das deswegen mal näher anschauen sollte. Ich wollte nur bestätigen, daß dem wirklich so ist.

Welche Doku hat Alaska da geändert? Die zu 331 oder zu 342?

Jan
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Jan,
ich habe hier produktiv die .331 - da steht die Überschrift in blau.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

früher konnte man tatsächlich die Orientierung der Seite nur vor StartDoc() einstellen (über create() oder configure() ). Da gab es auch kein setOrientation() bzw. es durte nur außerhalb aufgerufen werden. Ich meine das wurde ab 1.90 geändert, seit da gibt es auf jeden Fall startPage() und EndPage() innerhalb einer Druckausgabe ...

Allerdings geht das alles an der Frage vorbei ! Dort geht es um DUBLEX Druck. Ich denke nicht, dass man :setDublexMode() während des Druckens aufrufen kann, aber probier es doch mal aus. Wenn überhaupt müsste es so gehen:

Code: Alles auswählen

oP:StartDoc()
...
oP:EndPage()
oP:setDuplexMod(nMode)
oP:StartPage()
...
oP:EndDoc()
eventuell sind noch Parameter nötig ... probieren geht über studieren !
Gruß
Hubert
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Hubert,
brandelh hat geschrieben:Allerdings geht das alles an der Frage vorbei ! Dort geht es um DUBLEX Druck.
oh Mann :!: Ich habe doch viel zu wenig geschlafen letzte Nacht!
Obwohl ich es am Anfang zwar richtig gelesen habe, habe ich doch nur halb mitgedacht :roll:
Ist doch ganz einfach:
Grundsätzlich doppelseitig einstellen :!:
Wenn dann eine Seite einseitig gedruckt werden soll, braucht man doch nur eine leere Seite ranhängen - schon ist die Rückseite unbedruckt :wink:

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Martin Altmann hat geschrieben: Wenn dann eine Seite einseitig gedruckt werden soll, braucht man doch nur eine leere Seite ranhängen - schon ist die Rückseite unbedruckt :wink:
1. Preis für die einfachste Lösung :idea: :D

Aber es wäre schon schön wenn er probieren würde ob die Änderung auch vom Programm her geht ... doppelt einziehen dauert ja auch etwas. :wink:
Gruß
Hubert
gf210957
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Mi, 21. Dez 2005 10:18

Beitrag von gf210957 »

Hallo Hubert,
hallo Martin,
Wenn dann eine Seite einseitig gedruckt werden soll, braucht man doch nur eine leere Seite ranhängen - schon ist die Rückseite unbedruckt Wink
Das kann keine Lösung für einen Schwaben sein!!! :lol: :lol: :lol:
Denn die benötigt neben der Zeit, auch noch unnötig Tinte!!

Deshalb will mein Kunde bei mehrseitigen Rechnungen, immer nur auf der 1. Seite die Konditionen auf der Rückseite.

Der Gedanke mit "startpage" ist eigentlich ok. Leider habe ich in der Doku in diesem Zusammenhang nichts gefunden. Offensichtlich können nur Orientation, Farbe, Druckerschacht gewechselt werden.

Zum experimentieren fehlt fehlt mir leider der passende Drucker mit Duplex-Einheit.

Günter Früholz
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Beitrag von Jan »

Hallo Günter,

lt. Onlinehilfe sollte das aber gehen. Du musst die erste Seite mit :setDuplexmode(XBPPRN_DUPLEXMODE_BOOK) drucken, nach dem :newpage() ein :setDuplexMode(XBPPRN_DUPLEXMODE_OFF) und ein oPS:configure() einbauen.

Mit :setOrientation() funktioniert das jedenfalls. Und lt. Onlinehilfe soll das gleich laufen mit den beiden. Also sollte das kein Problem darstellen.

Jan
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Günter,
eine leere, unbedruckte Rückseite braucht doch keine Tinte :!::?:
Ein Wenig Zeit, um die Seite (unnötig) zu wenden, ok - aber sonst?

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi Günter,

du schreibst Programme für Duplex-Drucker und hast keinen ;-)

ich werde mal sehen ob ich morgen etwas dazwischen schieben kann, wir haben so einen. Der war übrigens nicht mal teuer Samsung CLP-550N (Netzwerk, Farbe, Duplex ... gibt es allerdings jetzt nicht mehr. Die kleineren 500 haben kein Duplex - soweit ich weiß).
Gruß
Hubert
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12906
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 45 Mal

Beitrag von AUGE_OHR »

hi,
gf210957 hat geschrieben: Deshalb will mein Kunde ...

Zum experimentieren fehlt fehlt mir leider der passende Drucker mit Duplex-Einheit.
dann sag ihm das doch und er soll dir einen zur Verfügung stellen.

... ich hatte mal ein ähnliches Problem mit "Druckschacht" den ich aber
nicht hatte ... wie soll man ohne die Hardware das sonst machen ?
gruss by OHR
Jimmy
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hallo,

wenn man die Dokumentation liest, geht daraus klar hervor, dass setDuplexMode() außerhalb von StartDoc() und Enddoc() aufgerufen werden muss und zusätzlich noch ein oPS:configure(...) nötig ist.
Dieses Beispielprogramm zeigt wie es geht, und was nicht geht,
wobei zumindest auf meinem Samsung CLP-550N und unserem Lexmark C750 die Vorgaben von MEMO und BOOK vertauscht sind.
Nur wenn ich XBPPRN_DUPLEXMODE_MEMO nehme, sieht das Ergebnis aus wie ein Buch (blättern über linke lange Kante ...):

Code: Alles auswählen


#define LASER_VORGABE
#define KEIN_DUPLEX            // ### XPP ERRROR -> ohne diesen Define geht es ????
#define ANZ_EINFACHE_SEITEN (2)

#include "Gra.ch"
#include "Xbp.ch"
#include "XBPDEV.CH"
#include "Font.ch"

#pragma Library( "XppUI2.lib" )

PROCEDURE Main
   LOCAL oPrinter, oPS, oDlg, aSize, nAltMode, oFont
   SET DATE TO    GERMAN
   SET CHARSET TO ANSI
/*
   oFont := XbpFont():new()
   oFont:familyName := "Arial"
   oFont:height     := 0
   oFont:width      := 0
   oFont:nominalPointSize := 10
   oFont:create()*/


   cls

#IF LASER_VORGABE // ich versuche erst meinen Laser direkt zuzuordnen
       ?
       ? "'Samsung CLP-550N' Drucker vorgeben !"
       ?
       oPrinter := XbpPrinter():new():create("Samsung CLP-550N")
#ELSE
       oDlg := XbpPrintDialog():new()
       oDlg:create()
       // Konfiguriertes Drucker Objekt erzeugen
       oPrinter := oDlg:display()
       oDlg:destroy()
#ENDIF
   IF oPrinter <> NIL
      ? "Drucker:    ",oPrinter:devName
      // Neuen Presentation-Space erzeugen
      nAltMode := oPrinter:setDuplexMode( XBPPRN_DUPLEXMODE_OFF )
      ? "Duplexmode: ",nAltMode, DuplexModeName(nAltMode)

      oPS   := XbpPresSpace():new()
      // Bedruckbarer Bereich auf dem Papier
      aSize := oPrinter:paperSize()
      aSize := { aSize[5] - aSize[3], ;
                 aSize[6] - aSize[4]  }
      oPS:create( oPrinter, aSize, GRA_PU_LOMETRIC )

      oFont := XbpFont():new(oPS):create("12.Verdana")

      ? oFont:familyName, " : ", oFont:nominalPointSize

      oPS:setFont(oFont)

#IF KEIN_DUPLEX       // #####    .t. würde gehen

          ? "Testdruck einfach"
          oPrinter:startDoc("Testdruck EINFACH")
          GraStringAt( oPS, { 100, aSize[2]-200 }, "Das ist nur eine Seite" )
          GraStringAt( oPS, { 100, aSize[2]-400 }, "Drucker:    "+alltrim(oPrinter:devName))
          GraStringAt( oPS, { 100, aSize[2]-600 }, "Duplex Mode:"+DuplexModeName(oPrinter:setDuplexMode()))
          for x := 2 to ANZ_EINFACHE_SEITEN
              oPrinter:newPage()
              GraStringAt( oPS, { 100, aSize[2]-200 }, "Das ist die zweite Seite" )
              GraStringAt( oPS, { 100, aSize[2]-400 }, "Drucker:    "+alltrim(oPrinter:devName))
              GraStringAt( oPS, { 100, aSize[2]-600 }, "Duplex Mode:"+DuplexModeName(oPrinter:setDuplexMode()))
          next
          oPrinter:endDoc()

#ELSE

          /*  ERGEBNISSE : Testdruck DUPLEX

          so geht es nicht, es passiert einfach nichts !!!

              oPrinter:endPage()
              oPrinter:setDuplexMode( XBPPRN_DUPLEXMODE_BOOK )
              oPrinter:startPage()

          und auch so geht es nicht. In beiden Fällen gibt setDuplexMode(...) den
          erwarteten Wert zurück, aber es wird nichts gedruckt.

              oPrinter:endPage()
              ? "Set Duplex BOOK",oPrinter:setDuplexMode( XBPPRN_DUPLEXMODE_BOOK )
              oPS:configure()
              oPrinter:startPage()

          und so auch nicht ...

              oPrinter:endPage()
              ? "Set Duplex BOOK",oPrinter:setDuplexMode( XBPPRN_DUPLEXMODE_BOOK )
              oPS:configure( oPrinter, aSize, GRA_PU_LOMETRIC )
              oPrinter:startPage()

          dann bleibt nur die radikale Lösung ...

          */

          ? "Testdruck DUPLEX"
          oPrinter:startDoc("Testdruck DUPLEX 1")
          GraStringAt( oPS, { 100, aSize[2]-200 }, "Das ist die erste Seite VORN (keine Rückseite)" )
          GraStringAt( oPS, { 100, aSize[2]-400 }, "Drucker:    "+alltrim(oPrinter:devName))
          GraStringAt( oPS, { 100, aSize[2]-600 }, "Duplex Mode:"+DuplexModeName(oPrinter:setDuplexMode()))
          oPrinter:endDoc()
          oPrinter:setDuplexMode( XBPPRN_DUPLEXMODE_BOOK )
          oPS:configure( oPrinter, aSize, GRA_PU_LOMETRIC ) // oPS:configure() reicht nicht !!!
          oPS:setFont(oFont)
          oPrinter:startDoc("Testdruck DUPLEX 2")
          GraStringAt( oPS, { 100, aSize[2]-200 }, "Das ist die zweite Seite VORN (mit Rückseite)" )
          GraStringAt( oPS, { 100, aSize[2]-400 }, "Drucker:    "+alltrim(oPrinter:devName))
          GraStringAt( oPS, { 100, aSize[2]-600 }, "Duplex Mode:"+DuplexModeName(oPrinter:setDuplexMode()))
          oPrinter:newPage()
          GraStringAt( oPS, { 100, aSize[2]-200 }, "Das ist die zweite Seite HINTEN (auf Rückseite)" )
          GraStringAt( oPS, { 100, aSize[2]-400 }, "Drucker:    "+alltrim(oPrinter:devName))
          GraStringAt( oPS, { 100, aSize[2]-600 }, "Duplex Mode:"+DuplexModeName(oPrinter:setDuplexMode()))
          oPrinter:endDoc()
          oPrinter:setDuplexMode( XBPPRN_DUPLEXMODE_MEMO )
          oPS:configure( oPrinter, aSize, GRA_PU_LOMETRIC )
          oPS:setFont(oFont)
          oPrinter:startDoc("Testdruck DUPLEX 3")
          GraStringAt( oPS, { 100, aSize[2]-200 }, "Das ist die dritte Seite VORN (mit Rückseite)" )
          GraStringAt( oPS, { 100, aSize[2]-400 }, "Drucker:    "+alltrim(oPrinter:devName))
          GraStringAt( oPS, { 100, aSize[2]-600 }, "Duplex Mode:"+DuplexModeName(oPrinter:setDuplexMode()))
          oPrinter:newPage()
          GraStringAt( oPS, { 100, aSize[2]-200 }, "Das ist die dritte Seite HINTEN (auf Rückseite)" )
          GraStringAt( oPS, { 100, aSize[2]-400 }, "Drucker:    "+alltrim(oPrinter:devName))
          GraStringAt( oPS, { 100, aSize[2]-600 }, "Duplex Mode:"+DuplexModeName(oPrinter:setDuplexMode()))
          oPrinter:endDoc()
          oPrinter:setDuplexMode( XBPPRN_DUPLEXMODE_OFF )
          oPS:configure( oPrinter, aSize, GRA_PU_LOMETRIC )
          oPS:setFont(oFont)
          oPrinter:startDoc("Testdruck DUPLEX 4")
          GraStringAt( oPS, { 100, aSize[2]-200 }, "Das ist die vierte Seite VORN (keine Rückseite)" )
          GraStringAt( oPS, { 100, aSize[2]-400 }, "Drucker:    "+alltrim(oPrinter:devName))
          GraStringAt( oPS, { 100, aSize[2]-600 }, "Duplex Mode:"+DuplexModeName(oPrinter:setDuplexMode()))
          oPrinter:newPage()
          GraStringAt( oPS, { 100, aSize[2]-200 }, "Das ist die fünfte Seite HINTEN (keine Rückseite)" )
          GraStringAt( oPS, { 100, aSize[2]-400 }, "Drucker:    "+alltrim(oPrinter:devName))
          GraStringAt( oPS, { 100, aSize[2]-600 }, "Duplex Mode:"+DuplexModeName(oPrinter:setDuplexMode()))
          oPrinter:endDoc()
          oPrinter:setDuplexMode( nAltMode )
          oPS:configure( oPrinter, aSize, GRA_PU_LOMETRIC )
          oPS:setFont(oFont)
#ENDIF
      // Aufräumen
      oPrinter:destroy()
      oFont:destroy()
      oPS:destroy()
      ? "alles gedruckt"
   ENDIF

   inkey(20)

RETURN


function DuplexModeName(nMode)
   local cReturn
   do case
      case nMode == NIL
           cReturn := "   ->   wird nicht unterstützt"
      case nMode == XBPPRN_DUPLEXMODE_OFF
           cReturn := "   ->   DUPLEX aus"
      case nMode == XBPPRN_DUPLEXMODE_BOOK
           cReturn := "   ->   DUPLEX BOOK"
      case nMode == XBPPRN_DUPLEXMODE_MEMO
           cReturn := "   ->   DUPLEX MEMO"
      otherwise
           cReturn := "   ->   DUPLEX UNBEKANNT"
   endcase
return cReturn

Gruß
Hubert
gf210957
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 101
Registriert: Mi, 21. Dez 2005 10:18

Beitrag von gf210957 »

Hallo Hubert,

vielen Dank für Dein ausführliches Beispiel. Damit hast Du mir wirklich sehr geholfen. Da sieht man, dass Du wirklich der Druckerspezialist bist. Normalerweise setze ich ja die Druckfunktionen von Roger Donnays eXpress++ ein und bin daher nicht so der "Printer Profi" ausschließlich mit plain xBase++.
Aber mit Deiner super ausführlichen Beschreibung habe ich das Ganze nun wirklich verstanden.

Nochmals vielen Dank für Deine Bemühungen.

Übrigens ist es für mich einfacher, online eine Datei nach Köln zum Kunden zu schicken, als den Drucker durch halb Deutschland zu fahren.

Wenn der Kunde zufrieden ist, und seine Rechnung bezahlt hat, kann ich mir vielleicht auch einen neuen Drucker mit Duplex-Einheit leisten.
Das wäre für einen "Schwaben" sicherlich eine sinnvolle Anschaffung. (Man denke nur an die Papierersparnis) :) :) :)

Nochmals vielen Dank

Gruß aus dem Schabenland

Günter Früholz
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15695
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 65 Mal
Danksagung erhalten: 33 Mal
Kontaktdaten:

Beitrag von brandelh »

Hi,

das mit dem fehlerhaften _MEMO / _BOOK Einträgen wurde jetzt genauso wie das #IF Problem als PDRs 6053 sowie 6054 bestätigt.

Man sollte also bei den nächsten Releases überprüfen ob _MEMO / _BOOK verbessert wurden ... und seinen eigenen Code dann anpassen :!:

Immerhin besser, als bei Excel das Jahr 1900 als Schaltjahr zu führen, da dies auch Multiplan und 123 so falsch gemacht haben :D
Gruß
Hubert
Antworten