Wie Textfeld auf "vorhanden" überprüfen

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: Wie Textfeld auf "vorhanden" überprüfen

Re: Wie Textfeld auf "vorhanden" überprüfen

von DPunch » Sa, 10.07.2010 14:40

Aloha
hotti hat geschrieben:Scheint so zu sein, daß 'Wahr" ist,
wenn das Textfeld nicht vorhanden ist
Nein, definitiv nicht. Die Methode ist ja eigentlich schon sprechend, was den Rückgabewert angeht, aber hier auch nochmal schwarz auf weiss ;)
API: XNameAccess -> hasbyName
hotti hat geschrieben:If Not oTxtFeld....funktioniert leider nicht.
Natürlich funktioniert das:

Code: Alles auswählen

If NOT oTxtFeld.hasByName(User & "Geraetenummer")  Then MsgBox "Das Benutzerfeld ""Gerätenummer"" nicht ist vorhanden"
Ich vermute eher, dass Dein Problem woanders liegt:
Du hast ein Benutzerfeld names "Geraetenummer" irgendwann mal definiert und danach möglicherweise auch wieder aus dem Text entfernt.
Wenn Du das Benutzerfeld allerdings nicht komplett aus dem Dokument löschst (Einfügen -> Feldbefehl -> Andere -> Variablen -> Löschen), dann wird obiger Aufruf dieses Feld auch finden.
getTextFieldMasters liefert Dir alle Felder, die in diesem Dokument definiert sind, unabhängig davon, ob sie auch tatsächlich irgendwo im Text vorkommen.
Willst Du dagegen eine tatsächlich vorhandene Instanz dieser Textfelder überprüfen, musst Du einen anderen Weg einschlagen, nämlich den über getTextFields:

Code: Alles auswählen

oDoc = thisComponent
oTextFields = oDoc.getTextFields
enumFields = oTextFields.createEnumeration
Do While enumFields.hasMoreElements
  nextField = enumFields.NextElement
  If nextField.TextFieldMaster.Name = "Geraetenummer" Then
    MsgBox "Benutzerfeld ""Geraetenummer"" ist vorhanden"
    Exit Sub
  End If
Loop

Re: Wie Textfeld auf "vorhanden" überprüfen

von komma4 » Sa, 10.07.2010 13:38

Hallo Hotti,


funktioniert natürlich auch mit NOT (wenn geklammert)

Code: Alles auswählen

oDok = ThisComponent
User = "com.sun.star.text.FieldMaster.User."
oTxtFeld = oDok.getTextFieldMasters()
If NOT ( oTxtFeld.hasByName(User & "Geraetenummer") ) Then 
  MsgBox "Das Benutzerfeld ""Gerätenummer"" ist nicht vorhanden"
End If
Das ist jetzt auch getestet 8)

Re: Wie Textfeld auf "vorhanden" überprüfen

von komma4 » Fr, 09.07.2010 05:14

Code: Alles auswählen

If oTxtFeld.hasByName(User & "Geraetenummer")  Then MsgBox "Das Benutzerfeld ""Gerätenummer"" ist vorhanden"

(ungetestet, aus meiner Krabbelkiste)

Nach oben