Hi,
Ich nöchte die ermittelten "Point to Point" Meter aus L3 al "Ges.-Km" nach O3 schreiben.
oZelle = oSheet.getCellByPosition (11,x)
oZelle.numberFormat(2)
oZelle.Value = nPoint_Dif
nPoint_Dif_Zae = nPoint_Dif_Zae + (nPoint_Dif /1000)
Print nPoint_Dif, nPoint_Dif_Zae ->Inhalte der Variablen werden korrekt angezeigt.
oZelle = oSheet.getCellByPosition (14,x)
oZelle.numberFormat(2)
oZelle.Value = ??Point_Dif_Zae
Zellformat und Type habe ich ausgelesen.
Die Splte ist al Dezimalzahl mit 4 nachkommastellen vorformatiert.
Hat jemand eine Idee was los sein könnte.
Grüße Ulrich
🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
GELÖST: Addition wird nich in Zelle geschrieben
GELÖST: Addition wird nich in Zelle geschrieben
Zuletzt geändert von Ulrich am Do 16. Jan 2020, 20:06, insgesamt 1-mal geändert.
Re: Addition wird nich in Zelle geschrieben
Hallo Ulrich,
der NumberFormat wird nicht korrekt zugewiesen.
Ausserdem findet keine Prüfung statt, ob der betreffende
NumberFormat-Schlüssel bereits existiert.
Das kann zu Problemen z.B. in Form von Laufzeitfehler führen.
Die angegebene Konstante (2) ist also falsch.
Beispiel Code zum zuweisen des NumberFormats und
zum anzeigen des NumberFormat-Schlüssels.
Lese auch die Kommentare im Code.
der NumberFormat wird nicht korrekt zugewiesen.
Ausserdem findet keine Prüfung statt, ob der betreffende
NumberFormat-Schlüssel bereits existiert.
Das kann zu Problemen z.B. in Form von Laufzeitfehler führen.
Code: Alles auswählen
oZelle.numberFormat(2)
Beispiel Code zum zuweisen des NumberFormats und
zum anzeigen des NumberFormat-Schlüssels.
Code: Alles auswählen
Dim oLocalSettings As New com.sun.star.lang.Locale
REM !!!!!!!!!!!!!!!!!!!!!!!!!!!
REM Damit der nachfolgende Code funktioniert, muss diese
REM noch um die Dokument, Sheet und Zellreferenzen erweitert werden!
REM oDoc=ThisComponent
REM oSheet= ...
REM oZelle = ...
REM !!!!!!!!!!!!!!!!!!!!!!
oLocalSettings.language = "de"
oLocalSettings.country = "de"
oNumberFormats = thiscomponent.numberFormats
REM NumberFormat = 3 Nachkommastellen
lKey = oNumberFormats.queryKey("0,000", oLocalSettings , true)
REM Wenn der NumberFormat-Schlüssel nicht existiert = -1,
REM dann NumberFormat-Schlüssel neuanlegen
If lKey = -1 then
lKey = oNumberFormats.addNew("0,000", oLocalSettings)
end if
REM NumberFormat-Schlüssel der Zelle zuweisen
oCell.NumberFormat = lKey
REM Lasse Dir per Print-Anweisung die Format-
REM konstante anzeigen, dann erkennst Du, dass
REM oZelle.numberFormat(2)
REM falsch ist.
Print lKey
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Re: Addition wird nich in Zelle geschrieben
Hi Craig,
bisher habe ich mich an die Info über die Formateinstellung an die ausführliche
Beschreibung von Dannenhoefer orientiert.
Nun habe ich deine Empfehlung eingebaut und mit Print überbrüft. Jetzt läuft auch die zusätzliche Spalte rund.
Bei der Überprüfung mit Print wurden unterschiedliche Antworten gegeben. Für "Standard-Dezimalzahl "20002", für die festgelegten nachkommastellen "20107".
Wo finde ich Info über die Formstierungswerte mit Angaben wie die zu verwenden sind.
Grüße Ulrich
bisher habe ich mich an die Info über die Formateinstellung an die ausführliche
Beschreibung von Dannenhoefer orientiert.
Nun habe ich deine Empfehlung eingebaut und mit Print überbrüft. Jetzt läuft auch die zusätzliche Spalte rund.
Bei der Überprüfung mit Print wurden unterschiedliche Antworten gegeben. Für "Standard-Dezimalzahl "20002", für die festgelegten nachkommastellen "20107".
Wo finde ich Info über die Formstierungswerte mit Angaben wie die zu verwenden sind.
Grüße Ulrich
Re: GELÖST: Addition wird nich in Zelle geschrieben
Hallo Ulrich,
Ulrich hat geschrieben:bisher habe ich mich an die Info über die Formateinstellung an die ausführliche
Beschreibung von Dannenhoefer orientiert.
- Dazu merke ich als erstes an, dass die Seite sehr gut ist.
Aber auch etwas betagt, besonders wenn es um LibreOffice geht.
Die API von OpenOffice und LibreOffice bewegen sich langsam, aber sicher
auseinander. Dies fürht dazu, dass eigene Programme unter LibreOffice
einwandfrei laufen, aber in OpenOffice nicht und umgekehrt. - Wenn Du den Code vo Dannenhöfer nutzt, dann musst Du diesen auch
genauso verwenden.
In Deinem Code:Bei Dannenhöfer so:Code: Alles auswählen
oZelle.numberFormat(2)
Damit meine ich nicht den Namen der Variablen (myCell oder oZelle),Code: Alles auswählen
mycell.NumberFormat=0
sondern die Anweisung ".NumberFormat=0", oder auch ".NumberFormat=2",
Auf der Seite wo dieses steht, sind auch einige CellFlags (NumberFormat Konstanten")aufgelistet.
Wenn nun ein eigenes Format (z.B. 3 Nachkommastellen) generiert werden soll,
dann muss dieses erst im Code vorbereitet werden.
Ebenso, wie ich es in meinem Beispielcode beschrieben habe. - Daraufhin wird eine neue Konstante angelegt.
Bei Dir war es: 20107
Wenn ich den Code ausführe, dann ist es die Konstante: 10107
Wie hier die Zusammenhänge sind, kann ich nicht genau sagen.
Ich vermute, dass die nächstfreie Konstante genommen wird,
um neue Zahlenformate zu zuweisen.
Bei der zuvor verlinkten Dannenhöfer-Seite, siehst Du unter "Währung"
die Schlüssel/ Konstanten 106 | 108 | 109 | 110
107 fehlt.
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.