[gelöst] Tabelle in Writer: Zeile darüber per Makro einfügen

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

uroveits
**
Beiträge: 47
Registriert: So, 23.05.2010 12:11

[gelöst] Tabelle in Writer: Zeile darüber per Makro einfügen

Beitrag von uroveits »

Hallo zusammen!

Ich bin auf der Suche nach der richtigen Syntax für ein Makro, das folgendes können soll:
In einer bestehenden Tabelle in Writer soll eine Zeile oberhalb der Zeile eingefügt werden, in der der Cursor steht.

Ich habe folgendes Makro erstellt:

sub ZeileInTabelleEinfuegen
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dispatcher.executeDispatch(document, ".uno:InsertRows", "", 0, Array())
end sub

Dieses Makro fügt aber die neue Zeile unterhalb der Zeile ein.

Wie muss die Syntax lauten, damit die neue Zeile oberhalb der Zeile eingefügt wird.
Kann mir jemand bitte einen Tipp geben.

Ich verwende OOoWriter 3.2.1 und Windows 7 (64bit).

Gruß

Jochen
Zuletzt geändert von uroveits am Do, 12.08.2010 23:39, insgesamt 1-mal geändert.
Windows 7 Professional (64 Bit)
LibreOffice 3.3.3; OOO330m19 (Build:301); tag libreoffice-3.3.3.1
Firefox 5.0
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: Tabelle in Writer: Zeile darüber per Makro einfügen

Beitrag von Karolus »

Hallo
Nimm als erste Codezeile zusätzlich:

Code: Alles auswählen

thisComponent.currentController.getViewcursor.goUp(1, 0)
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
uroveits
**
Beiträge: 47
Registriert: So, 23.05.2010 12:11

Re: [gelöst] Tabelle in Writer: Zeile darüber per Makro einfügen

Beitrag von uroveits »

Hallo Karo,

vielen Dank für Deinen Lösungsvorschlag. Jetzt funktioniert alles so wie ich es mir vorstelle.

Der Vollständigkeit halber stelle ich die Syntax hier noch einmal ein:
(ich habe noch eingefügt, dass der Cursor in die neu erzeugte Zeile springt)

Code: Alles auswählen

sub ZeileInTabelleEinfuegen
dim document   as object
dim dispatcher as object
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
thisComponent.currentController.getViewcursor.goUp(1, 0)
dispatcher.executeDispatch(document, ".uno:InsertRows", "", 0, Array())
dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Count"
args3(0).Value = 1
args3(1).Name = "Select"
args3(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args3())
end sub
Gruß

Jochen
Windows 7 Professional (64 Bit)
LibreOffice 3.3.3; OOO330m19 (Build:301); tag libreoffice-3.3.3.1
Firefox 5.0
Karolus
********
Beiträge: 7532
Registriert: Mo, 02.01.2006 19:48

Re: [gelöst] Tabelle in Writer: Zeile darüber per Makro einfügen

Beitrag von Karolus »

Hallo
Na ja dann tausch doch noch:

Code: Alles auswählen

dim args3(1) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Count"
args3(0).Value = 1
args3(1).Name = "Select"
args3(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args3())
gegen

Code: Alles auswählen

thisComponent.currentController.getViewcursor.goDown(1, 0)
Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
uroveits
**
Beiträge: 47
Registriert: So, 23.05.2010 12:11

Re: [gelöst] Tabelle in Writer: Zeile darüber per Makro einfügen

Beitrag von uroveits »

Hallo Karo,

vielen Dank für Deinen Zusatztipp. Ich habe diesbezüglich das Makro geändert.
Gruß

Jochen
Windows 7 Professional (64 Bit)
LibreOffice 3.3.3; OOO330m19 (Build:301); tag libreoffice-3.3.3.1
Firefox 5.0
Antworten