Seite 1 von 2

Variablen in bedingten Texten usw. aufspüren

Verfasst: Sa 4. Jul 2015, 13:04
von Mau
Liebe ExpertInnen,

ich will eine Formatvorlage umarbeiten, in der etliche Variablen gesetzt sind. Dazu muss ich u.a. eine Variable entfernen und neu definieren.
Diese Variable habe ich in mehreren Bedingungen für bedingte Texte und versteckte Absätze verwendet. Diese Textteile habe ich alle entfernt.
Jetzt müsste eigentlich das vorher ausgegraute Kreuz zum Löschen der Variable rot, also aktiviert sein, um die Variable zu entfernen.
Das ist bei mir aber nicht der Fall. Irgendwo muss noch eine Stelle sein, wo sie immer noch verwendet wird. Wie finde ich die?

Gruß,
Mau

Re: Variablen in bedingten Texten usw. aufspüren

Verfasst: Sa 4. Jul 2015, 14:13
von Mau
Sorry, liebe Leute,

ich stelle gerade fest, dass ich für die Löschung die ganze Zeit über im Feld Typ den Typ Variable anzeigen statt Variable setzen ausgewählt hatte. :roll:

Gruß,
Mau

Re: Variablen in bedingten Texten usw. aufspüren

Verfasst: Sa 4. Jul 2015, 14:13
von komma4
Entferne sie, bspw., mit Basic

Code: Alles auswählen

Sub Snippet
  oTextFieldMasters = ThisComponent.getTextFieldMasters()
  oElementNames = oTextFieldMasters.getElementNames()
  oObj1 = oTextFieldMasters.getByName("com.sun.star.text.fieldmaster.SetExpression.MyVar")
  oObj1.dispose()
End Sub
MyVar ist der Name Deiner Variablen.

Hilft das?

Re: Variablen in bedingten Texten usw. aufspüren

Verfasst: Sa 4. Jul 2015, 14:14
von komma4
Verstehe, es ist heiss in Deutschland, nicht wahr :D

Re: Variablen in bedingten Texten usw. aufspüren

Verfasst: Sa 4. Jul 2015, 14:30
von Mau
komma4 hat geschrieben:Verstehe, es ist heiss in Deutschland, nicht wahr :D
So isses ...
Danke aber für den Makro; den kann ich vielleicht noch einmal gebrauchen.

Gruß,
Mau

P.S.
Dann wollen wir mal alle hoffen, dass die Temperaturen wieder runtergehen; wer weiß, wie viel Anfragen dieser Qualität sonst noch von mir kommen werden ...

Re: Variablen in bedingten Texten usw. aufspüren

Verfasst: So 5. Jul 2015, 10:28
von Mau
Lieber Winfried,4 ;)

das habe ich jetzt in meine Makro-Datei hineingeschrieben:
komma4 hat geschrieben:

Code: Alles auswählen

Sub Snippet
  oTextFieldMasters = ThisComponent.getTextFieldMasters()
  oElementNames = oTextFieldMasters.getElementNames()
  oObj1 = oTextFieldMasters.getByName("com.sun.star.text.fieldmaster.SetExpression.MyVar")
  oObj1.dispose()
End Sub
MyVar ist der Name Deiner Variablen.
Wäre das mit viel Aufwand verbunden, wenn du mir noch den Programmcode für eine Eingabemaske schickst, damit ich die Routine nicht für jede Variable umschreiben muss? :oops:

Gruß,
Mau

Re: Variablen in bedingten Texten usw. aufspüren

Verfasst: Di 7. Jul 2015, 13:23
von komma4
Mau hat geschrieben:Wäre das mit viel Aufwand verbunden[...]für jede Variable umschreiben muss?
Jain.

Im Prinzip eine Eingabebox, und die Übernahme im Snippet

Code: Alles auswählen

Sub varname_abfragen

   varname = Inputbox("Welche Variable löschen?", "Löschen von Textfeld-Variablen")
   snippet2(varname)   
End Sub

Sub Snippet2(varname)
  oTextFieldMasters = ThisComponent.getTextFieldMasters()
  oElementNames = oTextFieldMasters.getElementNames()
  oObj1 = oTextFieldMasters.getByName("com.sun.star.text.fieldmaster.SetExpression." & varname)
  oObj1.dispose()
End Sub
Vielleicht benötigst Du aber eher einen Code, der alle gesetzten Variablen und Benutzerfelder löscht?

Code: Alles auswählen

Sub entfernen_aller_Variablen
' 20150707
' löscht alle gesetzen Variablen, auch Benutzerfelder
' LO f=5 p=36701

  oTextFieldMasters = ThisComponent.getTextFieldMasters()
  oElementNames = oTextFieldMasters.getElementNames()
  '
  OOoTextFields = _
  "com.sun.star.text.fieldmaster.SetExpression.Illustration " & _
  "com.sun.star.text.fieldmaster.SetExpression.Table " & _
  "com.sun.star.text.fieldmaster.SetExpression.Text " & _
  "com.sun.star.text.fieldmaster.SetExpression.Drawing "
      
  ' alle Textfelder durchsuchen  
  For Each elem In oElementNames
     ' wenn nicht durch OpenOffice vorgegeben...
     If Not (INSTR(OOoTextFields,elem) > 0) Then
          ' Objekt holen
          oObj1 = oTextFieldMasters.getByName(elem)
          ' Objekt verwerfen
          oObj1.dispose()
     End If 
  Next

End Sub

Re: Variablen in bedingten Texten usw. aufspüren

Verfasst: Di 7. Jul 2015, 13:40
von Mau
Lieber Winfried,
klasse, danke!
komma4 hat geschrieben: Vielleicht benötigst Du aber eher einen Code, der alle gesetzten Variablen und Benutzerfelder löscht?
Zunächst einmal nicht. Aber da es durchaus sein kann, dass ich auch mal alle Variablen entfernen muss, schreibe ich mir beide Codes ab.

Gruß,
Mau

Re: Variablen in bedingten Texten usw. aufspüren

Verfasst: Di 7. Jul 2015, 15:29
von Mau
Lieber Winfried,

noch zwei Fragen zu dem zweiten Makro-Code hätte ich:
  • Was bedeuten in der dritten Programmzeile hinter "' LO " die Angaben "f=xx" und "p=xxxx"?
  • Kann es sein, dass der Programmcode in dieser Form auch noch andere Dinge löscht außer Variablen?
Gruß,
Mau

Re: Variablen in bedingten Texten usw. aufspüren

Verfasst: Di 7. Jul 2015, 15:35
von Mau
Noch etwas:

Wenn ich aus dem Makro-Modul irgendeinen Makro zum Bearbeiten aufrufe, bekomme ich jedes Mal eine BASIC-Syntaxfehler-Meldung: "Unerwartetes Symbol: CRLF".
Ich kenne das als Kürzel für eine harte Zeilen- bzw. Absatzschaltung.

Ich habe natürlich eine Sicherungskopie vom Zustand des Moduls vorher, aber vielleicht gibt es eine wenig aufwändige Möglichkeit, die Fehlerquelle zu beseitigen?

Gruß,
Mau