741 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			741 lines
		
	
	
		
			17 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| COMPILE FUNCTION Comm_React_Event(Instruction,Parm1,Parm2)
 | |
| #pragma precomp SRP_PreCompiler
 | |
| 
 | |
| /*
 | |
| 	Template Commuter module for REACT_EVENT (Reactor Event Log) window
 | |
| 	
 | |
| 	08/30/2006 - John C. Henry, J.C. Henry & Co., Inc.
 | |
| 	03/26/2021 - DJS - Modified PrintLast24 subroutine to provide a popup to collect the number of days to report
 | |
| 	                   when called from the 'WO_DAILY_SCHED_SINGLE' form (WIP).
 | |
| */
 | |
| 
 | |
| DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, Center_Window, Post_Event
 | |
| DECLARE SUBROUTINE ErrMsg, Send_Message, Set_Property, Send_Event, Btree.Extract, obj_AppWindow, Export_Passdown
 | |
| DECLARE SUBROUTINE obj_Notes, Security_Err_Msg, End_Window, Forward_Event, Start_Window, Create_Note, Print_Passdown
 | |
| 
 | |
| DECLARE FUNCTION Get_Property, Get_Status, Dialog_Box, Utility, Center_Window, Popup, Collect.Ixvals
 | |
| DECLARE FUNCTION Send_Message, Msg, Security_Check, RowExists,  NextKey, obj_React_Event, obj_Popup, Memberof
 | |
| 
 | |
| 
 | |
| 
 | |
| $INSERT MSG_EQUATES
 | |
| $INSERT APPCOLORS
 | |
| $INSERT LSL_USERS_EQU
 | |
| $INSERT SECURITY_RIGHTS_EQU
 | |
| $INSERT REACT_EVENT_EQUATES
 | |
| $INSERT REACTOR_EQUATES
 | |
| $INSERT REACT_READS_EQUATES
 | |
| $INSERT POPUP_EQUATES
 | |
| $INSERT RLIST_EQUATES
 | |
| 
 | |
| EQU CRLF$	TO \0D0A\
 | |
| 
 | |
| 
 | |
| ErrTitle = 'Error in Comm_React_Event'
 | |
| ErrorMsg = ''
 | |
| 
 | |
| Result = ''
 | |
| 
 | |
| BEGIN CASE
 | |
| 	CASE Instruction = 'Create' 			; GOSUB Create
 | |
| 	CASE Instruction = 'Refresh'			; GOSUB Refresh
 | |
| 	CASE Instruction = 'Read'				; GOSUB Read
 | |
| 	CASE Instruction = 'Write'				; GOSUB Write
 | |
| 	CASE Instruction = 'Clear'				; GOSUB Clear
 | |
| 	CASE Instruction = 'Delete'				; GOSUB Delete
 | |
| 	CASE Instruction = 'Page'				; GOSUB Page
 | |
| 	CASE Instruction = 'Close'				; GOSUB Close
 | |
| 	CASE Instruction = 'EventCdGF'			; GOSUB EventCdGF
 | |
| 	CASE Instruction = 'EventDtmLF'			; GOSUB EventDtmLF
 | |
| 	CASE Instruction = 'EventCdDelta'		; GOSUB EventCdDelta
 | |
| 	CASE Instruction = 'CommentDelta'		; GOSUB CommentDelta
 | |
| 	CASE Instruction = 'LUReactEvent'		; GOSUB LUReactEvent
 | |
| 	CASE Instruction = 'LUEventCd'			; GOSUB LUEventCd
 | |
| 	CASE Instruction = 'LUProbCat'			; GOSUB LUProbCat
 | |
| 	CASE Instruction = 'PrintLast24'		; GOSUB PrintLast24
 | |
| 	CASE Instruction = 'Last24Hrs'			; GOSUB Last24Hrs
 | |
| 	CASE Instruction = 'New'				; GOSUB New
 | |
| 	CASE Instruction = 'ModeDC'				; GOSUB ModeDC
 | |
| 	CASE Instruction = 'MaintenanceDC'		; GOSUB MaintenanceDC
 | |
| 	CASE Instruction = 'PassdownEntry'		; GOSUB PassdownEntry
 | |
| 	CASE Instruction = 'PrintPassdown'		; GOSUB PrintPassdown
 | |
| 		
 | |
| 		
 | |
| 	CASE 1
 | |
| 		ErrorMsg = 'Unknown Instruction ':QUOTE(Instruction):' passed to routine.'
 | |
| 		ErrMsg(ErrorMsg)
 | |
| 		
 | |
| END CASE
 | |
| 
 | |
| RETURN Result
 | |
| 
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| Create:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	/*
 | |
| 	IF NOT(Security_Check('Reactor Event Log',READ$)) THEN
 | |
| 		Security_Err_Msg('Reactor Event Log',READ$)
 | |
| 		End_Window(@WINDOW)
 | |
| 		RETURN
 | |
| 	END
 | |
| 	*/
 | |
| 	
 | |
| 	
 | |
| 	obj_Appwindow('Create',@WINDOW)
 | |
| 	
 | |
| 	
 | |
| 	* Provides compatibility with the existing messaging attachment system
 | |
| 	
 | |
| 	IF Parm1 NE '' THEN
 | |
| 		PassedKeys = FIELD(Parm1,'*',1)
 | |
| 		obj_Appwindow('ViewRelated',@WINDOW:@RM:PassedKeys)
 | |
| 	END
 | |
| 	
 | |
| 	IOOptions = Get_Property(@WINDOW,'IOOPTIONS')
 | |
| 	IOOptions<11> = 1	;* Generate READ event on QBFLoad
 | |
| 	
 | |
| 	Set_Property(@WINDOW,'IOOPTIONS',IOOptions)
 | |
| 	
 | |
| 	
 | |
| 	GOSUB Refresh
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| Clear:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	
 | |
| 	Set_Property(@WINDOW:'.COMMENT','ENABLED',1)
 | |
| 	Set_Property(@WINDOW:'.COMMENT','BACKCOLOR',WHITE$)
 | |
| 	
 | |
| 	
 | |
| 	Send_Event(@WINDOW,'PAGE',1)
 | |
| 	
 | |
| 	
 | |
| 	* * * * * * *
 | |
| Refresh:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	Ctrls  = @WINDOW:'.REACT_NO':@RM		; Props  = 'DEFPROP':@RM
 | |
| 	Ctrls := @WINDOW:'.EVENT_DTM'			; Props := 'DEFPROP'
 | |
| 	
 | |
| 	Vals = Get_Property(Ctrls,Props)
 | |
| 	
 | |
| 	ReactNo		= Vals[1,@RM]
 | |
| 	EventDTM	= Vals[COL2()+1,@RM]
 | |
| 	
 | |
| 	NewButton = ''
 | |
| 	IF ReactNo NE '' AND EventDTM = '' THEN NewButton = 1 ELSE NewButton = 0
 | |
| 	
 | |
| 	Set_Property(@WINDOW:'.NEW_BUTTON','ENABLED',NewButton)
 | |
| 	
 | |
| 	RICtrls  = @WINDOW:'.REACT_LOG_PD_KEY':@RM			; RIProps  = 'ARRAY':@RM
 | |
| 	RICtrls := @WINDOW:'.REACT_LOG_KEY':@RM				; RIProps := 'ARRAY':@RM
 | |
| 	RICtrls := @WINDOW:'.REACT_MODE_KEY':@RM			; RIProps := 'ARRAY':@RM
 | |
| 	RICtrls := @WINDOW:'.REACT_ESC_START_KEY':@RM		; RIPRops := 'ARRAY':@RM
 | |
| 	RICtrls := @WINDOW:'.REACT_ESC_STOP_KEY'			; RIPRops := 'ARRAY'
 | |
| 	
 | |
| 	RIVals = Get_Property(RICtrls,RIProps)
 | |
| 	
 | |
| 	PDKey		= RIVals[1,@RM]<1,1>
 | |
| 	LogKey		= RIVals[COL2()+1,@RM]<1,1>
 | |
| 	ModeKey		= RIVals[COL2()+1,@RM]<1,1>
 | |
| 	EscStartKey	= RIVals[COL2()+1,@RM]<1,1>
 | |
| 	EscStopKey	= RIVals[COL2()+1,@RM]<1,1>
 | |
| 	
 | |
| 	TestString = PDKey:LogKey:ModeKey:EscStartKey:EscStopKey
 | |
| 	
 | |
| 	AutoLogged = Get_Property(@WINDOW:'.AUTO_LOG','CHECK')
 | |
| 	
 | |
| 	IF TestString = '' OR NOT(AutoLogged) THEN
 | |
| 		Set_Property(@WINDOW:'.LU_EVENT_CD','ENABLED',1)
 | |
| 		Set_Property(@WINDOW:'.EVENT_CD','ENABLED',1)
 | |
| 		Set_Property(@WINDOW:'.COMMENT','ENABLED',1)
 | |
| 	END ELSE
 | |
| 		Set_Property(@WINDOW:'.LU_EVENT_CD','ENABLED',0)
 | |
| 		Set_Property(@WINDOW:'.EVENT_CD','ENABLED',0)
 | |
| 		Set_Property(@WINDOW:'.COMMENT','ENABLED',0)
 | |
| 	END
 | |
| 	
 | |
| 	
 | |
| 	* QBF buttons
 | |
| 	
 | |
| 	Ctrls  = @WINDOW:'.QBF_FIRST_FIX':@RM		; Props  = 'ENABLED':@RM
 | |
| 	Ctrls := @WINDOW:'.QBF_PREV_FIX':@RM		; Props := 'ENABLED':@RM
 | |
| 	Ctrls := @WINDOW:'.QBF_ABS_FIX':@RM			; Props := 'ENABLED':@RM
 | |
| 	Ctrls := @WINDOW:'.QBF_NEXT_FIX':@RM		; Props := 'ENABLED':@RM
 | |
| 	Ctrls := @WINDOW:'.QBF_LAST_FIX':@RM		; Props := 'ENABLED':@RM
 | |
| 	Ctrls := @WINDOW:'.QBF_STOP_FIX'			; Props := 'ENABLED'
 | |
| 	
 | |
| 	IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
 | |
| 		Vals = 0:@RM:0:@RM:0:@RM:0:@RM:0:@RM:0
 | |
| 	END ELSE
 | |
| 		Vals = 1:@RM:1:@RM:1:@RM:1:@RM:1:@RM:1
 | |
| 	END
 | |
| 	
 | |
| 	Set_Property(Ctrls,Props,Vals)
 | |
| 	
 | |
| 	* Turn edit table symbolic column backgrounds to green
 | |
| 	
 | |
| 	ETSymbolics = Get_Property(@WINDOW,'@ET_SYMBOLICS')		;* Loaded during 'Create' in obj_Appwindow
 | |
| 	
 | |
| 	ETCtrls	= ETSymbolics<1>
 | |
| 	ETCols	= ETSymbolics<2>
 | |
| 	
 | |
| 	FOR I = 1 TO COUNT(ETCtrls,@VM) + (ETCtrls NE '')
 | |
| 		ETCtrl	= ETCtrls<1,I>
 | |
| 		ETList = Get_Property(ETCtrl,'LIST')
 | |
| 		FOR Line = 1 TO COUNT(ETList,@FM) + (ETList NE '')
 | |
| 			IF ETList<Line,1> NE '' THEN
 | |
| 				FOR N = 1 TO COUNT(ETCols<1,I>,@SVM) + (ETCols<1,I> NE '')
 | |
| 					stat = Send_Message(ETCtrl,'COLOR_BY_POS',ETCols<1,I,N>,Line,GREEN$)
 | |
| 				NEXT N
 | |
| 			END
 | |
| 		NEXT I
 | |
| 	NEXT I
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| Page:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	obj_Appwindow('Page')
 | |
| 	
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| * * * * * * *
 | |
| New:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	CurrDTM  = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTHS')
 | |
| 	CurrUser = @USER4
 | |
| 	
 | |
| 	Set_Property(@WINDOW:'.EVENT_DTM','DEFPROP',CurrDTM)
 | |
| 	Forward_Event(@WINDOW,'READ')
 | |
| 	
 | |
| 	Set_Property(@WINDOW:'.LOGGED_BY','DEFPROP',CurrUser)
 | |
| 	Set_Property(@WINDOW:'.EVENT_TYPE','DEFPROP','GEN')
 | |
| 	
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| Read:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	Record = Get_Property(@WINDOW,'RECORD')
 | |
| 	
 | |
| 	IF Record = '' THEN
 | |
| 		
 | |
| 		ReactNo = Get_Property(@WINDOW:'.REACT_NO','DEFPROP')
 | |
| 		EventDTM = Get_Property(@WINDOW:'.EVENT_DTM','INVALUE')
 | |
| 		
 | |
| 		LastRdDTM	= XLATE('REACTOR',ReactNo,REACTOR_LAST_READ_WFRS_DTM$,'X')
 | |
| 		LastWfrRead = XLATE('REACT_READS',ReactNo:'*':LastRdDTM,REACT_READS_WAFER_CNT$,'X')
 | |
| 		
 | |
| 		atRecord = ''
 | |
| 		atRecord<REACT_EVENT_LOGGED_BY$>			= @USER4
 | |
| 		atRecord<REACT_EVENT_REACT_MODE$>			= XLATE('REACTOR',ReactNo,'CURR_MODE','X')
 | |
| 		atRecord<REACT_EVENT_AUTO_LOG$>				= 0
 | |
| 		atRecord<REACT_EVENT_LAST_READ_WFRS_DTM$>	= LastRdDTM
 | |
| 		atRecord<REACT_EVENT_LAST_READ_WFRS_VAL$>	= LastWfrRead
 | |
| 		
 | |
| 		Set_Property(@WINDOW,'ATRECORD',atRecord)
 | |
| 	END
 | |
| 	
 | |
| 	Ctrls  = @WINDOW:'.LOGGED_BY'		;  Props  = 'DEFPROP'
 | |
| 	
 | |
| 	Vals = Get_Property(Ctrls,Props)
 | |
| 	
 | |
| 	LoggedBy	= Vals[1,@RM]
 | |
| 	
 | |
| 	Set_Property(@WINDOW:'.COMMENT','ENABLED',1)
 | |
| 	Set_Property(@WINDOW:'.COMMENT','BACKCOLOR',WHITE$)
 | |
| 	
 | |
| 	GOSUB Refresh
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| Write:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	EventCode = Get_Property(@WINDOW:'.EVENT_CD','DEFPROP')
 | |
| 	
 | |
| 	IF EventCode = '' THEN
 | |
| 		ErrMsg('Event Code is a required field')
 | |
| 		Set_Property(@WINDOW:'.EVENT_CD','FOCUS',1)
 | |
| 		Result = 0
 | |
| 	END ELSE
 | |
| 		Result = 1
 | |
| 	END
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| Delete:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	IF MemberOf(@USER4,'OI_ADMIN') THEN
 | |
| 		Result = 1		;* Proceed with delete
 | |
| 	END ELSE
 | |
| 		ErrMsg('Please contact the OpenInsight system administrator if this record needs removed.')
 | |
| 		Result = 0		;* Stop event chain
 | |
| 	END
 | |
| 	
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| EventCdGF:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	EventCd = Get_Property(@WINDOW:'.EVENT_CD','DEFPROP')
 | |
| 	
 | |
| 	IF EventCd = '' THEN
 | |
| 		Set_Property(@WINDOW:'.EVENT_CD','DEFPROP','PD')		;* Default is PD - Passdown
 | |
| 		Set_Property(@WINDOW:'.EVENT_CD','SELECTION',1:@FM:99)	;* Select default
 | |
| 	END
 | |
| 	
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| EventCdDelta:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	Send_Event(@WINDOW:'.EVENT_TYPE','CALCULATE')
 | |
| 	Send_Event(@WINDOW:'.TYPE_DESC','CALCULATE')
 | |
| 	Send_Event(@WINDOW:'.EVENT_USER','CALCULATE')
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| CommentDelta:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	* This updates the calculated note field in sync with the keystrokes in the COMMENT field.
 | |
| 	
 | |
| 	ID			= Get_Property(@WINDOW,'ID')
 | |
| 	AtRecord	= Get_Property(@WINDOW,'ATRECORD')
 | |
| 	
 | |
| 	TypeNote = obj_React_Event('EventTypeNote',ID:@RM:AtRecord)<2>
 | |
| 	
 | |
| 	Set_Property(@WINDOW:'.TYPE_NOTE','DEFPROP',TypeNote)
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| EventDtmLF:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	Record	= Get_Property(@WINDOW,'RECORD')
 | |
| 	IF Record = '' THEN
 | |
| 		ReactNo = Get_Property(@WINDOW:'.REACT_NO','DEFPROP')
 | |
| 		
 | |
| 		IF @USER4 = '' THEN @USER4 = 'BRYCE_BARB'
 | |
| 		
 | |
| 		ReactMode	= XLATE('REACTOR',ReactNo,'CURR_MODE','X')
 | |
| 		EscHrs		= OCONV(XLATE('REACTOR',ReactNo,'ACT_ESC_HRS','X'),'MD2,')
 | |
| 		WoNo		= XLATE('CONFIG','WO_DAILY_SCHED':ReactNo,2,'X')
 | |
| 		WoNo 		= WoNo[1,' ']
 | |
| 		
 | |
| 		Ctrls  = @WINDOW:'.REACT_MODE':@RM		; Props  = 'DEFPROP':@RM
 | |
| 		Ctrls := @WINDOW:'.REACT_ESC_HRS':@RM	; PRops := 'DEFPROP':@RM
 | |
| 		Ctrls := @WINDOW:'.LOGGED_BY':@RM		; Props := 'DEFPROP':@RM
 | |
| 		Ctrls := @WINDOW:'.WO_NO'				; Props := 'DEFPROP'
 | |
| 		
 | |
| 		Vals  = ReactMode:@RM
 | |
| 		Vals := EscHrs:@RM
 | |
| 		Vals := @USER4:@RM
 | |
| 		Vals := WoNo
 | |
| 		
 | |
| 		Set_Property(Ctrls,Props,Vals)
 | |
| 		
 | |
| 		Send_Event(@WINDOW:'.RM_MODE','CALCULATE')
 | |
| 		
 | |
| 	END
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| LUReactEvent:
 | |
| * * * * * * * 
 | |
| 	
 | |
| 	IF NOT(ASSIGNED(Parm1)) THEN FocusControl = ''	ELSE FocusControl = Parm1
 | |
| 	IF NOT(ASSIGNED(Parm2)) THEN FocusPos = ''		ELSE FocusPos = Parm2
 | |
| 	
 | |
| 	Set_Status(0)
 | |
| 	
 | |
| 	EventKeys = obj_React_Event('Find')	
 | |
| 	
 | |
| 	ErrCode = ''
 | |
| 	IF Get_Status(errCode) THEN ErrMsg(ErrCode)
 | |
| 	
 | |
| 	IF INDEX(EventKeys,@VM,1) THEN
 | |
| 		TypeOver = ''
 | |
| 		TypeOver<PMODE$> = 'K'
 | |
| 		TypeOver<PDISPLAY$> = EventKeys
 | |
| 		EventKeys = Popup(@WINDOW,TypeOver,'REACT_EVENT_QUERY')
 | |
| 	END
 | |
| 	
 | |
| 	CONVERT @VM TO @FM IN EventKeys
 | |
| 	
 | |
| 	IF INDEX(EventKeys,@FM,1) THEN
 | |
| 		Send_Event(@WINDOW,'QBFINIT')
 | |
| 		Set_Property(@WINDOW,'QBFLIST',EventKeys)
 | |
| 		GOSUB Refresh
 | |
| 		Send_Event(@WINDOW,'QBFIRST')
 | |
| 	END ELSE
 | |
| 		obj_Appwindow('LoadFormKeys',@WINDOW:@RM:EventKeys)
 | |
| 	END
 | |
| 	
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| LUEventCd:
 | |
| * * * * * * * 
 | |
| 	
 | |
| 	IF NOT(ASSIGNED(Parm1)) THEN FocusControl = ''	ELSE FocusControl = Parm1
 | |
| 	IF NOT(ASSIGNED(Parm2)) THEN FocusPos = ''		ELSE FocusPos = Parm2
 | |
| 	
 | |
| 	Set_Status(0)
 | |
| 	
 | |
| 	TypeOver = ''
 | |
| 	
 | |
| 	EventCodeData = XLATE('SYSREPOSPOPUPS', 'LSL2**REACT_EVENT_TYPE', PDISPLAY$ , 'X')
 | |
| 	
 | |
| 	TypeOver<PDISPLAY$> = FIELD(EventCodeData,@VM,1,3)	;* Take just the first three items 'PD' and 'GEN' and 'ROOT', Passdown and General and Root Cause		;* dkk 7/7/15 added ROOT
 | |
| 	
 | |
| 	EventType = Popup(@WINDOW,TypeOver,'REACT_EVENT_TYPE')
 | |
| 	
 | |
| 	IF EventType = '' THEN RETURN
 | |
| 	
 | |
| 	obj_Appwindow('LUValReturn',EventType:@RM:FocusControl:@RM:FocusPos)
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| LUProbCat:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	IF NOT(ASSIGNED(Parm1)) THEN FocusControl = ''	ELSE FocusControl = Parm1
 | |
| 	IF NOT(ASSIGNED(Parm2)) THEN FocusPos = ''		ELSE FocusPos = Parm2
 | |
| 	
 | |
| 	ProbCat = Popup(@WINDOW,'','SHOW_REACT_PROB_CAT')
 | |
| 	
 | |
| 	IF ProbCat = '' THEN RETURN
 | |
| 	
 | |
| 	obj_Appwindow('LUValReturn',ProbCat:@RM:FocusControl:@RM:FocusPos)
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| PrintLast24:
 | |
| * * * * * * *
 | |
| 	IF @WINDOW = 'WO_DAILY_SCHED_SINGLE' THEN
 | |
| 		ReactNo = Get_Property(@WINDOW,'@REACTOR')
 | |
| 		DaysToReport        = Msg(@WINDOW,'','REACT_EVENT_DAYS')
 | |
| 		IF DaysToReport     = '' OR DaysToReport = CHAR(27) THEN RETURN
 | |
| 	END ELSE
 | |
| 		ReactNo      = Get_Property(@WINDOW:'.REACT_NO','DEFPROP')
 | |
| 		DaysToReport = 1
 | |
| 	END
 | |
| 	
 | |
| 	DateToReport = Date() - DaysToReport
 | |
| 	DateToReport = OCONV(DateToReport,'D4/')
 | |
| 	
 | |
| 	Print_Passdown(DateToReport,ReactNo)
 | |
| 	
 | |
| 	
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| * * * * * * *
 | |
| Last24Hrs:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	IF @WINDOW = 'WO_DAILY_SCHED_SINGLE' THEN
 | |
| 		ReactNo = Get_Property(@WINDOW,'@REACTOR')
 | |
| 		Yesterday = Date() - 2		;* Yes, I know it's really "the day before yesterday"
 | |
| 	END ELSE
 | |
| 		ReactNo = Get_Property(@WINDOW:'.REACT_NO','DEFPROP')
 | |
| 		Yesterday = Date() - 1
 | |
| 	END
 | |
| 	
 | |
| 	Yesterday = OCONV(Yesterday,'D')
 | |
| 	
 | |
| 	Export_Passdown('Last24',Yesterday,ReactNo)
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| 
 | |
| IF ReactNo NE '' THEN
 | |
| 	SelectString = 'SELECT REACT_EVENT WITH EVENT_DT GE ':QUOTE(Yesterday):'AND WITH REACT_NO EQ ':QUOTE(ReactNo):' BY-DSND EVENT_DTM'
 | |
| END ELSE
 | |
| 	SelectString = 'SELECT REACT_EVENT WITH EVENT_DT GE ':QUOTE(Yesterday):'BY REACT_NO BY-DSND EVENT_DTM'
 | |
| END
 | |
| 
 | |
| RList(SelectString,TARGET_ACTIVELIST$,'','','')
 | |
| 
 | |
| IF Get_Status(errCode) THEN ErrMsg(errCode)
 | |
| 
 | |
| TypeOver = ''
 | |
| IF @WINDOW = 'WO_DAILY_SCHED_SINGLE' THEN 
 | |
| 	TypeOver<PTITLE$> = 'Reactor Events Since ':OCONV(Yesterday,'D4/'):' 00:00:01AM'
 | |
| END
 | |
| 
 | |
| TypeOver<PMODE$> = 'T'
 | |
| 
 | |
| EventKeys = Popup(@WINDOW,TypeOver,'REACT_EVENT_QUERY')
 | |
| 
 | |
| IF @WINDOW = 'WO_DAILY_SCHED_SINGLE' THEN RETURN		;* Display only
 | |
| 
 | |
| CONVERT @VM TO @FM IN EventKeys
 | |
| 
 | |
| IF INDEX(EventKeys,@FM,1) THEN
 | |
| 	Send_Event(@WINDOW,'QBFINIT')
 | |
| 	Set_Property(@WINDOW,'QBFLIST',EventKeys)
 | |
| 	GOSUB Refresh
 | |
| 	Send_Event(@WINDOW,'QBFIRST')
 | |
| END ELSE
 | |
| 	obj_Appwindow('LoadFormKeys',@WINDOW:@RM:EventKeys)
 | |
| END
 | |
| 
 | |
| 
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| PassdownEntry:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	Send_Event(@WINDOW,'CLEAR')
 | |
| 	
 | |
| 	EventKeys = Dialog_Box('DIALOG_PASSDOWN',@WINDOW,'')
 | |
| 	
 | |
| 	IF EventKeys = '' THEN RETURN
 | |
| 	
 | |
| 	IF INDEX(EventKeys,@FM,1) THEN
 | |
| 		Send_Event(@WINDOW,'QBFINIT')
 | |
| 		Set_Property(@WINDOW,'QBFLIST',EventKeys)
 | |
| 		GOSUB Refresh
 | |
| 		Send_Event(@WINDOW,'QBFIRST')
 | |
| 	END ELSE
 | |
| 		obj_Appwindow('LoadFormKeys',@WINDOW:@RM:EventKeys)
 | |
| 	END
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| PrintPassdown:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	
 | |
| 	Print_Passdown()
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| Close:
 | |
| * * * * * * *
 | |
| 	
 | |
| 	/*
 | |
| 	obj_Notes('Inbox',@USER4)	;* Checks for any new messages
 | |
| 	
 | |
| 	obj_Appwindow('CardReturn',@WINDOW)
 | |
| 	
 | |
| 	*/
 | |
| 	
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| * * * * * * * 
 | |
| ItemDC:
 | |
| * * * * * * *
 | |
| 	/*
 | |
| 	CASE Instruction = 'ModeDC'				; GOSUB ModeDC
 | |
| 		CASE Instruction = 'PassdownDC'			; GOSUB PassdownDC
 | |
| 		CASE Instruction = 'MaintenanceDC'		; GOSUB MaintenanceDC
 | |
| 	
 | |
| 	
 | |
| 	
 | |
| 	OrderNo = Get_Property(@WINDOW,'ID')
 | |
| 	
 | |
| 	CtrlEntID = @WINDOW:'.ORDER_DET'
 | |
| 	CurrPos = Get_Property(CtrlEntID,'SELPOS')
 | |
| 	CurrCol = CurrPos<1>
 | |
| 	CurrRow = CurrPos<2>
 | |
| 	
 | |
| 	IF CurrCol = COL$ITEM_NO THEN
 | |
| 		ItemNo = Get_Property(CtrlEntID,'CELLPOS',COL$ITEM_NO:@FM:CurrRow)
 | |
| 	
 | |
| 		IF OrderNo NE '' AND ItemNo NE '' THEN
 | |
| 			IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
 | |
| 				Send_Event(@WINDOW,'WRITE')
 | |
| 			END
 | |
| 			
 | |
| 			DetWindow	= 'ORDER_DET'
 | |
| 			DetKeys		= OrderNo:'*':ItemNo
 | |
| 			DefaultRec	= ''
 | |
| 			RetKey		= OrderNo
 | |
| 			RetPage		= 1
 | |
| 			RetCtrl		= CtrlEntID
 | |
| 			RetPos		= CurrPos
 | |
| 			
 | |
| 			oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos
 | |
| 	
 | |
| 			obj_AppWindow('ViewNewDetail',oAParms)
 | |
| 			IF Get_Status(errCode) THEN
 | |
| 				ErrMsg(errCode)
 | |
| 			END
 | |
| 		END
 | |
| 	END	;* End of ItemNo column
 | |
| 	
 | |
| 	IF CurrCol = COL$QUOTE_NO THEN
 | |
| 		QuoteNo = Get_Property(CtrlEntID,'CELLPOS',COL$QUOTE_NO:@FM:CurrRow)
 | |
| 	
 | |
| 		IF OrderNo NE '' AND QuoteNo NE '' THEN
 | |
| 			IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
 | |
| 				Send_Event(@WINDOW,'WRITE')
 | |
| 			END
 | |
| 			
 | |
| 			DetWindow	= 'QUOTE2'
 | |
| 			DetKeys		= QuoteNo
 | |
| 			DefaultRec	= ''
 | |
| 			RetKey		= OrderNo
 | |
| 			RetPage		= 1
 | |
| 			RetCtrl		= CtrlEntID
 | |
| 			RetPos		= CurrPos
 | |
| 			
 | |
| 			oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos
 | |
| 	
 | |
| 			obj_AppWindow('ViewNewDetail',oAParms)
 | |
| 			IF Get_Status(errCode) THEN
 | |
| 				ErrMsg(errCode)
 | |
| 			END
 | |
| 		END
 | |
| 	END	;* End of QuoteNo column
 | |
| 	
 | |
| 	IF CurrCol = COL$WO_NO THEN
 | |
| 		WONo = Get_Property(CtrlEntID,'CELLPOS',COL$WO_NO:@FM:CurrRow)
 | |
| 	
 | |
| 		IF OrderNo NE '' AND WONo NE '' THEN
 | |
| 			IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
 | |
| 				Send_Event(@WINDOW,'WRITE')
 | |
| 			END
 | |
| 			
 | |
| 			DetWindow	= 'WO_LOG2'
 | |
| 			DetKeys		= WONo
 | |
| 			DefaultRec	= ''
 | |
| 			RetKey		= OrderNo
 | |
| 			RetPage		= 1
 | |
| 			RetCtrl		= CtrlEntID
 | |
| 			RetPos		= CurrPos
 | |
| 			
 | |
| 			oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos
 | |
| 	
 | |
| 			obj_AppWindow('ViewNewDetail',oAParms)
 | |
| 			IF Get_Status(errCode) THEN
 | |
| 				ErrMsg(errCode)
 | |
| 			END
 | |
| 		END
 | |
| 	END	;* End of WO column
 | |
| 	
 | |
| 	
 | |
| 	IF CurrCol = COL$EPI_PN THEN
 | |
| 		EpiPN = Get_Property(CtrlEntID,'CELLPOS',COL$EPI_PN:@FM:CurrRow)
 | |
| 		
 | |
| 		IF OrderNo NE '' AND EpiPN NE '' THEN
 | |
| 			IF Get_Property(@WINDOW,'QBFLIST') = '' THEN
 | |
| 				Send_Event(@WINDOW,'WRITE')
 | |
| 			END
 | |
| 			
 | |
| 			DetWindow	= 'EPI_PART'
 | |
| 			DetKeys		= EpiPN
 | |
| 			DefaultRec	= ''
 | |
| 			RetKey		= OrderNo
 | |
| 			RetPage		= 1
 | |
| 			RetCtrl		= CtrlEntID
 | |
| 			RetPos		= CurrPos
 | |
| 			
 | |
| 			oAParms = DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos
 | |
| 	
 | |
| 			obj_AppWindow('ViewNewDetail',oAParms)
 | |
| 			IF Get_Status(errCode) THEN
 | |
| 				ErrMsg(errCode)
 | |
| 			END
 | |
| 		END
 | |
| 	END	;* End of Epi Part Number column
 | |
| 	
 | |
| 	
 | |
| 	
 | |
| 	*/
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| ModeDC:
 | |
| * * * * * * *
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| PassdownDC:
 | |
| * * * * * * *
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| * * * * * * *
 | |
| MaintenanceDC:
 | |
| * * * * * * *
 | |
| 	
 | |
| RETURN
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 |