Benutzer mit den meisten Antworten
Objekte in Berichte anordnen (nicht so leicht, wie es sich anhört)

Frage
-
Hallo Liebe Forumsmitglieder,
ich weiß nicht, ob so eine Frage schon mal so gestellt wurde & ob es dafür einen Thread gibt. Wenn ja, einfach bescheid sagen.
Wie sieht der Ablauf aus?
- Beim Öffnen der DB öffnet sich ein Formular. In diesem Formular wählt der Anwender ein Land aus. Alle dazugehörigen Informationen befinden sich im Bericht_01.
- Der Bericht wird dann lediglich gedruckt.
Es geht um Folgendes:
Ich habe ein Land. Für dieses Land gibt es Informationen über das Land, welche ich grafisch in einem Bericht darstellen möchte:
---------------------------------------------------------
Info 1: #hier ist ein Farbverlauf von rot nach grün#
---------------------------------------------------------
Dieser Farbverlauf ist eine ganz normale, ungebundene, durch Copy und Paste eingefügte, Grafik. Nun habe ich noch jeweils ein Rechteck erstellt für die Info. Ich beabsichtige damit, nach "level/ höhe" der Info dieses Rechteck innerhalb des Farbverlaufs zu positionieren. Für JEDES LAND ändert sich ja natürlich dieser Level der Information. Also soll die Positionierung immer automatisch angepasst werden. Die y-Achse verändert sich nicht. Aber die x-Achse. Es darf nicht vor der Raute sein und auch nicht nach der Raute (das kann man ja notfalls berechnen).
Mein Problem ist nun diese automatische Positionierung.
Mein Gedanke war, dass ich in den Bericht gehe, Eigenschaften vom Rechteck und es berechnen lasse -> geht aber nicht. Ich kann bei "Links" nur eine feste Zahl eintragen.
Der andere Gedanke war, dass ich über ein Makro, das gezielte Rechteck auswähle (Bezeichnung zB: Rechteck138) und es so anordne.
Ich bin aber nicht wirklich weit gekommen. Es ist leider schon etwas über ein Jahr her, dass ich mich mit Makros beschäftigt habe und bitte daher um Eure HILFE.
lg dergrieche
Antworten
-
Hallo,
dergrieche wrote:
Aber wie mache ich das mit:
---->
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
Me!Rechteck138.Left = 5670 + DeinErrechneterWert
End Sub- Bericht im Entwurf oeffnen.
- Falls das Eigenschaftsfenster nicht angezeigt wird, F4 um es einzublenden.
- Im Bericht den Detailbereich durch Klick auf den Bereichskopf markieren.
- Im Eigenschaftsfenster, Tab Ereignisse in "Bei Formatierung" "(Ereignisprozedur)" auswaehlen.
- Anschliessend auf die 3 Punkte rechts daneben klicken, der VB-Editor geht auf und es erscheinten folgende Zeilen:Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
End Sub
Dazwischen kopierst du die mittlere Zeile aus dem Beispiel.
Dann wechselst du zurueck und oeffnest den Bericht in der Seitenansicht. In allen anderen Ansichten hat der Code uebrigens keine Auswirkung.
Gruss - Peter
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com- Bearbeitet Peter DoeringMVP, Moderator Samstag, 3. September 2011 09:51 Bridge-Formatierung korrigiert.
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 9. September 2011 11:23
Alle Antworten
-
Hallo,
dergrieche wrote:
Mein Problem ist nun diese automatische Positionierung. [...]
Darf ich fragen, was in dem Rechteck genau steht? Wenn du eine Grafik
einfuegst, hat diese auch Eigenschaften wie Legende oder
Achsenbeschriftungen, die mit den Balken usw. mitwachsen koennen. Warum
geht das bei dir nicht?Gruss - Peter
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com -
Darf ich fragen, was in dem Rechteck genau steht? Wenn du eine Grafik
einfuegst, hat diese auch Eigenschaften wie Legende oder
Achsenbeschriftungen, die mit den Balken usw. mitwachsen koennen. Warum
geht das bei dir nicht?Gruss - Peter
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.comHi Peter,
Hier habe ich ein ScreenShot, der dir noch mal genau zeigen kann, wie des ausschaun soll:
Also wie du erkennen kannst, habe ich Informationen zu einem Land (natürlich sind es mehrere Länder in der DB ca. 70).
Für dieses Land habe ich einen Farbverlauf einfach mal in den Bericht gelegt. Soll als Hintergrund dienen, denke mal, dass ist die leichtere Variante. In diesem Hintergrund soll sich das Rechteck bewegen, mit dem Wert der Information (alles schon in einem extra Feld berechnet -> es geht von 0 - 1 in 0,25 Schritten, also 5 Stufen. 0=rot 1=grün.
Wie sage ich nun dem schwarzen und dem weißen Balken, der nur als Anzeige dienen soll, dass es sich mit dem Wert der Information bewegen soll?lg
-
Hallo,
dergrieche wrote:
Hier habe ich ein ScreenShot,
Ah, ein Bild sagt mehr ... ;-)
Das ist keine Grafik, wie ich erst vermutete, sondern 2 sich ueberlappende
Rechtecke, richtig?Deren Position kannst du ganz leicht mit dem Attribut Left beeinflussen, z.
B.:Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
Me!Rechteck138.Left = 5670 + DeinErrechneterWert
End Sub... wobei 567 etwa 1 cm entspricht. Anhand deines Screendumps vermute ich,
dass der Farbbalken etwa 10 cm von links beginnt. Den exakten Wert fuer
DeinErrechneterWert musst du auf Basis deiner Schrittweite errechnen.
Gruss - Peter
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com -
Hi,
ja das sind sich zwei überlappende Rechtecke :) Sry, wuste nicht, dass das so wichtig ist.
Ich weiß, dass ich im Bericht das Objekt anklicke und rein theoretisch über LINKS die Position angebe.Aber wie mache ich das mit:
---->
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
Me!Rechteck138.Left = 5670 + DeinErrechneterWert
End Sub
Wo kommt dass denn hin? Ich kann im Eigenschaftenfeld vom Objekt im Feld LINKS nicht sowas eintragen, oder doch? In welchen Generator und wo finde ich den, muss ich das eingeben?+DANKE für deine Hilfe :)
-
Hallo,
dergrieche wrote:
Aber wie mache ich das mit:
---->
Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
Me!Rechteck138.Left = 5670 + DeinErrechneterWert
End Sub- Bericht im Entwurf oeffnen.
- Falls das Eigenschaftsfenster nicht angezeigt wird, F4 um es einzublenden.
- Im Bericht den Detailbereich durch Klick auf den Bereichskopf markieren.
- Im Eigenschaftsfenster, Tab Ereignisse in "Bei Formatierung" "(Ereignisprozedur)" auswaehlen.
- Anschliessend auf die 3 Punkte rechts daneben klicken, der VB-Editor geht auf und es erscheinten folgende Zeilen:Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)
End Sub
Dazwischen kopierst du die mittlere Zeile aus dem Beispiel.
Dann wechselst du zurueck und oeffnest den Bericht in der Seitenansicht. In allen anderen Ansichten hat der Code uebrigens keine Auswirkung.
Gruss - Peter
Mitglied im http://www.dbdev.org
FAQ: http://www.donkarl.com- Bearbeitet Peter DoeringMVP, Moderator Samstag, 3. September 2011 09:51 Bridge-Formatierung korrigiert.
- Als Antwort markiert Robert BreitenhoferModerator Freitag, 9. September 2011 11:23