[gelöst]Einfärben der Zellenränder einer Writer Texttabelle

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: [gelöst]Einfärben der Zellenränder einer Writer Texttabelle

Re: [gelöst]Einfärben der Zellenränder einer Writer Texttabe

von F3K Total » Mi, 31.10.2012 21:17

Hallo zusammen,
ich habe eine Lösung gefunden. Wenn ich statt des Cellranges wie hier

Code: Alles auswählen

dim oborder as new com.sun.star.table.BorderLine
ocellrange = otable.getcellrangebyposition(0,j,1,k)
    with oborder
        .Color = 13421772
        .OuterLineWidth = 25
    end with
    with ocellrange
        .TopBorder = oborder
        .LeftBorder = oborder
        .RightBorder = oborder
        .BottomBorder = oborder
    end with
die einzelnen Zellen direkt anspreche:

Code: Alles auswählen

for m = 0 to 1
   for n = 0 to 6
     ocell = onewcellrange.getcellbyposition(m,n)
      if n = 0 then ocell.TopBorder = oborder
      if m = 0 then ocell.LeftBorder = oborder
      if m = 1 then ocell.RightBorder = oborder
      if n = 6 then ocell.BottomBorder = oborder
   next n
next m
ist alles wie gewünscht.
Grüße von Rik

Re: Einfärben der Zellenränder einer Writer Texttabelle

von F3K Total » Mi, 31.10.2012 20:50

Hallo Balu,
balu hat geschrieben:Wenn ich dich jetzt richtg versteh, hast Du ein Problem mit der "ViewData"
Das weiss ich eben leider nicht. Ich kann nur beobachten, dass die Zellränder dann komplett eingefärbt werden, wenn ich zwischendurch z.B. Xray oder eine Messagebox öffne. Versuche mit dem ViewCursor ala

Code: Alles auswählen

    oViewCursor.jumpToFirstPage
    oViewCursor.jumpToStartOfPage
    oViewCursor.jumpToEndOfPage
    oViewCursor.jumpToLastPage
bringen insoweit eine Verbesserung, als dass nun alle Ränder richtig eingefärbt werden, wenn die Tabelle länger als die erste Seite ist. Befindet sich die Tabelle nur auf der ersten Seite, bleibt der Fehler.

Beste Grüße von Rik

Re: Einfärben der Zellenränder einer Writer Texttabelle

von balu » Mi, 31.10.2012 10:51

Hallo Rik,

nein, ich hab mir deine Dateien nicht angeschaut. Das nur am Rande.

Wenn ich dich jetzt richtg versteh, hast Du ein Problem mit der "ViewData", siehe auch meinen Thread dazu: Hidden-Datei kein Fenster fixierbar?. Dort hatten mir DPunch und Karolus mitgeteilt das dies nicht direkt geht, sondern eventuell nur mittels Stream-Zugriff auf die settings.xml.
Wie das allerdings mit dem streamen geht, weiß ich nicht, keine Ahnung. Aber da können dir wohl andere helfen, z.B. Karolus oder DPunch.

Es kann aber auch sein, das ich mit meiner Vermutung "ViewData" vollkommen daneben liege.

Vielleicht solltest Du mal anstatt mit Hidden lieber mit Minimized testen.



Gruß
balu

Re: Einfärben der Zellenränder einer Writer Texttabelle

von F3K Total » Mi, 31.10.2012 06:48

Hallo Karolus,
es handelt sich um den automatischen Export von etwa 20 Dateien, die direkt als .pdf gespeichert werden.
Wenn ich sie sichtbar öffne, flackern sie nacheinander auf den Schirm, werden gespeichert und wieder geschlossen.
Das sieht nicht schön aus. Darum möchte ich sie im Hintergrund öffen und bearbeiten. Sichtbar ist nur der wachsende Statusbalken: Datei 1/21, Datei 2/21 usw.

Gruß Rik

Re: Einfärben der Zellenränder einer Writer Texttabelle

von Karolus » Di, 30.10.2012 23:47

Hallo
Ich hab da ein Verständnissproblem - warum will man unsichtbaren Dingen irgendwelche optische Attribute zuordnen?

Kannst du das nicht zu dem Zeitpunkt machen wenn das Dok tatsächlich sichtbar geöffnet wird?

Karolus

[gelöst]Einfärben der Zellenränder einer Writer Texttabelle

von F3K Total » Di, 30.10.2012 22:04

Guten Abend zusammen,

mit meinem Makro habe ich folgendes Problem:
Ich öffne per Makro einen mit dem Reportbuilder erzeugten Bericht. Dieser Bericht ist ein reines Writer-Dokument.
Es enthält anstelle der Kontrollfelder, die im Bearbeitungsmodus des Berichts plaziert werden, Writer Tabellen, die z.B über

Code: Alles auswählen

otable = oReport.TextTables.getbyindex(2)
angesprochen werden können.
Einem Zellbereich einer Tabelle kann z.B. über

Code: Alles auswählen

dim oborder as new com.sun.star.table.BorderLine
ocellrange = otable.getcellrangebyposition(0,j,1,k)
    with oborder
        .Color = 13421772
        .OuterLineWidth = 25
    end with
    with ocellrange
        .TopBorder = oborder
        .LeftBorder = oborder
        .RightBorder = oborder
        .BottomBorder = oborder
    end with
die Farbe der Bereichsränder sowie die Strichstärke zugeordnet werden.
Das klappt wunderbar, wenn ich das Dokument sichtbar öffne.

Wenn ich es aber unsichtbar, im Hintergrund öffne, fehlen Randabschnitte, aber nur auf der ersten Seite des Berichtes.
Baue ich ein XRAY ein, oder schalte ich das Dokument einmal per

Code: Alles auswählen

oFrame = oreport.currentcontroller.frame
owindow = oframe.containerwindow
owindow.setVisible(true)
sichtbar, sind alle gewünschten Zellränder eingefärbt.
Der Fehler hängt irgendwie mit der nicht erzeugten Ansicht zusammen.
Hat jemand dazu eine Idee?

Anbei zwei Beispieldokumente, die mit dem gleichen Makro formatiert und gespeichert wurden.

Beste Grüße von Rik
Dateianhänge
unsichtbar_geladen.odt
(13.83 KiB) 68-mal heruntergeladen
sichtbar_geladen.odt
(13.58 KiB) 62-mal heruntergeladen

Nach oben