added LSL2 stored procedures
This commit is contained in:
324
LSL2/STPROC/POP_MAST_SCHED_OPTS.txt
Normal file
324
LSL2/STPROC/POP_MAST_SCHED_OPTS.txt
Normal file
@ -0,0 +1,324 @@
|
||||
Function Pop_Mast_Sched_Opts(WOStepKey, ApptID)
|
||||
|
||||
/*******************************************************************************************************
|
||||
|
||||
This program is proprietary and is not to be used by or disclosed to others, nor is it to
|
||||
be copied without written permission from SRP Computer Solutions, Inc.
|
||||
|
||||
Name : Pop Mast Sched Opts
|
||||
|
||||
Notes : Taken from the the DBLCLK event of the WO_MAST_SCHED window, and modified for
|
||||
standalone use.
|
||||
|
||||
Tags : [SRP]
|
||||
|
||||
Parameters :
|
||||
WOStepKey [in] --
|
||||
|
||||
History (Date, Initials, Notes)
|
||||
11/12/09 fjt Initial development
|
||||
08/17/10 fjt Added Choose_Box option per David
|
||||
|
||||
*******************************************************************************************************/
|
||||
|
||||
$insert MSG_EQUATES
|
||||
$insert POPUP_EQUATES
|
||||
$INSERT LOGICAL
|
||||
$insert RDS_EQU
|
||||
$insert PROD_SPEC_EQU
|
||||
$insert PRS_LAYER_EQU
|
||||
$insert WO_STEP_EQU
|
||||
|
||||
Declare function Start_Window, Msg, Entid, Repository, Fieldcount, Relational_Call, MemberOf
|
||||
Declare function RDS_Wo_Verify_Maint, RDS_Supplement_Maint, Obj_Prod_Spec, Utility, Key_Sort
|
||||
Declare subroutine Extract_Si_Keys, Obj_Appwindow, Make.List
|
||||
|
||||
GoSub Record
|
||||
GoSub Build_Popup
|
||||
|
||||
Begin Case
|
||||
Case ChoosenOpt EQ "EPIPRO_WOPS" ; GoSub EPIPRO_WOPS
|
||||
Case ChoosenOpt EQ "RECIPE" ; GoSub RECIPE
|
||||
Case ChoosenOpt EQ "RDS" ; GoSub RDS
|
||||
Case ChoosenOpt EQ "WO" ; GoSub WO
|
||||
Case ChoosenOpt EQ "WO_STATUS" ; GoSub WO_STATUS
|
||||
Case ChoosenOpt EQ "WO_VERIFY" ; GoSub WO_VERIFY
|
||||
Case ChoosenOpt EQ "SUPPLEMENTS" ; GoSub SUPPLEMENTS
|
||||
Case ChoosenOpt EQ "PSN" ; GoSub PSN
|
||||
End Case
|
||||
|
||||
Return
|
||||
|
||||
|
||||
!----- INTERNAL ROUTINES --------------------------------------------------------------------------------
|
||||
|
||||
|
||||
Record:
|
||||
Rec = Xlate("WO_MAST_SCHED", ApptID, "", "X")
|
||||
CurReactor = Rec<15> ;// Reactor
|
||||
RNum = Rec<15> ;// Reactor
|
||||
return
|
||||
|
||||
|
||||
Build_Popup:
|
||||
PopupId = EntId(@appid<1>, 'POPUP', '', 'MAST_SCHED_OPTS')
|
||||
OverRide = ''
|
||||
Display = Xlate("SYSREPOSPOPUPS", "LSL2**MAST_SCHED_OPTS", pDisplay$, "X")
|
||||
|
||||
|
||||
User.Engineer = MemberOf(@USER4, "ENGINEERING")
|
||||
User.Testing = MemberOf(@USER4, "TESTING")
|
||||
User.Super = MemberOf(@USER4, "SUPERVISOR")
|
||||
|
||||
Begin Case
|
||||
|
||||
Case User.Testing
|
||||
Display := @VM:"EpiPro WO Proc Status":@TM:"EPIPRO_WOPS"
|
||||
Display := @VM:'Assign WO Verifications':@TM:'WO_VERIFY'
|
||||
Display := @vm:'Assign Supplements' :@TM: "SUPPLEMENTS"
|
||||
|
||||
Case User.Super
|
||||
Display := @VM:"EpiPro WO Proc Status":@TM:"EPIPRO_WOPS"
|
||||
Display := @VM:'Assign WO Verifications':@TM:'WO_VERIFY'
|
||||
Display := @vm:'Assign Supplements' :@TM: "SUPPLEMENTS"
|
||||
|
||||
Case User.Engineer
|
||||
Display := @vm:'Assign Supplements' :@TM: "SUPPLEMENTS"
|
||||
|
||||
End Case
|
||||
|
||||
// Add product spec for all levels
|
||||
Display := @VM: "Product Spec" :@TM: "PSN"
|
||||
|
||||
Override<6,0,1> = "Tahoma" :@SVM: 14 :@SVM: 400
|
||||
OverRide<Pdisplay$> = Display
|
||||
ChoosenOpt = Repository("EXECUTE", PopupId, @Window, OverRide)
|
||||
return
|
||||
|
||||
|
||||
!----- PROCESS OPTIONS ----------------------------------------------------------------------------------
|
||||
|
||||
|
||||
EPIPRO_WOPS:
|
||||
* WONos = Field(WOStepKey, "*", 1)
|
||||
* rv = Start_Window("WO_PROD_EPI", @Window, WONos, "", "")
|
||||
obj_Appwindow('ViewRelated', 'WO_PROD_EPI':@RM:WOStepKey)
|
||||
return
|
||||
|
||||
|
||||
CHOOSE_BOXES:
|
||||
* RDSIds = XLATE('WO_STEP', WOStepKey, WO_STEP_RDS_KEY$, 'X')
|
||||
* If RdsIds then
|
||||
* PopId = EntID(@appid<1>, 'POPUP', '', 'RDS_QUERY' )
|
||||
* OverRide = ''
|
||||
* OverRide<ptitle$> = 'Choose the RDS Run Orders for Reactor ':Reactor
|
||||
* Convert @VM to @FM in RdsIds
|
||||
* Make.List(0, RdsIds, '', '' )
|
||||
* ChosenKeys = Repository("EXECUTE", PopId, @Window, OverRide)
|
||||
* If ChosenKeys then
|
||||
* Ccnt = Fieldcount(ChosenKeys, @VM)
|
||||
*
|
||||
* RunNums = Xlate('RDS', ChosenKeys, 'RUN_ORDER_NUM', 'X')
|
||||
*
|
||||
* CurWoVal = HoldWoVal
|
||||
* gosub PrepWo
|
||||
* gosub RecalcWo
|
||||
* end
|
||||
* end
|
||||
return
|
||||
|
||||
|
||||
PSN:
|
||||
PSN = Xlate("WO_MAST_SCHED", ApptID, 6, "X")
|
||||
If PSN then
|
||||
rv = Start_Window("PROD_SPEC", @Window, PSN, "", "")
|
||||
end
|
||||
return
|
||||
|
||||
|
||||
RECIPE:
|
||||
CurKeys = ""
|
||||
RecipeKeys = ""
|
||||
|
||||
IF LEN(WOStepKey) EQ 6 THEN
|
||||
WOStepKey = WOStepKey:'*1'
|
||||
END ELSE
|
||||
WOStepKey = WOStepKey[1,6]:'*':WOStepKey[7,1]
|
||||
END
|
||||
|
||||
PSN = XLATE('WO_STEP', WOStepKey, 1, 'X')
|
||||
|
||||
LayerSpecs = obj_Prod_Spec('GetLayerProp',PSN:@RM:@RM:1) ;// Returns specs for all layers in internal format
|
||||
LayerSpec = FIELD(LayerSpecs,@RM,1) ;// Take the first Layer
|
||||
LayerSet = FIELD(LayerSpec,@FM,1) ;// Not used here but shown for clarity
|
||||
LayerSpec = FIELD(LayerSpec,@FM,2,99) ;// LayerSpec without the LayerSet
|
||||
RecipeNo = LayerSpec<PRS_LAYER_RECIPE$>
|
||||
|
||||
IF RecipeNo NE '' THEN
|
||||
LOCATE RecipeNo IN RecipeKeys USING @VM SETTING Dum ELSE
|
||||
RecipeKeys<1,-1> = RecipeNo
|
||||
END
|
||||
END
|
||||
|
||||
IF RecipeKeys NE '' THEN
|
||||
Void = start_window( 'RECIPE', @window, RecipeKeys:'*CENTER', '', '' )
|
||||
END
|
||||
return
|
||||
|
||||
|
||||
RDS:
|
||||
WOStepKeys = ""
|
||||
If Len(WOStepKey) EQ 6 then
|
||||
WOStepKey = WOStepKey:'*1'
|
||||
end else
|
||||
WOStepKey = WOStepKey[1,6]:'*':WOStepKey[7,1]
|
||||
end
|
||||
WOStepKeys<1,-1> = WOSTepKey
|
||||
RDSNos = Xlate("WO_STEP", WOStepKeys, WO_STEP_RDS_KEY$, "X")
|
||||
|
||||
// Popup the run data sheet popup list
|
||||
TypeOver = ""
|
||||
TypeOver<PMODE$> = "K"
|
||||
TypeOver<PDISPLAY$> = RDSNos
|
||||
RDSKeys = Popup(@WINDOW,TypeOver,'RDS_QUERY')
|
||||
If RDSKeys NE "" then
|
||||
rv = Start_Window("RDS", @Window, RDSKeys:"*CENTER", "", "")
|
||||
end
|
||||
return
|
||||
|
||||
|
||||
WO:
|
||||
WONos = Field(WOStepKey, "*", 1)
|
||||
NewForm = Xlate('APP_INFO', 'NEW_WO_FORM', '', 'X')
|
||||
If NewForm then
|
||||
Form = 'NDW_WO_LOG'
|
||||
end else
|
||||
Form = 'WO_LOG2'
|
||||
end
|
||||
rv = Start_Window(Form, @Window, WONos, "", "")
|
||||
return
|
||||
|
||||
|
||||
WO_STATUS:
|
||||
WOStepKeys = WOStepKey
|
||||
PSN = Xlate("WO_STEP", WOStepKey, 1, "X")
|
||||
ReactorType = XLATE('PROD_SPEC', PSN, 80, 'X')
|
||||
|
||||
If ReactorType EQ 'P' then
|
||||
obj_Appwindow('ViewRelated','WO_PROD_EPI':@RM:WOStepKeys)
|
||||
end else
|
||||
obj_Appwindow('ViewRelated','WO_PROD':@RM:WOStepKeys)
|
||||
end
|
||||
return
|
||||
|
||||
|
||||
WO_VERIFY:
|
||||
TWo = WOStepKey
|
||||
rv = RDS_WO_Verify_Maint(TWo)
|
||||
return
|
||||
|
||||
|
||||
SUPPLEMENTS:
|
||||
TWo = WOStepKey
|
||||
rv = RDS_Supplement_Maint(TWo)
|
||||
return
|
||||
|
||||
|
||||
!----- INTERNAL ROUTINES -------------------------------------------------------------------------------
|
||||
|
||||
|
||||
PrepWo:
|
||||
* * CurReactor = get_property( @window, '@Reactor' )
|
||||
* Convert @upper_case to '' in CurReactor
|
||||
* Convert @lower_case to '' in CurReactor
|
||||
*
|
||||
* CurWoVal = CurWoVal[1,' ']
|
||||
*
|
||||
* Swap '52nd' with '' in CurWoVal
|
||||
* Convert @upper_case to '' in CurWoVal
|
||||
* Convert @lower_case to '' in CurWoVal
|
||||
* Convert " `~!@#$%^&*()_+-=\][{}|';:/?.>,<" to '' in CurWoVal
|
||||
* Convert '"' to '' in CurWoVal
|
||||
*
|
||||
* If Len(CurWoVal) EQ 7 then
|
||||
* CurWoVal = CurWoVal[1,6]:".":CurWoVal[7,1] ;// Workorder plus a step 7/28/2005 JCH
|
||||
* end
|
||||
return
|
||||
|
||||
|
||||
RecalcWo:
|
||||
/*
|
||||
* RNum = get_property( @window, '@Reactor' )
|
||||
RMId = 'REACT_MODE':RNum
|
||||
Mode = Xlate('CONFIG', RMId, Mode$, 'X')
|
||||
|
||||
* If Mode then
|
||||
* Icon = get_mode_icon( Mode )
|
||||
* Extension = '.BMP'
|
||||
* DosBmp = 'BMPS\':Icon:Extension
|
||||
* Void = set_property( @window:'.RMODE', 'BITMAP', DosBmp )
|
||||
* end
|
||||
|
||||
if CurWoVal NE '' then
|
||||
Stat = Utility( 'CURSOR', 'H' )
|
||||
IF INDEX(CurWoVal,'.',1) THEN
|
||||
WOStepKey = CurWoVal
|
||||
END ELSE
|
||||
WOStepKey = CurWoVal:'.1'
|
||||
END
|
||||
|
||||
CONVERT '.' TO '*' IN WOStepKey
|
||||
|
||||
RdsToProc = XLATE('WO_STEP',WOStepKey,6,'X')
|
||||
if RdsToProc then
|
||||
* CurArray = get_property( @window:'.ROS', 'ARRAY' )
|
||||
* for i = 1 to 80
|
||||
* Void = send_message( @window:'.ROS', 'COLOR_BY_POS', i, 1, Black$ )
|
||||
* next i
|
||||
Convert @vm to @fm in RdsToProc
|
||||
RdsToProc = Key_Sort(RdsToProc, 'RDS', 'RUN_ORDER_NUM', 1)
|
||||
Tcnt = fieldcount( RdsToProc, @fm )
|
||||
|
||||
RdsToProc = field( RdsToProc, @fm, 1, 80 ) ;* only room for 80
|
||||
Rcnt = fieldcount( RdsToProc, @fm )
|
||||
for i = 1 to Rcnt
|
||||
RdsRec = XLATE('RDS',RdsToProc<i>,'','X')
|
||||
IF RdsRec = '' THEN
|
||||
Void = msg( '', 'Unable to read ':RdsToProc<i>:' from RDS...' )
|
||||
return 0
|
||||
end
|
||||
*
|
||||
if CurArray<i,2> = 0 then
|
||||
// they do not want to run this box on this reactor
|
||||
GrayBox = true$
|
||||
end else
|
||||
* it is either one on blank meaning show this box
|
||||
GrayBox = false$
|
||||
end
|
||||
DateIn = RdsRec<rds_date_in$>
|
||||
DateOut = RdsRec<rds_date_out$>
|
||||
Reactor = RdsRec<rds_reactor$>
|
||||
begin case
|
||||
case ( GrayBox ) and ( Reactor = CurReactor )
|
||||
// this is a gray box meaning run on another reactor but it ran here so show blue
|
||||
ColorToUse = Blue$
|
||||
case GrayBox
|
||||
ColorToUse = Gray$
|
||||
case ( DateIn = '' ) and ( DateOut = '' )
|
||||
ColorToUse = White$
|
||||
case Reactor <> CurReactor
|
||||
ColorToUse = Blue$
|
||||
case ( DateIn <> '' ) and ( DateOut = '' )
|
||||
ColorToUse = Green$
|
||||
case ( DateIn <> '' ) and ( DateOut <> '' )
|
||||
ColorToUse = Red$
|
||||
end case
|
||||
*
|
||||
*Void = send_message( @window:'.ROS', 'COLOR_BY_POS', i, 1, ColorToUse )
|
||||
next i
|
||||
end
|
||||
Stat = utility( 'CURSOR', 'A' )
|
||||
end
|
||||
*/
|
||||
return
|
||||
|
Reference in New Issue
Block a user