Script: Adresslayout einer Adresse auf andere übertragen

Inhalt

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

VersionBeschreibungScript
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 Verwendet anstelle der VB Standardfunktion die Vertec-Funktion msgbox (siehe dazu msgbox/inputbox: Beschreibung der Parameter) AddLayoutToAllOfType58.txt

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

option explicit

dim adresse
dim lay, layout
dim adrlist
dim obj
dim typ
dim i
dim antwort

sub main()

vertec.updatedatabase

set obj = vertec.argobject
if not obj.eval("oclIsKindOf(Adresseintrag)") then
vertec.MsgBox("Dieses Skript muss auf einer einzelnen " _
&"Adresse ausgeführt werden, von welcher das Layout " _
&"auf alle Adressen dieses Typs übertragen wird.")
else
'Alles okay, das Layout kann übertragen
set layout = obj.member("defaultadresse")
lay = layout.member("adresslayout")
typ = obj.eval("oclType.asString")
set adrlist = vertec.eval(typ + ".allInstances")
for i = 0 to adrlist.count-1
set adresse = adrlist.objects(i)
adresse.member("anredetemplate") = obj.member("anredetemplate")
adresse.member("briefanredetemplate") = obj.member("briefanredetemplate")
on error resume next
set layout = adresse.member("defaultadresse")
layout.member("adresslayout") = lay
if err <> 0 then
antwort = vertec.msgbox("Das Adresslayout konnte für folgende Adresse nicht gesetzt werden: " + chr(13) + adresse.eval("self.asstring") + chr(13) + chr(13) + "Wollen sie fortfahren?",vbYesNo)
if antwort <> 6 then exit sub
end if
on error goto 0
next
end if

vertec.updatedatabase

end sub

call main()


30.01.2004 | 25.10.2013: msgox auf vertec.msgbox geändert. Altes und neues Script zur Verfügung gestellt.
Produktlinien: Standard, Expert
Module: Leistung & CRM