Makroprogrammierung -> "Absatzzeichen" unter einer Tabelle entfernen

Hallo *,

guten Morgen und ein gutes neues Jahr.

Ich habe eine Frage zur Makroprogrammierung. Das unten stehende Makro fügt eine Tabelle am Ende des Dokumentes ein. Leider fügt LO unterhalb der Tabelle immer ein "Absatzzeichen" ein. Darüber stolpern laufend Personen, die damit zu tun haben. Es gibt einen Workaround, um dieses "Absatzzeichen" zu entfernen: Anklicken der letzten Zelle in der Tabelle und Drücken von Strg+Umschalt+Entf.

Ich möchte die Entfernung des "Absatzzeichens" per Makro realisieren. Allerdings finde ich nicht den dazu gehörigen Makrobefehl.
Also es fehlt:
1) Springe zur letzten Zelle der Tabelle
2) Führe Strg+Umschalt+Entf aus

Kennt jemand die Lösung?

Sub Probe
   Dim oTable
   Dim oInsertPoint
   oTable = ThisComponent.createInstance("com.sun.star.text.TextTable")
   oTable.initialize(2, 3) 'Zwei Zeilen, drei Spalten.
   oInsertPoint = ThisComponent.Text.getEnd()
   oInsertPoint.getText().insertTextContent(oInsertPoint, oTable, False)

     oTable.setDataArray(Array(Array(0, "Eins", 2), Array(3, "Vier", 5)))
End sub

Gruß

Jochen

Hallo Jochen

Hallo *,

guten Morgen und ein gutes neues Jahr.

Ich habe eine Frage zur Makroprogrammierung. Das unten stehende Makro fügt eine Tabelle am Ende des Dokumentes ein. Leider fügt LO unterhalb der Tabelle immer ein "Absatzzeichen" ein.

Das ist auch ganz richtig so.

Darüber stolpern laufend Personen, die damit zu tun haben.

1. wer? mir ist da noch niemand begegnet.
2. warum? vielleicht giebt es eine viel elegantere Lösung für das was du wirklich machen willst.

Es gibt einen Workaround, um dieses "Absatzzeichen" zu entfernen: Anklicken der letzten Zelle in der Tabelle und Drücken von Strg+Umschalt+Entf.

Da das geschilderte Verhalten kein Bug ist, ist das auch kein Workaround.
Denn wenn das Absatzzeichen fehlt, bekommt man große Probleme,
wenn man unterhalb der Tabelle weiteren Text oder etwas anderes einfügen will.

Ich möchte die Entfernung des "Absatzzeichens" per Makro realisieren. Allerdings finde ich nicht den dazu gehörigen Makrobefehl.
Also es fehlt:
1) Springe zur letzten Zelle der Tabelle
2) Führe Strg+Umschalt+Entf aus

Es wäre schon interessant zu wissen, warum du dieses Zeichen entfernen willst.
denn mir ist kein Grund bekannt, wo dieses Zeichen stören sein könnte.

Kennt jemand die Lösung?

Ich denke ich könnte dass hin bekommen, aber da ich keinen Grund sehe,
warum man das Zeichen entfernen sollte, werde ich mir nicht die Mühe machen.

Gruß Frieder

Hallo Frieder,

Ich habe eine Frage zur Makroprogrammierung. Das unten stehende Makro
Darüber stolpern laufend Personen, die damit zu tun haben.

1. wer? mir ist da noch niemand begegnet. <schnipp>
Da das geschilderte Verhalten kein Bug ist, ist das auch kein Workaround.
Denn wenn das Absatzzeichen fehlt, bekommt man große Probleme, wenn
man unterhalb der Tabelle weiteren Text oder etwas anderes einfügenwill.

Dieses Problem wurde vor gar nicht o langer Zeit auch auf dieser ML diskutiert. Dies ist eine Behauptung von mir, die ich aus dem Gedächtnis treffe. Ich kann leider nicht sagen, welcher Thread dies war bzw. ich mache mir jetzt die Mühe, den kompletten Mail-Verkehr danach zu suchen.
Ich denke auch, dass kein Bug vorliegt, sondern nur ein Verhalten, das den einen oder anderen stört.

Es wäre schon interessant zu wissen, warum du dieses Zeichen entfernen
willst.

Der gepostete Code fügt eine Tabelle am Ende des Dokumentes ein. Ich benötige diese Tabelle auf jeder Seite eines QM-Handbuches mit geschätzten 8.000 Seiten. Die meisten Seiten haben noch keine solche Tabelle, d.h. ich muss auf jeder Seite eine solche Tabelle einfügen. Diese Tabelle soll am Ende einer jeden Seite stehen. Bis auf die letzte Seite eines jeden Dokumentes folgt jeder Seite eine weitere Seite, so dass das Argument, dass man unterhalb der Tabelle weiteren Text oder etwas anderes einfügen will, bei mir nicht greift.
Wenn ich das Makro anwende, wird wie erwähnt immer eine Zeile eingefügt. Dies stört insofern als dass eine Zeile verschwendet wird.
Aus diesem Grund möchte ich die Zeile/Absatz automatisch entfernen lassen.

Meine derzeitige Lösung geht über ein Makro, dass die "Auto-Text"-Funktion benutzt. Dadurch ist es einfach möglich, eine vordefinierte sog. "komplexe" Tabelle mit verbundenen Zelle einfügen zu können.
Das Makro fragt dabei noch ab, ob das Erstellungsdatum des Dokumentes oder das aktuelle Datum eingefügt werden soll.
Die Code, den ich gepostet habe, stellt nur einen Teil dar, der das Problem mit dem "Absatzzeichen" unter einer Tabelle darstellen soll.

Gruß

Jochen

Jochen schrieb:

Dieses Problem wurde vor gar nicht o langer Zeit auch auf dieser ML
diskutiert.

und zwar beginnend am 29.12.2011 (also schon im letzten Jahr - uralt) von Andreas Borutta gestartet und betitelt: "Seitenzaehlung kontrollieren (nicht die gedruckte Seitennummern)"

Der Absatz unter Tabellen, den man (dazu gehöre ich) häufig _nicht_ braucht und der dann stört, war nur ein Teil der Anfrage von Andreas, darum sieht der Betreff so anders aus.

Michael

Hallo *,

ich habe jetzt Zeit gehabt, mir den Code selbst zusammen zu suchen bzw. zu erstellen. Dadurch wird der Absatz unter einer Tabelle entfernt. Diese benötige ich für meine spezielle Situation.
Ich möchte aber ausdrücklich davor warnen, diesen Code unkritisch anzuwenden. Der Absatz unter einer Tabelle wird in LO unbedingt benötigt, um "normal" unterhalb einer Tabelle weiterarbeiten zu können.

Theoretisch ist es möglich, eine Abfrage einzubauen, ob der "DelToEndOfSentence"-Befehl wirklich ausgeführt werden soll.

Im Prinzip ist es wahrscheinlich auch möglich, per Makro den Absatz nachträglich wieder einfügen zu lassen, wenn man in der Tabelle steht. Aber dies benötige ich nicht, so dass ich keine Zeit "verschwenden" möchte, um den Code zu finden.

Gruß

Jochen

sub Probe1
   Dim oTable
   Dim oInsertPoint
   Dim oVCursor
   oTable = ThisComponent.createInstance("com.sun.star.text.TextTable")
   oTable.initialize(2, 3) 'Zwei Zeilen, drei Spalten.
   oInsertPoint = ThisComponent.Text.getEnd()
   oInsertPoint.getText().insertTextContent(oInsertPoint, oTable, False)
   oTable.setDataArray(Array(Array(0, "Eins", 2), Array(3, "Vier", 5)))
   oTable.getCellByName("C2").setString("adada")
   ThisComponent.CurrentController.select(oTable)
  oVCursor = ThisComponent.CurrentController.getViewCursor()
  oVCursor.gotoEnd(True)
  ThisComponent.currentController.getViewCursor().goRight(1, Boolean)
    ThisComponent.currentController.getViewCursor().goLeft(1, Boolean)
  dim document as object
  dim dispatcher as object
  document = ThisComponent.CurrentController.Frame
  dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
  dispatcher.executeDispatch(document, ".uno:DelToEndOfSentence", "", 0, Array())
end sub