Script: Adresslayout einer Adresse auf andere übertragen

Produktlinien: Standard, Expert
Module: Leistung & CRM
Erstellt: 30.01.2004, Änderung:
Script in Python übersetzt. VBScript entfernt.
Mehr ansehen

Nimmt das Adresslayout des aktuellen Adresseintrags und überträgt es auf alle Adresseinträge, die vom gleichen Adress-Typ (EinfacheAdresse, Firma, Person, Kontakt oder Paar) sind.

Version

Version Beschreibung Script
ab Version 5.4

Beachtet die dynamische Anrede und Briefanrede.

Für ältere Versionen können die Zeilen anredetemplate und briefanredetemplate entfernt werden.

AddLayoutToAllOfType.txt
ab Version 5.8 Python Script AddLayoutToAllOfType.py

Ausführen

Einzelner Adresseintrag, welcher das zu übertragende Layout beinhaltet.

Scripttext

#---Bezeichnung: Adresslayout einer Adresse auf andere übertragen
#   Klassen: Adresseintrag
#   ObjectScript: Yes
#   ContainerScript: No
#   EventType: Kein
#---Dieses Script nimmt das Adresslayout des aktuellen
#   Adresseintrags und überträgt es auf alle Adresseinträge, die
#   vom gleichen Typ (EinfacheAdresse, Firma, Person oder Kontakt) sind.
#---30.01.2004, Vertec AG: erstellt
#---07.05.2007, sr: Angepasst an argobject und vertec
#---04.03.2008, cp: Ergänzt um dynamische Anrede und Briefanrede
#---30.04.2009, bn: On Error eingefügt um Fehler abzufangen
#---25.10.2013, sr: msgox auf vertec.msgbox geändert
#---22.02.2019, sth: Script in Python umgeschrieben

def main():

    vtcapp.updatedatabase

    obj = argobject
    if obj.eval('oclisKindOf(Adresseintrag)'):
        layout = obj.defaultadresse
        lay = layout.adresslayout
        typ = obj.evalocl("oclType.asString")
        adrlist = vtcapp.evalocl(typ + ".allInstances")
        for adresse in adrlist: 
            try:
                adresse.anredetemplate = obj.anredetemplate
                adresse.briefanredetemplate = obj.briefanredetemplate
                layout = adresse.defaultadresse
                layout.adresslayout = lay
            except:
                if vtcapp.msgbox("Das Adresslayout konnte für folgende Adresse nicht gesetzt werden: %s. Wollen sie fortfahren?" % adresse.evalocl("self.asstring"),4) == 6:
                    continue
                else:
                    return
    else:
        vtcapp.msgbox("Dieses Skript muss auf einer einzelnen Adresse ausgeführt werden, von welcher das Layout auf alle Adressen dieses Typs übertragen wird.")

    vtcapp.updatedatabase
    
main()