Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Christopher am 14.09.04 - 08:57:44
-
Hallo Entwickler, ich habe eine Textlist bzw. ein Arry was gleiche Werte enthält ich will aber nur jeden Wert einmal ausgeben per Formel gibt es ja die Funktion @Unique hat, jemand von Euch eine Idee wie man sowas in Script realisieren kann?
Danke Christopher
-
würde dir das ein Stück weit helfen ?
resultlist = evaluate("@unique(source)", doc)
where
source is the Notes field containing the target list with dupes
resultlist is the result list, and
doc is the document that contains "source"
-
Ja danke urlich daran habe ich auch schon gedacht mal schauen ich werde es mal probieren werde meine lösung dann hier posten.
-
Eine sehr einfache aber gut funktionierende Variante ist
Dim UniqueVals List As String
Forall V In Values
UniqueVals(V) = V
End Forall
wobei Values hier ein Variant ist
Geht aber genau so gut mit einem Array
Das Ergebnis ist eine unique StringListe, die man wieder in eine Array oder ein variant umwandeln kann.
Gruß,
Uwe
-
Hi,
hier ist eine Script-Funktion, die ich vor einiger Zeit im Web gefunden habe. Ich setze sie selbst ein, funktioniert super.
Function UniqueA (vIn As Variant) As Variant
Dim lsTemp List As String 'StringListe
Dim astemp() As String 'Array für Ergebnis
Dim iCount As Integer
'Prüfung ob ein Array aus String übergeben wurde
If Not Isarray(vIn) Then
Messagebox "Es wurde kein Array übergeben" & Chr$(13) & "Funktion wird abgebrochen", 16, "Fehler"
UniqueA = vIn
Exit Function
Elseif Typename( vIn(0) ) <> "STRING" Then
Messagebox "Es wurde kein String-Array übergeben" & Chr$(13) & "Funktion wird abgebrochen", 16, "Fehler"
UniqueA = vIn
Exit Function
End If
'Prüfung auf Mehrfachwerte in der Liste
Forall s In vIn
If Not Iselement( lsTemp(s) ) Then 'Wenn Wert nicht in der Liste wird er der Liste hinzugefügt
lsTemp(s) = ""
iCount = iCount + 1
End If 'If Not Iselement( lsTemp(s)
End Forall 'Forall s In vIn
Redim asTemp(iCount-1) 'Neudimensionierung des Ergebnis-Arrays
iCount = 0
'Übernahme aller Listenelemente ins Ergebnis-Array
Forall v In lsTemp
If Listtag(v) <> "" Then
asTemp(iCount) = Listtag(v)
iCount = iCount + 1
End If 'If Listtag(v) <> ""
End Forall 'Forall v In lsTemp
'Rückgabe des Ergebnis-Array
UniqueA = asTemp
End Function
Axel
-
Oh danke Axel sowas macht doch das leben einfacher :-) vielen Dank auch die anderen die mir geholfen haben