Seite 3 von 3 ? [erledigt]

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

Moderator: Moderatoren

Antworten
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

Seite 3 von 3 ? [erledigt]

Beitrag von AUGE_OHR »

hi,

ich drucke über XbpPrinter meine Rechnungen. Nun fragte man mich ob man auch die Seite 3 von 3 drucken könnte ... ich drucke immer alles von einer Rechnung.

wie kann ich den eine Abfrage einbauen "welche" Seiten man drucken will ?
wenn ich den :Dialog benutzte "wirkt" es doch auf "alle" Rechnungen, aber ich will nur von der Rechnung 1234 die Seite 3 von 3.

p.s. da ich "variabel" drucke weiss ich "vorher" ja nicht wie viele Seiten es werden ...
Zuletzt geändert von AUGE_OHR am Do, 10. Sep 2009 11:04, insgesamt 1-mal geändert.
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:

Re: Seite 3 von 3 ?

Beitrag von brandelh »

Hi,

das Problem hatte ich bei meiner Druckerklasse auch ;-)

ich führe dort eine Instanzvariable die alle zu druckenden Seiten enthält (verschiedene Kombinationen möglich).
Bei jeder Druckmethode (Textzeile, Grafik, Memofeld etc.) wird geprüft ob auf der aktuellen Seite gedruckt werden darf.
Wenn nicht werden die GraFunktionen übersprungen, der Zeilenvorschub aber mit berechnet ... :D
Gruß
Hubert
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Seite 3 von 3 ?

Beitrag von Rolf Ramacher »

Hi Jimmy,

ich hatte mal das gleiche Problem bei Listen. Meine Listen sind als Vorlage-----.RTF definiert. Diese lese ich eine - ersetze mit strtran und übergeben an Word mit ActiveX -

der Befehl sieht so aus: Vielleicht kannst du ihn gebrauchen.

Code: Alles auswählen

		aSeite:=oDlg:pageRangeSelected
		oDoc:PrintOut(.f.,Nil,wdPrintFromTo,Nil,alltrim(str(aSeite[1])),alltrim(str(aSeite[2])),Nil,1 )
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
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

Re: Seite 3 von 3 ?

Beitrag von AUGE_OHR »

hi,

Danke für eure Antworten, ich habe eine "einfache" Lösung" gefunden :

Zum GUI Drucken brauche ich immer eine Presspace ... und den "lenke" ich nun bei Bedarf an die Preview weiter.

C:\ALASKA\XPPW32\Source\samples\solution\Preview\Preview.prg
allerdings habe ich die beiden Methoden :

Code: Alles auswählen

PROTECTED:
*   METHOD startDoc                // Drucken beginnen
*   METHOD endDoc                  // Drucken beenden

EXPORTED:
   METHOD startDoc                // Drucken beginnen
   METHOD endDoc                  // Drucken beenden
vom PROTECTED: in den EXPORTED: Bereich verschieben müssen um nun meine "Seiten" in die einzelnen GraSegXXX zu "drucken".

Nun muss man nur noch eine Methode

Code: Alles auswählen

METHOD XbpPreview:PageToPrint()
LOCAL i

   IF LEN( ::segments ) == 0
      RETURN self
   ENDIF
   ::startDoc()
   // hier wird nur die aktuelle Seite gedruckt.
   ::drawPage( ::nPagePos )
   ::endDoc()

RETURN self
hinzufügen (die andere druckt alle Seiten) und der User bekommt "die" Seite gedruckt die er gerade "sieht".
gruss by OHR
Jimmy
Antworten