Programmierung unter AOO/LO (StarBasic, Python, Java, ...)
Moderator: Moderatoren
kannenklaus
*****
Beiträge: 319 Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt
Beitrag
von kannenklaus » Mo, 23.11.2015 14:02
Hallo
kann ich mit Basic auch ein benutzerdefiniertes Zahlenformat erstellen? Ich möchte, dass im Zellbereich B2:B2000 die Zahlen so "4,5 h" erscheinen. Der Code geht nicht.
Code: Alles auswählen
calcDoc=thisComponent
oRange=calcDoc.sheets(0).getCellRangeByName("b2:b2000")
oRange.NumberFormat = "#,# h"
Danke für Eure Hilfe
Zuletzt geändert von
kannenklaus am Sa, 28.11.2015 20:18, insgesamt 1-mal geändert.
Karolus
********
Beiträge: 7533 Registriert: Mo, 02.01.2006 19:48
Beitrag
von Karolus » Mo, 23.11.2015 14:54
Hallo
Code: Alles auswählen
from com.sun.star.uno import RuntimeException
def set_format(*_):
doc = XSCRIPTCONTEXT.getDocument()
KEY = '#,# "h"'
numformats = doc.NumberFormats
locale = doc.CharLocale
cellrange = doc.Sheets.getByIndex(0).getCelRangeByName('B2:B2000')
try:
numformats.addNew(KEY, locale )
except RuntimeException:
pass
cellrange.NumberFormat = numformats.queryKey( KEY ,locale, False)
Achtung python - entsprechend benutzen oder nach basic übersetzen.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
kannenklaus
*****
Beiträge: 319 Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt
Beitrag
von kannenklaus » Mo, 23.11.2015 15:24
Hallo Karolus,
habe das umgesetzt leider ohne Wirkung
Code: Alles auswählen
Sub BenutzerFormat
calcDoc=thisComponent
KEY = "#,# h"
numformats = calcDoc.NumberFormats
locale = calcDoc.CharLocale
oRange = calcDoc.Sheets.getByIndex(0).getCellRangeByName("B2:B2000")
myFormat = numformats.queryKey( KEY ,locale, False)
oRange.NumberFormat = myFormat
end sub
Karolus
********
Beiträge: 7533 Registriert: Mo, 02.01.2006 19:48
Beitrag
von Karolus » Mo, 23.11.2015 16:01
Hallo
Nein, stumpf abgeschrieben hast du --
KEY = "#,# ""h"""
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
kannenklaus
*****
Beiträge: 319 Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt
Beitrag
von kannenklaus » Mo, 23.11.2015 16:18
KEY = "#,# ""h"""
Dann kommen nur Zahlen und kein "h"
Karolus
********
Beiträge: 7533 Registriert: Mo, 02.01.2006 19:48
Beitrag
von Karolus » Mo, 23.11.2015 17:02
kannenklaus hat geschrieben: KEY = "#,# ""h"""
Dann kommen nur Zahlen und kein "h"
Das ist nicht mehr mein Problem, im der ersten Antwort steht eine getestete und funktionierende Lösung.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Stephan
********
Beiträge: 12368 Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin
Beitrag
von Stephan » Mo, 23.11.2015 18:45
habe das umgesetzt leider ohne Wirkung
das Format das Du verwenden willst ist kein Format das in den innerhalb von OO schon vorhandenen Formaten existiert, es muss also erst zu diesen Formaten hinzugefügt werden bevor es angewendet werden kann
Code: Alles auswählen
Sub BenutzerFormat
calcDoc=thisComponent
KEY = "#,# ""x"""
numformats = calcDoc.NumberFormats
locale = calcDoc.CharLocale
oRange = calcDoc.Sheets.getByIndex(0).getCellRangeByName("B2:B2000")
myFormat = numformats.queryKey( KEY ,locale, True)
If myFormat = -1 Then
myFormat = numformats.addNew(KEY, locale)
End If
oRange.NumberFormat = myFormat
end Sub
Gruß
Stephan
kannenklaus
*****
Beiträge: 319 Registriert: Mi, 14.12.2005 08:08
Wohnort: freising - oder dort, wo das bier herkommt
Beitrag
von kannenklaus » Di, 24.11.2015 08:36
Hallo Stephan, danke jetzt läuft es