Seite 1 von 2
Verwendung von Umgebungsvariablen
Verfasst: Mi, 04.04.2007 18:20
von kappl_sim
Hallo ich möchte anstatt des normalen Pfades eine Umgebungsvariable verwenden. Ich habe bereits eine, mit dem Namen OpenOffice unter Systemsteuerung/System/Erweitert/Umgebungsvariable angelegt. Ich habe den selben Pfad wie im Makro verwendet
sURL = ConvertToURL ("C:\Symbole\100\10\Vorrichtung_11_a.wmf") (siehe auch weiter unten im Makro).
Habe schon versucht einfach den Namen der Umgebungsvariable zu verwenden, das funktioniert aber leider nicht.
Die Ausgabe der Umgebungsvariable funktioniert mithilfe von
msgbox environ("OpenOffice") problemlos.
Hoffe es kann mir jemand dabei helfen.
Code: Alles auswählen
Sub Main
Dim sURL$
sURL = ConvertToURL ("C:\Symbole\100\10\Vorrichtung_11_a.wmf")
InsertGraphicObjectShape(ThisComponent, sURL)
End Sub
Sub InsertGraphicObjectShape(oDoc, sURL$)
Dim oSize As New com.sun.star.awt.Size
Dim oPos As New com.sun.star.awt.Point
Dim oGraph
oGraph = oDoc.createInstance(“com.sun.star.drawing.GraphicObjectShape”)
Größe und Position der Grafik wird zugewiesen
oSize.width=200
oSize.height=300
oGraph.setSize(oSize)
oPos.X = 2540
oPos.Y = 2540
oGraph.setposition(oPos)
oDoc.getDrawPages().getByIndex(0).add(oGraph)
REM Set URL to the graphic.
oGraph.GraphicURL = sURL
End Sub
Verfasst: Do, 05.04.2007 12:52
von Toxitom
Hey kappl_sim,
verstehe dein Problem nicht. Du hast eine Umgebungsvariable gesetzt ("OpenOffice") und ihr den Wert "C:\Symbole\100\10" zugewiesen.
Mit "msgbox environ("OpenOffice")" erhälst du als Ergebnis : "C:\Symbole\100\10"?
Und jetzt möchtest du anstatt den Pfad manuell anzugeben diese Varaible verwenden?
also so:
Code: Alles auswählen
sURL = ConvertToURL (environ("OpenOffice") & "\Vorrichtung_11_a.wmf")
und das funktioniert nicht?
Was ergibt denn "msgbox sURL" ?
Gruss
Thomas
Verfasst: Di, 17.04.2007 13:45
von kappl_sim
Hast mir meine Frage damit schon beantwortet

Danke.
Achja ist es irgentwie möglich, mittels makro, den Datei- Namen des Draw Dokuments auszugeben? Brauche möglichst schnell eine Antwort.
lg
Verfasst: Di, 17.04.2007 14:38
von komma4
zeigt Dir den vollständigen Pfad/Dateinamen einer
gespeicherten Datei.
War es das?
Verfasst: Di, 17.04.2007 16:07
von kappl_sim
Danke!
Aber leider brauche ich nur den Dateinamen bzw. Titel!? (also ohne Pfad)
Hättest du dafür vielleicht auch eine Idee?
lg
Verfasst: Di, 17.04.2007 16:29
von komma4
in der mitgelieferten Makro-Bibliothek TOOLS findest Du die Funktion, die Dir helfen könnte:
Zim Sicherstellen, dass die Funktion gefunden wird:
vorher anwenden.
Nun?
Verfasst: Di, 17.04.2007 16:53
von kappl_sim
Super, genau das habe ich benötigt.
Herzlichen Dank damit hast du meinen tag gerettet
lg
Verfasst: Di, 17.04.2007 17:05
von kappl_sim
Achja kann es sein das diese funktion erst ab OpenOffice 2.2.0 funktionstüchtig ist?
Denn bei der alten kommt die fehlermeldung dass die Procedure/Funktion nicht definiert ist.
lg
Verfasst: Mi, 18.04.2007 08:33
von komma4
Nö, die gibt's schon länger.....
wie gesagt: Du musst die Bibliothek vorher laden !
Verfasst: Mi, 18.04.2007 12:10
von kappl_sim
Also bei einem Kollegen von mir kommt immer die Fehlermeldung NoSuchElementException.
Wir beide sind aber nach dem selben Schema vorgegangen (zuerst die Libary geladen danach die Ausgabe).
Habe leider keine Ahnung worin der Fehler liegt.
lg
Verfasst: Mi, 18.04.2007 12:26
von komma4
ThisComponent.URL funktioniert nur, wenn der Code nicht im Basic-Editor abgerufen wird....
Verfasst: Mi, 18.04.2007 13:12
von Toxitom
Hey,
ThisComponent.URL funktioniert nur, wenn der Code nicht im Basic-Editor abgerufen wird...
Nein. Das funktioniert auch im Basic-Editor. Allerdings greift es auf das letzte aktive OOo Dokument zu, das sich auf dem Bildschim befindet, das bedeutet, diese muss bereits eine URL haben (also schon mal gespeichert sein).
Die Fehlermeldung dürfte dagegen in der Zeile
GlobalScope.BasicLibraries.LoadLibrary("Tools")
auftreten. Entweder falsch geschrieben oder es gibt tatsächlich die Bibliothel "Tools" nicht. Überprüf das doch mal.
Gruss
Thomas
Verfasst: Mi, 18.04.2007 18:14
von kappl_sim
Toxitom hat geschrieben:
Die Fehlermeldung dürfte dagegen in der Zeile
GlobalScope.BasicLibraries.LoadLibrary("Tools")
auftreten. Entweder falsch geschrieben oder es gibt tatsächlich die Bibliothel "Tools" nicht. Überprüf das doch mal.
Gruss
Thomas
Dumme Frage, aber wo kann ich diese Libaries einsehen?
Hätte aber noch eine weitere Frage (ich weiß schön langsam nervts):
Weiß jemand von euch wie man ein Datagrid erstellt?
Also wie man ein select in eine tabelle schreiben kann.
lg
Verfasst: Do, 19.04.2007 08:17
von Toxitom
Hey lg,
Dumme Frage, aber wo kann ich diese Libaries einsehen?
Extras - Makros - Makros verwalten - OpenOffice.org Basic -> Linke Listbox -> Position "OpenOffice.org Makros" -> darunter müsstest du den Eintrag "Tools" finden. Markiere ihn, bzw. öffne die Bibliothek (auf das Pluszeichen klicken), dann siehst du die Module. Klicke auf ein Modul - dann werden in der rechten Listbox alle Funktionen und Prozeduren angezeicht. Markiere eine, Klicke auf "Bearbeiten", die Basic IDE öffnet sich, du kannst den Code sehen.
Gruss
Thomas
PS: Ändere nix von dem du nicht sicher bist, was du da tust

Verfasst: Do, 19.04.2007 11:45
von komma4
kappl_sim hat geschrieben:Dumme Frage, aber wo kann ich diese Libaries einsehen?
ich empfehle hierzu
BTL BasicTextListe Gibt alle vorhandenen BASIC-Module aus allen installierten Bibliotheken in ein Writer-Dokument aus.
Generiert aus dem Text der hier installierten Basic-Module ein etwa 500 Seiten Writer-Dokument in ca. 4 Sekunden.