PDA

Vollständige Version anzeigen : Duplexdruck mit unterschiedlichen Seiten


Detlev Boehme
21.01.2008, 16:00
Hallo,
bei folgendem Problem mit einem mehrseitigen Bericht komme ich nicht weiter:
Der Bericht soll mit einem duplexfähigen Drucker 2-seitig gedruckt werden.
Alle Vorderseiten (ungerade Seiten) enthalten einen Seitenkopf mit Tabellenüberschriften und im Detailbereich die Datensätze (in der Entwurfsansicht steht hier nur 1 Zeile mit den entsprechenden Textfeldern).
Die Zeilenhöhe ist so eingestellt, dass 15 Datensätze auf eine Seite passen.
Ein Bericht mit 40 Datensätzen ist also 3 Seiten lang.
Auf jeder Rückseite (gerade Seiten) eines jeden Blattes soll ein Text stehen.
- das ist aber genau das Problem, denn mit einem normalen Duplexdruck wird natürlich auf der Rückseite mit dem Druck der Datensätze fortgefahren.
Kann mir jemand einen Tipp geben?

Vielen Dank im Voraus!
Gruß D. Boehme

hcscherzer
21.01.2008, 17:30
Auf jeder Rückseite (gerade Seiten) eines jeden Blattes soll ein Text stehen. Soll auf jeder Seite der selbe Text stehen oder handelt es sich dabei um einen fortlaufenden Text, der über die geraden Seiten fliesst? Und: wo ist dieser Text gespeichert?

Ich würde mal vermuten, dass es einfacher ist, die Seiten in zwei Arbeitsgängen zu bedrucken als hierfür etwas zu programmieren.

rotkehlchen
21.01.2008, 17:52
Vielleicht kannst du was mit der ForceNewPage Eigenschaft was anfangen.

Example
The following example returns the ForceNewPage property setting for the detail section of the Sales By Date report and assigns it to the intGetVal variable.

Dim intGetVal As Integer
intGetVal = Reports![Sales By Year].Section(acDetail).ForceNewPage

Detlev Boehme
22.01.2008, 06:37
Hallo Hans-Christian,
auf jeder Seite soll der gleiche Text stehen.
Natürlich kann das Problem einfach mit 2 Druckbefehlen und erneuter Papiereinlage dazwischen gelöst werden - ich finde das aber sehr unbefriedigend.
Vielleicht komme ich ja mit der unten vorgeschlagenen Eigenschaft
ForceNewPage weiter.

Gruß
Detlev

hcscherzer
22.01.2008, 07:14
Moin Detlev,
ich finde das aber sehr unbefriedigend.Die Frage, die man sich imho immer stellen sollte, ob sich der Aufwand lohnt. Aber das musst Du (und ggf. Dein Boss) einschätzen.
Würde mich mal interessieren, ob Du (oder jemand von den Experten hier) eine Lösung finde(s)t.

Bracki
22.01.2008, 09:55
Hallo Detlev,

schaue Dir mal mein Beispiel an vielleicht hilft Dir das weiter. Ich hab es unter Acc2000 getestet.

hcscherzer
22.01.2008, 11:59
Moin Sven,
wirklich keine schlechte Idee, das über das Gruppen-Intervall zu regeln.
Ohne eine einzige Zeile Code.
Das einzige Problem, das ich sehe: die fortlaufenden Nummern für die Gruppierung in einem sich verändernden System konsistent zu halten.
Müssen wahrscheinlich bei jeder Berichtserstellung neu erzeugt werden.

Bracki
23.01.2008, 07:04
Moin Moin Hans-Christian,

da magst Du schon recht haben für mich war es aber ersteinmal die Variante ohne Codeschnipsel etwas zu erreichen. Das mit der laufenden Nummer dürfte aber das kleinste Problem sein. Vielleicht gibt es auch dazu andere Lösungsansätze?

Detlev Boehme
23.01.2008, 15:05
Hallo Sven,
dein Lösungsvorschlag ist fast perfekt - vielen Dank für deine Mühe.:)
Eine "Kleinigkeit" fehlt noch bzw. ist eigentlich zu viel:
Der Inhalt des Seitenkopfes (bei mir ca. 20 Spaltenüberschriften z. T. vertikal, also richtig hoch - bei dir das Wort Berichtsfeld mit dem grauen Unterstich) erscheint natürlich auf jeder Seite also auch auf der Rückseite wo eigentlich nur der Text stehen soll.
Wenn es dafür noch eine Lösung gibt, ist alles perfekt.

In der Hoffnung auf weithin solch kompetente Unterstützung

Viele Grüße
Detlev

Bracki
23.01.2008, 15:54
Hallo Detlev,

ich werde Dir darauf morgen eine Antwort geben, da ich leider hier an diesem Computer nicht meine Acc Bsp. habe.

Louisleon
23.01.2008, 16:39
Hallo Detlef,
Wenn es dafür noch eine Lösung gibt, ist alles perfekt.
da geht es leider nicht mehr ohne Code ;)
Hält sich aber in Grenzen:
Private Sub Seitenkopfbereich_Print(Cancel As Integer, PrintCount As Integer)
If Me.Page Mod 2 = 0 Then
Me!Berichtsfeld_Bezeichnungsfeld.Visible = False
Else
Me!Berichtsfeld_Bezeichnungsfeld.Visible = True
End If
End Sub


ach ja eine Kürzere Variante habe ich inzwischen bei Rüdi gelernt ;)
Private Sub Seitenkopfbereich_Print(Cancel As Integer, PrintCount As Integer)
Me!Berichtsfeld_Bezeichnungsfeld.Visible = Me.Page Mod 2
End Sub


Gruß

LL

Bracki
24.01.2008, 06:12
Hallo Detlev,

da muß ich leider LL recht geben, dass es jetzt ohne Code nicht mehr geht. Benutze einfach die kurze Variante von LL die funzt ganz gut. Kopiere Dir einfach die Zeile mit dem "Me!" und füge diese an die entsprechende Position (siehe Bild) ein.

Detlev Boehme
25.01.2008, 16:01
Hallo LL und Sven,

ich bin begeistert - es funktioniert einwandfrei!!:)

Vielen Dank für die Unterstützung: schnell und kompetent - mehr kann man nicht erwarten.

Viele Grüße bis zur nächsten Frage

Detlev