COMPILE FUNCTION Comm_Dialog_Passdown_Rpt(Method, Parm1, Parm2) #pragma precomp SRP_PreCompiler /* Commuter module for Dialog_Passdown_Rpt window. 09/24/2013 - John C. Henry, J.C. Henry & Co., Inc. */ DECLARE SUBROUTINE Set_Property, End_Dialog, Send_Event, Set_Status, ErrMsg, RList, Reduce DECLARE SUBROUTINE obj_Appwindow, Start_Window, Btree.Extract, Msg, Send_Info, FSMsg, PlaceDialog DECLARE FUNCTION Get_Property, Get_Status, Dialog_Box, Utility, Send_Message, Popup, Collect.IXVals, Msg, SRP_Array $INSERT MSG_EQUATES $INSERT RLIST_EQUATES $INSERT POPUP_EQUATES $INSERT LOGICAL EQU CRLF$ TO \0D0A\ Equ NEW_EXIST$ To 0 ; * Reduce Mode 0 Equ NEXT_CUR$ To 1 Equ ADD_EXIST$ to 2 ErrTitle = 'Error in Comm_Dialog_Passdown_Rpt' ErrorMsg = '' Result = '' BEGIN CASE CASE Method = 'Create' ; GOSUB Create CASE Method = 'LUReactor' ; GOSUB LUReactor CASE Method = 'LUDate' ; GOSUB LUDate CASE Method = 'Cancel' ; GOSUB Cancel CASE Method = 'Refresh' ; GOSUB Refresh CASE Method = 'PerformQuery' ; GOSUB PerformQuery CASE 1 ErrMsg(ErrTitle:@SVM:'Unknown method ':QUOTE(Method):' passed to routine.') END CASE RETURN Result * * * * * * * Create: * * * * * * * // -2 Centers the dialog in the screen and makes it visible. PlaceDialog(-2, -2) RETURN * * * * * * * Refresh: * * * * * * * * Turn edit table symbolic column backgrounds to green *stat = Send_Message(@WINDOW:'.CUST_INFO','COLOR_BY_POS',COL$CUST_NAME,0,GREEN$) ;* Turn names column all rows green RETURN * * * * * * * LUReactor: * * * * * * * CtrlEntID = @WINDOW:'.REACT_NO' CurrReactNos = Get_Property(CtrlEntID,'ARRAY')<1> ;* Existing React_Nos CurrReactNosTrimmed = '' FOR I = 1 TO COUNT(CurrReactNos,@VM) + (CurrReactNos NE '') IF CurrReactNos<1,I> NE '' THEN CurrReactNosTrimmed<1,I> = CurrReactNos<1,I> END NEXT I CurrReactNos = CurrReactNosTrimmed TypeOver = '' TypeOver = 2 ;* Multiple Selections NewReactNos = Popup(@WINDOW,TypeOver,'REACTORS') IF NewReactNos = '' OR NewReactNos = CHAR(27) THEN RETURN FOR I = 1 TO COUNT(NewReactNos,@VM) + (NewReactNos NE '') NewReactNo = NewReactNos<1,I> LOCATE NewReactNo IN CurrReactNos BY 'AL' USING @VM SETTING POS ELSE CurrReactNos = INSERT(CurrReactNos,1,POS,0,NewReactNo) END NEXT I Set_Property(CtrlEntID,'DEFPROP',CurrReactNos) *Send_Event(CtrlEntID,'CALCULATE',2) GOSUB Refresh RETURN * * * * * * * LUDate: * * * * * * * ReturnCtrl = Parm1[1,@RM] IF ReturnCtrl = '' THEN ReturnCtrl = Get_Property(@WINDOW,'FOCUS') DateSelected = Dialog_Box('POPUP_YEAR',@WINDOW) RetVal = OCONV(DateSelected, 'D4/') IF RetVal NE '' THEN obj_Appwindow('LUValReturn',RetVal:@RM:ReturnCtrl) END RETURN * * * * * * * Cancel: * * * * * * * End_Dialog(@WINDOW,'CANCEL') RETURN * * * * * * * PerformQuery: * * * * * * * SearchString = '' * ReactorNo * ReactNos = Get_Property(@WINDOW:'.REACT_NO','DEFPROP') LOOP TestChar = ReactNos[-1,1] UNTIL TestChar NE @VM OR ReactNos = '' ReactNos[-1,1] = '' REPEAT * Start and End Dates StartDt = OCONV(ICONV(Get_Property(@WINDOW:'.START_DT','TEXT'),'D'),'D4/') EndDt = OCONV(ICONV(Get_Property(@WINDOW:'.END_DT','TEXT'),'D'),'D4/') RetReactNos = ReactNos ;* Save ReactNos for use in the report heading Flag = "" Done = False$ CursorVar = "" * Clears all cursors For counter = 0 To 8 ClearSelect counter Next counter ReduceStartDt = OCONV(ICONV(Get_Property(@WINDOW:'.START_DT','TEXT'),'D') - 1,'D4/') ReduceEndDt = OCONV(ICONV(Get_Property(@WINDOW:'.END_DT','TEXT'),'D') + 1,'D4/') SortList = '' Mode = NEXT_CUR$ BEGIN CASE CASE StartDt NE '' AND EndDt = '' ReduceScript = 'WITH {EVENT_DT} GT ':QUOTE(ReduceStartDt):' AND WITH {EVENT_TYPE} EQ "PD"' CASE StartDt = '' AND EndDt NE '' ReduceScript = 'WITH {EVENT_DT} LT ':QUOTE(ReduceEndDt):' AND WITH {EVENT_TYPE} EQ "PD"' CASE StartDt NE '' AND EndDt NE '' ReduceScript = 'WITH {EVENT_DT} BETWEEN ':QUOTE(ReduceStartDt):' AND ':QUOTE(ReduceEndDt):' AND WITH {EVENT_TYPE} EQ "PD"' CASE 1 ReduceScript = 'WITH {EVENT_TYPE} EQ "PD"' END CASE Def = "" Def = "Selecting Reactor Events..." Def = "U" MsgUp = Msg(@window, Def) EventKeys = '' TableName = "REACT_EVENT" ErrorMsg = '' Reduce(ReduceScript, SortList, Mode, TableName, Cursorvar, Flag) If Flag then Select TableName By SortList Using Cursorvar then Open TableName To FileVar then Loop ReadNext Key Using Cursorvar By AT Else Done = True$ Until Done EventKeys<0, -1> = Key Repeat IF ReactNos NE '' THEN Open 'DICT.':TableName to DictVar then Flag = '' Option = '' RxEvents = '' SearchString = 'REACT_NO' For each ReactNo in ReactNos using @VM setting vPos SearchString := @VM : ReactNo Next ReactNo SearchString := @FM Btree.Extract(SearchString, TableName, DictVar, RxEvents, '', Flag) If Flag NE 0 then ErrorMsg = 'Process Error':@FM:'Error calling Btree.Extract. Please contact FI for assistance.' end EventKeys = SRP_Array('Join', EventKeys, RxEvents, 'AND', @VM) END end End Else ErrorMsg = 'Process Error':@FM:'Error opening REACT_EVENT table. Please contact FI for assistance.' End End Else ErrorMsg = 'Process Error':@FM:'Error selecting REACT_EVENT table. Please contact FI for assistance.' end End Else ErrorMsg = 'Process Error':@FM:'Error calling Reduce subroutine. Please contact FI for assistance.' End Msg(@window, MsgUp) If ErrorMsg NE '' then ErrMsg(ErrorMsg) EventKeys = SRP_Array('SortRows', EventKeys, 'AR1':@FM:'DN2', 'LIST', @VM, '*') End_Dialog(@WINDOW,EventKeys:@FM:RetReactNos:@FM:StartDt:@FM:EndDt) RETURN