# 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, # muss über die ID angegeben werden. # Die ID finden Sie auf dem Ordner mit rechter Maustaste > Eigenschaften. #---Ab Vertec Version 5.0.6. Berücksichtigt das GridDef Objekt. #---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. 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): try: mlStr = sourcegridcol.getmlvalue(name, lng) except: mlStr = '' if mlStr: destinationgridcol.setmlvalue(name, mlStr, lng) def main(destination): #Ist das aktuelle Objekt ein Ordner if not destination.eval('oclisKindOf(AbstractOrdner)'): if destination.eval("oclIsKindOf(LinkContainer)"): destination = destination.rolle else: destination = None vtcapp.msgbox('Sie können dieses Skript nur auf einem Ordner und LinkContainern ausführen') if destination: source = vtcapp.selectobjectintree("Zu kopierende Listeneinstellungen auswählen ", [], browsefilter="", selectfilter="AbstractOrdner, LinkContainer") 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, '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 main(argobject)