open-insight/LSL2/STPROC/REACTOR_MAINT_TODO_EVENTS.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

161 lines
5.3 KiB
Plaintext

Compile function REACTOR_MAINT_TODO_EVENTS(CtrlEntId, Event, @PARAMS)
#pragma precomp SRP_PreCompiler
$insert APP_INSERTS
$insert EVENT_SETUP
$insert MSG_EQUATES
$INSERT RLIST_EQUATES
$INSERT REACT_SERVS_EQU
$INSERT REACTOR_PM_EQU
$INSERT REACTOR_EQUATES
Equ MSG_WIDTH$ to 600
Declare subroutine SRP_Show_Window, Msg,SRP_Show_Window, Errmsg
Declare function Utility, Datetime, SRP_DateTime, SRP_SORT_ARRAY, Environment_Services
SubclassInfo = Form_Services('FindSubclassControl')
Subclass = SubclassInfo<1>
// 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
Return EventFlow else EVENT_CONTINUE$
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Events
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Event PUB_DIR_BROWSE.CLICK
Server = Environment_Services('GetServer')
value = ''
Begin Case
Case Server EQ 'MESST5202' OR Server EQ 'MESST5201'
value = "Select a directory" : @fm : '\\tsclient\C\Users\'
End Case
dir = Utility( "CHOOSEDIR", @window, value)
if dir NE '' then
Reactor = Get_Property(@Window: '.REACT_NO','DEFPROP')
Set_Property(@Window : '.FILE_PATH', 'DEFPROP', dir: '\PM_Active.csv')
end
end event
Event PUB_EXPORT_TO_EXCEL.CLICK
SaveFile = Get_Property(@Window: '.FILE_PATH', 'DEFPROP')
DataOut = ''
IF SaveFile NE '' then
Void = Utility( 'CURSOR', 'H' )
OPEN 'REACTOR_PM' TO RPMTable ELSE
ErrMsg('Unable to open REACTOR_PM table...')
RETURN 0
END
EndDt = Date() + 60
Statement = 'SELECT REACTOR_PM WITH COMPLETE_DATE = "" AND WITH DUE_DT < ':QUOTE(OConv(EndDt, 'D4/')):' BY REACTOR BY-DSND NEXT_DONE'
RList( Statement, target_activelist$, '', '', '' )
ReactNos = ''
NextDueDts = ''
ServiceIDs = ''
Done = 0
LOOP
READNEXT RPMKey ELSE Done = 1
UNTIL Done
READ RPMRec FROM RPMTable,RPMKey THEN
ReactNo = RPMRec<REACTOR_PM_REACTOR$>
ServiceID = RPMRec<REACTOR_PM_REACT_SERV_ID$>
NextDueDt = RPMRec<REACTOR_PM_NEXT_DONE$>
LOCATE ReactNo IN ReactNos BY 'AR' USING @FM SETTING RPos ELSE
ReactNos = INSERT(ReactNos,RPos,0,0,ReactNo)
END
LOCATE NextDueDt IN NextDueDts<RPos> BY 'AR' USING @VM SETTING DPos ELSE
NextDueDts = INSERT(NextDueDts,RPos,DPos,0,NextDueDt)
ServiceIDs = INSERT(ServiceIDs,RPos,DPos,0,ServiceID)
END
END ;* End of RPMRec read
REPEAT
Lines = ''
ReactCnt = COUNT(ReactNos,@FM) + (ReactNos NE '')
PrevReactNo = ''
FOR R = 1 TO ReactCnt
ReactNo = ReactNos<R>
ndCnt = COUNT(NextDueDts<R>,@VM) + (NextDueDts<R> NE '')
FOR I = 1 TO ndCnt
NextDueDt = OCONV(NextDueDts<R,I>,'D4/')
ServiceID = ServiceIDs<R,I>
Service = XLATE('REACT_SERVS',ServiceID,REACT_SERVS_DESCRIPTION$,'X' )
Lines<-1> = ReactNo : "," :NextDueDt:',':ServiceID:',':Service
NEXT I
NEXT R
HeaderOut = 'REACTOR,PM DUE DATE,SERVICE ID,SERVICE DESC':crlf$
For Each line in Lines using @FM
For a = 1 to COUNT(line,@VM)
line<1,a> = QUOTE(line<1,a>)
Next a
DataOut := line: crlf$
Next line
OSOPEN SaveFile TO hFilePath THEN
OSWrite DataOut ON SaveFile ;* Clear file it was already there
END ELSE
OSWrite DataOut ON SaveFile ;* Create the file if it wasn't
OSOPEN SaveFile TO hFilePath ELSE
Msg(@Window, 'Unable to write the file!')
RETURN ''
END
END
FilePointer = 0
OSBWrite HeaderOut ON SaveFile AT FilePointer
FilePointer += LEN(HeaderOut)
OSBWrite DataOut ON SaveFile AT FilePointer
OSClose hFilePath
Msg(@Window, 'Successfuly wrote file at ' : SaveFile : '.')
end else
msg(@Window,'Must enter a valid location to save export!')
return
end
end event
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Internal GoSubs
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Setup_OLE_Controls:
return