Mit Makro TextBox einlesen

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Benutzeravatar
spencer
*
Beiträge: 14
Registriert: Do, 26.03.2009 13:21

Mit Makro TextBox einlesen

Beitrag 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
MfG

Spencer
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Mit Makro TextBox einlesen

Beitrag von eBayer »

schau doch mal hier nach: http://www.thomas-wollmann.de/?p=27
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
spencer
*
Beiträge: 14
Registriert: Do, 26.03.2009 13:21

Re: Mit Makro TextBox einlesen

Beitrag 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.
MfG

Spencer
Benutzeravatar
komma4
********
Beiträge: 5332
Registriert: Mi, 03.05.2006 23:29
Wohnort: Chon Buri Thailand Asia
Kontaktdaten:

Re: Mit Makro TextBox einlesen

Beitrag 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!
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Benutzeravatar
spencer
*
Beiträge: 14
Registriert: Do, 26.03.2009 13:21

Re: Mit Makro TextBox einlesen

Beitrag 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.
MfG

Spencer
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Mit Makro TextBox einlesen

Beitrag 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
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
spencer
*
Beiträge: 14
Registriert: Do, 26.03.2009 13:21

Re: Mit Makro TextBox einlesen

Beitrag 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
MfG

Spencer
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Mit Makro TextBox einlesen

Beitrag 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
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
spencer
*
Beiträge: 14
Registriert: Do, 26.03.2009 13:21

Re: Mit Makro TextBox einlesen

Beitrag 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.
MfG

Spencer
Benutzeravatar
spencer
*
Beiträge: 14
Registriert: Do, 26.03.2009 13:21

Re: Mit Makro TextBox einlesen

Beitrag 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:
MfG

Spencer
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Mit Makro TextBox einlesen

Beitrag 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"
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Benutzeravatar
spencer
*
Beiträge: 14
Registriert: Do, 26.03.2009 13:21

Re: Mit Makro TextBox einlesen

Beitrag von spencer »

hehe und es klappt wieder. . . nochmals danke. kennst du irgend welche seiten, wo ich einen schnellen einstieg in basic bekomme?
MfG

Spencer
eBayer
******
Beiträge: 556
Registriert: Do, 04.12.2008 14:33
Wohnort: Augsburg

Re: Mit Makro TextBox einlesen

Beitrag 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
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Antworten