Seite 1 von 1

Mit Makro TextBox einlesen

Verfasst: Mo, 06.04.2009 13:24
von spencer
Hallo,
leider habe ich nocht nicht die passende Antwort gefunden oder erhalten (Suchfunktion benuzt), deshalb versuche ich es noch mal. Bin absoluter neuling, deshalb bitte ich um Geduld :-) ...ich habe ein Makro dort will ich ein Textfeld einlsen und den Inhalt dann an eine serielle Schnittstelle senden. So sieht mein Quelltext aus:

Sub main

Dim sendstr as string

oObj = createUnoService("org.openoffice.comp.rsapi")
oObj.setdevice("COM1")

sendstr = ("*G1$C1$T") 'vorbelegung
sendstr = sendstr & TextBox 'hier soll der erste Datensatz aus der Box gesendet werden
sendstr = sendstr & ("$F")
sendstr = sendstr & TextBox1 'hier soll der zweite Datensatz aus der Box gesendet werden
sendstr = sendstr & chr(10)&chr(13)

oObj.opencom("9600,8,2")
a = oObj.rts(1)

oObj.sendstring(sendstr)

oObj.closecom()

Danke MfG
spencer

Re: Mit Makro TextBox einlesen

Verfasst: Mo, 06.04.2009 14:55
von eBayer
schau doch mal hier nach: http://www.thomas-wollmann.de/?p=27

Re: Mit Makro TextBox einlesen

Verfasst: Mo, 06.04.2009 15:24
von spencer
damit kann ich nicht so viel anfangen. Ich möchte nur wissen, wie ich die Daten aus dem Textfeld bekomme und dann senden kann. Das normale Senden funktioniert wunderbar.

Re: Mit Makro TextBox einlesen

Verfasst: Mo, 06.04.2009 15:31
von komma4
spencer hat geschrieben:wie ich die Daten aus dem Textfeld bekomme
Was für ein Textfeld?
Writer-Feldfunktion, Dialog oder Formular?

Für alle drei Möglichkeiten solltest Du auch Beispiele im BASIC-Bereich finden...



Viel Erfolg!

Re: Mit Makro TextBox einlesen

Verfasst: Mo, 06.04.2009 15:41
von spencer
ich habe ein Formular. Dort befinden sich mehrere Textfelder , die sich wiederum auf eine Tablle beziehen. Um den Datensatz jetzt an die serielle Schnittstelle senden zu können, brauche ich die Daten aus den Textfeldern bzw aus der Tabelle.

Re: Mit Makro TextBox einlesen

Verfasst: Mo, 06.04.2009 16:25
von eBayer
So kannst Du auf die Felder Deines Formulars per Makro zugreifen:

Sub Senden
Dim oDoc As Object. oForm As Object, oControl As Object, sText1 As String, sText2 As String, sReturn As String
oDoc = thisComponent
oForm = oDoc.drawpage.forms.getbyindex(0) ' gibt Dir Dein aktuelles Formular als Object
oControl = oForm.getByName("Feldname1") ' gibt Dir Das entsprechende Eingabefeld des Formulars als Object
sText1 = oControl.text ' gibt Dir den Inhalt (Text) vom Object oControl
oControl = oForm.getByName("Feldname2") ' gibt Dir Das entsprechende Eingabefeld des Formulars als Object
sText2 = oControl.text ' gibt Dir den Inhalt (Text) vom Object oControl
msgbox sText ' und so kannst Du den Text zu Testzwecken anzeigen. Ist natürlich im normalen Ablauf nicht notwendig.
' Nun brauchst Du doch nur sText nach Com übertragen....
sReturn = Senden2Com(sText1, sText2)
msgbox sReturn
End Sub

Function Senden2Com(sOut1, sOut2)
Dim sendstr As string, oObj As Object, Dim a
oObj = createUnoService("org.openoffice.comp.rsapi")
oObj.setdevice("COM1")
sendstr = ("*G1$C1$T") 'vorbelegung
sendstr = sendstr & sOut1
sendstr = sendstr & ("$F")
sendstr = sendstr & sOut2
sendstr = sendstr & chr(10)&chr(13)
oObj.opencom("9600,8,2")
a = oObj.rts(1)
oObj.sendstring(sendstr)
oObj.closecom()
' Falls Fehler an Senden zurückgemeldet werden soll kannst Du das hier machen:
Senden2Com = "meine Fehlermeldung"
End Function

Etwas umständlich, aber so besser nachzuvollziehen.
Hilft Dir das weiter?
Gruß eBayer

Re: Mit Makro TextBox einlesen

Verfasst: Di, 07.04.2009 11:11
von spencer
viel Dank erst mal für die Mühe. Das sieht ja so schon ganz gut aus nur bekomme ich in der zweiten Zeile bei "As Objekt." eine Fehlermeldung: Erwarte: ,. ... ersetze ich den Punkt durch ein Komma, meckert er an der 15ten Zeile " As Object, Dim a". Dort erwartet er ein Symbol




MfG

Re: Mit Makro TextBox einlesen

Verfasst: Di, 07.04.2009 13:06
von eBayer
Naja, Du sollst ja auch noch was zum denken haben..... ;-)
Der Punkt war natürlich ein Tippfehler.... Komma ist richtig.
Ich weiß nicht, was Du mit der Variablen a tust.
Du kannst sie ja als Objct definieren. Dim a As Object einfach in die nächste Zeile und in der Zeile wo es jetzt steht, dim a und das Komma davor löschen.
Falls Du den Code einfach nur von hier kopiert hast, kann da natürlich auch ein unsichtbares Zeichen hineingeraten sein.
Das mußt Du einfach austesten.
Viel Erfolg und Gruß
eBayer

Re: Mit Makro TextBox einlesen

Verfasst: Mi, 08.04.2009 09:37
von spencer
Haha sauber, nach ein bischen fummeln geht es. Vielen Dank, jetzt fällt mir eine last von den Schultern .... Hab es jetzt alles noch ein bischen angepasst.

Re: Mit Makro TextBox einlesen

Verfasst: Mi, 08.04.2009 11:45
von spencer
och :( will jetzt einfach nur ein neues Textfeld erzeugen und dann den gesendeten String dort auszeigen lassen. Habe eine TextBox erstellt (TextBox10). Dann wollte ich sie, wie oben als Objekt deklarieren. Nur wie bekomme ich jetzt den String da rein ? :lol:

Re: Mit Makro TextBox einlesen

Verfasst: Mi, 08.04.2009 12:01
von eBayer
Es ist immer der gleiche Weg:


oForm = oDoc.drawpage.forms.getbyindex(0) ' gibt Dir Dein aktuelles Formular als Object
oControl = oForm.getByName("Feldname1") ' gibt Dir Das entsprechende Eingabefeld des Formulars als Object
sText1 = oControl.text ' gibt Dir den Inhalt (Text) vom Object oControl

oder umgekehrt.....
oControl.text = "neuer Inhalt"

Re: Mit Makro TextBox einlesen

Verfasst: Mi, 08.04.2009 12:45
von spencer
hehe und es klappt wieder. . . nochmals danke. kennst du irgend welche seiten, wo ich einen schnellen einstieg in basic bekomme?

Re: Mit Makro TextBox einlesen

Verfasst: Mi, 08.04.2009 14:17
von eBayer
Schau mal hier nach:
http://www.dannenhoefer.de/faqstarbasic/
http://www.wienandt.de/seiten/openoffice.htm
Dort steht schon eine ganze Menge und vor allen Dingen findest Du dort weiterführende Links.
Weiter viel Spaß
eBayer