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













