🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Hilfen zu Makros

Alles zur Programmierung im LibreOffice.
Antworten
Philipp
Beiträge: 15
Registriert: Di 23. Aug 2011, 11:15

Hilfen zu Makros

Beitrag von Philipp » Di 23. Aug 2011, 11:24

Hallo an alle,

ich bin erst seit kurzem dabei mich in LO einzuarbeiten, grade was die Makros angeht.
Ich habe mir zunächst einmal einiges an Literatur dazu rangeschafft (Andrew Pitonyak hat mir schonmal sehr geholfen und noch ein paar Internetseiten), komme aber trotzdem noch nicht richtig damit zurecht.
Zunächst einmal würde mich interessieren, ob es noch weitere gute Erklärungen im Netz (oder als Bücher) gibt, die einen tiefer in die Materie bringen.

So, und dann hoffe ich mal, das ich auch hier einige sinnvolle Antworten bekommen. Womit ich zum großen Teil noch nicht zurechtkomme ist das ansprechen von Dokumenten, Tabellen im writer und ähnliches.
myTable = createunoservice("com.sun.star.text.TextTable")
:!: Solche Ausdrücke wollen sich bei mir nicht erschließen. :!: Gibt es eine gute Übersicht oder Erklärung, bei der ich verstehe, wann ich welche Ausdrücke einbringen muss?
Werde hauptsächliche mit dem Writer arbeiten, viele Tabellen ansprechen und die Tabellen wohl viel gestalten müssen...alles über Makros.
Habe Makros bereits mit VBA geschrieben, allerdings waren da die Ausdrücke um Tabellen anzusprechen deutlich anders.

Ich denke ich warte erstmal Antworten ab, werde auf jeden Fall dann später noch deutlich spezifischere Fragen stellen.

balu
* LO-Experte *
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: Hilfen zu Makros

Beitrag von balu » Di 23. Aug 2011, 14:19

Hallo Philipp,
oder als Bücher
Guckst Du mal dort, galileocomputing.de

Gruß
balu

Philipp
Beiträge: 15
Registriert: Di 23. Aug 2011, 11:15

Re: Hilfen zu Makros

Beitrag von Philipp » Di 23. Aug 2011, 16:34

Danke schon mal dafür, balu.
Das hatte ich mir schon ein paar mal angeguckt, dachte aber es gibt vielleicht noch aktuellere Versionen.

Habe meine anfänglichen Fragen jetzt auch gelöst, und stoße gleich auf die nächsten.

Wenn ich auf im writer eine Tabelle händisch pflege, bekomme ich im Makro keinerlei Werte zurück.

oTables = createunoservice("com.sun.star.text.TextTables")
oTables = oDoc.getTextTables
oTable = createunoservice("com.sun.star.text.TextTable")
oTable = oTables.getByIndex(0)

x = oTable.GetCellbyPosition(0,0).GetValue

x ist dabei zur Zeit ein String, hatte es allerdings auch schon mit einem int versucht.

Damit versuche ich an eine Zahl zu kommen, die in dieser Zelle steht, aber er gibt mir nur den Wert "0" zurück.
Wie komm ich denn nun am meinen tatsächlichen Wert?
Später soll der Wert übrigends per Textmarke dort eingetragen werden (direkt aus einer DB heraus). Ändert sich dann was am Code, oder kann ich den dann unverändert lassen (sollte er denn dann mal funktionieren)?

Grüße

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Hilfen zu Makros

Beitrag von komma4 » Di 23. Aug 2011, 18:23

Auf die erste Tabelle zugreifen:

Code: Alles auswählen

oTables = ThisComponent.getTextTables()
oTable = oTables.getByIndex(0)

' A1: Zeichen(kette)
x = oTable.GetCellbyPosition( 0, 0 ).getString()
'B2: Zahl
x = oTable.GetCellbyPosition( 1,1 ).getValue()
Klappt hier einwandfrei.


Den creatUnoService brauchst Du nur, wenn Du eine neue Tabelle erzeugen und ins Dokument einfügen willst
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)

Philipp
Beiträge: 15
Registriert: Di 23. Aug 2011, 11:15

Re: Hilfen zu Makros

Beitrag von Philipp » Mi 24. Aug 2011, 08:13

FUnktioniert bei mir jetzt auch, danke dafür.

WIe sieht das ganze aus, wenn anstelle einer ganz normalen Zahl eine Textmarke steht?
Muss man die Textmarke mit einer äußeren Textmarke umschließen, um sie auszulesen oder reicht der Code, so wie er jetzt ist?

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Hilfen zu Makros

Beitrag von komma4 » Mi 24. Aug 2011, 10:13

Bitte für neue Fragen demnächst einen neuen Thread (mit aussagekräftigem Titel) aufmachen.

Textmarken sind Dokumenten bezogen, d.h. es ist egal, ob sie im Fliesstext oder in einer Tabelle stehen.

Der folgende Code ändert den Inhalt einer Textmarke

Code: Alles auswählen

oDok = ThisComponent

' Textmarke
oBM = oDok.getBookmarks().getByName( "wr" )

' Inhalt setzen
oBM.getAnchor().String = "Mein neuer Text"
Das hilft Dir weiter?
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)

Philipp
Beiträge: 15
Registriert: Di 23. Aug 2011, 11:15

Re: Hilfen zu Makros

Beitrag von Philipp » Mi 24. Aug 2011, 10:20

Joah teilweise. Die Textmarken werden über eine DB befüllt, ich brauch also nur den Zugriff auf die TM, aber das hast du mir ja bereits gezeigt.
Würde ich für jede neue Frage einen extra Thread aufmachen, würden hier bald zig Threads rumschwirren ;-)

Aber werds natürlich machen.
Danke für die schnelle und kompetente HIlfe.

komma4
Beiträge: 185
Registriert: Sa 13. Aug 2011, 10:01
Wohnort: Chonburi Thailand Asia
Kontaktdaten:

Re: Hilfen zu Makros

Beitrag von komma4 » Mi 24. Aug 2011, 10:24

Philipp hat geschrieben:Würde ich für jede neue Frage einen extra Thread aufmachen, würden hier bald zig Threads rumschwirren ;-)
SO viele Fragen wirst Du auch nicht haben, da sich im Laufe der Zeit viel Wissen ergibt.

Und für Suchende ist es halt einfacher einen Thread zu finden, der "Textmarken in Tabellen füllen" lautet, als im vierten Posts eines "Hilfe zu Makros"-Threads eine Antwort darauf zu finden.

Weiterhin viel Erfolg!
Cheers
Winfried
aktuell: openSuse 13.1 mit LO 4.3.7.2
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als Extension)


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten