# Customized Panes for 'IMPMENLX' Created: 2009/01/14 # PANE:To-Do List [PANE] RUSSH IMPMENLX 01000To-Do List Details 020 000000111921ARSPEN010M [VBSCRIPT] ' Show To-Do List and show Popup ' ------------------------------ ' @(#) Script version 6.0.002 Last updated 2010/08/08 ' ' Click 'Refresh' to look for To-Do List items for current operator ' Only performed for the primary SYSPRO instance Option Explicit Dim strReminders, strNewReminders, DeleteTempFile '------------------------------------------------------------------------------ ' On Refresh - call business object and show popup with reminder info Function CustomizedPane_OnRefresh() If SystemVariables.CodeObject.SYSPROInstance = "0" Then DeleteTempFile = 0 FindReminders() End if End Function '------------------------------------------------------------------------------ ' On Load - create an listview with columns defined and refresh latest list. ' You should click 'Refresh' to show reminders now. ' This is typically automated to refresh every minute. Function CustomizedPane_OnLoad() If SystemVariables.CodeObject.SYSPROInstance = "0" Then SetListview() DeleteTempFile = 1 FindReminders() Else SetListviewSecondInstance() End if End Function ' ----------------------------------------------------------------------- ' When double-click any listview row run To-Do List program (IMPTSK) Function CustomizedPane_OnDblClick() SystemVariables.CodeObject.SYSPROProgramToRun = "IMPTSK" End Function '------------------------------------------------------------------------------ ' This function calls the To-Do List Query Business Object Function FindReminders() ' SetListview() ' Determine current Client date and time (can be different to Server) Dim dtCurDate, strCurDate, tmCurTime, strCurTime dtCurDate = Date ' eg 2008/10/08 strCurDate = Year(dtCurDate) & "-" & Right("0" & Month(dtCurDate),2) & "-" & Right("0" & Day(dtCurDate),2) tmCurTime = Time ' eg 12:15:29 PM strCurTime = Right("0" & Hour(tmCurTime),2) & ":" & Right("0" & Minute(tmCurTime),2) & ":" & Right("0" & Second(tmCurTime),2) 'msgbox "Current date and time is: " & strCurDate & " " & strCurTime ' Call CMSQRE - passing Client Local date/time ' Returns outstanding reminders for current operator Dim XmlOut, XmlParam, XmlIn XmlIn = XmlIn & "" XmlIn = XmlIn & " " XmlIn = XmlIn & " " & strCurDate & "" XmlIn = XmlIn & " " & strCurTime & "" XmlIn = XmlIn & " " If DeleteTempFile = 1 Then XmlIn = XmlIn & " " XmlIn = XmlIn & " Y" XmlIn = XmlIn & " " End if XmlIn = XmlIn & "" On Error Resume Next XmlOut = CallBO("CMSQRE",XmlIn,"auto") If Err Then MsgBox "To-Do List Query Business Object Exception: (" & Err.number & ") " & Err.description,48,"Exception Message (CMSQRE)" XmlOut="" End if Err.Clear ' Load XmlOut into the MS XML DOM Dim xmlDoc Set xmlDoc = createobject("Msxml2.FreeThreadedDOMDocument.3.0") xmlDoc.async = false xmlDoc.LoadXML(XmlOut) ' Parse summary info (eg how many reminders) Dim ObjReminders, NumberOfReminders, NumberOfNewReminders Set ObjReminders = xmlDoc.DocumentElement.SelectSingleNode("//QueryReminder/SummaryInfo") NumberOfReminders = objReminders.SelectSingleNode("NumberOfReminders").Text NumberOfNewReminders = objReminders.SelectSingleNode("NumberOfNewReminders").Text strReminders = Cstr(NumberOfReminders) ' Convert to Alpha string strNewReminders = Cstr(NumberOfNewReminders) ' Convert to Alpha string ' Refresh listview CustomizedPane.CodeObject.ListviewData = XmlOut ' Show Popup if there are any new reminders If NumberOfNewReminders <> 0 Then ShowPopup() End if Set xmlDoc = nothing End Function ' ----------------------------------------------------------------------- ' Show Popup with number of reminders and hyperlink to IMPTSK Function ShowPopup() Dim PopupMsg If strNewReminders = "1" Then PopupMsg = "You have 1 new To-Do list item." Else PopupMsg = "You have " & strNewReminders & " new To-Do list items." End if Dim Popup Popup = Popup & "" Popup = Popup & "" Popup = Popup & "" Popup = Popup & "" Popup = Popup & "" CustomizedPane.CodeObject.DesktopAlert = Popup End Function ' ----------------------------------------------------------------------- ' Set listview columns and mappings Function SetListview() Dim ListXML ListXML = ListXML & "" ListXML = ListXML & " " ListXML = ListXML & " " ListXML = ListXML & " " 'ListXML = ListXML & " " 'ListXML = ListXML & " " 'ListXML = ListXML & " " 'ListXML = ListXML & " " 'ListXML = ListXML & " " 'ListXML = ListXML & " " 'ListXML = ListXML & " " 'ListXML = ListXML & " " ListXML = ListXML & "" CustomizedPane.CodeObject.ListviewProperties = ListXML End Function ' ----------------------------------------------------------------------- ' Set listview for second and subsequent instance Function SetListviewSecondInstance() Dim ListXML ListXML = ListXML & "" ListXML = ListXML & " " ListXML = ListXML & "" CustomizedPane.CodeObject.ListviewProperties = ListXML End Function