Code: Alles auswählen
static void schreiben(XComponent document,String bezeichner,String wert)
throws BootstrapException, Exception{
//Interface für zugriff auf die Felder holen
XTextFieldsSupplier textFieldsSupplier =(XTextFieldsSupplier)
UnoRuntime.queryInterface(XTextFieldsSupplier.class, document);
//"Map" holen, um auf die Benutzerfelder zugreifen zu können
XNameAccess textFieldMasters = textFieldsSupplier.getTextFieldMasters();
//Master des Benutzerfeldes holen.
//Ein Master enthält alle Informationen als Properties
//auf die man per XPropertySet-Interface zugreifen kann
//die Variable bezeichner spiegelt hier
//den Namen des Benutzerfeldes wieder
XPropertySet nameMaster = (XPropertySet)UnoRuntime.queryInterface
(XPropertySet.class, textFieldMasters.getByName
("com.sun.star.text.FieldMaster.User."+bezeichner));
//Alle Benutzerfelder im Dokument ermitteln
XDependentTextField[] fields = (XDependentTextField[])
nameMaster.getPropertyValue("DependentTextFields");
//schleife zum schreiben Benutzerfelder
//können ja mehrfach im Dokument vorkommen
for(XDependentTextField field : fields)
{
//Benutzerfeld gegen String austauschen
field.getAnchor().setString(wert);
}
}
und hänge an
Code: Alles auswählen
//Alle Benutzerfelder im Dokument ermitteln
XDependentTextField[] fields = (XDependentTextField[])
nameMaster.getPropertyValue("DependentTextFields");
//schleife zum schreiben Benutzerfelder
//können ja mehrfach im Dokument vorkommen
for(XDependentTextField field : fields)
{
//Benutzerfeld gegen String austauschen
field.getAnchor().setString(wert);
}