Compile function DIALOG_SERVICE_HISTORY_EVENTS(CtrlEntId, Event, @PARAMS) #pragma precomp SRP_PreCompiler #window DIALOG_SERVICE_HISTORY Declare function Get_Property, Reactor_Log_Services, SRP_Sort_Array, Utility, Dialog_Box Declare subroutine Set_Property, Send_Message, SRP_Run_Command, Obj_Appwindow $INSERT MSG_EQUATES // Update the arguments so that the OpenInsight OLE event will treate the ActiveX event as a native event handler. If Event EQ 'OLE' then Transfer Event to OIEvent Transfer Param1 to Event Transfer Param2 to Param1 Transfer Param3 to Param2 * Transfer Param4 to Param3 * Transfer Param5 to Param4 * Transfer Param6 to Param5 * Transfer Param7 to Param6 * Transfer Param8 to Param7 end GoToEvent Event for CtrlEntId else // Event not implemented end Return EventFlow or 1 //----------------------------------------------------------------------------- // EVENT HANDLERS //----------------------------------------------------------------------------- Event WINDOW.CREATE(CreateParam) EventFlow = 1 GoSub Setup_OLE_Controls ReactNo = CreateParam Set_Property(@Window:'.EDT_REACT_NO', 'TEXT', ReactNo) GoSub Refresh End Event Event EDT_REACT_NO.LOSTFOCUS(Flag, FocusID) GoSub Refresh end event Event BTN_FILTER_ALL.CLICK() ListToDisplay = Get_Property(@Window:'.EDT_ALL_DATA', 'LIST') Set_Property(@Window:'.EDT_SERV_HIST', 'LIST', ListToDisplay) end event Event BTN_FILTER_FILTERS.CLICK() FilterIDs = '' FilterIDs := 865 : @VM FilterIDs := 228 : @VM FilterIDs := 230 : @VM FilterIDs := 950 : @VM FilterIDs := 455 : @VM FilterIDs := 226 : @VM FilterIDs := 968 : @VM FilterIDs := 229 : @VM FilterIDs := 526 : @VM FilterIDs := 1085 : @VM FilterIDs := 269 : @VM FilterIDs := 1084 : @VM FilterIDs := 256 : @VM FilterIDs := 953 CurrentServList = Get_Property(@Window:'.EDT_ALL_DATA', 'LIST') ListToDisplay = '' for each ID in FilterIDs using @VM for i = 1 to DCOUNT(CurrentServList, @FM) If CurrentServList EQ ID then ListToDisplay := CurrentServList : @FM end Next i Next ID Set_Property(@Window:'.EDT_SERV_HIST', 'LIST', ListToDisplay) end event Event BTN_FILTER_MFC.CLICK() MFCIDs = '' MFCIDs := 951 : @VM MFCIDs := 104 : @VM MFCIDs := 108 : @VM MFCIDs := 173 : @VM MFCIDs := 120 : @VM MFCIDs := 122 : @VM MFCIDs := 134 : @VM MFCIDs := 128 : @VM MFCIDs := 144 : @VM MFCIDs := 150 : @VM MFCIDs := 149 : @VM MFCIDs := 466 : @VM MFCIDs := 1142 : @VM MFCIDs := 1270 : @VM MFCIDs := 189 CurrentServList = Get_Property(@Window:'.EDT_ALL_DATA', 'LIST') ListToDisplay = '' for each ID in MFCIDs using @VM for i = 1 to DCOUNT(CurrentServList, @FM) If CurrentServList EQ ID then ListToDisplay := CurrentServList : @FM end Next i Next ID Set_Property(@Window:'.EDT_SERV_HIST', 'LIST', ListToDisplay) end event Event BTN_FILTER_PIEZOCON.CLICK() PiezoconIDs = '' PiezoconIDs := 10026 : @VM PiezoconIDs := 1245 CurrentServList = Get_Property(@Window:'.EDT_ALL_DATA', 'LIST') ListToDisplay = '' for each ID in PiezoconIDs using @VM for i = 1 to DCOUNT(CurrentServList, @FM) If CurrentServList EQ ID then ListToDisplay := CurrentServList : @FM end Next i Next ID Set_Property(@Window:'.EDT_SERV_HIST', 'LIST', ListToDisplay) end event Event BTN_FILTER_THERMOCOUPLE.CLICK() ThermocoupleIDs = '' ThermocoupleIDs := 1232 : @VM ThermocoupleIDs := 237 : @VM ThermocoupleIDs := 239 : @VM ThermocoupleIDs := 238 : @VM ThermocoupleIDs := 233 CurrentServList = Get_Property(@Window:'.EDT_ALL_DATA', 'LIST') ListToDisplay = '' for each ID in ThermocoupleIDs using @VM for i = 1 to DCOUNT(CurrentServList, @FM) If CurrentServList EQ ID then ListToDisplay := CurrentServList : @FM end Next i Next ID Set_Property(@Window:'.EDT_SERV_HIST', 'LIST', ListToDisplay) end event Event BTN_FILTER_REGULATORS.CLICK() RegulatorIDs = '' RegulatorIDs := 141 : @VM RegulatorIDs := 131 : @VM RegulatorIDs := 99 : @VM RegulatorIDs := 98 : @VM RegulatorIDs := 861 : @VM RegulatorIDs := 948 : @VM RegulatorIDs := 949 : @VM RegulatorIDs := 125 : @VM RegulatorIDs := 121 : @VM RegulatorIDs := 1131 : @VM RegulatorIDs := 130 : @VM RegulatorIDs := 137 : @VM RegulatorIDs := 138 : @VM RegulatorIDs := 499 : @VM RegulatorIDs := 142 : @VM RegulatorIDs := 152 : @VM RegulatorIDs := 146 : @VM RegulatorIDs := 117 : @VM RegulatorIDs := 38 : @VM RegulatorIDs := 1327 CurrentServList = Get_Property(@Window:'.EDT_ALL_DATA', 'LIST') ListToDisplay = '' for each ID in RegulatorIDs using @VM for i = 1 to DCOUNT(CurrentServList, @FM) If CurrentServList EQ ID then ListToDisplay := CurrentServList : @FM end Next i Next ID Set_Property(@Window:'.EDT_SERV_HIST', 'LIST', ListToDisplay) end event Event BTN_FILTER_VALVES.CLICK() FiltersIDs = '' FiltersIDs := 557 : @VM FiltersIDs := 1273 : @VM FiltersIDs := 82 : @VM FiltersIDs := 84 : @VM FiltersIDs := 96 : @VM FiltersIDs := 1311 : @VM FiltersIDs := 1334 : @VM FiltersIDs := 436 : @VM FiltersIDs := 100 : @VM FiltersIDs := 101 : @VM FiltersIDs := 102 : @VM FiltersIDs := 105 : @VM FiltersIDs := 917 : @VM FiltersIDs := 106 : @VM FiltersIDs := 109 : @VM FiltersIDs := 110 : @VM FiltersIDs := 112 : @VM FiltersIDs := 119 : @VM FiltersIDs := 1121 : @VM FiltersIDs := 1144 : @VM FiltersIDs := 126 : @VM FiltersIDs := 123 : @VM FiltersIDs := 127 : @VM FiltersIDs := 129 : @VM FiltersIDs := 132 : @VM FiltersIDs := 133 : @VM FiltersIDs := 912 : @VM FiltersIDs := 136 : @VM FiltersIDs := 139 : @VM FiltersIDs := 140 : @VM FiltersIDs := 1141 : @VM FiltersIDs := 147 : @VM FiltersIDs := 145 : @VM FiltersIDs := 148 : @VM FiltersIDs := 1151 : @VM FiltersIDs := 155 : @VM FiltersIDs := 154 : @VM FiltersIDs := 1083 : @VM FiltersIDs := 285 : @VM FiltersIDs := 1161 : @VM FiltersIDs := 1269 : @VM FiltersIDs := 1331 : @VM FiltersIDs := 908 : @VM FiltersIDs := 85 : @VM FiltersIDs := 118 : @VM FiltersIDs := 1330 : @VM FiltersIDs := 175 : @VM FiltersIDs := 1326 : @VM FiltersIDs := 1290 : @VM FiltersIDs := 1325 CurrentServList = Get_Property(@Window:'.EDT_ALL_DATA', 'LIST') ListToDisplay = '' for each ID in FiltersIDs using @VM for i = 1 to DCOUNT(CurrentServList, @FM) If CurrentServList EQ ID then ListToDisplay := CurrentServList : @FM end Next i Next ID Set_Property(@Window:'.EDT_SERV_HIST', 'LIST', ListToDisplay) end event Event BTN_FILTER_ELEVATORS.CLICK() ElevatorIDs = '' ElevatorIDs := 1358 : @VM ElevatorIDs := 1361 CurrentServList = Get_Property(@Window:'.EDT_ALL_DATA', 'LIST') ListToDisplay = '' for each ID in ElevatorIDs using @VM for i = 1 to DCOUNT(CurrentServList, @FM) If CurrentServList EQ ID then ListToDisplay := CurrentServList : @FM end Next i Next ID Set_Property(@Window:'.EDT_SERV_HIST', 'LIST', ListToDisplay) end event Event BTN_HEADER_DATE_PERFORMED.OnContextMenu(Item) DataArray = Get_Property(@Window:'.EDT_SERV_HIST', 'LIST'); *Get data from view * for each Line in DataArray using @FM * Line<1,3> = IConv(Line<1,3>, 'DE') * Next Line for SortIndex = 1 to DCount(DataArray, @FM) DataArray = IConv(DataArray, 'D/') Next SortIndex DataArraySorted = '' // Begin Case Case Item EQ 'Ascending' null DataArraySorted = SRP_Sort_Array(DataArray, "AR3", 1) Case Item EQ 'Descending' DataArraySorted = SRP_Sort_Array(DataArray, "DR3", 1) End Case * For each Line in DataArraySorted using @FM * DataArraySorted<1,3> = OCONV(DataArraySorted<1,3>, 'D2/') * Next Line for SortIndex = 1 to DCount(DataArraySorted, @FM) DataArraySorted = OCONV(DataArraySorted, 'D/') Next SortIndex Set_Property(@Window:'.EDT_SERV_HIST', 'LIST', DataArraySorted) end event Event EDT_SERV_HIST.DBLCLK(CtrlKey, ShiftKey, MouseButton) DataArray = Get_Property(@Window:'.EDT_SERV_HIST', 'LIST') SelectedPos = Get_Property(@Window:'.EDT_SERV_HIST', "SELPOS") SelectedCol = SelectedPos<1> SelectedRow = SelectedPos<2> Begin Case Case SelectedCol EQ 1 //User Selected the service id. SelectedServID = DataArray ReactNo = Get_Property(@Window:'.EDT_REACT_NO', 'TEXT') IF ReactNo NE '' AND SelectedServID NE '' then Def = "" Def = "Gathering REACTOR_LOG records..." Def = "U" MsgUp = Msg(@window, Def) ServiceList = Reactor_Log_Services('GetLogsByReactorAndServID', ReactNo, SelectedServID) Set_Property(@Window:'.EDT_SERV_HIST', 'LIST', ServiceList) Msg(@window, MsgUp) end Case SelectedCol EQ 4 //User Selected the reactor log id SelectedRLID = DataArray IF SelectedRLID NE '' then Void = Dialog_Box('REACTOR_LOG', @Window, SelectedRLID:'*CENTER') end Case SelectedCol EQ 5 //User Selected the reactor item id SelectedRiID = DataArray If SelectedRiID NE '' then obj_AppWindow('ViewRelated','REACT_ITEM':@RM:SelectedRiID) end //Void = Dialog_Box('REACT_ITEM', @Window, SelectedRiID:'*CENTER') End Case end event Event PUB_DIR_BROWSE.CLICK value = "Select a directory" : @fm : "c:\temp" dir = Utility( "CHOOSEDIR", @window, value) if dir NE '' then Set_Property(@Window : '.FILE_PATH', 'DEFPROP', dir: '\') end end event EVENT PUB_EXPORT.CLICK() equ crlf$ to \0D0A\ equ tab$ to char(09) equ comma$ to char(44) equ space$ to char(32) equ record$ to char(00) equ scolon$ to char(59) ReactNo = Get_Property(@Window : '.EDT_REACT_NO', 'TEXT') FilePath = Get_Property(@Window : '.FILE_PATH', 'TEXT') FileName = 'Reactor_Service_History_' : ReactNo : '_' : Date() : '.csv' Data = 'Service ID' : @VM : 'Service Description' : @VM : 'Date Last Performed' : @FM Data := Get_Property(@Window : '.EDT_SERV_HIST', 'LIST') swap @fm with crlf$ in Data swap @vm with ',' in Data SavePath = FilePath : FileName OSWrite data To SavePath IF FilePath NE '' then SRP_Run_Command('start excel "':SavePath:'"', 'VAR') end end event //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Internal GoSubs //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Refresh: ReactNo = Get_Property(@Window:'.EDT_REACT_NO', 'TEXT') IF ReactNo NE '' then Def = "" Def = "Gathering REACTOR_LOG records..." Def = "U" MsgUp = Msg(@window, Def) AllServIDs = Reactor_Log_Services('GetAllServIDs') ReactServsPerformed = Reactor_Log_Services('GetLatestReactorLogsByReactor', ReactNo) for each ReactServ in ReactServsPerformed using @FM For i = 1 to DCount(AllServIDs, @FM) If ReactServ<1,1> EQ AllServIDs then AllServIDs = ReactServ<1,4> AllServIDs = ReactServ<1,2> AllServIDs = ReactServ<1,5> end Next i * Locate ReactServ<1,1> in AllServIDs using @FM setting AddPos then * AllServIDs = ReactServ<1,4> * end Next ReactServ Msg(@window, MsgUp) end Set_Property(@Window:'.EDT_SERV_HIST', 'LIST', AllServIDs) Set_Property(@Window:'.EDT_ALL_DATA', 'LIST', AllServIDs); //Using this control to store all data for filtering return Setup_OLE_Controls: Ctrl = @Window : '.BTN_HEADER_DATE_PERFORMED' Menu = "Ascending":@FM:"Descending" Set_Property(Ctrl, "OLE.ContextMenu", Menu) Send_Message(Ctrl, 'QUALIFY_EVENT', 'OLE.OnContextMenu', 1) Send_Message(Ctrl, 'QUALIFY_EVENT', 'OLE.OnContextMenuClick', 1) return