Hallo,
ich habe mal wieder eine für mich nicht ersichtliche Unschärfe:
Ich möchte bestimmte, mir bekannte Textfelder in einem Writer-Dokument mit Werten füllen. Dazu hole ich mir das Dokument, den TextFieldMaster, ... bis ich schließlich am PropertySet für das gewünschte Feld ankomme. Dort möchte ich den Wert für "Content" ändern -> lese ich so aus dem Developer-Guide. Auch in dem Basic/ Starbasic Buch von Galileo wird nicht von anderen Proeprties gesprochen, sodaß ich denke,d er Fehler liegt woanders?
Die Felder sind als Variablen im Template definiert, nicht als Benutzerfelder.
Zunächst hole ich mir das Dokument:
Code: Alles auswählen
XComponentContext xRemoteContext;
XComponent wbTemplate;
try {
xRemoteContext = com.sun.star.comp.helper.Bootstrap.bootstrap();
XMultiComponentFactory factory = xRemoteContext.getServiceManager();
Object desktop = factory.createInstanceWithContext("com.sun.star.frame.Desktop",
xRemoteContext);
XComponentLoader compLoader =
(XComponentLoader)UnoRuntime.queryInterface(XComponentLoader.class,
desktop);
PropertyValue[] docProp = getDokumentProperties();
wbTemplate = compLoader.loadComponentFromURL(Preferences.getInstance().getUrlToWBTemplate(),
"_blank",
0,
docProp);
Danach hole ich den FieldMaster...
Code: Alles auswählen
XTextFieldsSupplier fieldFactory =
(XTextFieldsSupplier)UnoRuntime.queryInterface(XTextFieldsSupplier.class,
wbTemplate);
XNameAccess fieldList = fieldFactory.getTextFieldMasters();
Jetzt baue ich die zu vervendenen daten auf. Der folgende Codeabschnitt befindet sich in einer Schleife, die über die aufgebauten Daten läuft und die entsprechenden Felder füllen soll.
Dabei steht in Usables.fieldNameExtension: "com.sun.star.text.FieldMaster.SetExpression." als Erweiterung des in der Liste stehenden Feldnamen.
Code: Alles auswählen
Object field = fieldList.getByName(Usables.fieldNameExtension+propName);
XPropertySet fieldProperties =
(XPropertySet)UnoRuntime.queryInterface(XPropertySet.class, field);
fieldProperties.setPropertyValue("content", ""); //<--- ABBRUCH ----------------------
...
Danach kommt nur noch Fehlerbehandlung.
Die Abbruchmeldung lautet: "Unknown property: content"
Hat jemand eine Idee? danke schon mal im Voraus.
Jens
/edit: Übersichtlicher aufgebaut