Kopiert die Listeneinstellung eines Ordners, LinkContainers oder einer Ressourcenplanungsansicht in die aktuelle Ansicht.
Es ist wichtig, dass sorgfältig darauf geachtet wird, was übertragen wird. Werden Listeneinstellungen an Orte übertragen, wo sie nicht passen, kann Vertec damit zum Absturz gebracht werden.
Deshalb empfehlen wir Ihnen, das Script nicht zu registrieren, sondern es über den Script Editor zu verwenden.
Sie können Listeneinstellungen, die Sie für alle Listen einer Klasse (z.B. alle Adresslisten) verwenden möchten, auch als Standard hinterlegen. Siehe dazu den Artikel über die Listeneinstellungen - Button Als Standard speichern
.
Versionen
Vertec Version |
Besonderheit Version |
Script |
Ab Vertec 6.6 |
Berücksichtigt dynamische Spalten und kann auch auf Ressourcenplanungsansichten ausgeführt werden. |
CopyListeneinstellungen.py |
Ordner und LinkContainer
Das Script muss auf dem Ordner/LinkContainer ausgeführt werden, der die Listeneinstellungen erhalten soll.
Wählen Sie diesen an und öffnen Sie dann den Script Editor.
Führen Sie das Script aus. Es erscheint ein Browser, wo der Ordner/LinkContainer, von dem die Listeneinstellungen kopiert werden sollen, ausgewählt werden kann.
Ressourcenplanungsansichten
Die Listeneinstellungen von Tabellen in der Ressourcenplanung erfolgt wie gewohnt über den Button Listeneinstellungen
direkt auf der Tabelle.
Das Kopieren erfolgt jedoch auf der Definition der Ressourcenplanungsansicht. Diese sind unter Einstellungen > Ressourcenplanung > Ressourcenplanungsansichten
zu finden.
Öffnen Sie die Ressourcenplanungsansicht, auf welche Sie Listeneinstellungen übertragen möchten. Öffnen Sie dann den Script Editor und führen Sie das Script aus.
Es erscheint ein Browser, wo die Ressourcenplanungsansicht, von der die Listeneinstellungen kopiert werden sollen, ausgewählt werden kann.
# coding: windows-1252
#
#---Bezeichnung: Listeneinstellungen kopieren
# Klassen: Eintrag
# CondExpression:
# ObjectScript: No
# ContainerScript: Yes
# EventType: Kein
# EventClass:
# EventMembers:
# ExtendedRights: N
#---Kopiert die Listeneinstellung eines anderen
# Ordners in den aktuellen Ordner. Muss auf dem Ordner
# ausgeführt werden, der die Listeneinstellungen erhalten soll.
# Der Ordner, von dem die Listeneinstellungen übernommen werden sollen,
# kann über eine Ordnerauswahl ausgewählt werden.
#---28.11.2005, Vertec AG: erstellt
#---15.10.2013, mw: Angepasst auf 5.8: xTranslation gelöscht, Abbruchbedingungen implementiert.
#---10.03.2017, sr: Script in Python erstellt
#---21.03.2017, tk: Script ist auch auf LinkContainern ausführbar
#--- Kopieren der Attribute editing, ghostrow und controlDefinition
#---20.03.18, tik: Angepasst auf 6.2: Verweis auf alte Attribute entfernt (fontSize, fontName etc.)
#--- Exceptionhandling geändert, sodass Fehlermeldungen an den Anwender durchgereicht werden
#---08.10.2021, ll: Zeile if not sourceid.isnumeric(): angepasst.
#---24.11.2021, Funktion copymlmember und selectobjectintree hinzugefügt.
#---01.03.2022, uhe: Sprache DD hinzugefügt.
#---02.08.2022, sth: Member 'isFixed' hinzugefügt.
#---04.05.2023, tha: Angepasst an 6.6: Funktionalität um ViewTypes erweitert, Member 'isDynamic' hinzugefügt
#---08.05.2023, sth: copymlmember korrigiert, Abschlussmeldung hinzugefügt
lngList = ['DE','DD','EN','FR','IT','NV']
def copymember(sourcegridcol, destinationgridcol, name):
setattr(destinationgridcol, name, getattr(sourcegridcol, name))
def copymlmember(sourcegridcol, destinationgridcol, name):
for lng in list(lngList):
mlStr = sourcegridcol.getmlvalue(name, lng)
if mlStr:
destinationgridcol.setmlvalue(name, mlStr, lng)
def main(destination):
#Ist das aktuelle Objekt ein Ordner
if not destination.eval("oclisKindOf(AbstractOrdner) or oclisKindOf(LinkContainer) or oclisKindOf(ViewType)"):
vtcapp.msgbox('Sie können dieses Skript nur auf Ordnern, LinkContainern und Ressourcenplanungsansichten ausführen')
return
if destination.eval("oclIsKindOf(LinkContainer)"):
destination = destination.rolle
if destination:
source = vtcapp.selectobjectintree("Zu kopierende Listeneinstellungen auswählen ", [], browsefilter="", selectfilter="AbstractOrdner, LinkContainer, ViewType")
if source:
#Analog zur destination
if source.eval("oclIsKindOf(LinkContainer)"):
source = source.rolle
#Erst werden die bestehenden GridDef's gelöscht.
for griddef in list(destination.griddefs):
destination.griddefs.remove(griddef)
#Hole nun die GridDefs des Source-Ordners
for griddefs in source.griddefs:
griddefd = vtcapp.createobject('GridDef')
destination.griddefs.append(griddefd)
#Kopiere die GridDefs
copymember(griddefs, griddefd, 'klasse')
copymember(griddefs, griddefd, 'zeilenhoehe')
copymember(griddefs, griddefd, 'editing')
copymember(griddefs, griddefd, 'ghostrow')
#---Kann nun die gridcoldefs kopieren.
for gridcols in griddefs.gridcols:
gridcold = vtcapp.createobject('GridColDef')
griddefd.gridcols.append(gridcold)
copymember(gridcols, gridcold, 'alignment')
copymember(gridcols, gridcold, 'breite')
copymember(gridcols, gridcold, 'color')
copymember(gridcols, gridcold, 'controlName')
copymember(gridcols, gridcold, 'expression')
copymember(gridcols, gridcold, 'writeableExpression')
copymember(gridcols, gridcold, 'fontColor')
copymember(gridcols, gridcold, 'nurLesen')
copymember(gridcols, gridcold, 'orderIdx')
copymember(gridcols, gridcold, 'isFixed')
copymember(gridcols, gridcold, 'isDynamic')
copymember(gridcols, gridcold, 'rendererName')
copymember(gridcols, gridcold, 'sortOrder')
copymember(gridcols, gridcold, 'summiert')
copymember(gridcols, gridcold, 'tabStop')
copymlmember(gridcols, gridcold, 'titel')
copymember(gridcols, gridcold, 'controlDefinition')
# Nur für Ordner:
if source.eval('oclisKindOf(AbstractOrdner)') and destination.eval('oclisKindOf(AbstractOrdner)'):
destination.tabsproklasse = source.tabsproklasse
vtcapp.msgbox('Kopiervorgang beendet')
main(argobject)