Ergebnis in Textfeld ausgeben (Insert?)
Moderator: Moderatoren
Ergebnis in Textfeld ausgeben (Insert?)
Hi Leute, habe folgende Anfängerfrage:
in einem Writerdokument habe ich ein paar Textfelder definiert, über die ich Daten eingelesen und mit ihnen gerechnet habe (ooBasic). Nun möchte ich das Ergebnis (steht in der Variablen "LAZ") in das Writer-doc zurück in ein bereits vorhandenes Textfeld "txtLAZ" ausgeben. Und da genau hörts bei mir auf. Mit diversen PDFs und der Hilfefunktion bin ich nicht weiter gekommen. In diesem Feld steht ja kein Curser, es ist in diesem Moment auch nicht angewählt, weil der Focus noch auf dem Button "Berechnen" liegt.
Wie kann ich das lösen?
Gruß
MH50
in einem Writerdokument habe ich ein paar Textfelder definiert, über die ich Daten eingelesen und mit ihnen gerechnet habe (ooBasic). Nun möchte ich das Ergebnis (steht in der Variablen "LAZ") in das Writer-doc zurück in ein bereits vorhandenes Textfeld "txtLAZ" ausgeben. Und da genau hörts bei mir auf. Mit diversen PDFs und der Hilfefunktion bin ich nicht weiter gekommen. In diesem Feld steht ja kein Curser, es ist in diesem Moment auch nicht angewählt, weil der Focus noch auf dem Button "Berechnen" liegt.
Wie kann ich das lösen?
Gruß
MH50
Re: Ergebnis in Textfeld ausgeben (Insert?)
Hi,
genau wie du es eingelesen hast:
Wenn du mit
das Kontrollfeld auslesen kannst, kannst Du mit
den String LAZ wieder hineinschreiben.
Gruß R
genau wie du es eingelesen hast:
Wenn du mit
Code: Alles auswählen
otxtfield=thiscomponent.drawpage.forms.getbyname(<meinFormular>).getbyname(<meinTextfeld>)
LAZ=otxtfield.text 'oder .string
Code: Alles auswählen
otxtfield.text=LAZ
otxtfield.commit=true 'entspricht dem Enter
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Ergebnis in Textfeld ausgeben (Insert?)
Hi R,
Die Variable LAZ enthält ein Ergebnis das aus anderen Variablen errechnet wurde, die wiederum aus anderen Textfeldern eingelesen wurden. Die geschah auch in einer anderen Sub. Daher habe ich "LAZ" als Private deklariert. (Private LAZ As String). Nun soll sie in ein eigenes Feld im Writerdoc geschrieben werden. Wenn ich deinen Code benutze, kommt die Fehlermeldung: "Basic Laufzeitfehler: Objektvariable nicht belegt!". Also feht da noch irgendetwas ...
Die Variable LAZ enthält ein Ergebnis das aus anderen Variablen errechnet wurde, die wiederum aus anderen Textfeldern eingelesen wurden. Die geschah auch in einer anderen Sub. Daher habe ich "LAZ" als Private deklariert. (Private LAZ As String). Nun soll sie in ein eigenes Feld im Writerdoc geschrieben werden. Wenn ich deinen Code benutze, kommt die Fehlermeldung: "Basic Laufzeitfehler: Objektvariable nicht belegt!". Also feht da noch irgendetwas ...
Re: Ergebnis in Textfeld ausgeben (Insert?)
Hallo,
da Dein Code, und der Aufbau deines Formulares unbekannt ist, ist eine Diagnose schwierig.
Am besten lädst Du die Datei, ggf. verfremdet, hier hoch.
Gruß R
Edit:
für <meinFormular> und <meinTextfeld> müssen natürlich die Namen aus Deinem Dokument eingegeben werden.
da Dein Code, und der Aufbau deines Formulares unbekannt ist, ist eine Diagnose schwierig.
Am besten lädst Du die Datei, ggf. verfremdet, hier hoch.
Gruß R
Edit:
für <meinFormular> und <meinTextfeld> müssen natürlich die Namen aus Deinem Dokument eingegeben werden.
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Ergebnis in Textfeld ausgeben (Insert?)
Okay, sehe ich ein.
Im Kopf des Moduls habe ich folgendes deklariert:
Private xGTag As Integer, xGMonat As Integer, xGJahr As Integer, LAZ As String
Dann unter anderem folgende Sub:
Sub GDatumeinlesen
Dim oDokument As Object
oDokument = ThisComponent.DrawPage.Forms.GetByname("Formular") 'aktuelles Dokument wird aufgerufen und die Klasse
oGT = oDokument.getByName("GTag") 'Objektvariable wird aus Textfeld eingelesen
oGM = oDokument.getByName("GMonat")
oGJ = oDokument.getByName("GJahr")
xGTag = oGT.getCurrentValue
xGMonat = oGM.getCurrentValue
xGJahr = oGJ.getCurrentValue
If xGTag < 1 Or xGTag > 31 Then 'Tageingabe auf richtiges Format überprüfen + Abbruch bei Fehleingabe
MsgBox("Fehler Tag: falsche Eingabe!")
Exit Sub
End If
If xGMonat < 1 Or xGMonat > 12 Then
MsgBox("Fehler Monat: falsche Eingabe!" & (Chr(13) & Chr(10)) & "Zahl zwischen 1 und 12 eingeben.")
Exit Sub
End If
If Len(xGJahr) <> 4 Then 'Prüfung der Jahresangabe auf 4-stelligkeit
MsgBox("Fehler Jahreseingabe!" & Chr(13) & "Bitte immer vierstellig!")
Exit Sub
End If
'msgbox xGTag & "." & xGMonat & "." & xGJahr,0, "Geburtsdatum"
End Sub
Über die die wegkommentierte MsgBox habe ich die Funktion der Sub ausprobiert. Läuft.
Jetzt gibts ne Sub mit ein paar Berechnungen, das Ergebnis wird in die Variable LAZ geschrieben. Und genau diese will ich jetzt in das Dokument in ein eigenes Feld mit Namen "txtLAZ" schreiben. Und daran beiße ich mir gerade die Zähne aus.
Klar, dem Profi wirds wahrscheinlich die Fußnägel aufrollen, aber aller Anfang ist schwer ...
Gruß
MH50
P.S.: wie kriegt ihr eigentlich euren Code in dieses Extrafenster hier im Beitrag? In der Hile / FAQ habe ich dazu nichts gefunden. Man will ja auch nicht gleich den gesamten Code exportieren. Ist das dann ein Textfile, über Datei hochladen?
Im Kopf des Moduls habe ich folgendes deklariert:
Private xGTag As Integer, xGMonat As Integer, xGJahr As Integer, LAZ As String
Dann unter anderem folgende Sub:
Sub GDatumeinlesen
Dim oDokument As Object
oDokument = ThisComponent.DrawPage.Forms.GetByname("Formular") 'aktuelles Dokument wird aufgerufen und die Klasse
oGT = oDokument.getByName("GTag") 'Objektvariable wird aus Textfeld eingelesen
oGM = oDokument.getByName("GMonat")
oGJ = oDokument.getByName("GJahr")
xGTag = oGT.getCurrentValue
xGMonat = oGM.getCurrentValue
xGJahr = oGJ.getCurrentValue
If xGTag < 1 Or xGTag > 31 Then 'Tageingabe auf richtiges Format überprüfen + Abbruch bei Fehleingabe
MsgBox("Fehler Tag: falsche Eingabe!")
Exit Sub
End If
If xGMonat < 1 Or xGMonat > 12 Then
MsgBox("Fehler Monat: falsche Eingabe!" & (Chr(13) & Chr(10)) & "Zahl zwischen 1 und 12 eingeben.")
Exit Sub
End If
If Len(xGJahr) <> 4 Then 'Prüfung der Jahresangabe auf 4-stelligkeit
MsgBox("Fehler Jahreseingabe!" & Chr(13) & "Bitte immer vierstellig!")
Exit Sub
End If
'msgbox xGTag & "." & xGMonat & "." & xGJahr,0, "Geburtsdatum"
End Sub
Über die die wegkommentierte MsgBox habe ich die Funktion der Sub ausprobiert. Läuft.
Jetzt gibts ne Sub mit ein paar Berechnungen, das Ergebnis wird in die Variable LAZ geschrieben. Und genau diese will ich jetzt in das Dokument in ein eigenes Feld mit Namen "txtLAZ" schreiben. Und daran beiße ich mir gerade die Zähne aus.

Klar, dem Profi wirds wahrscheinlich die Fußnägel aufrollen, aber aller Anfang ist schwer ...
Gruß
MH50
P.S.: wie kriegt ihr eigentlich euren Code in dieses Extrafenster hier im Beitrag? In der Hile / FAQ habe ich dazu nichts gefunden. Man will ja auch nicht gleich den gesamten Code exportieren. Ist das dann ein Textfile, über Datei hochladen?
Re: Ergebnis in Textfeld ausgeben (Insert?)
...indem Du den Textbereich markierst und dann auf "Code" drückst.MH50 hat geschrieben:P.S.: wie kriegt ihr eigentlich euren Code in dieses Extrafenster hier im Beitrag? In der Hile / FAQ habe ich dazu nichts gefunden. Man will ja auch nicht gleich den gesamten Code exportieren. Ist das dann ein Textfile, über Datei hochladen?
Code: Alles auswählen
otxtLAZ = oDokument.getByName("txtLAZ")
otxtLAZ.Text = LAZ 'oder ggf. otxtLAZ.String = LAZ
otxtLAZ.commit=true
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Ergebnis in Textfeld ausgeben (Insert?)
Hura!! Es geht. @F3K Total: ich danke dir für die schnelle Antwort.
Gruß
MH50

Gruß
MH50