Seite 1 von 1
Eingabefeld wird bei Öffnen des Dokumentes per script nicht abgefragt
Verfasst: Do, 19.03.2015 17:55
von pch1965
Hallo,
ich habe eine Writervorlage, bei der die Eingabefelder per Dialog abgefragt werden.
Öffne ich die Datei direkt im Explorer, funktioniert alles, wie es soll.
Öffne ich die Datei per script mit:
Code: Alles auswählen
Dim sVorlage as String
sVorlage = ConverttoUrl( "Pfad")
Dim Args()
oDoc = StarDesktop.loadComponentFromUrl(sVorlage, "_blank", 0, Args())
werden die Daten nicht abgefragt, sondern lediglich das Dokument geöffnet.
Hat jemand eine Idee, woran dies liegen könnte?
Re: Eingabefeld wird bei Öffnen des Dokumentes per script nicht abgefragt
Verfasst: Fr, 20.03.2015 07:38
von Stephan
Hat jemand eine Idee, woran dies liegen könnte?
.loadComponentFromURL erwartet den entsprechenden Parameter im Parameterarray:
http://www.openoffice.org/api/docs/comm ... cMode.html
Code: Alles auswählen
Sub eingabe()
Dim sVorlage as String
sVorlage = ConverttoUrl("D:\eingabetest.ott")
Dim Args(0) As New "com.sun.star.beans.PropertyValue"
Args(0).Name = "UpdateDocMode"
Args(0).Value = com.sun.star.document.UpdateDocMode.FULL_UPDATE
oDoc = StarDesktop.loadComponentFromUrl(sVorlage, "_blank", 0, Args())
End Sub
Gruß
Stephan
Re: Eingabefeld wird bei Öffnen des Dokumentes per script nicht abgefragt
Verfasst: Mo, 23.03.2015 13:33
von pch1965
Hallo Stephan,
vielen Dank, hat super funktioniert.
Kann man solche Eingabefelder auch direkt (per Script) befüllen lassen?
Bei Platzhaltern funktioniert das ja problemlos.
Bei Eingabefeldern hab ich das noch nicht hinbekommen?
Re: Eingabefeld wird bei Öffnen des Dokumentes per script nicht abgefragt
Verfasst: Di, 24.03.2015 08:40
von Stephan
Ich sehe keinen großen Unterschied denn auch für Eingabefelder muss lediglich das gewünschte Feld identifiziert und dann der Text eingetragen werden, lediglich haben Eingabefelder keinen Namen wie Textmarken sondern müssen über ihren Hinweistext oder den eigentlichen aktuellen Textinhalt identifiziert werden:
Code: Alles auswählen
Sub eingabe()
x_enum = ThisComponent.getTextFields().CreateEnumeration()
Do While x_enum.hasMoreElements
x_field = x_enum.NextElement()
If x_field.SupportsService("com.sun.star.text.textfield.Input") Then
'prüfen welches konkrete Feld
If x_field.Hint = "Hinweistext" Then
'alternativ: If x_field.Content = "mein alter Feldtext" Then
x_field.Content = "mein neuer Feldtext"
x_field.update()
End If
End If
Loop
End Sub
Gruß
Stephan