This tip shows you how to sort a NotesOutline object at either the root or first child level. Pass in "" as strParent to sort the root level otherwise pass in the element name to sort under.
By submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.
It's not very efficient, but since outlines aren't too, too big, it works fine.
Sub OutlineSort ( outline As NotesOutline, strParent As String) 'This routine sorts the outline in alphabetical order Dim swap As Integer Dim found As Integer Dim bFound As Integer Dim currententry As NotesOutlineEntry Dim nextentry As NotesOutlineEntry Dim rootentry As NotesOutlineEntry bFound = False Set rootentry = outline.GetFirst() While Not rootentry Is Nothing And Not bFound If rootentry.Label = strParent Then bFound = True End If If Not bFound Then Set rootentry = outline.GetNextSibling(rootentry) End If Wend If strParent <> "" And Not bFound Then Exit Sub 'Parent entry not found End If top: swap = False If strParent <> "" Then Set currententry = outline.GetChild(rootentry) Set nextentry = outline.GetNextSibling(currententry) Else Set currententry = outline.GetFirst() Set nextentry = outline.GetNextSibling(currententry) End If While Not (currententry Is Nothing) And Not (nextentry Is Nothing) And swap <> True If currententry.Label > nextentry.Label Then Call outline.Moveentry(currententry , nextentry, True, False) swap = True End If Set currententry = outline.GetnextSibling(currententry ) Set nextentry = outline.GetnextSibling(nextentry ) Wend If swap Then Goto top End If outline.save End Sub