Hallo Zusammen,
könnt ihr mir sagen, ob in einer ForAll-Schleife Duplikate finden lassen?
Der erste Gedanke war, alles in eine Liste zu schreiben, oder in ein Array und dies innerhalb der ForAll mit iselement zu prüfen...
Ist das der richtige Weg?
Code
.......
Set doc = view.Getfirstdocument()
While Not doc Is Nothing
counter=0
dlTitel=""
nameInnerXml=""
locationInnerXml=""
pointsInnerXml=""
leitsystempoint=""
......
'Array der Dokumentenlinks der Ansprechpartner holen und zerlegen
ApDokumentLinkstr=""
Set item_ApDokumentLink=doc.GetFirstItem("AP_D115_Link")
If Not(item_ApDokumentLink Is Nothing) Then
orgadocZimmernr=""
ForAll refVar In item_ApDokumentLink.Values
'Werte in ein Array um zu prüfen ob schon vorhanden?
'ReDim Preserve leitsystempointarray(counter)
'leitsystempointarray(counter)=refVar
'counter=counter+1
ApDokumentLinkstr=refVar
ApDokumentLinkstr=StrRight(ApDokumentLinkstr,ApDokumentLinkstrRight)
ApDokumentLinkstr=StrLeft(ApDokumentLinkstr,ApDokumentLinkstrLeft)
'Anhand der Dokumenten ID die Zimmernummer der APs ausgeben
If ApDokumentLinkstr<>"" Then
Set orgadoc = orgadb.GetDocumentByUNID(ApDokumentLinkstr)
Set item_orgadoc=orgadoc.GetFirstItem("Zimmernummer")
If Not(item_orgadoc Is Nothing) Then
orgadocZimmernr=+item_orgadoc.Values(0)
'Leitsystem Point ermitteln, Innerhalb aller Zimmernummern des Raumes anhand des Schlüssels zimmernummer
Set entryMapping = viewMapping.GetEntryByKey(orgadocZimmernr)
If Not (entryMapping Is Nothing) Then
leitsystempoint = entryMapping.Columnvalues(0)
pointsInnerXml=pointsInnerXml+space8+|<point>|+leitsystempoint+|</point>|+Chr(13)
Else
pointsInnerXml=pointsInnerXml+space8+|<point>L00P0000</point>|+Chr(13)
End If
locationInnerXml=locationInnerXml+space8+|<location>|+orgadocZimmernr+|</location>|+Chr(13)
End If
End If
End ForAll
End If
.......
'Ergebnis zusammen setzen wenn eins der beiden Felder gefüllt ist
'If orgadocZimmernr <> "" Or dlOhneApstr <> "" Then
dlRaumNr=orgadocZimmernr+dlOhneApstr
'End If
'XML Struktur Aufbau
pointsOuterXml=+space6+|<points>|+Chr(13)+pointsInnerXml+space6+|</points>|+Chr(13)
locationOuterXml=space6+|<locations>|+Chr(13)+locationInnerXml+space6+|</locations>|+Chr(13)
setInnerXml=space8+|<set>set_03</set>|+Chr(13)
setOuterXml=space6+|<sets>|+Chr(13)+setInnerXml+space6+|</sets>|+Chr(13)
'Zusammensetzen der XML Ausgabe:
LeseDl=LeseDl+space4+|<destination id="P|+CStr(id)+|" display="true">|+Chr(13)+pointsOuterXml+nameInnerXml+locationOuterXml+setOuterXml+space4+|</destination>|+Chr(13)
id=id+1
Set doc = view.Getnextdocument(doc)
Wend
Alles anzeigen