#---Bezeichnung: SQL-Ordner kopieren
#   Klassen: Eintrag
#   ObjectScript: No
#   ContainerScript: Yes
#   EventType: Kein
#---Das Skript kopiert den aktuellen Ordner als Sub-Ordner
#   eines anderen Ordners.
#   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

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
                    newordner.controllerclassname = ordner.controllerclassname
                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)

