[Gelöst] Per Makro Bitmap importieren
Moderator: Moderatoren
[Gelöst] Per Makro Bitmap importieren
Hallo liebe Community!
Kennt jemand eine Möglichkeit per Makro Bitmaps zu importieren, so dass sie dann für Calc Diagramme als Hintergrund benutzt werden können?
Mein Google Suche verlief hierzu bisher nicht sehr erfolgreich...
Bin für jeden Denkanstoss dankbar!
LG
Rasakul
--------------------------------------------------------
Windows 7
OpenOffice 4.1.0
Java 7 Update 55
--------------------------------------------------------
Kennt jemand eine Möglichkeit per Makro Bitmaps zu importieren, so dass sie dann für Calc Diagramme als Hintergrund benutzt werden können?
Mein Google Suche verlief hierzu bisher nicht sehr erfolgreich...
Bin für jeden Denkanstoss dankbar!
LG
Rasakul
--------------------------------------------------------
Windows 7
OpenOffice 4.1.0
Java 7 Update 55
--------------------------------------------------------
Zuletzt geändert von Rasakul am Di, 19.08.2014 12:50, insgesamt 1-mal geändert.
Wenn du dir die Anwender deiner Programme als Idioten vorstellst, werden auch nur Idioten deine Programme verwenden - Linus Torvalds
Re: Per Makro Bitmap importieren
Schau mal, ob dir der Abschnitt 7.3.6 Wie kann man Grafiken in ein Sheet einbetten? in Michael Dannenhöfers StarBasic / OpenOffice.org Basic FAQ weiterhilft.
Gruß
lorbass
PS: Dein Java ist veraltet, Aktuell ist die Version 7.0_65
Gruß
lorbass
PS: Dein Java ist veraltet, Aktuell ist die Version 7.0_65
Re: Per Makro Bitmap importieren
Hallo!
Danke für den Link, der hilft mir jedoch nur bedingt weiter
ich hab vielleicht mein Problem etwas zu allgemein formuliert: ich hab ein duch Makros erstelltes Diagramm in einem Calc-Sheet. Diagramme aktzeptieren (soweit ich zumindest informiert bin) nur Bitmaps als Hintergründe, deshalb suche ich nach einer Möglichkiet, diese automatisch zu importieren (manuell geht es ja mittels Draw - Format - Fläche - Bitmapmuster - importieren).
Eine Grafik, die einfach hinter einem transparenten Diagramobjekt steht, wäre hierfür zu aufwendig, da bei jeder Größenänderung des Diagrams die Position der Grafik ebenfalls neu berechnet werden müsste. Hinzu kommt, dass die Digramwand ja nicht die volle Fläche des Diagramobjektes einnimmt, diese müsste also zusätzlich auch noch mitberechnet werden.
Ist etwas verzwickt das Problem, ich weiß...
LG
Rasakul
PS: Danke fürr den Java Hinweis, das ist mir aber bewusst
- arbeite allerdings auf einem Firmen-PC und hier ist erst Update 65 freigegeben, da hab ich nicht groß die Wahl....
Danke für den Link, der hilft mir jedoch nur bedingt weiter
ich hab vielleicht mein Problem etwas zu allgemein formuliert: ich hab ein duch Makros erstelltes Diagramm in einem Calc-Sheet. Diagramme aktzeptieren (soweit ich zumindest informiert bin) nur Bitmaps als Hintergründe, deshalb suche ich nach einer Möglichkiet, diese automatisch zu importieren (manuell geht es ja mittels Draw - Format - Fläche - Bitmapmuster - importieren).
Eine Grafik, die einfach hinter einem transparenten Diagramobjekt steht, wäre hierfür zu aufwendig, da bei jeder Größenänderung des Diagrams die Position der Grafik ebenfalls neu berechnet werden müsste. Hinzu kommt, dass die Digramwand ja nicht die volle Fläche des Diagramobjektes einnimmt, diese müsste also zusätzlich auch noch mitberechnet werden.
Ist etwas verzwickt das Problem, ich weiß...
LG
Rasakul
PS: Danke fürr den Java Hinweis, das ist mir aber bewusst

Wenn du dir die Anwender deiner Programme als Idioten vorstellst, werden auch nur Idioten deine Programme verwenden - Linus Torvalds
Re: Per Makro Bitmap importieren
Hallo Rasakul,
Hast Du das Diagramm schon mal mittels XRAY oder MRI untersucht? Kennst Du dich überhaupt mit diesen Tools aus?
Willst Du die Diagrammwand oder die Diagrammfläche, oder beides mit einem Bitmap füllen?
Gruß
balu
Wie hast Du das Diagramm per Makro erstellt? Bitte häng hier eine Beispieldatei an.ich hab ein duch Makros erstelltes Diagramm in einem Calc-Sheet.
Hast Du das Diagramm schon mal mittels XRAY oder MRI untersucht? Kennst Du dich überhaupt mit diesen Tools aus?
Soll beim erstellen des Diagramm jedesmal die gleiche Bitmap eingefügt werden, oder soll das nach möglichkeit variabel sein, also bei jedem erneuten erstellen eines Diagramm ein anderes Bitmap?suche ich nach einer Möglichkiet, diese automatisch zu importieren
Willst Du die Diagrammwand oder die Diagrammfläche, oder beides mit einem Bitmap füllen?
Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden

Re: Per Makro Bitmap importieren
Hallo balu!
Ich habe mich großteils an diesen Thread gehalten - war sehr mühselig, aber ist mir schlussendlich gelungen
- Datei ist im Anhang
Mir geht es eigentlich darum, den Vorgang "Draw - Format - Fläche - Bitmapmuster - importieren" zu automatisieren
Code zum erstellen des Diagramms:
LG
Rasakul
https://forum.openoffice.org/en/forum/v ... =20&t=8991balu hat geschrieben:Wie hast Du das Diagramm per Makro erstellt? Bitte häng hier eine Beispieldatei an.
Ich habe mich großteils an diesen Thread gehalten - war sehr mühselig, aber ist mir schlussendlich gelungen

Ja, kenne mich damit aus - im Diagram ist die Bitmap blöderweise nur als String referenziert:balu hat geschrieben:Hast Du das Diagramm schon mal mittels XRAY oder MRI untersucht? Kennst Du dich überhaupt mit diesen Tools aus?
Code: Alles auswählen
'Diagrammhintergrund
thisComponent.sheets.getByName("DataGraph").Charts.getByName("DataGraph").EmbeddedObject.Diagram.Wall.FillBitmapName = "MyBitMap"
Es reicht jedes Mal die gleiche - da die BitMap ja nur als String referenziert ist, sollte das einfügen in das Diagram selber kein Problem seinbalu hat geschrieben:Soll beim erstellen des Diagramm jedesmal die gleiche Bitmap eingefügt werden, oder soll das nach möglichkeit variabel sein, also bei jedem erneuten erstellen eines Diagramm ein anderes Bitmap?
Mir geht es eigentlich darum, den Vorgang "Draw - Format - Fläche - Bitmapmuster - importieren" zu automatisieren
Die Diagrammwandbalu hat geschrieben:Willst Du die Diagrammwand oder die Diagrammfläche, oder beides mit einem Bitmap füllen?
Code zum erstellen des Diagramms:
Code: Alles auswählen
Sub CreateDia
'Erstellt Diagramm
Sheet = thisComponent.sheets.getByName("DataGraph")
Dim charts As Object
Dim Rect As new com.sun.star.awt.Rectangle
Dim Source(1) As New com.sun.star.table.CellRangeAddress
'Diagrammposition/-größe
Rect.X = 0 ' x position of chart
Rect.Y = 0 ' y position of chart
Rect.Width = 20000 ' width of chart
Rect.Height = 20000 ' height of chart
charts=Sheet.Charts
'Basismodell erstellen(balkendiagramm)
'selection of X data
Source(0).Sheet = 0
Source(0).StartColumn = 3 + i
Source(0).StartRow = 5
Source(0).EndColumn = 3 + i
Source(0).EndRow = 5
'selection of y data
Source(1).Sheet = 0
Source(1).StartColumn = 2 + i
Source(1).StartRow = 5
Source(1).EndColumn = 2 + i
Source(1).EndRow = 5
'altes Diagramm löschen, neues hinzufügen
if charts.hasByName("DataGraph") then charts.removeByName("DataGraph")
charts.addNewByName("DataGraph", Rect ,Source(), false, false)
'Diagrameigenschaften anpassen
chart=charts.getByName("DataGraph").EmbeddedObject
With chart
.Diagram = chart.createInstance("com.sun.star.chart.XYDiagram") 'xy Diagram
.Diagram.SplineType = 0
.Diagram.SymbolType = -2
.Diagram.DataCaption = 4 'Datenbeschriftung
'X Achse
.Diagram.HasXAxisTitle = True
.Diagram.XAxisTiTle.string = "X Achse"
.Diagram.XAxisTiTle.CharHeight = 16
.Diagram.XAxis.CharHeight = 16
.Diagram.HasXAxisGrid = True
.Diagram.XAxis.ReverseDirection = False
'Y Achse
.Diagram.HasYAxisTitle = True
.Diagram.YAxisTiTle.string = "Y Achse"
.Diagram.YAxisTiTle.CharHeight = 16
.Diagram.YAxis.CharHeight = 16
.Diagram.HasYAxisGrid = True
.Diagram.YAxis.ReverseDirection = True
'Überschrift
.HasMainTitle = True
.Title.string = "Titel"
.Title.CharHeight = 16
.HasLegend = FALSE 'Legende ausblenden
'Diagrammhintergrund
'------------------------------------------------------------------------------
' .Diagram.Wall.FillBitmapName = "MyBitMap"
'------------------------------------------------------------------------------
.Diagram.Wall.FillStyle = 4
'Achsen-Bereiche Einstellungen
.Diagram.YAxis.AutoMax = FALSE
.Diagram.YAxis.AutoMin = FALSE
.Diagram.YAxis.AutoStepMain = FALSE
.Diagram.YAxis.Max = 100
.Diagram.YAxis.Min = 0
.Diagram.YAxis.StepMain = 20
.Diagram.XAxis.AutoMax = FALSE
.Diagram.XAxis.AutoMin = FALSE
.Diagram.XAxis.AutoStepMain = FALSE
.Diagram.XAxis.Max = 75000000
.Diagram.XAxis.Min = 0
.Diagram.XAxis.StepMain = 15000000
End With
End Sub
Rasakul
- Dateianhänge
-
- BeispielDiagram.ods
- (12.37 KiB) 138-mal heruntergeladen
Wenn du dir die Anwender deiner Programme als Idioten vorstellst, werden auch nur Idioten deine Programme verwenden - Linus Torvalds
Re: Per Makro Bitmap importieren
Hallo Rasakul,
Hab mir die Datei angeschaut, und mal ne winzige Kleinigkeit geändert um zu sehen ob Du soweit schon mal auf der passenden Fährte warst.
Aus dieser Code-Zeilehabe ich schlicht das gemacht
Dann habe ich in der Datei auf den Button geklickt, und siehe da, die Diagrammwand hatte das Bitmap Weltraum.
Warum das funktioniert ist ganz klar. Die Bitmaps sind fest im "Office"-System integriert, samt der dazugehörigen Pfadangaben. Da muss nicht lange gesucht werden, da ja der Pfad und der Name bekannt sind. Obwohl der Bitmapname in deutsch angezeigt wird, ist er aber mit englischem Namen gespeichert (space.jpg).
Nun wollte ich dir zeigen wie sich das mit dem String für die Bitmap verhällt damit man seine eigene Bitmap einfügen kann, aber blöderweise bekomme ich das noch nicht ans laufen. Theoretisch müsste das eigentlich so ablaufen.
Na ja! Mal schaun ob ich es noch hinbekomme, was ich aber momentan noch nicht so recht glaube.
Gruß
balu
Von mühselig kann ich nicht nur ein Liedchen singen, sondern ne ganze Arie. Musste mich mal mit nem Horizontal-Gestapelten-Balkendiagramm rumschlagen, mit diversen Sonderwünschen. Hatte es aber auch hinbekommen.war sehr mühselig, aber ist mir schlussendlich gelungen
Das ist ja schon mal sehr gut das Du dich damit auskennst.Rasakul hat geschrieben:Ja, kenne mich damit aus - im Diagram ist die Bitmap blöderweise nur als String referenziert:balu hat geschrieben:Hast Du das Diagramm schon mal mittels XRAY oder MRI untersucht? Kennst Du dich überhaupt mit diesen Tools aus?
Hab mir die Datei angeschaut, und mal ne winzige Kleinigkeit geändert um zu sehen ob Du soweit schon mal auf der passenden Fährte warst.
Aus dieser Code-Zeile
Code: Alles auswählen
' .Diagram.Wall.FillBitmapName = "MyBitMap"
Code: Alles auswählen
.Diagram.Wall.FillBitmapName = "Weltraum"
Warum das funktioniert ist ganz klar. Die Bitmaps sind fest im "Office"-System integriert, samt der dazugehörigen Pfadangaben. Da muss nicht lange gesucht werden, da ja der Pfad und der Name bekannt sind. Obwohl der Bitmapname in deutsch angezeigt wird, ist er aber mit englischem Namen gespeichert (space.jpg).
Nun wollte ich dir zeigen wie sich das mit dem String für die Bitmap verhällt damit man seine eigene Bitmap einfügen kann, aber blöderweise bekomme ich das noch nicht ans laufen. Theoretisch müsste das eigentlich so ablaufen.
Code: Alles auswählen
Dim sMeineEigeneBitMap as String
sMeineEigeneBitMap = "Pfad_&_Dateiname"
.Diagram.Wall.FillBitmapName = sMeineEigeneBitMap
Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden

Re: Per Makro Bitmap importieren
Ergänzung.
Ich glaube mein vorhin aufgezeigter theoretischer Weg ist falsch. Wenn mich mein linkes Hühnerauge nicht ganz täuscht müsste das wahrscheinlich entweder über die PropertiesToDefault, oder aber über die PropertyToDefault gehen. Blos welche von beiden, weiß ich nicht. Mit diesen ganzen Props.. bin ich nicht gut Freund
.
Gruß
balu
Ich glaube mein vorhin aufgezeigter theoretischer Weg ist falsch. Wenn mich mein linkes Hühnerauge nicht ganz täuscht müsste das wahrscheinlich entweder über die PropertiesToDefault, oder aber über die PropertyToDefault gehen. Blos welche von beiden, weiß ich nicht. Mit diesen ganzen Props.. bin ich nicht gut Freund

Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden

Re: Per Makro Bitmap importieren
Trotzdem danke, dass du dir die Mühe gemacht hast, es nachzuvollziehen! 
Vielleicht findet sich ja noch jemand, der eine Lösung kennt...
LG
Rasakul

Vielleicht findet sich ja noch jemand, der eine Lösung kennt...
LG
Rasakul
Wenn du dir die Anwender deiner Programme als Idioten vorstellst, werden auch nur Idioten deine Programme verwenden - Linus Torvalds
Re: Per Makro Bitmap importieren
Wurde hier gelöst: viewtopic.php?f=18&t=64455
Wenn du dir die Anwender deiner Programme als Idioten vorstellst, werden auch nur Idioten deine Programme verwenden - Linus Torvalds