#6806
Support 1
Participant

    The following version of your Portal code takes advantage of a DHTML component that you can download from here. To work with this applet, copy the file into your common Application Data folder, eg. C:Documents and SettingsAll UsersApplication Data.

    For more information about this, see the article Fun with Tables.

    I have used the _ operator to shorten source code lines in the VBScript code, to make it more readable.

    In the HTML table, I have added tags

    <thead>

    ,

    <tbody>

    and replaced the tag

    <th>

    by

    <td>

    in order to make the DHTML Behavior work.

    Notice the Portal property .HTML is no longer used; .URL is used instead. I have done this to make the DHTML Behavior work correctly. You could still use the .HTML property, which requires embedding the JavaScript in the DHTML component into your source HTML – therefore also into your applet source code.

    '-------------------------------------------------------------------------------
    Const LINK_START  = "<A HREF="
    Const UID_MARKER  = "UID:"
    Const TABLE_END   = "</table>"
    Const FONT_STYLE  = "<FONT STYLE=""TEXT-DECORATION:NONE;FONT-FAMILY:ARIAL;COLOR:RED;FONT-SIZE=8PT"">"
    Const FONT_END    = "</FONT>"
    
    Sub Main(Client, GWEvent)
    
      Dim iTABLE_BEGIN
      Dim iHRT
      Dim iMsg
      Dim iPortal
      Dim iPortals
      Dim iHTML
      dim iFilter
      dim iFileName
      dim oFileSystem
      dim oMessage
      dim oMessages
    
      iHRT = Chr(13) & Chr(10)
    
      Set iPortals = GroupWise.PortalManager.Portals
      Set iPortal = iPortals.Item("TaskManager")
    
      if iPortal is nothing then
         Set iPortal = iPortals.add
         iPortal.ID = "TaskManager"
         iPortal.OpenMessages = TRUE
         iPortal.NavigationControlsEnabled = FALSE
      end if
    
      iTABLE_BEGIN = "<table style=""behavior:url(sort.htc);"" border=""1"" cellpadding=""0"" cellspacing=""1"">"
      iHTML = iTABLE_BEGIN & "<thead><tr><td>Prio</td><td align=""left"">Subject</td></tr></thead>"
      iHTML = iHTML & iHRT & "<tbody>"
    
         iFilter = "(TASK AND NOT COMPLETED)"
    
         set oMessages = groupwise.account.calendar.messages.find(iFilter)
    
         for each oMessage in oMessages
            iHTML = iHTML & iHRT & "<tr><td align=""center"">" & _
              FONT_STYLE & oMessage.TaskPriority & FONT_END & "</td><td>" & _
              FONT_STYLE & " " & "<A HREF=UID:" & oMessage.MessageID & _
              " STYLE=""TEXT-DECORATION:NONE"">" & oMessage.Subject & "</A>" & _
              FONT_END & "</td></tr>"
         next
    
         set oMessages = nothing
    
      iHTML = iHTML & "</tbody>" & TABLE_END
      iHTML = "<HTML><BODY>" & iHTML & "</BODY></HTML>"
    
      set oFileSystem = Utilities.FileSystem
      call oFileSystem.CopyFile(oFileSystem.PathCommonAppData & "sort.htc", _
        Utilities.TempFiles & "sort.htc", true)
      set oFileSystem = nothing
    
      iFileName = Utilities.TempFiles & "sort.htm"
      call Utilities.SaveStringToFile(iHTML, iFileName, true)
      iPortal.URL = iFileName
      iPortal.Show
      iPortals.ActivePortal = iPortal.ID
    
    End Sub

    You can modify the JavaScript in the DHTML component to suit your needs, eg. sort by more than one table column.

    I hope this helps.

    Advansys Support