Benutzerfelder in Tabellen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Benutzerfelder in Tabellen

von supul » Mi, 24.05.2006 08:14

So ich habe inzwischen ein Makro gefunden, dass meine Anforderungen erfüllt. Dieses Beispiel ist auf eine Zelle bezogen.

Code: Alles auswählen

        oDoc = thisComponent 
        oTables = oDoc.getTextTables 
        oTable = oTables.getByIndex(0) 
        oCell =  oTable.getCellByPosition (0, 1)   'A2 
        oCellParagraphEnumeration =  oCell.createEnumeration 
       while oCellParagraphEnumeration.hasMoreElements 
           oParagraph = oCellParagraphEnumeration.nextElement 
           oTextPortionEnumeration = oParagraph.createEnumeration 
           while oTextPortionEnumeration.hasMoreElements 
              oTextPortion = oTextPortionEnumeration.nextElement 
              if oTextPortion.getPropertyValue("TextPortionType") = "TextField" then 
                 oTextField = oTextPortion.getPropertyValue("TextField") 
                 'not sure what you are wanting to do here so this may be irrelevant 
                  oTextFieldMaster = oTextField.getTextFieldMaster 
                  msgbox "Field " & oTextFieldMaster.getPropertyValue("Name") & " = " & oTextFieldMaster.getPropertyValue("Content") 
              end if 
          wend 
       wend
Ich versuche in C# auf ein Writer-Dokument zuzugriffen und möchte das Makro in C# nachprogrammieren. Ich komme allerdings nur bis zum auswählen der Zelle. Aus dieser Zelle kann ich nur mittels GetText-Methode den Inhalte auslesen. Allerdings, komme ich dann nicht mehr weiter. Hat jemand eine Idee, wei man von dem Text auf die Benutzerfelder in der Zelle kommen kann?

Benutzerfelder in Tabellen

von supul » Di, 23.05.2006 12:09

Moin,
ich bearbeite mit C# Textdokumente. Ich habe Benutzerfelder in Tabellen definiert und möchte nun herausfinden in welcher Spalte der Tabelle das jeweilige Feld liegt.

Auf die Felder greife ich wie Folgt zu (Wert einfügen):

Code: Alles auswählen

        
XTextFieldsSupplier xTextFieldsSupplier = mMe as XTextFieldsSupplier;
// Field-Master-Zugriff bekommen
XNameAccess xNamedFieldMasters = xTextFieldsSupplier.getTextFieldMasters();
XEnumerationAccess xEnumeratedFields = xTextFieldsSupplier.getTextFields();

        // zum Key gehörenden Field-Master ansprechen
        XPropertySet xPropertySet = xNamedFieldMasters.getByName(
        "com.sun.star.text.FieldMaster.User." + key).Value as XPropertySet;
        // Wert setzen
        object ContentValue = Fields[key];
        Type ContentType = ContentValue.GetType();

        xPropertySet.setPropertyValue("Content", new uno.Any(ContentType, ContentValue));
Wie man auf Tabellen zugreift (Zeilen anfügen, löschen etc.) weiß ich auch. Ich habe nur keine Ahnung, wie ich heruasfinden kann in welcher Spalte das Feld ist.

Gruß

Nach oben