PDA

Vollständige Version anzeigen : Bericht gestalten - wahrscheinlich nicht alltägl. Problem


yosili
28.12.2001, 22:40
Hey!
Ich habe hier nochmals ein etwas außergewöhnliches Problem.
Ich möchte in einem Bericht mehrere Grafiken darstellen.
Dazu habe ich im Bericht 3 Steurelemente "Bild" im Detailbereich untereinander angebracht. Der Verweis über deren Inhalt, sprich Pfad u. Dateiname des jeweiligen Bildes geschieht mittels VBA "beim öffnen" des Berichtes. Im Formular ist noch ein Seitenkopf vorhanden.

Wenn für alle 3 Bilder ein Pfad angegeben wird werden insges. 3 Seiten ausgedruckt.

Mein Problem:
Wenn ich nun für das 3. Bild keinen "Pfad bzw. Dateinamen mittels VBA eingebe, soll die 3. Seite auch nicht gedruckt werden. Dies funkt. allerdings nicht, da die 3. Seite immer mit dem Seitenkopf angezeigt wird.
Gibt es hier eine Möglichkeit dies zu unterbinden, oder kann ich mein Problem nur mit mehreren Berichten lösen (etwas unfeine Methode).

Bernd Koch
29.12.2001, 10:30
Versuch mal folgenden Code:

Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
If Me.Bild3.Picture = "(keines)" Then
Me.Bild3.Visible = False
End If
End Sub

Natürlich musst du noch statt "Bild3" den Namen deines Steuerelemnts einsetzen.

Vielleicht klappt´s ja.

Bernd

yosili
29.12.2001, 19:24
Hallo Bernd!
Funktioniert leider nicht. Denn der Bericht (zwar ohne Bild) wird nach wie vor mit dem Inhalt vom Seitenkopf angezeigt.

Bernd Koch
29.12.2001, 23:57
So schnell geben wir nicht auf!! :)

Ich hab mal ´nen bisschen rumgetüftelt. Allerdings gibt´s bei der Lösung ein paar Unbekannte, die ich nicht aus deinem Text entnehmen kann. Deshalb konstruiere ich jetzt mal was:

- du hast im Seitenkopf ein oder mehrere Felder

- du hast im Detailbereich 3 Bildelemente, die ziemlich groß sein müssen, so dass sie sich bei der Anzeige auf drei Seiten pro Datensatz erstrecken (und jedes Mal erscheint oben der Seitenkopf)

ODER

- die 3 Bildelemente sind gar nicht so groß aber du hast den Detailbereich in drei Seiten unterteilt (ich vermute allerdings die erste Variante)

weiterhin

- hast du nichts im Seitenfuß (vielleicht aber doch???).

Nehmen wir der Anschaulichkeit halber an, du hast Felder im Seitenkopf, 3 große Bildsteuerelemente im Detailbereich und nix im Seitenfuß.

Ab und zu ist nun dein drittes Bild "leer" und sollte deshalb auch nicht angezeigt werden. Da macht dir aber der Seitenkopf einen Strich durch die Rechnung - auch noch mit dem Code meiner ersten Antwort.

Wenn das bis jetzt einigermaßen richtig ist, dann können wir das Problem etwas anders angehen:

- der Seitenkopf bezieht sich ja (nomen est omen) auf eine Seite. Bei dir ist der Detailbereich z.Zt. nur e i n e Seite, die sich lediglich aufgrund der Größe der Bildelemente ausdehnt. Dementsprechend nutzt es nichts - wie gesehen - das dritte Bildelement auszublenden.

- also müssen wir dafür sorgen, dass aus der einen Seite d r e i werden. Dies erreichst du durch den Einsatz des Seitenumbruch-Steuerelements, das du in der Toolbox findest. Platziere davon eines unterhalb des ersten Bildelements und ein zweites unterhalb des zweiten Bildelements.
Wenn dein Seitenkopf z.B. 2 cm hoch ist und du die beiden Seitenumbruchelemente im Detailbereich bei 11 cm und bei 22 cm platzierst, so müsste das schon hinhauen, dass du - wie vorher - jedes Bildelement auf einer separaten Seite hast. Probier mal etwas rum (wichtig ist nur, dass die Abstände immer gleich sind: 11 / 22, oder 10 / 20 oder ...)

- nunmehr hast du also auf diese Weise drei Seiten erzeugt und kannst Access sagen: wenn auf Seite 3 nix los ist mit dem Bildelement, dann will ich auch keinen Seitenkopf auf dieser Seite; ja, ich will überhaupt keine dritte Seite, deshalb blende das zweite Seitenumbruchelement aus und ich habe somit eine erste Seite mit dem ersten Bildelement und eine zweite mit dem zweiten und dritten Bildelement, wovon aber das dritte Bildelement - da es "leer" ist, ausgeblendet wird. ...

Der Code:

Private Sub Detailbereich_Format(Cancel As Integer, FormatCount As Integer)
If Me.Bild9.Picture = "(keines)" Then
Me.Bild9.Visible = False
Me.Seitenumbruch11.Visible = False
End If
End Sub

Was hier im Code "Seitenumbruch11" heißt, ist der Name des zweiten Seitenumbruch-Elements.

In der Form, wie ich es hier beschrieben habe, klappt das!! Natürlich könnte es sein, dass es da noch "Störfaktoren" gibt, von denen du nichts geschrieben hast. Felder im Seitenfuß sollten eigentlich kein Problem sein, weil sie genauso "ausgeblendet" werden wie der Seitenkopf.

Also, probier´s mal

Bernd

yosili
04.01.2002, 13:30
Hey Bernd!
Mit Deinen Einstellungen funkt alles.
Sobald die Berichtsgröße (Höhe Seitenkopf, Seitenfuß u. Detailbereich + oberer u. unterer Rand) über die Seitengröße hinausgeht wird leider immer eine 2. Seite angezeigt.
z.B. Seitenkopf u. Seitenfuß je 2,5cm hoch,
im Deteilbereich untereinander 2 Bilder (17 cm hoch).
Dabei wird immer die 2. Seite angezeigt.Habe auch schon versucht, wenn der Steuerelementinhalt vom 2. Bild auf "keines" gestellt ist, mittels VBA die Höhe vom 2.Bild u. vom Detailbereich zu reduzieren. Funktioniert aber alles nicht.
Komme da einfach nicht mehr weiter.
Es gibt hier sicherlich eine Lösung - nur müsste man wissen welche??????????????

Bernd Koch
05.01.2002, 11:35
Hast du denn ein Hoch- oder ein Querformat eingestellt?

Bei zweimal 2,5 cm für Seitenkopf und -fuß plus 17cm im Detailbereich wären das ja 22 cm und somit bei einem Querformat zu viel.

Habe das Ganze mit diesen Maßen auch noch mal für´s Hochformat ausprobiert, da gab es bei mir keine Probleme.

Falls es bei dir nicht klappt, kannst du mir ja mal eine kleine Demo-DB nebst genauer Problembeschreibung mailen, denn da es bei mir klappt wird es jetzt nur noch zur Raterei, warum es bei dir nicht geht.

Ich kann mich allerdings erst am Dienstag drum kümmern, da ich morgen und Montag keine Zeit habe.
Hier meine Mailadresse:

baerenverlag.koch@t-online.de

Bernd <img src="graemlins/top.gif" border="0" alt="[Finger hoch]" />