Sowohl MySQL als auch StarBasic kennen einen Datentyp für kaufmännische Genauigkeit (Decimal bzw. Currency). Aber in der API-Referenz gibt es keine passende Methode, um die Werte zu übernehmen. Wird etwa mit getDouble die Genauigkeit erhalten? (Das kann ich mir eigentlich nicht vorstellen.) Oder kann mit getObject, getBytes oder getLong getrickst werden?
Hintergrund: Die Daten werden in einem Base-Formular eingegeben. Diese Werte möchte ich innerhalb eines Makros auswerten. Notfalls geht es über ein UPDATE mit nachfolgendem SELECT über eine berechnete Spalte; aber wenn die Werte schon im Base-Formular sind, wäre ein direktes Berechnen angemessen.
Jürgen
LibreOffice Version 3.6.2.2 (Build ID: da8c1e6)
Moderation,4: verschoben in BASIC-Unterbereich, wo alle Makro-Fragen hin gehören; Betreff angepasst
Sorry, das war ein Versehen. Selbstverständlich ist das eine Basic-Frage. Jürgen
BASE: Datentyp currency und oForm.getXXX
Moderator: Moderatoren
BASE: Datentyp currency und oForm.getXXX
Zuletzt geändert von juetho am Di, 23.10.2012 12:24, insgesamt 1-mal geändert.
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
Re: BASE: Datentyp currency und oForm.getXXX
Ich habe es jetzt mit getDouble realisiert, habe aber meine Zweifel, ob das mit der Genauigkeit ausreichend sicher ist. Aufgabe: Kontrolliere in der Buchhaltung, ob für alle Teile Summe(Soll) gleich Summe(Haben) gilt.
Jürgen
Code: Alles auswählen
Dim isumme as Currency
isumme = 0
oForm.first
do
isumme = isumme + oForm.getDouble(6) - oForm.getDouble(7)
loop while oForm.next
bvalid = (isumme = 0)
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC