COMPILE FUNCTION Dialog_React_Item_Hist(EntID,Event,Parm1,Parm2,Parm3,Parm4,Parm5) /* Commuter module for DIALOG_REACT_ITEM_HIST window 01/19/2014 - John C. Henry, J.C. Henry & Co., Inc. cloned from Graphite */ DECLARE SUBROUTINE Set_Property, ErrMsg, obj_Appwindow, Btree.Extract, Send_Event, Send_Message DECLARE FUNCTION Get_Property, Send_Message, NextKey, Popup, obj_Calendar, Printer_Select DECLARE FUNCTION Set_Printer, obj_Install, Start_Window, obj_Popup, obj_React_Item_Hist, MemberOf $INSERT APPCOLORS $INSERT REACT_ITEM_EQUATES $INSERT REACT_ITEM_HIST_EQUATES $INSERT POPUP_EQUATES $INSERT RTI_STYLE_EQUATES EQU COL$REACT_NO TO 1 EQU COL$RI_NO TO 2 EQU COL$RI_TYPE TO 3 EQU COL$SVC_HRS TO 4 EQU COL$SVC_WFRS TO 5 EQU COL$INST_DTM TO 6 EQU COL$INST_REACT_HRS TO 7 EQU COL$INST_REACT_WFRS TO 8 EQU COL$INST_RL_ID TO 9 EQU COL$REM_DTM TO 10 EQU COL$REM_REACT_HRS TO 11 EQU COL$REM_REACT_WFRS TO 12 EQU COL$REM_RL_ID TO 13 EQU COL$REM_REASON TO 14 EQU SPECIAL_BLUE$ TO 227 + (253*256) + (248*65536) EQU CRLF$ TO \0D0A\ EQU HIDDEN$ TO 32 EQU SKIPPED$ TO 4100 EQU PI$LEFT TO 1 EQU PI$TOP TO 2 EQU PI$RIGHT TO 3 EQU PI$BOTTOM TO 4 EQU PI$WIDTH TO 5 EQU PI$HEIGHT TO 6 EQU PI$SIZE TO 7 ErrTitle = 'Error in Dialog_React_Item_Hist' ErrorMsg = '' Result = '' BEGIN CASE CASE EntID = @WINDOW BEGIN CASE CASE Event = 'CREATE' ; GOSUB Create END CASE CASE EntID = @WINDOW:'.HISTORY' AND Event = 'DBLCLK' ; GOSUB HistoryDC CASE EntID = @WINDOW:'.LU_REACT_NO' AND Event = 'CLICK' ; GOSUB LUReactNo CASE EntID = @WINDOW:'.LU_RI_NO' AND Event = 'CLICK' ; GOSUB LUReactItem CASE EntID = @WINDOW:'.LU_ALL_RI_NO' AND Event = 'CLICK' ; GOSUB LUReactItem CASE EntID = @WINDOW:'.LU_RI_TYPE' AND Event = 'CLICK' ; GOSUB LURIType CASE EntID = @WINDOW:'.REACT_NO' AND Event = 'LOSTFOCUS' ; GOSUB Select CASE EntID = @WINDOW:'.RI_NO' AND Event = 'LOSTFOCUS' ; GOSUB Select CASE EntID = @WINDOW:'.RI_TYPE' AND Event = 'LOSTFOCUS' ; GOSUB Select CASE EntID = @WINDOW:'.CLEAR_BUTTON' AND Event = 'CLICK' ; GOSUB Clear CASE EntID = @WINDOW:'.CLOSE_OPEN' AND Event = 'CLICK' ; GOSUB CloseOpen CASE EntID = @WINDOW:'.PRINT_LABEL' AND Event = 'CLICK' ; GOSUB PrintLabel 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 * * * * * * * LUReactNo: * * * * * * * ReactorNo = Popup(@WINDOW,'','REACTORS') IF ReactorNo = '' THEN RETURN IF ReactorNo NE '' THEN obj_AppWindow('LUValReturn',ReactorNo:@RM:@WINDOW:'.REACT_NO') GOSUB Refresh END RETURN * * * * * * * LURIType: * * * * * * * RetVal = Popup(@WINDOW,'','REACT_ITEM_TYPE') IF RetVal NE '' THEN oaParms = RetVal:@RM:@WINDOW:'.RI_TYPE' obj_Appwindow('LUValReturn',oaParms) GOSUB Refresh END RETURN * * * * * * * LUReactItem: * * * * * * * TypeOver = '' TypeOver = 1 IF EntID = @WINDOW:'.LU_RI_NO' THEN TypeOver = 'WITH RETIRE_DT = "" BY RI_TYPE BY RI_NO' ;* Active Records only END ELSE TypeOver = 'BY RI_TYPE BY RI_NO' ;* All Records END RetVal = Popup(@WINDOW,TypeOver,'REACT_ITEM') IF RetVal NE '' THEN obj_AppWindow('LUValReturn',RetVal:@RM:@WINDOW:'.RI_NO') GOSUB Refresh END RETURN * * * * * * * Refresh: * * * * * * * Ctrls = @WINDOW:'.REACT_NO':@RM ; Props = 'TEXT':@RM Ctrls := @WINDOW:'.RI_NO':@RM ; Props := 'TEXT':@RM Ctrls := @WINDOW:'.RI_TYPE' ; Props := 'TEXT' Vals = Get_Property(Ctrls,Props) ReactNo = Vals[1,@RM] RINo = Vals[COL2()+1,@RM] RIType = Vals[COL2()+1,@RM] IF ReactNo = '' THEN ToolDesc = '' END ELSE ToolDesc = XLATE('TOOL','R':ReactNo,1,'X'):' ':XLATE('TOOL','R':ReactNo,'TOOL_LOC_DESC','X') END Set_Property(@WINDOW:'.REACT_DESC','TEXT',ToolDesc) IF RINo = '' THEN RIDesc = '' END ELSE RIDesc = XLATE('REACT_ITEM',RINo,'DESC_CALC','X') END Set_Property(@WINDOW:'.RI_DESC','TEXT',RIDesc) IF RIType = '' THEN ItemTypDesc = '' END ELSE ItemTypeDesc = obj_Popup('CodeDesc','REACT_ITEM_TYPE':@RM:RIType) END Set_Property(@WINDOW:'.RI_TYPE_DESC','TEXT',ItemTypeDesc) IF MemberOf(@USER4, 'OI_SUPERUSER') THEN IF ( ReactNo NE '' AND RIType NE '' AND RINo = '' ) THEN Set_Property(@WINDOW:'.CLOSE_OPEN','VISIBLE',1) END ELSE Set_Property(@WINDOW:'.CLOSE_OPEN','VISIBLE',0) END END ETCtrl = @WINDOW:'.HISTORY' ETList = Get_Property(ETCtrl,'LIST') ListCnt = COUNT(ETList,@FM) + (ETList NE '') FOR Line = 1 TO ListCnt IF MOD(Line,2) THEN stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$REACT_NO,Line,SPECIAL_BLUE$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$RI_NO,Line,SPECIAL_BLUE$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$RI_TYPE,Line,SPECIAL_BLUE$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$SVC_HRS,Line,VL_YELLOW$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$SVC_WFRS,Line,VL_YELLOW$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$INST_DTM,Line,SPECIAL_BLUE$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$INST_REACT_HRS,Line,SPECIAL_BLUE$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$INST_REACT_WFRS,Line,SPECIAL_BLUE$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$INST_RL_ID,Line,SPECIAL_BLUE$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$REM_DTM,Line,RCV_BLUE$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$REM_REACT_HRS,Line,RCV_BLUE$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$REM_REACT_WFRS,Line,RCV_BLUE$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$REM_RL_ID,Line,RCV_BLUE$) stat = Send_Message(ETCtrl,'COLOR_BY_POS',COL$REM_REASON,Line,RCV_BLUE$) END ELSE FOR N = 1 TO 11 stat = Send_Message(ETCtrl,'COLOR_BY_POS',N,Line,WHITE$) NEXT N END NEXT Line RETURN * * * * * * * Select: * * * * * * * Ctrls = @WINDOW:'.REACT_NO':@RM ; Props = 'TEXT':@RM Ctrls := @WINDOW:'.RI_NO':@RM ; Props := 'TEXT':@RM Ctrls := @WINDOW:'.RI_TYPE' ; Props := 'TEXT' Vals = Get_Property(Ctrls,Props) ReactNo = Vals[1,@RM] RINo = Vals[COL2()+1,@RM] RIType = Vals[COL2()+1,@RM] HistoryStyles = Send_Message(@WINDOW:'.HISTORY','COLSTYLE',0,'') /* IF ReactNo '' THEN HistoryStyles = BitAnd(HistoryStyles,BitNot(HIDDEN$)) END ELSE HistoryStyles = BitOr(HistoryStyles,HIDDEN$) END IF RINo = '' THEN HistoryStyles = BitAnd(HistoryStyles,BitNot(HIDDEN$)) END ELSE HistoryStyles = BitOr(HistoryStyles,HIDDEN$) END IF RIType = '' THEN HistoryStyles = BitAnd(HistoryStyles,BitNot(HIDDEN$)) END ELSE HistoryStyles = BitOr(HistoryStyles,HIDDEN$) END Send_Message(@WINDOW:'.HISTORY','COLSTYLE',0,HistoryStyles) */ HistoryKeys = obj_React_Item_Hist('GetHistory',Vals) HistoryList = '' hlCnt = COUNT(HistoryKeys,@VM) + (HistoryKeys NE '') FOR I = 1 TO hlCnt HistoryKey = HistoryKeys<1,I> HistoryRec = XLATE('REACT_ITEM_HIST',HistoryKey,'','X') ReactNo = HistoryKey[1,'*'] RINo = HistoryKey[COL2()+1,'*'] InstDTM = HistoryKey[COL2()+1,'*'] RIType = XLATE('REACT_ITEM',RINo,REACT_ITEM_RI_TYPE$,'X') HistoryList = ReactNo HistoryList = RINo HistoryList = OCONV(InstDTM,'DT4/^S') HistoryList = obj_Popup('CodeDesc','REACT_ITEM_TYPE':@RM:RIType) HistoryList = '' HistoryList = '' HistoryList = HistoryRec HistoryList = HistoryRec HistoryList = HistoryRec HistoryList = OCONV(HistoryRec,'DT4/^S') HistoryList = HistoryRec HistoryList = HistoryRec HistoryList = HistoryRec HistoryList = HistoryRec NEXT I Set_Property(@WINDOW:'.HISTORY','LIST',HistoryList) GOSUB Refresh RETURN * * * * * * * Clear: * * * * * * * Ctrls = @WINDOW:'.REACT_NO':@RM ; Props = 'TEXT':@RM Ctrls := @WINDOW:'.RI_NO':@RM ; Props := 'TEXT':@RM Ctrls := @WINDOW:'.RI_TYPE' ; Props := 'TEXT' Vals = '':@RM:'':@RM:'' Set_Property(Ctrls,Props,Vals) Vals = STR(@FM,36) Set_Property(@WINDOW:'.HISTORY','LIST',Vals) GOSUB Refresh RETURN * * * * * * * CloseOpen: * * * * * * * ReactNo = Get_Property(@WINDOW:'.REACT_NO','DEFPROP') RIType = Get_Property(@WINDOW:'.RI_TYPE','DEFPROP') HistKeys = obj_React_Item_Hist('GetHistory',ReactNo:@RM:@RM:RIType) HistCnt = COUNT(HistKeys,@VM) + (HistKeys NE '') IF HistCnt > 1 THEN OPEN 'REACT_ITEM_HIST' TO ReactItemHistTable ELSE ErrorMsg = 'Unable to OPEN "REACT_ITEM_HIST" for updates.' RETURN END FOR N = 2 TO HistCnt HistKey = HistKeys<1,N> PrevHistKey = HistKeys<1,N-1> READ HistRec FROM ReactItemHistTable,HistKey THEN READ PrevHistRec FROM ReactItemHistTable,PrevHistKey THEN *IF HistRec = '' THEN HistRec = FIELD(PrevHistKey,'*',3) HistRec = PrevHistRec HistRec = PrevHistRec HistRec = PrevHistRec HistRec = '' WRITE HistRec ON ReactItemHistTable,HistKey THEN NULL *Send_Dyn('Closed: ':HistKey:' ':HistRec) END *END END ;* End of Closing History Record END ;* End of History Record Read NEXT N ;* End of loop through History keys END ;* End of check for HistCnt > 1 GOSUB Select RETURN * * * * * * * HistoryDC: * * * * * * * CurrPos = Get_Property(EntID,'SELPOS') CurrCol = CurrPos<1> CurrRow = CurrPos<2> CurrList = Get_Property(EntID,'LIST') BEGIN CASE CASE CurrCol = COL$RI_NO RINo = CurrList IF RINo NE '' THEN obj_AppWindow('ViewRelated','REACT_ITEM':@RM:RINo) END CASE CurrCol = COL$INST_RL_ID RLId = CurrList IF RLId NE '' THEN Dummy = Start_Window( 'REACTOR_LOG', @WINDOW, RLId:'*CENTER', '', '' ) END CASE CurrCol = COL$REM_RL_ID RLId = CurrList IF RLId NE '' THEN Dummy = Start_Window( 'REACTOR_LOG', @WINDOW, RLId:'*CENTER', '', '' ) END CASE 1 ReactNo = CurrList RINo = CurrList InstDTM = ICONV(CurrList,'DT') IF ReactNo NE '' THEN RIHistKey = ReactNo:'*':RINo:'*':InstDTM obj_AppWindow('ViewRelated','REACT_ITEM_HIST':@RM:RIHistKey) END END CASE RETURN * * * * * * * PrintLabel: * * * * * * * RETURN