von Karolus » Di, 26.12.2006 21:49
Hallo Johannes
Nein du hast nichts übersehen , eine Formatierung einer Zahl mit einem Komma hinter der Hunderterstelle rechnet die Zahl natürlich nicht um, und ist daher eher ungeeignet.
Oder hat jemand eine Idee, wie man sich diesem Thema "progammiertechnisch" nähern könnte?
Ja, da gibt es reichlich Ideen, aber die beruhen alle auf Makroprogrammierung, ergo müsstest du zumindest die Bereitschaft zeigen, diese einzusetzen.
Folgendes Makro schliest eine Eingabe ab, dividiert einen eingegebenen Zahlenwert durch hundert und formatiert auf Eurowährung mit 2 Kommastellen.
Wenn du dies über ->Extras->Anpassen->Tastatur einer Tastenkombi zuweist, hast du eigentlich alles was du dir wünscht.
Code: Alles auswählen
Sub Eurodurchhundert
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "By"
args1(0).Value = 1
args1(1).Name = "Sel"
args1(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args1())
myDoc = thisComponent
mycell= mydoc.getcurrentSelection()
if mycell.value = 0 then dispatcher.executeDispatch(document, ".uno:GoDown", "",0,args1()) : exit sub '^Zeilenumbruch entfernen !!
mycell.value=mycell.value /100
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "NumberFormatValue"
args2(0).Value = 106
dispatcher.executeDispatch(document, ".uno:NumberFormatValue", "", 0, args2())
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
end sub
Gruß Karo
Hallo Johannes
Nein du hast nichts übersehen , eine Formatierung einer Zahl mit einem Komma hinter der Hunderterstelle rechnet die Zahl natürlich nicht um, und ist daher eher ungeeignet.
[quote]Oder hat jemand eine Idee, wie man sich diesem Thema "progammiertechnisch" nähern könnte? [/quote]
Ja, da gibt es reichlich Ideen, aber die beruhen alle auf Makroprogrammierung, ergo müsstest du zumindest die Bereitschaft zeigen, diese einzusetzen.
Folgendes Makro schliest eine Eingabe ab, dividiert einen eingegebenen Zahlenwert durch hundert und formatiert auf Eurowährung mit 2 Kommastellen.
Wenn du dies über ->Extras->Anpassen->Tastatur einer Tastenkombi zuweist, hast du eigentlich alles was du dir wünscht.
[code]Sub Eurodurchhundert
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "By"
args1(0).Value = 1
args1(1).Name = "Sel"
args1(1).Value = false
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
dispatcher.executeDispatch(document, ".uno:GoUp", "", 0, args1())
myDoc = thisComponent
mycell= mydoc.getcurrentSelection()
if mycell.value = 0 then dispatcher.executeDispatch(document, ".uno:GoDown", "",0,args1()) : exit sub '^Zeilenumbruch entfernen !!
mycell.value=mycell.value /100
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "NumberFormatValue"
args2(0).Value = 106
dispatcher.executeDispatch(document, ".uno:NumberFormatValue", "", 0, args2())
dispatcher.executeDispatch(document, ".uno:GoDown", "", 0, args1())
end sub[/code]
Gruß Karo