Texttabellenfelder formatieren
Moderator: Moderatoren
Texttabellenfelder formatieren
Hallo,
über ein Makro werden Zeilen aus einer Textdatei in eine Texttabelle (Writer!) kopiert. Nun möchte ich einzelne Felder der Tabelle gern per Basic formatieren (Ausrichtung, Zeichenformat,...). Könnte mir bitte jemand sagen, wie man die Zelleneigenschaften setzt?
Danke schon mal!
stoni
über ein Makro werden Zeilen aus einer Textdatei in eine Texttabelle (Writer!) kopiert. Nun möchte ich einzelne Felder der Tabelle gern per Basic formatieren (Ausrichtung, Zeichenformat,...). Könnte mir bitte jemand sagen, wie man die Zelleneigenschaften setzt?
Danke schon mal!
stoni
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Texttabellenfelder formatieren
..ich glaube, dass ich Dir diese Antwort schonmal gab: zum Bearbeiten von Texttabellen siehe ATL2 - AutoTextListe2
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Texttabellenfelder formatieren
ja, das ist richtig. Nur muss ich gestehen, dass ich damit keine Antwort auf meine Frage gefunden habe.
Ich habe mit
getestet - aber ohne Erfolg (auch keine Fehlermeldung). Nach meinen Recherchen soll NumberFormat=4 das Format #.##0,00 erzeugen...
stoni
Ich habe mit
Code: Alles auswählen
oRange = oTab.getCellRangeByName("D" & iZeile & ":F" & iZeile)
oRange.NumberFormat = 4
stoni
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Texttabellenfelder formatieren
Woher nimmst Du das?stoni hat geschrieben: Nach meinen Recherchen soll NumberFormat=4 das Format #.##0,00 erzeugen...
Zum Problem:
Xray sagt mir, dass die Eigenschaft .NumberFormat im Kontext nicht existiert.
Fügst Du reine nummerische Werte ein? Wie?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Texttabellenfelder formatieren
PDF-Dokument im Internet gefunden:komma4 hat geschrieben:Woher nimmst Du das?
"... Und die Zahlenspalte soll ebenfalls nicht ganz rechts „hängen“, sondern mit einem entsprechenden Abstand. Außerdem soll das Zahlenformat die Form „#.##0,00“ erhalten, also mit Tausender-Trennzeichen, Dezimaltrenner und zwei Nachkommastellen. Hierzu wird ein entsprechender Formatcode (dieser ist identisch bei dem von Calc verwendeten Formatcode) zugewiesen. Das gewünschte Format hat den Code 4:"
Code: Alles auswählen
REM zweite Spalte formatieren
oSpEuro = oTab.getCellRangeByName("B2:B" & oRows.getCount())
oSpEuro.NumberFormat = 4
oSpEuro.ParaRightMargin = 500
end sub
Interessanterweise sind diese Codezeilen im aktuellen Buch "Makros in OpenOffice.org" (2. Auflage) von Thomas Krumbein nicht mehr vorhanden...
Also ich habe einen Auswahldialog erstellt, aus dem man sich vordefinierte Texttabellenvorlagen auswählen kann. Diese Vorlagen sind aber sehr unterschiedlich, mal kann z.B. die Spalte [Preis] in der 3. und mal in der 5 Spalte stehen. Nun habe ich ein separates Makro zum Zeile einfügen erstellt das in Abhängigkeit der gewählten Texttabellenvorlage die eingefügte Zeile (bzw. einzelne Zellen der Zeile) formatieren soll. Z.B. suche ich auch nach der Möglichkeit, per Code den Zellschutz für eine Zelle zu setzen.komma4 hat geschrieben:Fügst Du reine nummerische Werte ein? Wie?
Viele Güße
stoni
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Texttabellenfelder formatieren
Es bleibt dabei: mit der hier verwendeten 2.4.0 kann ich NumberFormat setzen, wie ich möchte, das funktioniert nicht wie erwartet (Bug?).
Ich verwende bei den Tests die Konstanten aus com.sun.start.util.NumberFormat, dort ist
4 = TIME
und
8 = CURRENCY
Da Du in der BASE-Sektion schreibst: verwendes Du eine Datenquelle? Eine Abfrage?
Ich nutze die Formatierungsmöglichkeiten einer Abfrage, um die Ergebnisspalte "einfach" als Text einzufügen:
SELECT ... to_char( t091_rechnung.netto, '99G999D99 L' ) ...
[PostgreSQL-Syntax!]
Vielleicht ist das für Dich auch eine Lösung?!
Ich verwende bei den Tests die Konstanten aus com.sun.start.util.NumberFormat, dort ist
4 = TIME
und
8 = CURRENCY
Da Du in der BASE-Sektion schreibst: verwendes Du eine Datenquelle? Eine Abfrage?
Ich nutze die Formatierungsmöglichkeiten einer Abfrage, um die Ergebnisspalte "einfach" als Text einzufügen:
SELECT ... to_char( t091_rechnung.netto, '99G999D99 L' ) ...
[PostgreSQL-Syntax!]
Vielleicht ist das für Dich auch eine Lösung?!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Texttabellenfelder formatieren
ein Teil der Zelleninhalte wird über eine Abfrage gefüllt - ich werde versuchen, Deine Lösung mal auszuprobieren. Dann brauche ich "nur noch" eine Lösung, wie ich einzelne Zellen per Code schützen kann. Über das Menü Zeile -> Zelle schützen kann ich einzelne Zellen der Texttabelle manuell schützen, dann müsste es doch auch eine (Zell-)Eigenschaft geben, die man per Code zuweisen kann?
Viele Grüße
stoni
Viele Grüße
stoni
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Texttabellenfelder formatieren
Natürlich 
Richtig erkannt: ist eine Zell-Eigenschaft - über RANGE kommst Du nicht weiter, aber so:

Richtig erkannt: ist eine Zell-Eigenschaft - über RANGE kommst Du nicht weiter, aber so:
Code: Alles auswählen
oZelle = oTabelle.getCellByName( "B2" )
oZelle.isProtected = TRUE
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Texttabellenfelder formatieren
Vielen Dank! Genau das hatte ich gesucht.
Ciao
stoni

Ciao
stoni