Script: SQL-Ordner kopieren

Produktlinien: Expert
Module: Leistung & CRM
Erstellt: 27.09.2016, Änderung:
Python-Script ab Vertec 6.2 hinzugefügt.
Mehr ansehen

Dupliziert den aktuellen SQL-Ordner inklusive aller Abfragen. Es kann der Zielordner angegeben werden, in welchem der neue SQL-Ordner abgelegt wird.

Version

Version Beschreibung Script
5.8 - 6.1 Verwendet die Vertec-Funktionen msgbox und inputbox (siehe dazu msgbox/inputbox: Beschreibung der Parameter) CopySQLOrdner.txt
6.2 Script in Python. Verwendet die SQL-Ordner ab Version 6.2 inkl. Sofort-Suche. CopySQLOrdner.py

Ausführen

Dieses Skript kann nicht registriert werden und muss im Skripteditor ausgeführt werden. Markieren Sie den SQL-Ordner, den Sie duplizieren wollen.

Öffnen Sie über das Menü Einstellungen den Python Script Editor (oder, wenn Sie das ältere Script verwenden, den VB Script Editor). Fügen Sie den Scripttext ein und klicken Sie auf Ausführen.

Scripttext

#---Bezeichnung: SQL-Ordner kopieren
#   Klassen: Dieses Skript kann nicht registriert werden und
#   muss im Skripteditor ausgeführt werden
#   ObjectScript: No
#   ContainerScript: No
#   EventType: Kein
#---Das Skript kopiert den aktuellen Ordner als Sub-Ordner
#   eines anderen Ordners.
#   Der neue Parenordner muss über den Namen angegeben
#   werden. Der Name muss nicht zwingend die Bezeichnung
#   sein, die auf der Oberfläche erscheint. Sie können den
#   Namen einsehen, indem Sie auf dem Ordner mit rechter
#   Maustaste System > Eigenschaften anwählen. Im Feld
#   Bezeichnung befindet sich der Name.
#---11.11.2011, cp: erstellt.
#---27.09.2016, sr: msgbox durch vertec.msgbox und inputbox
#   durch vertec.inputbox ersetzt.
#---15.06.2018, sth: Script in Python übersetzt.
#   Voraussetzung: Vertec 6.2

def main(ordner):
    parentord = None
    if not ordner.eval('oclisKindOf(SqlOrdner)'):
        vtcapp.msgbox('Sie können dieses Skript nur auf einem SQL-Ordner ausführen.')
    else:
        # Neuen Parentordner bestimmen
        parentid = vtcapp.inputbox('Vertec','Geben Sie die ID des neuen Parentordners an.','')
        if parentid:
            try:
                parentord = vtcapp.getobjectbyid(parentid)
            except:
                vtcapp.msgbox('Es wurde kein Ordner mit dieser ID gefunden. Der Kopiervorgang wurde abgebrochen.')
            else:
                try:
                    newordner = vtcapp.createobject("SqlOrdner")
                    newordner.parentordner = parentord
                    # kopiere alle Member
                    newordner.allowShowAll = ordner.allowShowAll
                    newordner.orderClause = ordner.orderClause
                    newordner.showDialog = ordner.showDialog
                    newordner.whereClause = ordner.whereClause
                    newordner.classname = ordner.classname
                    newordner.creatorTypes = ordner.creatorTypes
                    newordner.dialogParamsInitialized = ordner.dialogParamsInitialized
                    newordner.expression = ordner.expression
                    newordner.searchConfiguration = ordner.searchConfiguration
                    newordner.bezeichnung = ordner.bezeichnung
                    newordner.tabsProKlasse = ordner.tabsProKlasse
                    newordner.idx = ordner.idx
                    newordner.persistentIcon = ordner.persistentIcon
                    newordner.bemerkung = ordner.bemerkung
                except Exception as e:
                    vtcapp.msgbox('Beim Erstellen des neuen Ordners ist ein Problem aufgetreten. Der Kopiervorgang wurde abgebrochen.\nDer Fehler lautet: %s' % str(e))

main(argobject)