Seite 1 von 1

[gelöst] Grafik abh. vom Zellwert anzeigen

Verfasst: Di, 28.03.2017 09:27
von TrueColor
Hallo Ihrs,

ich möchte abhängig vom Zellwert eine oder keine bzw. die eine oder die andere Grafik (Pixelbild) anzeigen lassen, bevorzugt ohne Macro.

Vorgestellt hatte ich mir irgendwas mit VORLAGE() und der Kommentarfunktion (siehe Kommentarfunktion zur Fixierung von Grafiken in Calc). Jedoch habe ich keine Möglichkeit gefunden, die Anzeige über die Zellvorlage zu steuern. Geht das überhaupt? Wenn ja, wie?

Als Alternativen sehe ich noch die Möglichkeiten:

(1) die Grafiken mittels Macro von einer Warteposition außerhalb des Druckbereichs hineinzuschieben (.PositionX, .PositionY)
(2) eine grafische Schaltfläche zu missbrauchen und dort die Grafik ändern. Man kann mehrere Grafiken einladen, die werden dann unter datei.ods\Pictures gespeichert
(3) das Grafische Kontrollfeld (ImageControl) zu verwenden.

zu (1):
Kann ich die Grafiken wie z.B. Checkboxes mit
ThisComponent.CurrentController.ActiveSheet.DrawPage.Forms(0).GetByName(MyGraphic1)
ansprechen?

zu (2):
Wie spreche ich das Ding an (wie heißt es)? Wie greife ich auf dessen Grafik-Eigenschaft zu und wie auf die eingebetteten Grafiken in der Datei?

zu (3):
Wie arbeite ich mit diesem Teil? Gibt's da ein gutes Tutorial?


Vielen Dank!

Re: Grafik abh. vom Zellwert anzeigen

Verfasst: Mi, 29.03.2017 17:52
von F3K Total
Hallo Du,
du kannst die Bilder doch einfach ein und ausblenden.
Zwar per Makro, aber dass ist nicht so schwierig. Angenommen, du hast ein Bild auf Tabelle1 eingefügt, dann klicke es mit der rechten Maustaste an, Name... und gib ihm einen aussagekräftigen Namen, hier im Beispiel MeinBild1. Dann kannst du das Bild mit dem Makro

Code: Alles auswählen

sub S_HIDE_SHOW
    opage = thisComponent.sheets("Tabelle1").DrawPage
    for i = 0 to opage.count - 1
      if opage(i).name = "MeinBild1" then
          opage(i).Visible = NOT(opage(i).Visible)
          opage(i).Printable = opage(i).Visible
      endif
    next i   
end sub
ein - und ausblenden, sowie die Druckbarkeit sinngemäß an- und abstellen.
Gruß R

Re: Grafik abh. vom Zellwert anzeigen

Verfasst: Do, 30.03.2017 09:32
von TrueColor
Hallo R,

danke für die Antwort. Einfach die Sichtbarkeit schalten... manchmal sieht man den Wald nicht...

Verstehe ich das richtig, dass im Gegensatz zu den Formularelementen jede Grafik seine eigene Drawpage hat und der Name der Grafik eigentlich der Name der Drawpage ist?

Muss ich tatsächlich eine nicht sichtbare Grafik auch noch nicht druckbar schalten?

Re: Grafik abh. vom Zellwert anzeigen

Verfasst: Do, 30.03.2017 14:08
von Thomas Mc Kie
TrueColor hat geschrieben: Do, 30.03.2017 09:32Muss ich tatsächlich eine nicht sichtbare Grafik auch noch nicht druckbar schalten?
Versuch macht klug, und einen pdf-printer wirst du ja wohl haben/installieren können. :-)

Re: Grafik abh. vom Zellwert anzeigen

Verfasst: Do, 30.03.2017 16:44
von TrueColor
Thomas Mc Kie hat geschrieben: Do, 30.03.2017 14:08
TrueColor hat geschrieben: Do, 30.03.2017 09:32Muss ich tatsächlich eine nicht sichtbare Grafik auch noch nicht druckbar schalten?
Versuch macht klug, und einen pdf-printer wirst du ja wohl haben/installieren können. :-)
Schon probiert, man muss es wirklich explizit schalten. Aber das ist völlig unlogisch, eine unsichtbare Grafik will ich doch nicht im Druck sehen.

Alles in allem hat es funktioniert. Vielen Dank für die Hilfe.

Re: Grafik abh. vom Zellwert anzeigen

Verfasst: Do, 30.03.2017 17:46
von Thomas Mc Kie
Ich weiß jetzt nicht, ob das was damit zu tun hat, dass man ja auch in den Einstellungen Bilder drucken ein/ausschalten kann.
http://www.oooforum.de/viewtopic.php?t=57950
Und dann brauchst du für die Sichtbarkeit und das Drucken halt zwei Schalter. Eventuell wird der (nicht drucken) Schalter dann vom Programm beim Ausblenden einer Grafik automatisch gesetzt, und in nem Makro musst du da halt selbst dran denken.

Ist aber nur geraten, aber es könnte dafür schon sinnvolle Gründe geben. Aber natürlich hast du insofern recht, dass man normalerweise eine unsichtbare Grafik auch nicht gedruckt haben will.

Grüße

Thomas