Seite 1 von 1

Ergebnis in Textfeld ausgeben (Insert?)

Verfasst: Fr, 02.12.2011 16:09
von MH50
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

Re: Ergebnis in Textfeld ausgeben (Insert?)

Verfasst: Fr, 02.12.2011 17:30
von F3K Total
Hi,
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
das Kontrollfeld auslesen kannst, kannst Du mit

Code: Alles auswählen

otxtfield.text=LAZ
otxtfield.commit=true 'entspricht dem Enter
den String LAZ wieder hineinschreiben.

Gruß R

Re: Ergebnis in Textfeld ausgeben (Insert?)

Verfasst: Fr, 02.12.2011 17:57
von MH50
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 ...

Re: Ergebnis in Textfeld ausgeben (Insert?)

Verfasst: Fr, 02.12.2011 18:00
von F3K Total
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.

Re: Ergebnis in Textfeld ausgeben (Insert?)

Verfasst: Fr, 02.12.2011 18:33
von MH50
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?

Re: Ergebnis in Textfeld ausgeben (Insert?)

Verfasst: Fr, 02.12.2011 18:46
von F3K Total
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?
...indem Du den Textbereich markierst und dann auf "Code" drückst.

Code: Alles auswählen

otxtLAZ = oDokument.getByName("txtLAZ")
otxtLAZ.Text = LAZ 'oder ggf. otxtLAZ.String =  LAZ
otxtLAZ.commit=true
feddisch

Gruß R

Re: Ergebnis in Textfeld ausgeben (Insert?)

Verfasst: Fr, 02.12.2011 18:53
von MH50
Hura!! Es geht. @F3K Total: ich danke dir für die schnelle Antwort. :D

Gruß
MH50