von mikeleb » So, 28.02.2016 14:15
Hallo,
ich habe das Problem mal zum Anlass genommen, mein erstes Python-Makro zu schreiben.
Code: Alles auswählen
def p_einblenden(oevent):
# Welches Optionsfeld wurde angeklickt?
sname=oevent.Source.Model.Name
# Nummer des Optionsfeldes?
nr=int(sname[-1:])
# Zugriff auf das Dokument, Tabelle1
oDoc= XSCRIPTCONTEXT.getDocument()
oTab=oDoc.Sheets.getByIndex(0)
# Festlegung der Zeilen, ein Bereich für jedes Optionsfeld, jeweils erste und letzte Zeile oder nur einzelne Zeile
zeilen=((11,13),(15,17),(19,23),(25,),(30,34))
# Durchlauf durch alle Bereiche, ein- bzw- ausblenden
z=0
for i in zeilen:
z=z+1
for k in range(i[0],i[len(i)-1]+1):
oTab.Rows.getByIndex(k-1).IsVisible=(z==nr)
Wahrscheinlich lässt sich das ein oder andere noch effektiver lösen, aber es funktioniert. Hurra!
Dank an preklov und karolus (
viewtopic.php?f=18&t=66796)!
- Dateianhänge
-
- makro_einblenden_py.ods
- (12.19 KiB) 151-mal heruntergeladen
Hallo,
ich habe das Problem mal zum Anlass genommen, mein erstes Python-Makro zu schreiben.
[code]def p_einblenden(oevent):
# Welches Optionsfeld wurde angeklickt?
sname=oevent.Source.Model.Name
# Nummer des Optionsfeldes?
nr=int(sname[-1:])
# Zugriff auf das Dokument, Tabelle1
oDoc= XSCRIPTCONTEXT.getDocument()
oTab=oDoc.Sheets.getByIndex(0)
# Festlegung der Zeilen, ein Bereich für jedes Optionsfeld, jeweils erste und letzte Zeile oder nur einzelne Zeile
zeilen=((11,13),(15,17),(19,23),(25,),(30,34))
# Durchlauf durch alle Bereiche, ein- bzw- ausblenden
z=0
for i in zeilen:
z=z+1
for k in range(i[0],i[len(i)-1]+1):
oTab.Rows.getByIndex(k-1).IsVisible=(z==nr)[/code]
Wahrscheinlich lässt sich das ein oder andere noch effektiver lösen, aber es funktioniert. Hurra! :D
Dank an preklov und karolus (http://de.openoffice.info/viewtopic.php?f=18&t=66796)!