Script: Listeneinstellungen kopieren

Inhalt

Kopiert die Listeneinstellung eines anderen Ordners in den aktuellen Ordner

Version

VersionBeschreibungScript
Ab Vertec Version 5.0.6 Berücksichtigt das GridDef Objekt. CopyListeneinstellungen.txt
ab Version 5.8 Verwendet anstelle der VB Standardfunktion die Vertec-Funktion msgbox (siehe dazu msgbox/inputbox: Beschreibung der Parameter) CopyListeneinstellungen58.txt

Ausführen

Muss auf dem Ordner ausgeführt werden, der die Listeneinstellungen erhalten soll.

Der Ordner, der die Listeneinstellungen enthält, muss mittels 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 Eigenschaften anwählen. Im Feld Bezeichnung befindet sich der Name:

Scripttext

'---Bezeichnung: Listeneinstellungen kopieren
'   Klassen: Eintrag
'   ObjectScript: No
'   ContainerScript: Yes
'   EventType: Kein
'---Kopiert die Listeneinstellung eines anderen
'   Ordners in den aktuellen Ordner. Muss auf dem Ordner
'   ausgeführt werden, der die Listeneinstellungen erhalten soll.
'   Der Ordner, der die Listeneinstellungen enthält, muss mittels
'   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 Eigenschaften anwählen. Im Feld
'   Bezeichnung befindet sich der Name:
'---Ab Vertec Version 5.0.6. Berücksichtigt das GridDef Objekt.
'---28.11.2005, Vertec AG: erstellt
'---07.05.2007, sc: Vertec und argobject angepasst
'---15.10.2013, mw: Angepasst auf 5.8: xTranslation gelöscht, Abbruchbedingungen implementiert.
'---25.10.2013, sr: msgbox und inputbox auf vertec aufrufen.

option explicit

sub CopyMember(SourceGridCol, DestinationGridCol, Name)
DestinationGridCol.Member(Name) = SourceGridCol.Member(Name)
end sub

sub Main()

Dim GridColS
Dim GridColD
Dim GridDefList
Dim GridDefS
Dim GridDefD
Dim GridColList
Dim i, k
Dim Source
Dim Destination
Dim SourceName
Dim resList

Set Source = Nothing
Set Destination = Nothing

'Ist das aktuelle Objekt ein Ordner
If Vertec.ArgObject.IsOfType("AbstractOrdner") Then
Set Destination = Vertec.ArgObject
Else
Vertec.MsgBox "Sie müssen einen Ordner markiert haben, damit dieses Skript ausgeführt werden kann."
Exit Sub
End If

SourceName = Vertec.InputBox("Vertec","Geben Sie bitte den Namen des Ordners an, von dem Sie die Listeneinstellungen auf den aktuell markierten Ordner kopieren wollen.","")
' Wurde Abbrechen geklickt oder nichts eingegeben
If SourceName = "" Then
Exit Sub
End If

Set resList = Vertec.Eval("abstractordner->select(bezeichnung='" & SourceName & "')")
If resList.Count <> 1 Then
Vertec.MsgBox "Es wurden kein oder mehrere Ordner mit der von Ihnen angegebenen Bezeichnung gefunden. Die Listeneinstellungen können darum nicht kopiert werden."
Exit Sub
Else
Set Source = resList.Objects(0)
End If

If Not (Source Is Nothing) And Not (Destination Is Nothing) Then
'---erst werden die bestehenden GridDef's gelöscht.
Set GridDefList = Destination.Eval("griddefs")
For k = GridDefList.Count-1 To 0 Step-1
Set GridDefD = GridDefList.Objects(k)
GridDefD.Delete
Next

'Loope nun durch die GridDefs des Source-Ordners
Set GridDefList = Source.Eval("griddefs")
for i = 0 To GridDefList.Count - 1
Set GridDefS = GridDefList.Objects(i)
Set GridDefD = Vertec.CreateObject("GridDef")
Destination.Member("griddefs").Add GridDefD
'Kopiere die GridDefs
CopyMember GridDefS, GridDefD, "klasse"
CopyMember GridDefS, GridDefD, "zeilenhoehe"
'Diese beiden sind immer NULL:
'CopyMember GridDefS, GridDefD, "ghostrow"
'CopyMember GridDefS, GridDefD, "editing"
'---Kann nun die GridColDefs kopieren.
Set GridColList = GridDefS.Eval("gridcols")
For k = 0 To GridColList.Count-1
Set GridColS = GridColList.Objects(k)
Set GridColD = Vertec.CreateObject("GridColDef")
GridDefD.Member("gridcols").Add GridColD
CopyMember GridColS, GridColD, "alignment"
CopyMember GridColS, GridColD, "breite"
CopyMember GridColS, GridColD, "color"
CopyMember GridColS, GridColD, "controlName"
CopyMember GridColS, GridColD, "expression"
CopyMember GridColS, GridColD, "writeableExpression"
CopyMember GridColS, GridColD, "fontColor"
CopyMember GridColS, GridColD, "fontName"
CopyMember GridColS, GridColD, "fontSize"
CopyMember GridColS, GridColD, "fontStyle"
CopyMember GridColS, GridColD, "nurLesen"
CopyMember GridColS, GridColD, "orderIdx"
CopyMember GridColS, GridColD, "rendererName"
CopyMember GridColS, GridColD, "representation"
CopyMember GridColS, GridColD, "sortOrder"
CopyMember GridColS, GridColD, "summiert"
CopyMember GridColS, GridColD, "tabStop"
CopyMember GridColS, GridColD, "titel"
CopyMember GridColS, GridColD, "titelAlignment"
CopyMember GridColS, GridColD, "titelColor"
CopyMember GridColS, GridColD, "titelFontColor"
CopyMember GridColS, GridColD, "titelFontName"
CopyMember GridColS, GridColD, "titelFontSize"
CopyMember GridColS, GridColD, "titelFontStyle"
CopyMember GridCols, GridColD, "dpklasse"
Next 'Nächste GridColDef
Next 'Nächste GridDef
Destination.Member("tabsproklasse") = Source.Member("tabsproklasse")
end if
end sub

call Main()


28.11.2005 | 25.10.2013: msgbox und inputbox durch vertec.msgbox und vertec.inputbox ersetzt.
Produktlinien: Expert
Module: Leistung & CRM