Zellenformat in einer Writertabelle verändern

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

Moderator: Moderatoren

arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Zellenformat in einer Writertabelle verändern

Beitrag von arkadiuszpaluszek »

Hallo!

Ich versuche gerade in meiner Texttabelle das Format zur Ausgabe von Zahlen zu formattieren. Meine Double-Variablen erscheinen nämlich in der DB selbst als "0,00 €", wenn ich die Datenfelder aber mit "oErgSet.getDouble" auslese und in die Tabelle eintrage (oCell.String=meineVariable) erscheint die Zahl ohne Komma, ohne Eurozeichen, ohn nix eben.

Habe versucht es ähnlich wie in Calc handzuhaben:

Code: Alles auswählen

oBereich=oDoc.getCellRangeByName("D1:D4")
oBereich.NumberFormat=4
Scheint meiner Texttabelle zunächst mal egal zu sein, von diesem Code lässt sie sich nicht beeindrucken. Wenn nicht so, wie sonst?

Viele Grüße

Arek
F3K Total
********
Beiträge: 3706
Registriert: Mo, 28.02.2011 17:49

Re: Zellenformat in einer Writertabelle verändern

Beitrag von F3K Total »

Hallo Arek,
es handelt sich um "TextTables", die werden anders behandelt, es wird im Xray zwar ein CellRange angezeigt, läßt sich aber nicht bearbeiten.
Für die erste Zelle (A1) geht dieser Code:

Code: Alles auswählen

Sub S_get_texttables_Numberformat
  Dim oTextTables As Object
  Dim oObj_1 As Object
  Dim oCellRangeByPosition As Object
  Dim nNumberFormat As Long

  oTextTables = thisComponent.TextTables
  oObj_1 = oTextTables.getByName("Tabelle1"), es geht auch getbyindex z.B.: oObj_1 = oTextTables(0)
  oCellByPosition = oObj_1.getCellByPosition(0, 0)
  nNumberFormat = oCellByPosition.NumberFormat
  msgbox nNumberFormat
  oCellByPosition.NumberFormat = 106
 
End Sub
Gruß R
arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Re: Zellenformat in einer Writertabelle verändern

Beitrag von arkadiuszpaluszek »

Vielen Dank! Es funktioniert - ich konnte mit NumberFormat=4 zumindest sagen, dass ich gerne zwei Nachkommastellen hätte. Dann habe ich eine Tabelle geschaffen in der ich das Zahlenformat per Hand auf Währung eingestellte habe. Mit meinem Makro habe ich dann das Zahlenformat mir anzeigen lassen, angeblich wäre es 109. Wenn ich in meiner Rechnungsvorlage aber 109 eingebe, bekomme ich als Ergebnis nur eine ganze Zahl ohne Nachkommastellen! 106 und 108 habe ich noch probiert. Welcher wäre nun der Code für Währung mit einem Euro-Zeichen hinter der Zahl?

Gruß

Arek
Karolus
********
Beiträge: 7453
Registriert: Mo, 02.01.2006 19:48

Re: Zellenformat in einer Writertabelle verändern

Beitrag von Karolus »

LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
F3K Total
********
Beiträge: 3706
Registriert: Mo, 28.02.2011 17:49

Re: Zellenformat in einer Writertabelle verändern

Beitrag von F3K Total »

Karolus hat geschrieben:Hallo
Suchbegriff 'Numberformat' siehe Treffer 2ff

Karo
Hi,
ich habe genau das gemacht und konnte diesen Code zusammenbasteln:

Code: Alles auswählen

Sub S_Zelle_formatieren '1,00€
odoc = thisComponent
Dim Lokalformate as new com.sun.star.lang.Locale
numberformats = odoc.numberformats
numberformatstring = "#.##0,00 [$€-407];-#.##0,00 [$€-407]"
numberformatid = numberformats.queryKey(numberformatstring, Lokalformate, True)
if numberformatId = -1 then 'existiert noch nicht
numberformatId = numberformats.addNew(numberformatstring,Lokalformate)
end if

oTextTables = thisComponent.TextTables
oObj_1 = oTextTables.getByName("Tabelle1")' es geht auch getbyindex z.B.: oObj_1 = oTextTables(0)
oCellByPosition = oObj_1.getCellByPosition(0, 0)
oCellByPosition.NumberFormat = numberformatid
End Sub
Gruß R
Karolus
********
Beiträge: 7453
Registriert: Mo, 02.01.2006 19:48

Re: Zellenformat in einer Writertabelle verändern

Beitrag von Karolus »

Hallo

@F3K Total:
Du motivierst damit nicht gerade dazu, dass $Fragesteller seinen eigenen Grips bemüht !

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Re: Zellenformat in einer Writertabelle verändern

Beitrag von arkadiuszpaluszek »

Funktioniert, vielen Dank!

Gruß Arek
F3K Total
********
Beiträge: 3706
Registriert: Mo, 28.02.2011 17:49

Re: Zellenformat in einer Writertabelle verändern

Beitrag von F3K Total »

Hallo Karolus,
hatte mich zeitgleich damit beschäftigt und als ich fertig war, sah ich deinen Post.
Karolus hat geschrieben:@F3K Total:
Du motivierst damit nicht gerade dazu, dass $Fragesteller seinen eigenen Grips bemüht !
Ich kann dazu nur von mir sprechen:
Mir helfen anschauliche Beispiele beim Verstehen. Ich freue mich, wenn ich so einen Code finde und lerne beim Nachvollziehen.


Gruß R
arkadiuszpaluszek
****
Beiträge: 117
Registriert: So, 09.05.2010 09:53
Wohnort: Coburg
Kontaktdaten:

Re: Zellenformat in einer Writertabelle verändern

Beitrag von arkadiuszpaluszek »

Lieber f,

Du solltest lieber Deinen Grips zur Lösung Deiner eigenen Programmierprobleme verwenden als in Frage zu stellen, ob es sinnvoll ist jemandem zu helfen.

Ich bin FK3 total für seine immer sehr praktischen, nachvollziehbaren und somit für mich eben auch sehr lehrreichen Beispiele sehr dankbar! Weiterhin benutze ich durchaus die Suchfunktion des Forums, habe zu Hause genug Fachliteratur (wie eben z.B. den berühmten "Krummbein") und wende mich dennoch immer wieder ans Forum mit Fragen - weil auch meine mir zur Verfügung stehende Zeit sehr, sehr beschränkt ist. Ich programmiere zu gemeinnützigen Zwecken und nicht nur aus Hobby, und bin wirklich für jede Hilfe froh die mir hilft voranzukommen.

MfG

Arek
Antworten