Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Bilder im png Format automatisch farblich hervorheben

Begonnen von ChrK, September 14, 2015, 17:54:32

⏪ vorheriges - nächstes ⏩

ChrK

Hallo beisammen,

eine Frage zur Darstellung von Bilder im Report.
Ich wollte verschiedene Kategorien per Bildsymbol darstellen. Alle simbolo erscheinen, aber nur die jeweils gewünschte Kategorie wird farblich hervorgehoben. Es handelt sich um PNG-Piktogramme.
Ist dies möglich? Hat jemand eine Idee?

Danke!

el_gomero

Hallo,

Zitat
Ich wollte verschiedene Kategorien per Bildsymbol darstellen. Alle simbolo erscheinen, aber nur die jeweils gewünschte Kategorie wird farblich hervorgehoben.
Wie identifizierst du denn die "gewünschte Kategorie"? Gib mal ein Beispiel.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

ChrK


Wie identifizierst du denn die "gewünschte Kategorie"? Gib mal ein Beispiel.
[/quote]
Danke für das Interesse!
Die Idee war es acht Gruppen mit A-H alphabetisch zu identifizieren.
Es gelingt auch, das gewünschte Symbol zu jeder Gruppe zu als Bild einzubinden und zu laden, aber ich würde gerne einen Bericht erstellen, wo alle acht Symbole sortiert erscheinen, und eine der Symbole farblich hervorgehoben wird.

Gruss,

Christian

el_gomero

wenn ich das richtig interpretiere, sollen die Bilder jeweils im Gruppenkopf erscheinen und das entsprechende hervorgehoben werden.

Über das Ereignis BeimFormatieren des Bereichs kannst du eine Formatierung des Bildobjekts vornehmen, zB einen Rahmen sichtbar machen.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

ChrK

Zitat von: el_gomero am September 15, 2015, 16:39:01
wenn ich das richtig interpretiere, sollen die Bilder jeweils im Gruppenkopf erscheinen und das entsprechende hervorgehoben werden.

Über das Ereignis BeimFormatieren des Bereichs kannst du eine Formatierung des Bildobjekts vornehmen, zB einen Rahmen sichtbar machen.

Genau, das ist mein Vorhaben. Wenn ich auf "Ergeignis" gehem dann habe ich drei zur Auswahl (Macros, expresiones und codigo) - das Programm ist spanisch). Welche davon muss ich wählen? Muss ich das über VBA programieren?

Danke!

ChrK


el_gomero

du musst den Bericht in der Entwurfsansicht öffnen, den Bereich mit der Maus anklicken (vermutlich Gruppenkopf) und dann über das Kontextmenü die Eigenschaften den Reiter Ereignis auswählen. Dort klickst du BeimFormatieren auf die 3 kleinen Punkte und wählst den Code-Generator. Die IDE öffnet sich und der Prozedurrumpf steht schon da. Dazwischen schreibst du deinen Code.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

ChrK

Zitat von: el_gomero am September 15, 2015, 18:18:40
Die IDE öffnet sich und der Prozedurrumpf steht schon da. Dazwischen schreibst du deinen Code.

Danke, das habe ich bereits geschaft, nun das Problem mit dem Code, ich habe folgendes ausprobiert, wobei F das Bild ist und TextIcF die Parameter enthält (Buchstaben von A bis H).

Private Sub F_Click()
If Range("TextoIcF") = "A" Then
'.ShapeRange.Line.ForeColor.SchemeColor = 13
Else
'.ShapeRange.Line.ForeColor.SchemeColor = 1
End Sub

Es ändert sich jedoch nichts...
Woran kann das liegen?
Könnte man auch einen VBA-Code für alle Bilder schreiben?

Danke!

el_gomero

Moin,

Zitat
Danke, das habe ich bereits geschaft, ...

Private Sub F_Click()


offensichtlich nicht. Wo hast du denn das Klick-Ereignis her? Lies meine Anweisung nochmal durch. Der Prozedurkopf sieht dann ungefähr so aus:

Private Sub Gruppenkopf0_Format(Cancel As Integer, FormatCount As Integer)


Gesamt dann vllt so (aus der hohlen Hand geschrieben, also evtl verbesserungswürdig):

Private Sub Gruppenkopf0_Format(Cancel As Integer, FormatCount As Integer)
Dim ctl as Control

For Each ctl In Me.Controls
    If ctl.Name = Me!TextoIcF Then
         Me(ctl.Name).ShapeRange.Line.ForeColor.SchemeColor = 13
    Else
         Me(ctl.Name).ShapeRange.Line.ForeColor.SchemeColor = 1
    End If
Next ctl

End Sub


btw - Code bitte immer in Code-Tags setzen, damit wird er besser lesbar.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

ChrK

Zitat von: el_gomero am September 16, 2015, 09:10:19
Gesamt dann vllt so (aus der hohlen Hand geschrieben, also evtl verbesserungswürdig):

Ok, ich komme der Sache schon näher, habe das jetzt auch so gemacht, allerdings in der Detailansicht, so dass die erste Zeile "Private Sub Detail_Format(Cancel As Integer, FormatCount As Integer)" lautet.
Allerdings passiert nichts. Mit dem Kommando müsste sich die Hintergrundfarbe ändern oder die Breite der Umrandung?

Vielleicht hängt der Fehler mit "TextoIcF" zusammen, das ist ein Textfeld im Bericht. Oder ist es besser sicht direkt auf den Wert in der Tabelle zu beziehen?

el_gomero

statt weiter hypothetisch zu agieren, sollten wir mit realen Daten arbeiten. Kannst du mal eine abgespeckte Beispiel-db hochladen? Die würde ich mir dann heute abend zu Gemüte führen und den entsprechenden Code einbauen.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

ChrK

Zitat von: el_gomero am September 16, 2015, 14:54:57
Kannst du mal eine abgespeckte Beispiel-db hochladen?

Danke für das Angebot, ich lege ein abgespeckte Version bei.

el_gomero

Hallo,

hier das fertige Beispiel. Beachte dabei, dass der Gruppenkopf erforderlich ist, im Detailbereich würden alle vorhandenen Gruppierungen gefärbt. Zudem muss bei den entsprechenden Steuerelementen der Rahmen auf Flach und NICHT transparent eingestellt sein.

enjoy
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen

ChrK

Zitat von: el_gomero am September 16, 2015, 19:08:45
hier das fertige Beispiel.


Vielen Dank! Funktioniert einwandfrei!
Zum Verständnis noch zwei Fragen:
Das neue Formular "Frm_Start" ist zwingend notwendig, oder? Warum?
Welchen Code müsste ich eingeben, um die Hintergrundfarbe zu ändern?

Danke!

el_gomero

Moinsen,

Frm_Start ist nicht notwendig, habe ich nur eingebaut, damit du es siehst und über den Button den Bericht in der Seitenansicht öffnest. Die Einstellung für die Hintergrundfarbe lautet BackColor. Wird aber für ein Bildobjekt nicht funktionieren.
Gruß
Jürgen


Hilfe nach bestem Wissen, ohne Anspruch auf Richtigkeit und Vollständigkeit.
*feedback erwünscht*
Bitte Tipps lesen