diff --git a/LSL2/STPROC/COMM_RDS_LAYER.txt b/LSL2/STPROC/COMM_RDS_LAYER.txt
index ffea1e6..59e2b4e 100644
--- a/LSL2/STPROC/COMM_RDS_LAYER.txt
+++ b/LSL2/STPROC/COMM_RDS_LAYER.txt
@@ -49,656 +49,499 @@ ErrorMsg = ''
Result = ''
BEGIN CASE
- CASE Instruction = 'Create' ; GOSUB Create
- CASE Instruction = 'Read' ; GOSUB Read
- CASE Instruction = 'Clear' ; GOSUB Clear
- CASE Instruction = 'Refresh' ; GOSUB Refresh
- CASE Instruction = 'Write' ; GOSUB Write
- CASE Instruction = 'Delete' ; GOSUB Delete
- CASE Instruction = 'Close' ; GOSUB Close
- CASE Instruction = 'Page' ; GOSUB Page
- CASE Instruction = 'RParmsDeleteRow' ; GOSUB RParmsDeleteRow
- CASE Instruction = 'RParmsInsertRow' ; GOSUB RParmsInsertRow
- CASE Instruction = 'RParmsPC' ; GOSUB RParmsPC
- CASE Instruction = 'NewTest' ; GOSUB NewTest
- CASE Instruction = 'TestKeyDC' ; GOSUB TestKeyDC
- CASE Instruction = 'OverRideRecipeLimits' ; GOSUB OverRideRecipeLimits
- CASE Instruction = 'OverRideDC' ; GOSUB OverRideDC
- CASE Instruction = 'OverRidePC' ; GOSUB OverRidePC
- CASE Instruction = 'UpdateLimits' ; GOSUB UpdateLimits
-
- CASE 1
- ErrorMsg = 'Unknown Instruction passed to routine.'
- ErrMsg(ErrorMsg)
+ CASE Instruction = 'Create' ; GOSUB Create
+ CASE Instruction = 'Read' ; GOSUB Read
+ CASE Instruction = 'Clear' ; GOSUB Clear
+ CASE Instruction = 'Refresh' ; GOSUB Refresh
+ CASE Instruction = 'Write' ; GOSUB Write
+ CASE Instruction = 'Delete' ; GOSUB Delete
+ CASE Instruction = 'Close' ; GOSUB Close
+ CASE Instruction = 'Page' ; GOSUB Page
+ CASE Instruction = 'RParmsDeleteRow' ; GOSUB RParmsDeleteRow
+ CASE Instruction = 'RParmsInsertRow' ; GOSUB RParmsInsertRow
+ CASE Instruction = 'RParmsPC' ; GOSUB RParmsPC
+ CASE Instruction = 'NewTest' ; GOSUB NewTest
+ CASE Instruction = 'TestKeyDC' ; GOSUB TestKeyDC
+ CASE Instruction = 'OverRideRecipeLimits' ; GOSUB OverRideRecipeLimits
+ CASE Instruction = 'OverRideDC' ; GOSUB OverRideDC
+ CASE Instruction = 'OverRidePC' ; GOSUB OverRidePC
+ CASE Instruction = 'UpdateLimits' ; GOSUB UpdateLimits
+
+ CASE 1
+ ErrorMsg = 'Unknown Instruction passed to routine.'
+ ErrMsg(ErrorMsg)
END CASE
RETURN Result
-
* * * * * * *
Create:
* * * * * * *
-
-
-obj_Appwindow('Create',@WINDOW)
-
-IF Parm1 NE '' THEN
- obj_AppWindow('LoadFormKeys',@WINDOW:@RM:Parm1)
-END
-
-GOSUB Refresh
-
-
+
+ obj_Appwindow('Create',@WINDOW)
+
+ IF Parm1 NE '' THEN
+ obj_AppWindow('LoadFormKeys',@WINDOW:@RM:Parm1)
+ END
+
+ GOSUB Refresh
+
RETURN
+
* * * * * * *
Clear:
* * * * * * *
-
-Send_Event(@WINDOW,'PAGE',1)
-
-GOSUB Refresh
-
+
+ Send_Event(@WINDOW,'PAGE',1)
+
+ GOSUB Refresh
+
RETURN
* * * * * * *
Page:
* * * * * * *
-
- Page = Parm1
-
- IF Page = '' THEN
- Page = Get_Property(@WINDOW:'.TAB_MAIN','VALUE')
- END ELSE
- Set_Property(@WINDOW:'.TAB_MAIN','VALUE',Page)
- END
-
- Set_Property(@WINDOW,'VPOSITION', Page)
-
+
+ Page = Parm1
+
+ IF Page = '' THEN
+ Page = Get_Property(@WINDOW:'.TAB_MAIN','VALUE')
+ END ELSE
+ Set_Property(@WINDOW:'.TAB_MAIN','VALUE',Page)
+ END
+
+ Set_Property(@WINDOW,'VPOSITION', Page)
+
RETURN
* * * * * * *
Read:
* * * * * * *
-
-CurrRecord = Get_Property(@WINDOW,'RECORD')
-Set_Property(@WINDOW,'@ORG_RECORD',CurrRecord)
-
-* * * * * * *
+
+ CurrRecord = Get_Property(@WINDOW,'RECORD')
+ Set_Property(@WINDOW,'@ORG_RECORD',CurrRecord)
+
+ * * * * * * *
Refresh:
* * * * * * *
-
-LSId = Get_Property(@WINDOW:'.LS_ID','TEXT')
-
-BEGIN CASE
- CASE LSId = 'L1'
- Set_Property(@WINDOW:'.LS_ID','BACKCOLOR',RCV_BLUE$)
-
- CASE LSId = 'L2'
- Set_Property(@WINDOW:'.LS_ID','BACKCOLOR',PRE_BLUE$)
-
- CASE LSId = '2'
- Set_Property(@WINDOW:'.LS_ID','BACKCOLOR',INP_BLUE$)
-
- CASE 1
- Set_Property(@WINDOW:'.LS_ID','BACKCOLOR',KEY_YELLOW$)
-
-END CASE
-
-Set_Property(@WINDOW:'.OVERRIDE_LIMITS_GROUP','ENABLED',0)
-
-RDSNo = Get_Property( @WINDOW:'.RDS_NO', 'DEFPROP' )
-RDSRec = XLATE('RDS',RDSNo,'','X')
-
-LayerSetID = Get_Property(@WINDOW:'.LS_ID','DEFPROP')
-
-PSNId = RDSRec< RDS_PROD_SPEC_ID$ >
-RecipeNo = Get_Property(@WINDOW:'.RECIPE_NO','DEFPROP')
-
-RecipeParms = Get_Property(@WINDOW:'.RECIPE_PARMS','ARRAY') ;* Entered by user
-RecipeLimits = Get_Property(@WINDOW:'.RECIPE_LIMITS','LIST')<1>
-
-CONVERT @VM TO @FM IN RecipeLimits
-
-ColCnt = COUNT(RecipeLimits,@FM) + (RecipeLimits NE '') ;* This is 16 columns as of the development of this window
-
-RecipeParms = Get_Property(@WINDOW:'.RECIPE_PARMS','ARRAY')
-
-ParameterStyles = Send_Message( @WINDOW:'.RECIPE_PARMS', "COLSTYLE", 0, '' )
-LimitStyles = Send_Message( @WINDOW:'.RECIPE_LIMITS', "COLSTYLE", 0, '' )
-
-CONVERT @VM TO '' IN RecipeParms
-
-ColNames = Get_Property( @WINDOW:'.RECIPE_PARMS', 'COLUMN' )
-
-OutOfSpecCols = ''
-FOR Col = 1 TO ColCnt
- IF RecipeLimits
= '' AND RecipeParms = '' THEN
- ParameterStyles = BitOr( ParameterStyles, HIDDEN$ ) ;* Column not used -> Hide
- LimitStyles = BitOr( LimitStyles, HIDDEN$ )
- END ELSE
- ParameterStyles = BitAnd( ParameterStyles, BitNot(HIDDEN$) ) ;* Column used -> Show
- LimitStyles = BitAnd( LimitStyles, BitNot(HIDDEN$) )
-
- LimitData = RecipeLimits
- ParamData = RecipeParms
-
- ColName = ColNames<1,1,Col>
- Conversion = XLATE('DICT.RDS_LAYER',ColName,DICT_CONV$,'X')
-
- SWAP ' ~ ' WITH @VM IN LimitData
-
- IF Conversion NE '' THEN
- ParamData = ICONV(ParamData,Conversion)
- LimitData = ICONV(LimitData,Conversion)
- END
-
- Minimum = LimitData<1,1>
- Maximum = LimitData<1,2>
-
- IF ParamData NE '' THEN
- IF ParamData < Minimum OR ParamData > Maximum THEN
- Send_Message(@WINDOW:'.RECIPE_PARMS','COLOR_BY_POS',Col,1,RED$)
- OutOfSpecCols = INSERT(OutOfSpecCols,Col,0,0,1)
- END ELSE
- Send_Message(@WINDOW:'.RECIPE_PARMS','COLOR_BY_POS',Col,1,WHITE$)
- END
- END ELSE
- Send_Message(@WINDOW:'.RECIPE_PARMS','COLOR_BY_POS',Col,1,WHITE$)
- END
-
- END
-
-NEXT Col
-
-LOCATE '1' IN OutOfSpecCols USING @FM SETTING Pos THEN
- Set_Property(@WINDOW:'.OUT_OF_SPEC','CHECK',1)
-END ELSE
- Set_Property(@WINDOW:'.OUT_OF_SPEC','CHECK',0)
-END
-
-Parameter_Styles = Send_Message( @WINDOW:'.RECIPE_PARMS', "COLSTYLE", 0, ParameterStyles )
-LimitStyles = Send_Message( @WINDOW:'.RECIPE_LIMITS', "COLSTYLE", 0, LimitStyles )
-
-Set_Property( @WINDOW:'.RECIPE_INFO', "AUTOSIZECOL", 16 )
-Set_Property( @WINDOW:'.RECIPE_LIMITS', "AUTOSIZECOL", 16 )
-
-
-
-* 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 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
-
-
-TestList = Get_Property(@WINDOW:'.RDS_TEST_KEYS','LIST')
-
-FOR I = 1 TO COUNT(TestList,@FM) + (TestList NE '')
- IF ICONV(TestList,'B') = 1 THEN
- Send_Message(@WINDOW:'.RDS_TEST_KEYS','COLOR_BY_POS',0,I,RED$)
- END ELSE
- Send_Message(@WINDOW:'.RDS_TEST_KEYS','COLOR_BY_POS',0,I,WHITE$)
- END
-NEXT I
-
-RPCopy = RecipeParms
-Convert @FM to '' in RPCopy
-If RPCopy EQ '' then
- Set_Property(@Window : '.BTN_SET_CURR_RUN_PARMS', 'ENABLED', False$)
-end else
- Set_Property(@Window : '.BTN_SET_CURR_RUN_PARMS', 'ENABLED', True$)
-end
-
+
+ LSId = Get_Property(@WINDOW:'.LS_ID','TEXT')
+
+ BEGIN CASE
+ CASE LSId = 'L1'
+ Set_Property(@WINDOW:'.LS_ID','BACKCOLOR',RCV_BLUE$)
+
+ CASE LSId = 'L2'
+ Set_Property(@WINDOW:'.LS_ID','BACKCOLOR',PRE_BLUE$)
+
+ CASE LSId = '2'
+ Set_Property(@WINDOW:'.LS_ID','BACKCOLOR',INP_BLUE$)
+
+ CASE 1
+ Set_Property(@WINDOW:'.LS_ID','BACKCOLOR',KEY_YELLOW$)
+
+ END CASE
+
+ Set_Property(@WINDOW:'.OVERRIDE_LIMITS_GROUP','ENABLED',0)
+
+ RDSNo = Get_Property( @WINDOW:'.RDS_NO', 'DEFPROP' )
+ RDSRec = XLATE('RDS',RDSNo,'','X')
+
+ LayerSetID = Get_Property(@WINDOW:'.LS_ID','DEFPROP')
+
+ PSNId = RDSRec< RDS_PROD_SPEC_ID$ >
+ RecipeNo = Get_Property(@WINDOW:'.RECIPE_NO','DEFPROP')
+
+ RecipeParms = Get_Property(@WINDOW:'.RECIPE_PARMS','ARRAY') ;* Entered by user
+ RecipeLimits = Get_Property(@WINDOW:'.RECIPE_LIMITS','LIST')<1>
+
+ CONVERT @VM TO @FM IN RecipeLimits
+
+ ColCnt = COUNT(RecipeLimits,@FM) + (RecipeLimits NE '') ;* This is 16 columns as of the development of this window
+
+ RecipeParms = Get_Property(@WINDOW:'.RECIPE_PARMS','ARRAY')
+
+ ParameterStyles = Send_Message( @WINDOW:'.RECIPE_PARMS', "COLSTYLE", 0, '' )
+ LimitStyles = Send_Message( @WINDOW:'.RECIPE_LIMITS', "COLSTYLE", 0, '' )
+
+ CONVERT @VM TO '' IN RecipeParms
+
+ ColNames = Get_Property( @WINDOW:'.RECIPE_PARMS', 'COLUMN' )
+
+ OutOfSpecCols = ''
+ FOR Col = 1 TO ColCnt
+ IF RecipeLimits = '' AND RecipeParms = '' THEN
+ ParameterStyles = BitOr( ParameterStyles, HIDDEN$ ) ;* Column not used -> Hide
+ LimitStyles = BitOr( LimitStyles, HIDDEN$ )
+ END ELSE
+ ParameterStyles = BitAnd( ParameterStyles, BitNot(HIDDEN$) ) ;* Column used -> Show
+ LimitStyles = BitAnd( LimitStyles, BitNot(HIDDEN$) )
+
+ LimitData = RecipeLimits
+ ParamData = RecipeParms
+
+ ColName = ColNames<1,1,Col>
+ Conversion = XLATE('DICT.RDS_LAYER',ColName,DICT_CONV$,'X')
+
+ SWAP ' ~ ' WITH @VM IN LimitData
+
+ IF Conversion NE '' THEN
+ ParamData = ICONV(ParamData,Conversion)
+ LimitData = ICONV(LimitData,Conversion)
+ END
+
+ Minimum = LimitData<1,1>
+ Maximum = LimitData<1,2>
+
+ IF ParamData NE '' THEN
+ IF ParamData < Minimum OR ParamData > Maximum THEN
+ Send_Message(@WINDOW:'.RECIPE_PARMS','COLOR_BY_POS',Col,1,RED$)
+ OutOfSpecCols = INSERT(OutOfSpecCols,Col,0,0,1)
+ END ELSE
+ Send_Message(@WINDOW:'.RECIPE_PARMS','COLOR_BY_POS',Col,1,WHITE$)
+ END
+ END ELSE
+ Send_Message(@WINDOW:'.RECIPE_PARMS','COLOR_BY_POS',Col,1,WHITE$)
+ END
+
+ END
+
+ NEXT Col
+
+ LOCATE '1' IN OutOfSpecCols USING @FM SETTING Pos THEN
+ Set_Property(@WINDOW:'.OUT_OF_SPEC','CHECK',1)
+ END ELSE
+ Set_Property(@WINDOW:'.OUT_OF_SPEC','CHECK',0)
+ END
+
+ Parameter_Styles = Send_Message( @WINDOW:'.RECIPE_PARMS', "COLSTYLE", 0, ParameterStyles )
+ LimitStyles = Send_Message( @WINDOW:'.RECIPE_LIMITS', "COLSTYLE", 0, LimitStyles )
+
+ Set_Property( @WINDOW:'.RECIPE_INFO', "AUTOSIZECOL", 16 )
+ Set_Property( @WINDOW:'.RECIPE_LIMITS', "AUTOSIZECOL", 16 )
+
+ * 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 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
+
+
+ TestList = Get_Property(@WINDOW:'.RDS_TEST_KEYS','LIST')
+
+ FOR I = 1 TO COUNT(TestList,@FM) + (TestList NE '')
+ IF ICONV(TestList,'B') = 1 THEN
+ Send_Message(@WINDOW:'.RDS_TEST_KEYS','COLOR_BY_POS',0,I,RED$)
+ END ELSE
+ Send_Message(@WINDOW:'.RDS_TEST_KEYS','COLOR_BY_POS',0,I,WHITE$)
+ END
+ NEXT I
+
+ RPCopy = RecipeParms
+ Convert @FM to '' in RPCopy
+ If RPCopy EQ '' then
+ Set_Property(@Window : '.BTN_SET_CURR_RUN_PARMS', 'ENABLED', False$)
+ end else
+ Set_Property(@Window : '.BTN_SET_CURR_RUN_PARMS', 'ENABLED', True$)
+ end
+
RETURN
* * * * * * *
Write:
* * * * * * *
-
-SkipScriptEvent = Get_Property(@Window, '@SKIPSCRIPT')
-If (SkipScriptEvent EQ False$) or (SkipScriptEvent EQ '') then
- RDSLayerKey = Get_Property(@WINDOW,'ID')
-
- CurrRecord = Get_Property(@WINDOW,'RECORD')
- OrgRecord = Get_Property(@WINDOW,'@ORG_RECORD')
-
- IF CurrRecord NE OrgRecord THEN
- CurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS')
- NewLine = @USER4:@VM:CurrDTM
- Send_Message(@WINDOW:'.MODIFY_USER','INSERT',1,NewLine)
- END
-
- Post_Event(@WINDOW,'CLOSE')
-end
-Result = 1
-
+
+ SkipScriptEvent = Get_Property(@Window, '@SKIPSCRIPT')
+ If (SkipScriptEvent EQ False$) or (SkipScriptEvent EQ '') then
+ RDSLayerKey = Get_Property(@WINDOW,'ID')
+
+ CurrRecord = Get_Property(@WINDOW,'RECORD')
+ OrgRecord = Get_Property(@WINDOW,'@ORG_RECORD')
+
+ IF CurrRecord NE OrgRecord THEN
+ CurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS')
+ NewLine = @USER4:@VM:CurrDTM
+ Send_Message(@WINDOW:'.MODIFY_USER','INSERT',1,NewLine)
+ END
+
+ Post_Event(@WINDOW,'CLOSE')
+ end
+ Result = 1
+
RETURN
-
* * * * * * *
Delete:
* * * * * * *
-
-ErrMsg('Records may not be modified or deleted.')
-
-Result = 0 ;* No Deletes
-
+
+ ErrMsg('Records may not be modified or deleted.')
+
+ Result = 0 ;* No Deletes
+
RETURN
* * * * * * *
Close:
* * * * * * *
-
-obj_Appwindow('DetailReturn')
-
+
+ obj_Appwindow('DetailReturn')
+
RETURN
* * * * * * *
RParmsDeleteRow:
* * * * * * *
-
-DeletedRowIndex = Parm1
-DeletedRowText = Parm2
-
-CurrCtrl = @WINDOW:'.RECIPE_PARMS'
-
-Dummy = Send_Message(CurrCtrl, "INSERT",DeletedRowIndex, DeletedRowText)
-
-Set_Property(CurrCtrl,'SELPOS',1:@FM:1)
-
-ErrMsg('Rows may not be inserted or deleted.')
-
+
+ DeletedRowIndex = Parm1
+ DeletedRowText = Parm2
+
+ CurrCtrl = @WINDOW:'.RECIPE_PARMS'
+
+ Dummy = Send_Message(CurrCtrl, "INSERT",DeletedRowIndex, DeletedRowText)
+
+ Set_Property(CurrCtrl,'SELPOS',1:@FM:1)
+
+ ErrMsg('Rows may not be inserted or deleted.')
+
RETURN
* * * * * * *
RParmsInsertRow:
* * * * * * *
-
-RowIndex = Parm1
-
-CurrCtrl = @WINDOW:'.RECIPE_PARMS'
-
-ErrMsg('Rows may not be inserted or deleted.')
-
+
+ RowIndex = Parm1
+
+ CurrCtrl = @WINDOW:'.RECIPE_PARMS'
+
+ ErrMsg('Rows may not be inserted or deleted.')
+
RETURN
* * * * * * *
RParmsPC:
* * * * * * *
-
-CurrCtrl = @WINDOW:'.RECIPE_PARMS'
-
-PrevSelPos = Get_Property(CurrCtrl,"PREVSELPOS")
-PrevCol = PrevSelPos<1>
-PrevRow = PrevSelPos<2>
-
-CurrSelPos = Get_Property(CurrCtrl,"SELPOS")
-CurrCol = CurrSelPos<1>
-CurrRow = CurrSelPos<2>
-
-ColStyles = Send_Message( @WINDOW:'.RECIPE_PARMS', 'COLSTYLE', 0, '' )
-ColNames = Get_Property( @WINDOW:'.RECIPE_PARMS', 'COLUMN' )
-
-IF CurrRow > 1 THEN
- Set_Property(CurrCtrl,'SELPOS',CurrCol:@FM:1) ;* Can't move off of the first row
-END
-
-ListData = Get_Property(CurrCtrl,'LIST')
-
-IF ListData<1,PrevCol> NE '' THEN
- VisibleColumn = NOT(BitAnd( ColStyles, HIDDEN$ )) ;* Gives @VM list of flags for visible columns in the edit table
- IF VisibleColumn THEN
- LimitData = Get_Property(@WINDOW:'.RECIPE_LIMITS','LIST')<1,PrevCol>
- ParamData = ListData<1,PrevCol>
-
- ColName = ColNames<1,1,PrevCol>
- Conversion = XLATE('DICT.RDS_LAYER',ColName,DICT_CONV$,'X')
-
- CONVERT '~' TO @VM IN LimitData
-
- IF Conversion NE '' THEN
- ParamData = ICONV(ParamData,Conversion)
- LimitData = ICONV(LimitData,Conversion)
- END
-
- Minimum = LimitData<1,1>
- Maximum = LimitData<1,2>
-
- IF ParamData < Minimum OR ParamData > Maximum THEN
- *ErrMsg('Data Entered for ':QUOTE(ColName):' is out of specified limits!')
- END
-
-
- IF ColName = 'EPI_TIME' THEN
- LSId = Get_Property(@WINDOW:'.LS_ID','DEFPROP')
- RDSNo = Get_Property(@WINDOW:'.RDS_NO','DEFPROP')
-
- ReactRunRec = XLATE('REACT_RUN',RDSNo,'','X')
-
- WONo = ReactRunRec
- WOStep = ReactRunRec
-
- PSNo = XLATE('WO_STEP',WONo:'*':WOStep,WO_STEP_PROD_SPEC_ID$,'X')
-
- DepTimeRatio = XLATE('PROD_SPEC',PSNo,PROD_SPEC_DEP_TIME_RATIO$,'X')
-
-
- IF DepTimeRatio = 1 THEN
- IF LSId = 'L1' THEN
- LS1DepTime = ParamData
- LS2DepTime = XLATE('RDS_LAYER',RDSNo:'*L2',RDS_LAYER_EPI_TIME$,'X')
- END
- IF LSId = 'L2' THEN
- LS1DepTime = XLATE('RDS_LAYER',RDSNo:'*L1',RDS_LAYER_EPI_TIME$,'X')
- LS2DepTime = ParamData
- END
-
- IF LS1DepTime NE '' AND LS2DepTime NE '' THEN
-
- LS1DepTime = OCONV(LS1DepTime,'MD1')
- LS2DepTime = OCONV(LS2DepTime,'MD1')
- TotDepTime = LS1DepTime + LS2DepTime
- LS1Ratio = OCONV(ICONV(LS1DepTime/TotDepTime,'MD6'),'MD6')
-
- IF LS1Ratio <= 0.112 OR LS1Ratio >= 0.114 THEN
- Msg(@WINDOW,'','DEP_TIME_RATIO','',LS1DepTime:@FM:LS2DepTime:@FM:LS1Ratio)
- END
- END
-
- END ;* End of check for DepTimeRatio flag
- END ;* End of check for column = 'EPI_TIME"
-
- END ;* End of Check for Visible Column
-
-END
-
-GOSUB Refresh
-
+
+ CurrCtrl = @WINDOW:'.RECIPE_PARMS'
+
+ PrevSelPos = Get_Property(CurrCtrl,"PREVSELPOS")
+ PrevCol = PrevSelPos<1>
+ PrevRow = PrevSelPos<2>
+
+ CurrSelPos = Get_Property(CurrCtrl,"SELPOS")
+ CurrCol = CurrSelPos<1>
+ CurrRow = CurrSelPos<2>
+
+ ColStyles = Send_Message( @WINDOW:'.RECIPE_PARMS', 'COLSTYLE', 0, '' )
+ ColNames = Get_Property( @WINDOW:'.RECIPE_PARMS', 'COLUMN' )
+
+ IF CurrRow > 1 THEN
+ Set_Property(CurrCtrl,'SELPOS',CurrCol:@FM:1) ;* Can't move off of the first row
+ END
+
+ ListData = Get_Property(CurrCtrl,'LIST')
+
+ IF ListData<1,PrevCol> NE '' THEN
+ VisibleColumn = NOT(BitAnd( ColStyles, HIDDEN$ )) ;* Gives @VM list of flags for visible columns in the edit table
+ IF VisibleColumn THEN
+ LimitData = Get_Property(@WINDOW:'.RECIPE_LIMITS','LIST')<1,PrevCol>
+ ParamData = ListData<1,PrevCol>
+
+ ColName = ColNames<1,1,PrevCol>
+ Conversion = XLATE('DICT.RDS_LAYER',ColName,DICT_CONV$,'X')
+
+ CONVERT '~' TO @VM IN LimitData
+
+ IF Conversion NE '' THEN
+ ParamData = ICONV(ParamData,Conversion)
+ LimitData = ICONV(LimitData,Conversion)
+ END
+
+ Minimum = LimitData<1,1>
+ Maximum = LimitData<1,2>
+
+ IF ParamData < Minimum OR ParamData > Maximum THEN
+ *ErrMsg('Data Entered for ':QUOTE(ColName):' is out of specified limits!')
+ END
+
+
+ IF ColName = 'EPI_TIME' THEN
+ LSId = Get_Property(@WINDOW:'.LS_ID','DEFPROP')
+ RDSNo = Get_Property(@WINDOW:'.RDS_NO','DEFPROP')
+
+ ReactRunRec = XLATE('REACT_RUN',RDSNo,'','X')
+
+ WONo = ReactRunRec
+ WOStep = ReactRunRec
+
+ PSNo = XLATE('WO_STEP',WONo:'*':WOStep,WO_STEP_PROD_SPEC_ID$,'X')
+
+ DepTimeRatio = XLATE('PROD_SPEC',PSNo,PROD_SPEC_DEP_TIME_RATIO$,'X')
+
+
+ IF DepTimeRatio = 1 THEN
+ IF LSId = 'L1' THEN
+ LS1DepTime = ParamData
+ LS2DepTime = XLATE('RDS_LAYER',RDSNo:'*L2',RDS_LAYER_EPI_TIME$,'X')
+ END
+ IF LSId = 'L2' THEN
+ LS1DepTime = XLATE('RDS_LAYER',RDSNo:'*L1',RDS_LAYER_EPI_TIME$,'X')
+ LS2DepTime = ParamData
+ END
+
+ IF LS1DepTime NE '' AND LS2DepTime NE '' THEN
+
+ LS1DepTime = OCONV(LS1DepTime,'MD1')
+ LS2DepTime = OCONV(LS2DepTime,'MD1')
+ TotDepTime = LS1DepTime + LS2DepTime
+ LS1Ratio = OCONV(ICONV(LS1DepTime/TotDepTime,'MD6'),'MD6')
+
+ IF LS1Ratio <= 0.112 OR LS1Ratio >= 0.114 THEN
+ Msg(@WINDOW,'','DEP_TIME_RATIO','',LS1DepTime:@FM:LS2DepTime:@FM:LS1Ratio)
+ END
+ END
+
+ END ;* End of check for DepTimeRatio flag
+ END ;* End of check for column = 'EPI_TIME"
+
+ END ;* End of Check for Visible Column
+
+ END
+
+ GOSUB Refresh
+
RETURN
-
* * * * * * *
NewTest:
* * * * * * *
-
+
RETURN
-
* * * * * * *
TestKeyDC:
* * * * * * *
-
-CurrCtrl = @WINDOW:'.RDS_TEST_KEYS'
-
-CurrPos = Get_Property(CurrCtrl,"SELPOS")
-CurrCol = CurrPos<1>
-CurrRow = CurrPos<2>
-
-RDSTestNo = Get_Property(CurrCtrl,'CELLPOS',COL$TEST_NO:@FM:CurrRow)
-RDSLsID = Get_Property(@WINDOW,'ID')
-
-IF RDSTestNo NE '' AND RDSLsID NE '' THEN
-
- CardWindow = 'RDS_TEST'
- CardKey = RDSTestNo ;* Null values for CardKey creates new card
- NewCardCtrl = '' ;* Name of button control to create new Card on Card window
- RecalcCtrl = CurrCtrl ;* Symbolic Control to recalculate upon return
- RecalcPos = '' ;* Position in edit list or edit table for recalc
- RetCtrl = CurrCtrl ;* This can be called from both a window and a process
- RetPos = CurrPos ;* Position in edit list or edit table to return to
-
- oAParms = CardWindow:@RM:CardKey:@RM:NewCardCtrl:@RM:RecalcCtrl:@RM:RecalcPos:@RM:RetCtrl:@RM:RetPos
-
- obj_AppWindow('ViewNewCard',oAParms)
-
- IF Get_Status(errCode) THEN
- ErrMsg(errCode)
- END
-
-END
-
+
+ CurrCtrl = @WINDOW:'.RDS_TEST_KEYS'
+
+ CurrPos = Get_Property(CurrCtrl,"SELPOS")
+ CurrCol = CurrPos<1>
+ CurrRow = CurrPos<2>
+
+ RDSTestNo = Get_Property(CurrCtrl,'CELLPOS',COL$TEST_NO:@FM:CurrRow)
+ RDSLsID = Get_Property(@WINDOW,'ID')
+
+ IF RDSTestNo NE '' AND RDSLsID NE '' THEN
+
+ CardWindow = 'RDS_TEST'
+ CardKey = RDSTestNo ;* Null values for CardKey creates new card
+ NewCardCtrl = '' ;* Name of button control to create new Card on Card window
+ RecalcCtrl = CurrCtrl ;* Symbolic Control to recalculate upon return
+ RecalcPos = '' ;* Position in edit list or edit table for recalc
+ RetCtrl = CurrCtrl ;* This can be called from both a window and a process
+ RetPos = CurrPos ;* Position in edit list or edit table to return to
+
+ oAParms = CardWindow:@RM:CardKey:@RM:NewCardCtrl:@RM:RecalcCtrl:@RM:RecalcPos:@RM:RetCtrl:@RM:RetPos
+
+ obj_AppWindow('ViewNewCard',oAParms)
+
+ IF Get_Status(errCode) THEN
+ ErrMsg(errCode)
+ END
+
+ END
+
RETURN
* * * * * * *
OverRideRecipeLimits:
* * * * * * *
-
-
-IF Security_Check( 'Recipe', Write$ ) THEN
- Set_Property(@WINDOW:'.OVERRIDE_LIMITS_GROUP','ENABLED',1)
-END ELSE
- Security_Err_Msg( 'Recipe', Write$ )
-END
-
+
+ IF Security_Check( 'Recipe', Write$ ) THEN
+ Set_Property(@WINDOW:'.OVERRIDE_LIMITS_GROUP','ENABLED',1)
+ END ELSE
+ Security_Err_Msg( 'Recipe', Write$ )
+ END
+
RETURN
+
* * * * * * *
UpdateLimits:
* * * * * * *
-
-IF Security_Check( 'Recipe', Write$ ) THEN
- RDSNo = Get_Property(@WINDOW:'.RDS_NO','DEFPROP')
- LSId = Get_Property(@WINDOW:'.LS_ID','DEFPROP')
-
- IF RDSNo = '' OR LSId = '' THEN RETURN
-
- Send_Event(@WINDOW,'WRITE')
-
- obj_RDS_Layer('UpdateLimits',RDSNo:@RM:LSId)
-
- IF Get_Status(errCode) THEN ErrMsg(errCode)
-
- obj_AppWindow('LoadFormKeys',@WINDOW:@RM:RDSNo:'*':LSId)
-
-END ELSE
- Security_Err_Msg( 'Recipe', Write$ )
-END
-
-
+
+ IF Security_Check( 'Recipe', Write$ ) THEN
+ RDSNo = Get_Property(@WINDOW:'.RDS_NO','DEFPROP')
+ LSId = Get_Property(@WINDOW:'.LS_ID','DEFPROP')
+
+ IF RDSNo = '' OR LSId = '' THEN RETURN
+
+ Send_Event(@WINDOW,'WRITE')
+
+ obj_RDS_Layer('UpdateLimits',RDSNo:@RM:LSId)
+
+ IF Get_Status(errCode) THEN ErrMsg(errCode)
+
+ obj_AppWindow('LoadFormKeys',@WINDOW:@RM:RDSNo:'*':LSId)
+
+ END ELSE
+ Security_Err_Msg( 'Recipe', Write$ )
+ END
+
+
RETURN
+
* * * * * * *
OverRideDC:
* * * * * * *
-
-
-
RETURN
-
* * * * * * *
OverRidePC:
* * * * * * *
-/*
-
-CtrlEntID = @WINDOW:'.CUST_LOT_NO'
-
-OrderNo = Get_Property(@WINDOW:'.ORDER_NO','TEXT')
-ItemNo = Get_Property(@WINDOW:'.ITEM_NO','TEXT')
-
-OrderDetKey = OrderNo:'*':ItemNo
-
-PrevSelPos = Get_Property(CtrlEntId,"PREVSELPOS")
-PrevCol = PrevSelPos<1>
-PrevRow = PrevSelPos<2>
-
-CurrPos = Get_Property(CtrlEntId,'SELPOS')
-CurrCol = CurrPos<1>
-CurrRow = CurrPos<2>
-
-ListData = Get_Property(CtrlEntId,'LIST')
-
-ColCnt = 2 ;* Number of columns in the edit table
-
-IF ListData = '' THEN
-
- ColPointer = CurrCol
- LinePointer = CurrRow
-
- * Find the first non-empty cell
-
- LOOP
- Test = ListData
- UNTIL Test NE '' OR (LinePointer = 0 AND ColPointer = 1)
- ColPointer -= 1
- IF ColPointer = 0 THEN
- ColPointer = ColCnt
- LinePointer -= 1
- END
- REPEAT
-
- * Move one past the non empty cell
-
- BEGIN CASE
- CASE LinePointer = 0
- * Empty Table
- LinePointer = 1
- CoilPointer = 1
-
- CASE ColPointer = ColCnt
- LinePointer += 1
- ColPointer = 1
-
- CASE 1
- ColPointer += 1
-
- END CASE
- Set_Property(CtrlEntId,"SELPOS",ColPointer:@FM:LinePointer)
-END
-
-IF ListData NE '' THEN
-
- IF PrevCol = COL$CUST_LOT_NO THEN
-
- LotNo = ListData
-
- IF INDEX(LotNo,' ',1) THEN
- ListData = TRIM(LotNo)
- Set_Property(CtrlEntId,'LIST',ListData)
- LotNo = TRIM(LotNo)
- END
- Extract_SI_Keys('ORDER_DET','CUST_LOT_NO',LotNo,OrderDetKeys) ;* Check for previous use of customer lot number in new data structure
-
- IF OrderDetKeys NE '' THEN
-
- LOCATE OrderDetKey IN OrderDetKeys USING @VM SETTING FPos THEN
- OrderDetKeys = DELETE(OrderDetKeys,1,FPos,0) ;* Exclude the current Order Item from this check
- END
-
- IF OrderDetKeys NE '' THEN
- SWAP @VM WITH ', ' IN OrderDetKeys
-
- Message = 'Lot No ':QUOTE(LotNo):' has been used in Order Item(s) |':OrderDetKeys:'||'
- Message := 'Do you wish to use this duplicate Lot Number?|'
-
- MsgInfo = ''
- MsgInfo = Message
-
- Resp = Msg( @WINDOW, MsgInfo,'CUST_LOT_USED' )
- IF Resp = CHAR(27) THEN
- Set_Property(CtrlEntId,'CELLPOS','',PrevSelPos)
- Set_Property(CtrlEntId,"SELPOS",PrevSelPos)
- END
-
- END
- END ELSE
-
- * Try looking in the old format Orders
-
- Extract_SI_Keys('ORDER','LOT_NUM',LotNo,OrderNos) ;* Check for previous use of customer lot number in old data structure
- IF OrderNos NE '' THEN
-
- LOCATE OrderNo IN OrderNos USING @VM SETTING FPos THEN
- OrderNos = DELETE(OrderNos,1,FPos,0) ;* Exclude the current Order No from this check
- END
-
- IF OrderNos NE '' THEN
- SWAP @VM WITH ', ' IN OrderNos
-
- Message = 'Lot No ':QUOTE(LotNo):' has been used in Order Number |':OrderNos:'||'
- Message := 'Do you wish to use this duplicate Lot Number?|'
-
- MsgInfo = ''
- MsgInfo = Message
-
- Resp = Msg( @WINDOW, MsgInfo,'CUST_LOT_USED' )
- IF Resp = CHAR(27) THEN
- Set_Property(CtrlEntId,'CELLPOS','',PrevSelPos)
- Set_Property(CtrlEntId,"SELPOS",PrevSelPos)
- END
-
- END
- END
- END ;* End of checks for Lot Nos used elswhere
-
- END
-
-END ;* End of check for Previous Cell NE Null
-
-GOSUB Refresh
-
-RETURN
-*/
-
-
RETURN
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/LSL2/STPROC/DEBUGGER_LOGGER.txt b/LSL2/STPROC/DEBUGGER_LOGGER.txt
index 14d8f4e..8f59787 100644
--- a/LSL2/STPROC/DEBUGGER_LOGGER.txt
+++ b/LSL2/STPROC/DEBUGGER_LOGGER.txt
@@ -27,30 +27,47 @@ Common /ErrorServices/ ErrorMessages@, ErrorSources@, ErrorCodes@, RetStacks@, E
Equ CRLF$ to \0D0A\
Declare function Environment_Services, Logging_Services, GetSessionCallStack, Error_Services, RetStack
-Declare subroutine Logging_Services, Get_Status, Set_Env
+Declare subroutine Logging_Services, Get_Status, Set_Env, GetTempPath
Main:
- ErrorMessages = Error_Services('GetMessages')
- LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\StackTrace'
- LogDate = Oconv(Date(), 'D4/')
- LogTime = Oconv(Time(), 'MTS')
- LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Error Log.csv'
- objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', '', '', False$, False$)
- LogData = ''
- LogData<1> = CRLF$:'Timestamp: ':LogDate:' ':LogTime
- LogData<2> = 'Machine: ':Environment_Services('GetServer')
- LogData<3> = 'Set_Status Code:':EsSpStatCode@
- LogData<4> = 'Set_Status Message:':EsSpStatMessage@
+ ErrorMessages = Error_Services('GetMessages')
+ LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\StackTrace'
+ LogDate = Oconv(Date(), 'D4/')
+ LogTime = Oconv(Time(), 'MTS')
+ LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Error Log.csv'
+ objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ',', '', '', False$, False$)
+ TempLogFileName = 'OIStackLog.csv'
+ TempDirectory = Str(\00\, 1024)
+ GetTempPath(Len(TempDirectory), TempDirectory)
+ Convert \00\ to '' in TempDirectory
+ TempLogPath = TempDirectory
+ objTempLog = Logging_Services('NewLog', TempLogPath, TempLogFileName, CRLF$, ',', '', '', False$, True$)
+ LogData = ''
+ LogData<1> = CRLF$:'Timestamp: ':LogDate:' ':LogTime
+ LogData<2> = 'Machine: ':Environment_Services('GetServer')
+ LogData<3> = 'Set_Status Code:':EsSpStatCode@
+ LogData<4> = 'Set_Status Message:':EsSpStatMessage@
Swap @FM with @VM in ErrorMessages
- LogData<5> = 'Error_Services Messages:':ErrorMessages
- LogData<6> = 'Call Depth: ':CallDepth@
- LogData<7> = 'Curr Program and line no: ':CallStack@<2,1>:@VM:CallStack@<2,2>
- LogData<8> = 'Call Stack / Line Nos: '
- Stack = CallStack@
- Stack = Delete(Stack, 1, 0, 0)
- LogData<9> = Stack:CRLF$
+ LogData<5> = 'Error_Services Messages:':ErrorMessages
+ LogData<6> = 'Call Depth: ':CallDepth@
+ Stack = CallStack@
+ Begin Case
+ Case ( (CallStack@<1,1> EQ 'ERROR_SERVICES') and (CallStack@<2,1> EQ 'ERROR_SERVICES') )
+ LogData<7> = 'Curr Program and line no: ':CallStack@<3,1>:@VM:CallStack@<3,2>
+ Stack = Delete(Stack, 1, 0, 0)
+ Stack = Delete(Stack, 1, 0, 0)
+ Case (CallStack@<1,1> EQ 'ERROR_SERVICES')
+ LogData<7> = 'Curr Program and line no: ':CallStack@<2,1>:@VM:CallStack@<2,2>
+ Stack = Delete(Stack, 1, 0, 0)
+ Case Otherwise$
+ LogData<7> = 'Curr Program and line no: ':CallStack@<1,1>:@VM:CallStack@<1,2>
+ End Case
+ LogData<8> = 'Call Stack / Line Nos: '
+ Convert \00\ to '' in Stack
+ LogData<9> = Stack:CRLF$
Logging_Services('AppendLog', objLog, LogData, @FM, @VM, '', '', '')
+ Logging_Services('AppendLog', objTempLog, LogData, @FM, @VM, '', '', '')
Return
diff --git a/LSL2/STPROC/ERROR_SERVICES.txt b/LSL2/STPROC/ERROR_SERVICES.txt
index 462339d..a52452c 100644
--- a/LSL2/STPROC/ERROR_SERVICES.txt
+++ b/LSL2/STPROC/ERROR_SERVICES.txt
@@ -102,7 +102,7 @@ If Assigned(Response) else Response = ''
AutoDisplayErrors = False$ ; // Set this to True$ when debugging so all errors will automatically display.
Declare function RetStack, Error_Services, SRPSendMail, Get_Env
-Declare subroutine Error_Services, Set_Env, Set_Status
+Declare subroutine Error_Services, Set_Env, Set_Status, GetTempPath
GoToService else
Error_Services('Set', Service : ' is not a valid service request within the Error services module.')
@@ -311,16 +311,39 @@ Service GetCodes()
End Service
+//----------------------------------------------------------------------------------------------------------------------
+// GetStackTrace
+//
+// Uses a debugger intercept to log the stack including line numbers to a temporary file and returns the contents
+// in the Response variable.
+//
+// Warning:
+// Stepping into this while debugging will interrupt the debugging session and may cause an error message to
+// be displayed. It is advised to set a breakpoint after the call and let the debugger run through this.
+//----------------------------------------------------------------------------------------------------------------------
Service GetStackTrace()
- // Business logic goes here. Data that needs to be returned should be assigned to the Response parameter.
- Response = ''
+
+ Error_Services('LogStack')
+ TempLogFileName = 'OIStackLog.csv'
+ TempDirectory = Str(\00\, 1024)
+ GetTempPath(Len(TempDirectory), TempDirectory)
+ Convert \00\ to '' in TempDirectory
+ TempLogPath = TempDirectory:TempLogFileName
+ OSRead Response from TempLogpath else
+ Error_Services('Add', 'Error in ':Service:' service. Error retrieving OIStackLog.csv')
+ end
+
End Service
//----------------------------------------------------------------------------------------------------------------------
// LogStack
//
-// Uses a custom debugger intercept to log the stack including line numbers to .../LogFiles/StackTrace.
+// Uses a debugger intercept, DEBUGGER_LOGGER, to log the stack including line numbers to .../LogFiles/StackTrace.
+//
+// Warning:
+// Stepping into this while debugging will interrupt the debugging session and may cause an error message to
+// be displayed. It is advised to set a breakpoint after the call and let the debugger run through this.
//----------------------------------------------------------------------------------------------------------------------
Service LogStack()
@@ -402,3 +425,4 @@ SendRuntimeAlert:
MsgSent = SRPSendMail(Message, ConfigFile)
return
+
diff --git a/LSL2/STPROC/RDS_ACTIONS.txt b/LSL2/STPROC/RDS_ACTIONS.txt
index 2e8df68..9f05912 100644
--- a/LSL2/STPROC/RDS_ACTIONS.txt
+++ b/LSL2/STPROC/RDS_ACTIONS.txt
@@ -81,12 +81,6 @@ LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' RDS
Headers = 'Logging DTM' : @FM : 'RDSNo' : @FM : 'WONo' : @FM : 'CassNo' : @FM : 'Reactor Type'
objLog3 = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
-LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\RDS_LAYER'
-LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' RDS_LAYER Log.csv'
-Headers = 'Logging DTM' : @FM : 'Results'
-ColumnWidths = 20 : @FM : 100
-objLog2 = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$)
-
If KeyID then GoSub Initialize_System_Variables
Begin Case
@@ -1045,3 +1039,4 @@ Restore_System_Variables:
return
+
diff --git a/LSL2/STPROC/RDS_LAYER_ACTIONS.txt b/LSL2/STPROC/RDS_LAYER_ACTIONS.txt
index e8d5909..36b2048 100644
--- a/LSL2/STPROC/RDS_LAYER_ACTIONS.txt
+++ b/LSL2/STPROC/RDS_LAYER_ACTIONS.txt
@@ -49,21 +49,13 @@ $insert FILE.SYSTEM.EQUATES
$insert ACTION_SETUP
$insert RDS_LAYER_EQUATES
-Declare function Tool_Parms_Services, Environment_Services, Logging_Services, Memberof
+Declare function Tool_Parms_Services, Environment_Services, Logging_Services, Memberof, Error_Services
Declare subroutine Logging_Services, Error_Services
-LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\RDS_LAYER_WriteIssue'
-LogDate = Oconv(Date(), 'D4/')
-LogTime = Oconv(Time(), 'MTS')
-LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' RDS_LAYER WriteIssue Log.csv'
-Headers = 'Logging DTM' : @FM : 'User' : @FM : 'RDS_LAYER Key ID' : @FM : 'Notes'
-objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
-LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
-
If KeyID then GoSub Initialize_System_Variables
Begin Case
-
+
Case Action _EQC 'CalcField' ; GoSub Calc_Field
Case Action _EQC 'READ_RECORD_PRE' ; GoSub READ_RECORD_PRE
Case Action _EQC 'READ_RECORD' ; GoSub READ_RECORD
@@ -74,7 +66,7 @@ Begin Case
Case Action _EQC 'DELETE_RECORD_PRE' ; GoSub DELETE_RECORD_PRE
Case Action _EQC 'DELETE_RECORD' ; GoSub DELETE_RECORD
Case Otherwise$ ; Status = 'Invalid Action'
-
+
End Case
If KeyID then GoSub Restore_System_Variables
@@ -99,7 +91,7 @@ Return ActionFlow
Calc_Field:
// Make sure the ActionFlow return variable is cleared in case nothing is calculated.
ActionFlow = ''
-
+
Begin Case
Case CalcColName EQ 'EXPORT_CONTROL' ; GoSub EXPORT_CONTROL
End Case
@@ -151,382 +143,68 @@ return
WRITE_RECORD_PRE:
- EngineeringCheck = Memberof(@User4, 'ENGINEERING')
- If (EngineeringCheck EQ True$) then
- ActionFlow = ACTION_CONTINUE$
- end else
- WriteIssue = False$
- If (OrigRecord NE '') AND (Record EQ '') then
+ If Not(Memberof(@User4, 'ENGINEERING')) then
+ If ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) |
+ or ( (OrigRecord NE '') AND (Record EQ '') ) then
+
+ ErrorMsg = 'RDS_LAYER specifications can only be cleared by a member of Engineering.'
+ LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\RDS_LAYER'
+ LogDate = Oconv(Date(), 'D4/')
+ LogTime = Oconv(Time(), 'MTS')
+ LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' RDS_LAYER_Spec_Clear_Attempt_Log.csv'
+ Headers = 'Logging DTM' : @FM : 'User' : @FM : 'RDS_LAYER Key ID' : @FM : 'Notes'
+ objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, Comma$, Headers, '', False$, False$)
+ LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM
+
LogData = ''
LogData<1> = LoggingDTM
LogData<2> = @USER4
LogData<3> = Name
- LogData<4> = 'RDS_LAYER Epi Time Min can only be cleared by a member of Engineering.'
+ LogData<4> = ErrorMsg
+ LogData<5> = Error_Services('GetStackTrace')
Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Epi Time Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Epi Time Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Epi Time Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Epi H2 Flow Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Epi H2 Flow Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Epi H2 Flow Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Epi H2 Flow Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER TCS Flow Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER TCS Flow Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER TCS Flow Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER TCS Flow Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Aux1 Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Aux1 Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Aux1 Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Aux1 Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER F Offset Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER F Offset Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER F Offset Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER F Offset Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Susc Etch Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Susc Etch Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Susc Etch Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Susc Etch Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Dilutent Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Dilutent Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Dilutent Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Dilutent Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Dopant Flow Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Dopant Flow Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Dopant Flow Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Dopant Flow Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER HCL Flow Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER HCL Flow Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER HCL Flow Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER HCL Flow Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Bake Time Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Bake Time Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Bake Time Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Bake Time Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER DCS Flow Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER DCS Flow Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER DCS Flow Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER DCS Flow Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Aux2 Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Aux2 Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Aux2 Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Aux2 Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER S Offset Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER S Offset Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER S Offset Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER S Offset Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER R Offset Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER R Offset Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER R Offset Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER R Offset Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Etch 1 Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Etch 1 Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Etch 1 Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Etch 1 Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Etch 2 Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Etch 2 Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Etch 2 Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Etch 2 Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Etch 3 Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Etch 3 Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER Etch 3 Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER Etch 3 Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
-
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER UL Temp Min can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER UL Temp Min can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
- If (OrigRecord NE '') AND (Record EQ '') then
- LogData = ''
- LogData<1> = LoggingDTM
- LogData<2> = @USER4
- LogData<3> = Name
- LogData<4> = 'RDS_LAYER UL Temp Max can only be cleared by a member of Engineering.'
- Logging_Services('AppendLog', ObjLog, LogData, @RM, @FM, False$)
- Error_Services('Add', 'RDS_LAYER UL Temp Max can only be cleared by a member of Engineering.')
- WriteIssue = True$
- end
-
- // User is attempting to erase data that is prohibited from being erased Set the FS104 error and block the write.
- If WriteIssue EQ True$ then
- OrigFileError = 104:': RDS_LAYER params can only be cleared by a member of Engineering.'
+ Error_Services('LogStack')
+ Error_Services('Add', ErrorMsg)
+
+ OrigFileError = 104:': ':ErrorMsg
Status = 0
Record = ''
- ActionFlow = ACTION_STOP$
- Error_Services('LogStack')
- end else
- ActionFlow = ACTION_CONTINUE$
+ ActionFlow = ACTION_STOP$
+
end
end
@@ -545,12 +223,13 @@ return
// ----- Internal Methods ----------------------------------------------------------------------------------------------
Initialize_System_Variables:
+
// Save these for restoration later
SaveDict = @DICT
SaveID = @ID
SaveRecord = @RECORD
OrigFileError = @FILE.ERROR
-
+
// Now make sure @DICT, ID, and @RECORD are populated
CurrentDictName = ''
If @DICT then
@@ -559,11 +238,11 @@ Initialize_System_Variables:
CurrentDictName = Field(@TABLES(0), @FM, fPos, 1)
end
end
-
+
If CurrentDictName NE DictName then
- Open DictName to @DICT else Status = 'Unable to initialize @DICT'
+ Open DictName to @DICT else Status = 'Unable to initialize @DICT'
end
-
+
@ID = KeyID
If Record else
// Record might not have been passed in. Read the record from the database table just to make sure.
@@ -573,16 +252,21 @@ Initialize_System_Variables:
BFS = FullFSList[-1, 'B' : @SVM]
LastHandle = hTable[-1, 'B' : \0D\]
FileHandle = \0D\ : LastHandle[1, @VM]
-
+
Call @BFS(READO.RECORD, BFS, FileHandle, KeyID, FMC, Record, ReadOStatus)
end
end
@RECORD = Record
+
return
+
Restore_System_Variables:
+
Transfer SaveDict to @DICT
Transfer SaveID to @ID
Transfer SaveRecord to @RECORD
@FILE.ERROR = OrigFileError
+
return
+
diff --git a/LSL2/STPROC/RDS_LAYER_EVENTS.txt b/LSL2/STPROC/RDS_LAYER_EVENTS.txt
index 427388f..21b7fb9 100644
--- a/LSL2/STPROC/RDS_LAYER_EVENTS.txt
+++ b/LSL2/STPROC/RDS_LAYER_EVENTS.txt
@@ -35,6 +35,7 @@ Compile function RDS_LAYER_EVENTS(CtrlEntId, Event, @PARAMS)
#pragma precomp SRP_PreCompiler
#window RDS_LAYER
+$Insert EVENT_SETUP
$Insert RDS_EQUATES
$Insert APP_INSERTS
$Insert RLIST_EQUATES
@@ -54,7 +55,7 @@ EQU HIDDEN$ TO 32
Declare subroutine Comm_RDS_Layer, Tool_Parms_Services, Set_Status, RList, Errmsg, Database_Services, Msg
Declare subroutine PlaceDialog, obj_RDS_Layer, Security_Err_Msg
-Declare function Tool_Parms_Services, Get_Property, Database_Services, Security_Check, MemberOf
+Declare function Tool_Parms_Services, Get_Property, Database_Services, Security_Check, MemberOf, Get_EventStatus
GoToEvent Event for CtrlEntId else
// Event not implemented
@@ -98,7 +99,7 @@ Event WINDOW.WRITE()
IF CurrRecord NE OrgRecord THEN
CurrDTM = OCONV(Date(),'D4/'):' ':OCONV(Time(),'MTS')
NewLine = @USER4:@VM:CurrDTM
- Send_Message(@WINDOW:'.MODIFY_USER','INSERT',1,NewLine)
+ Send_Message(@WINDOW:'.MODIFY_USER', 'INSERT', 1, NewLine)
END
IOOptions = Get_Property(@Window, 'IOOPTIONS')
@@ -107,104 +108,16 @@ Event WINDOW.WRITE()
Set_Status(0)
Forward_Event()
errCode = ''
- If Get_Status(errCode) then ErrMsg('Save failed. Error code: ':errCode)
- Post_Event(@WINDOW,'CLOSE')
-
-* end else
-*
-* MsgHead = 'Default Run Parameters'
-* MsgText = 'Would you like to use these parameters as the default for future lots?'
-*
-* Response = Msg(@WINDOW,'','YESNO','',MsgHead:@FM:MsgText)
-*
-* IF Response EQ True$ THEN
-*
-* RDSNo = Get_Property(@Window : '.RDS_NO', 'TEXT')
-* Database_Services('ActivateRecord', 'RDS', RDSNo)
-* WorkOrder = {WO}
-* ReactorNo = {REACTOR}
-* PSN = {PROD_SPEC_ID}
-* If PSN NE '' then
-* If ReactorNo EQ '' then
-* ReactorNo = {SCHED_REACTOR}
-* If ReactorNo EQ '' then
-* ErrorMsg = 'No scheduled reactor found for work order: ':WorkOrder:'. Could not apply current ':@SVM |
-* : 'run parameters. Please assign a reactor to this RDS first.'
-* ErrMsg(ErrorMsg)
-* return
-* end
-* end
-* // Create a new TOOL_PARMS record, which is the "master" parameter record.
-* Tool_Parms_Services('CreateToolParmsRec', PSN, ReactorNo, RDSNo)
-* If Error_Services('NoError') then
-* Msg(@Window, '', 'SUCCESS', '', 'Run parameters have been set for reactor ':ReactorNo)
-* end else
-* Errmsg('Error setting run parameters. Error message: ':Error_Services('GetMessage'))
-* end
-* end else
-* ErrorMsg = 'No PSN assigned to this RDS. Could not apply current ':@SVM |
-* : 'run parameters. Please assign a PSN to this RDS first.'
-* ErrMsg(ErrorMsg)
-* return
-* end
-* end
-* end
-
+ If Get_EventStatus(errCode) then
+ EventFlow = EVENT_STOP$
+ end else
+ Post_Event(@WINDOW,'CLOSE')
+ end
+
end event
-* Event BTN_SET_CURR_RUN_PARMS.CLICK()
-*
-* // Use new RDS_LAYER parameters to create a new TOOL_PARMS record.
-* // Then apply the new TOOL_PARMS to all RDS records in this work order on this reactor.
-* // Note: If a reactor has not yet been assigned to an RDS in this work order, then
-* // the TOOL_PARMS will be applied anyways as a convenience. Should the RDS be
-* // reassigned to another reactor later, the appropriate TOOL_PARMS will be applied
-* // by the RDS_ACTIONS MFS.
-*
-* Savewarn = Get_Property(@Window, 'SAVEWARN')
-* Set_Property(@Window, '@SKIPSCRIPT', True$)
-* If Savewarn EQ True$ then
-* IOOptions = Get_Property(@Window, 'IOOPTIONS')
-* IOOptions<6> = 1
-* Set_Property(@Window, 'IOOPTIONS', IOOptions)
-* Send_Event(@Window, 'WRITE')
-* end
-* RDSNo = Get_Property(@Window : '.RDS_NO', 'TEXT')
-* Database_Services('ActivateRecord', 'RDS', RDSNo)
-* WorkOrder = {WO}
-* ReactorNo = {REACTOR}
-* PSN = {PROD_SPEC_ID}
-* If PSN NE '' then
-* If ReactorNo EQ '' then
-* ReactorNo = {SCHED_REACTOR}
-* If ReactorNo EQ '' then
-* ErrorMsg = 'No scheduled reactor found for work order: ':WorkOrder:'. Could not apply current ':@SVM |
-* : 'run parameters. Please assign a reactor to this RDS first.'
-* ErrMsg(ErrorMsg)
-* return
-* end
-* end
-* // Create a new TOOL_PARMS record, which is the "master" parameter record.
-* Tool_Parms_Services('CreateToolParmsRec', PSN, ReactorNo, RDSNo)
-* // Apply new TOOL_PARMS record to all RDS_LAYERS in this run without an unload signature.
-* Tool_Parms_Services('ApplyCurrentRunParms', PSN, ReactorNo)
-* If Error_Services('NoError') then
-* Msg(@Window, '', 'SUCCESS', '', 'Run parameters have been set for reactor ':ReactorNo)
-* end else
-* Errmsg('Error setting run parameters. Error message: ':Error_Services('GetMessage'))
-* end
-* end else
-* ErrorMsg = 'No PSN assigned to this RDS. Could not apply current ':@SVM |
-* : 'run parameters. Please assign a PSN to this RDS first.'
-* ErrMsg(ErrorMsg)
-* return
-* end
-*
-* end event
-
-
Event PUB_CONFIRM_PARMS.CLICK()
RDSNo = Get_Property(@Window:'.RDS_NO', 'TEXT')
@@ -248,9 +161,11 @@ end event
ClearCursors:
+
For counter = 0 to 8
ClearSelect counter
Next counter
+
return
@@ -348,11 +263,6 @@ Refresh:
Parameter_Styles = Send_Message( @WINDOW:'.RECIPE_PARMS', "COLSTYLE", 0, ParameterStyles )
LimitStyles = Send_Message( @WINDOW:'.RECIPE_LIMITS', "COLSTYLE", 0, LimitStyles )
-* Set_Property( @WINDOW:'.RECIPE_INFO', "AUTOSIZECOL", 16 )
-* Set_Property( @WINDOW:'.RECIPE_LIMITS', "AUTOSIZECOL", 16 )
-
-
-
* QBF buttons
Ctrls = @WINDOW:'.QBF_FIRST_FIX':@RM ; Props = 'ENABLED':@RM
@@ -389,7 +299,6 @@ Refresh:
NEXT I
NEXT I
-
TestList = Get_Property(@WINDOW:'.RDS_TEST_KEYS','LIST')
FOR I = 1 TO COUNT(TestList,@FM) + (TestList NE '')
@@ -400,14 +309,6 @@ Refresh:
END
NEXT I
- * RPCopy = RecipeParms
- * Convert @FM to '' in RPCopy
- * If RPCopy EQ '' then
- * Set_Property(@Window : '.BTN_SET_CURR_RUN_PARMS', 'ENABLED', False$)
- * end else
- * Set_Property(@Window : '.BTN_SET_CURR_RUN_PARMS', 'ENABLED', True$)
- * end
-
IsTestWafer = Xlate('RDS', RDSNo, 'ON_TW_FREQ', 'X')
RDSLayerAck = RDSRec
If ( (IsTestWafer EQ True$) and ( (RDSLayerAck EQ False$) or (RDSLayerAck EQ '') ) ) then