Seite 1 von 1

[Gelöst] Zahl statt String

Verfasst: Fr, 07.11.2008 16:26
von Ibanez
Mein Dialog enthält mehrere TextFields (1-5). Alles funktioniert dank der Hilfe einiger Cracks hier jetzt so wie ich mir das Vorstelle. Allerdings habe ich ein Problem. Ein Textfeld wird mit einer Zahl befüllt. Diese ist per Funktion mit einer anderen Tabelle verknüpft durch die man die Daten bekommt, die zu der Zahl gehören. In meinem Beispiel sind es Kundennr. Ich gebe die Nummer ein und siehe da, schon habe ich Name, Vorname, etc. an der Stelle an der ich Sie Brauche.

Da ich das ganze aber als TextField angelegt habe wird zwar in der Tabelle die Kundennr. angezeigt (bsp. 12345) in der Eingabezeile aber '12345.

Von der Funktion NumericField habe ich mir nun eine Lösung erhofft. Leider fehlt mir die Erfahrung mit diesen Feldern, da mir bisher Textfelder vollkommen ausgereicht haben.

Kann mir jemand kurz zeigen wie ich mein Makro dahingehend ändern muss. Das betroffene Feld ist das oTB3

Code: Alles auswählen

Sub Dlg_Felder1
	oDoc = thisComponent
	GlobalScope.BasicLibraries.LoadLibrary("Tools")
	DLG = LoadDialog("Standard", "Dlg_Felder1", oDoc.DialogLibraries)

	oTB1 = DLG.GetControl("TextField_Datum")
	oTB2 = DLG.GetControl("TextField_Zeit")
	oTB3 = DLG.GetControl("TextField_Kundennr")
	oTB4 = DLG.GetControl("TextField_Zweck")
	oTB5 = DLG.GetControl("TextField_Sonstiges")

   	oTB1.Model.Text = oDoc.Sheets(0).GetCellRangeByName("B2").String
   	oTB2.Model.Text = oDoc.Sheets(0).GetCellRangeByName("D2").String
  	oTB3.Model.Text = oDoc.Sheets(0).GetCellRangeByName("B4").String
  	oTB4.Model.Text = oDoc.Sheets(0).GetCellRangeByName("B7").String
  	oTB5.Model.Text = oDoc.Sheets(0).GetCellRangeByName("B8").String
 	  	  	
   	DLG.execute()
End Sub

Sub DLG_Felder_Schreiben1
	oDoc.Sheets(0).GetCellRangeByName("B2").String = oTB1.Model.Text
	oDoc.Sheets(0).GetCellRangeByName("D2").String = oTB2.Model.Text
	oDoc.Sheets(0).GetCellRangeByName("B4").String = oTB3.Model.Text
	oDoc.Sheets(0).GetCellRangeByName("B7").String = oTB4.Model.Text
	oDoc.Sheets(0).GetCellRangeByName("B8").String = oTB5.Model.Text
	DLG.endexecute()
End Sub
Soviel ich mir jetzt angelesen habe, sollte ich irgendwie den Baustein "Value" nutzen. Habe schon mal ein bisschen rumprobiert, bis auf einige Fehlermeldungen aber nichts erreicht :?

Grüße
Ibanez

Re: Zahl statt String

Verfasst: Fr, 07.11.2008 16:41
von Karolus
Hallo
Du liest die Kdnr. explizit als String ein, versuch mal:

Code: Alles auswählen

...
 oDoc.Sheets(0).GetCellRangeByName("B4").value = val(oTB3.Model.Text)
....
oder probier mal:
...("B4").formula = oTB3.Model.Text

Gruß Karo

Re: Zahl statt String

Verfasst: So, 09.11.2008 11:06
von Ibanez
Hi Karolous,

vielen Dank der COde funktioniert...ich habe einfach in der falschen Zeile rumopreriert und da wundere ich mich ständig warum Fehlermeldungen kommen :D

Gruß
Ibanez