NumericField in Basic

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

Moderator: Moderatoren

mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

NumericField in Basic

Beitrag von mike6 »

Hallo,

ich habe in CALC eine Basic-Dialogfeld über das ich Daten
in ein Calc-Tabellenblatt übertrage.

Nun tritt folgendes Problem auf:

In das NumericField gebe ich z.B. 100,00 ein.
Nach dem Übertrag in die Calc Tabelle steht zwar in
der entsprechenden Zelle 100,00 aber als Format
mit einem vorangestellten Apostroph, also

'100,00

Wo muss ich was einstellen, damit die Zahl 100,00 als "Zahl" in
die Calc-Tabelle eingetragen wird?


mfg
mike6
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Eine Zelle hat veschiedene Properties für Variablentypen:

zelle.string für Text

zelle.value für Zahlen

zelle.formula wenn der String eine Formel ist


mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Beitrag von mike6 »

Hallo Michael,

vielen Dank. Klappt!


mfg
mike6
mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Beitrag von mike6 »

Hallo,

ich habe noch eine Nachfrage.

Mit dem Makro :

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Sub Daten_in_Vordruck_uebernehmen
Dim oSheet as Object

' Sheet Seite1 oSheet zuweisen
oSheet = ThisComponent.Sheets.getByName("Seite1")

' Daten eintragen in Zelle E59 1 VORSCHUSS ***** Die Daten werden als "Zahl" übernommen *****
oSheet.getCellbyPosition(4,58).Value = Int(oDialog.GetControl ("NumericField9").getText())

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Das Numeric Feld ist formatiert:
Min.Wert = 0,00
Max.Wert = 100.000,00



Wenn ich in das Basic Fenster 30.000,00 eingebe und das Makro starte,
steht in der Zelle E 59 statt 30.000,00 nur 30.
Es wird also das Zahlenformat geändert.
Kann ich das Zahlenformat noch im o.a. Makro unterbringen ""


mfg
mike6
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Hi,

es gilt wie beim Schreibem in Zellen: Text <> Value

Du mußt getValue() verwenden.

oSheet.getCellbyPosition(4,5 Cool.Value = Int(oDialog.GetControl ("NumericField9").getValue())

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Beitrag von mike6 »

Hallo,

erst mal vielen Dank für die Hilfe.

Es gibt aber noch folgendes Problem:

Bei der Eingabe von z.B. 10.000,00 erscheint 10.000,00.
Bei der Eingabe von 10.000,37 erscheint aber ebenfalls 10.000,00.

Es werden also die letzen beiden Kommastellen abgeschnitten.

Gibt es dafür auch noch eine Lösung?

mfg
mike6
ykcim
*****
Beiträge: 324
Registriert: Di, 29.07.2003 15:22
Wohnort: Neu-Isenburg
Kontaktdaten:

Beitrag von ykcim »

Was macht int() mit dem Wert?
Value = Int(oDialog.GetControl ("NumericField9").getValue())
Sieht nach einer Integerwandlung aus.

mfg
Michael
__
FAQ zu Starbasic -> http://www.starbasicfaq.de
mike6
*****
Beiträge: 479
Registriert: Sa, 06.03.2004 13:58

Beitrag von mike6 »

Hallo Michael,

lag wirklich an Int.
Weglassen und in die Zelle wird der richtige Wert eingetragen.

mfg
mike6
Antworten