danke für die PN, ich wäre sonst nicht auf Deine Frage aufmerksam geworden.
Das Problem wird in der BRX mit der .mergeRange-Funktion eines Cursors gelöst. Das Prinzip ist: ein Cursor markiert ausgehend von einer Zelle alle anderen zu verbindenden Zellen und diese werden dann mit .mergeRange verbunden. Ich war damals erstaunt wie stabil diese Funktion läuft!
Der Code für das MergeUp-Feature beginnt in Zeile 306, die relevanten Zeilen sind 311-313:
Statt oCurs.goUp kannst Du dann ja auch "oCurs.goRight 4, True" schrieben, dann werden die Zelle1 plus die 4 rechts liegenden Zeilen vom Cursor erfasst und mit .mergeRange verbunden.
Code: Alles auswählen
...
with myTable
...
0306 ' feature ###MERGE_UP### - if a cell contains "###MERGE_UP###", it will be merged up with the corresponding cell of the previous row
0307 If oThisResultset.getstring(ii) = "###MERGE_UP###" Then
0308 .getCellByPosition(ii-1,oThisResultset.row + iStartAtRow -1).setstring("") ' in case somebody entered something at row1 it's deleted
0309 if oThisResultset.row > 2 then ' it makes no sense to connect the first row to the title-row, and prevents errors if row=1
0310 on error goto createCursorByCellName_Error
0311 ==> oCurs = .createCursorByCellName(chr(64+ii) & (oThisResultset.row + iStartAtRow ))
0312 ==> oCurs.goUp 1, True
0313 ==> oCurs.mergeRange
...
Original Code zu finden (falls Du die BRX installiert hast BaseReportExtension (extensions.libreoffice.org)): Meine Makros & Dialoge / BaseReportExtension / BRX_MAIN / function BRX_BerichtErstellen