#---Bezeichnung: SQL-Ordner kopieren
#   Klassen: SQL-Ordner
#   Selectedobjectsscript: Yes
#   Condexpression: self->size = 1
#---Das Skript kopiert den aktuellen Ordner und fügt ihn
#   einem auszuwählenden Ordner als Unterordner an.
#   Der neue Parenordner muss über die ID angegeben werden.
#   Die ID finden Sie auf dem Ordner mit rechter Maustaste > Eigenschaften.
#---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
#---19.10.2023, sth: Kopiert auch das Feld List Controller ab Vertec 6.6
#---10.10.2024, sth: An selectedobjects ab Vertec 6.7.0.12 angepasst.

def main(ordnerlist):
    for ordner in ordnerlist:
        parentord = None
        # Neuen Parentordner bestimmen
        parentord = vtcapp.selectobjectintree("Überordner für die Ordnerkopie auswählen ", [], browsefilter="", selectfilter="AbstractOrdner")
        if parentord:
            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
                newordner.controllerclassname = ordner.controllerclassname
                vtcapp.msgbox("Kopiervorgang beendet")
            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))
                continue

main(selectedobjects)

