Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

307 lines
6.1 KiB
Plaintext

COMPILE FUNCTION Sched(EntID,Event,Parm1,Parm2,Parm3,Parm4,Parm5)
#pragma precomp SRP_PreCompiler
/*
Commuter module for SCHED (Reactor Schedule) window
06/30/2014 - John C. Henry, J.C. Henry & Co., Inc.
*/
DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status,ErrMsg, obj_Appwindow
DECLARE FUNCTION Msg, obj_Appwindow, Get_Property, Send_Message, obj_Tables, Post_Event, MemberOf
$INSERT APPCOLORS
$INSERT SCHED_EQUATES
$INSERT SCHED_DET_EQUATES
EQU COL$SEQ TO 1
EQU COL$WO_NO TO 2
EQU COL$WO_STEP TO 3
EQU COL_CUST_NAME TO 4
EQU COL_DESC TO 5
EQU CRLF$ TO \0D0A\
EQU TAB$ TO \09\
ErrTitle = 'Error in Sched Commuter'
ErrorMsg = ''
Result = ''
BEGIN CASE
CASE EntID = @WINDOW
BEGIN CASE
CASE Event = 'CLEAR' ; GOSUB Clear
CASE Event = 'CREATE' ; GOSUB Create
CASE Event = 'CLOSE' ; GOSUB Close
CASE Event = 'WRITE' ; GOSUB Write
CASE Event = 'READ' ; GOSUB Read
CASE Event[1,3] = 'QBF' ; GOSUB Refresh
END CASE
CASE EntID = @WINDOW:'.NEW_BUTTON' AND Event = 'CLICK' ; GOSUB AddNew
CASE EntID = @WINDOW:'.REORDER' AND Event = 'CLICK' ; GOSUB MoveUp
CASE EntID = @WINDOW:'.SCHED_DETAIL'
BEGIN CASE
CASE Event = 'POSCHANGED' ; GOSUB DetailPC
CASE Event = 'DBLCLK' ; GOSUB DetailDC
END CASE
CASE 1
ErrorMsg = 'Unknown Parameters ':EntID:' - ':Event:' passed to commuter'
ErrMsg(ErrorMsg)
END CASE
IF ErrorMsg NE '' THEN
ErrMsg(ErrTitle:@SVM:ErrorMsg)
END
RETURN Result
* * * * * * *
Create:
* * * * * * *
obj_Appwindow('Create',@WINDOW)
RETURN
* * * * * * *
Read:
* * * * * * *
GOSUB Refresh
RETURN
* * * * * * *
Clear:
* * * * * * *
GOSUB Refresh
RETURN
* * * * * * *
Write:
* * * * * * *
*void = Post_Event(@WINDOW,'CLOSE')
RETURN 1
* * * * * * *
Close:
* * * * * * *
RETURN
* * * * * * *
Refresh:
* * * * * * *
CtrlEntID = @WINDOW:'.SCHED_DETAIL'
CurrPos = Get_Property(CtrlEntID,'SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
IF CurrRow > 1 THEN Prop = 1 ELSE Prop = 0
Set_Property(@WINDOW:'.REORDER','ENABLED',Prop)
* 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 Line
NEXT I
RETURN
* * * * * * *
DetailPC:
* * * * * * *
CtrlEntID = @WINDOW:'.SCHED_DETAIL'
CurrPos = Get_Property(CtrlEntID,'SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
IF CurrRow > 1 THEN Prop = 1 ELSE Prop = 0
Set_Property(@WINDOW:'.REORDER','ENABLED',Prop)
RETURN
*********
DetailDC:
*********
if (MemberOf(@USER4, "MASTER_SCHED") OR MemberOf(@USER4, "OI_ADMIN")) then
CtrlEntID = @WINDOW:'.SCHED_DETAIL'
CurrPos = Get_Property(CtrlEntID,'SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
ReactNo = Get_Property(@WINDOW:'.REACT_NO','DEFPROP')
SchedDt = ICONV(Get_Property(@WINDOW:'.SCHED_DT','TEXT'),'D')
IF ((ReactNo NE '') AND (SchedDt NE '')) THEN
SchedSeq = Get_Property(CtrlEntID,'CELLPOS',COL$SEQ:@FM:CurrRow)
IF (SchedSeq NE '') THEN
SchedDetKey = ReactNo:'*':SchedDt:'*':SchedSeq
Send_Event(@WINDOW,'WRITE')
DetWindow = 'SCHED_DET'
DetKeys = SchedDetKey
DefaultRec = ''
RetKey = ReactNo:'*':SchedDt
RetWin = @WINDOW
RetPage = 1
RetCtrl = CtrlEntID
RetPos = CurrPos
obj_Appwindow('ViewNewDetail',DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos)
end
end
end
RETURN
* * * * * * *
AddNew:
* * * * * * *
ReactNo = Get_Property(@WINDOW:'.REACT_NO','DEFPROP')
SchedDt = ICONV(Get_Property(@WINDOW:'.SCHED_DT','TEXT'),'D')
IF ReactNo = '' OR SchedDt = '' THEN RETURN
CtrlEntID = @WINDOW:'.SCHED_DETAIL'
CurrPos = Get_Property(CtrlEntID,'SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
SeqNos = Get_Property(CtrlEntID,'ARRAY')<COL$SEQ>
LOOP
UNTIL SeqNos[-1,1] NE @VM OR SeqNos = ''
SeqNos[-1,1] = ''
REPEAT
LastSeq = SeqNos[-1,'B':@VM]
IF LastSeq = '' THEN LastSeq = 0
NextSeq = LastSeq + 1
SchedDetKey = ReactNo:'*':SchedDt:'*':NextSeq
Send_Event(@WINDOW,'WRITE')
DetWindow = 'SCHED_DET'
DetKeys = SchedDetKey
DefaultRec = ''
RetKey = ReactNo:'*':SchedDt
RetWin = @WINDOW
RetPage = 1
RetCtrl = CtrlEntID
RetPos = CurrPos
obj_Appwindow('ViewNewDetail',DetWindow:@RM:DetKeys:@RM:DefaultRec:@RM:RetKey:@RM:RetPage:@RM:RetCtrl:@RM:RetPos)
RETURN
* * * * * * *
MoveUp:
* * * * * * *
CtrlEntID = @WINDOW:'.SCHED_DETAIL'
CurrPos = Get_Property(CtrlEntID,'SELPOS')
CurrCol = CurrPos<1>
CurrRow = CurrPos<2>
ReactNo = Get_Property(@WINDOW:'.REACT_NO','DEFPROP')
SchedDt = ICONV(Get_Property(@WINDOW:'.SCHED_DT','TEXT'),'D')
IF ReactNo = '' OR SchedDt = '' THEN RETURN
CurrList = Get_Property(CtrlEntID,'LIST')
CurrSeq = CurrList<CurrRow,COL$SEQ>
PrevSeq = CurrList<CurrRow - 1,COL$SEQ>
CurrKey = ReactNo:'*':SchedDt:'*':CurrSeq
PrevKey = ReactNo:'*':SchedDt:'*':PrevSeq
Send_Event(@WINDOW,'WRITE')
otParms = 'SCHED_DET':@RM:CurrKey
CurrRec = obj_Tables('ReadRec',otParms)
otParms = 'SCHED_DET':@RM:PrevKey
PrevRec = obj_Tables('ReadRec',otParms)
otParms = 'SCHED_DET':@RM:PrevKey:@RM:@RM:CurrRec
void = obj_Tables('WriteRec',otParms)
otParms = 'SCHED_DET':@RM:CurrKey:@RM:@RM:PrevRec
void = obj_Tables('WriteRec',otParms)
obj_Appwindow('LoadFormKeys',@WINDOW:@RM:ReactNo:'*':SchedDt)
RETURN