PDA

Vollständige Version anzeigen : Berichtseite mit Leerzeilen aus Detailbereich auffüllen...


Lambda
22.03.2004, 09:22
Morgen zusammen,

ich habe eine Art Rechnungsformular, in der die einzelnen Positionen untereinander aufgeführt werden, eine Zeile sieht dann so aus:

| Anzahl | Artikel | ... | ... | Preis |

Um ein einheitliches Bild zu kriegen (also die Begrenzungslinien bis zum Seitenfuß durchgezogen werden), sollte die jeweilige Berichtsseite immer mit Leerzeilen aufgefüllt werden.

Wie krieg ich das denn hin? Vielen Dank vorab.

Arne Dieckmann
22.03.2004, 09:29
Da könnte das Beispiel "LeerZeilen" auf http://www.dbwiki.de/wiki.php?title=Access_Beispieldatenbanken helfen.

Lambda
22.03.2004, 11:14
Danke erstmal. Das hab ich soweit verstanden.

Wie kann ich denn catchen, wenn er beim OnFormat beim letzten Datensatz ist? Gibt's da ne Count-Eigenschaft oder sowas wie HasMore()?

Arne Dieckmann
22.03.2004, 11:16
Welchen letzten Datensatz meinst Du? Den im gesamten Bericht oder den auf der jeweiligen Seite?

Lambda
22.03.2004, 11:32
Ich meine den aus dem Abfrageergebnis. Sagen wir auf eine Seite würden 10 Detailbereiche passen, meine Abfrage liefert aber nur 8 Zeilen.

Hier müsste ich ja bei der letzten "anhalten" und 2 Leerzeilen einfügen.

Aber wie catche ich, dass ich beim letzten Datensatz angekommen bin bzw. weiß vorher, wieviele Sätze meine Query zurückgibt?

Arne Dieckmann
22.03.2004, 11:41
Zähle zunächst die Datensätze in der Abfrage z.B. mittels DCount und vergleiche dann eine (unsichtbare) laufende Nummer, die Du nach FAQ 5.16 anlegst, mit der Dir bekannten Datensatzanzahl. Bei z.B. 17 Datensätzen (also 2 Seiten) wird das sicherlich kompizierter (da könnte man mit MOD - s. VBA-Onlinehilfe - arbeiten, um die erforderlichen Restzeilen der Seite zu ermitteln).

Lambda
22.03.2004, 12:08
Zufrüh gefreut! Am Monitor sieht's gut aus, aber wenn ich den Bericht ausdrucke, bleibt der Detailbereich leider halbleer. :bawling:

Will heißen, dass nur bis zur Seitenhälfte die Begrenzungslinien dargestelltwerden, aber keine Texte.



Worann kann das denn liegen? Hier mal der VB-Code:


Option Compare Database
Option Explicit
Dim Cnt
Const MaxL = 19
Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
Cnt = Cnt + 1

If Cnt >= (Me!fld_data_count) Then //Feld mit Wert 7, berechnet über DCount
Me.NextRecord = False
End If
If Cnt > Me!fld_data_count Then
Me!Text98.Visible = False //Textfeld
Me!Text100.Visible = False //Textfeld
End If
If Cnt >= MaxL Then
Me.NextRecord = True
End If

End Sub

Private Sub Seitenfuß_Format(Cancel As Integer, FormatCount As Integer)
Me.NextRecord = True
End Sub

Private Sub Seitenkopf_Format(Cancel As Integer, FormatCount As Integer)
Cnt = 0
Me!Text98.Visible = True
Me!Text100.Visible = True
Me.NextRecord = True
End Sub