Compile function PRINT_REACT_MODE_LOG_Services(@Service, @Params) #pragma precomp SRP_PreCompiler DECLARE FUNCTION Set_Printer,Get_Printer,Msg, Get_Status, Dialog_Box, obj_Install, Print_React_Mode_Log_Services, SRP_SORT_ARRAY DECLARE FUNCTION FieldCount,Get_Status,Set_Status,Set_FSError,Printer_Select, SRP_Array, Excel_Services, Error_Services, Environment_Services,Datetime DECLARE SUBROUTINE Reduce,MSG,Utility,ErrMsg, Set_Status, Btree.Extract, RList, Make.List, Print_REACT_MODE_LOG_SERVICES Declare subroutine Excel_Services, SRP_Run_Command // 01/11/23 - djs - This service module appears to be deprecated in favor of the REACTOR_MODE_HISTORY form. $INSERT OIPRINT_EQUATES $INSERT REACT_MODE_EQU $INSERT APPCOLORS $INSERT MSG_EQUATES $insert LOGICAL $INSERT REACTOR_LOG_EQUATES $Insert REACT_MODE_EQUATES colHeader = 'Start DTM' ; colFmt = '<1080' colHeader<1,2> = 'Elap Hrs' ; colFmt<1,2> = '>720' colHeader<1,3> = 'Mode' ; colFmt<1,3> = '<1440' colHeader<1,4> = 'Notes' ; colFmt<1,4> = '<2160' colHeader<1,5> = 'Category Description' ; colFmt<1,5> = '<2100' colHeader<1,6> = 'Start User' ; colFmt<1,6> = '<1260' colHeader<1,7> = 'RL ID' ; colFmt<1,7> = '^720' colHeader<1,8> = 'Service Description' ; colFmt<1,8> = '<2500' colHeader<1,9> = 'Service Notes' ; colFmt<1,9> = '<2500' font = 'Arial' font<2> = '10' font<4> = 1 ;* Bold GoToService Return Response or "" //----------------------------------------------------------------------------- // SERVICES //----------------------------------------------------------------------------- Service Run(ReactNo) TypeOver = '' TypeOver = 'Reactor Mode Log Report' DaysToReport = Msg(@WINDOW,TypeOver,'REPORT_DAYS') IF DaysToReport = '' OR DaysToReport = CHAR(27) THEN RETURN Def = "" Def = "Building report..." Def = "U" MsgUp = Msg(@window, Def) ;* display the processing message StartDt = Date() - DaysToReport IntStartDt = StartDt StartDt = OCONV(StartDt,'D4/') Set_Status(0) EQU TARGET_ACTIVELIST$ TO 5 EQU TARGET_SAVELIST$ TO 4 errCode = '' ModeList = '' ClearSelect TARGET_ACTIVELIST$ //Select from old generation react_mode SelectSent = 'SELECT REACT_MODE WITH REACT_NO = ':ReactNo:' AND WITH START_DT > ':QUOTE(IntStartDt):' BY-DSND START_DTM ' Set_Status(0) RList(SelectSent, TARGET_ACTIVELIST$, "", "", "") IF Get_Status(errCode) THEN ErrMsg(errCode) RETURN END test = @RecCount IF @RecCount then EoF = 0 NumKeys = @RecCount Cnt = 0 Loop ReadNext Mode Else EoF = 1 until EoF ModeList<-1> = Mode : @VM: 'REACT_MODE' Repeat end GoSub ClearCursors //Select from New Generation react_mode ClearSelect TARGET_ACTIVELIST$ SelectSent = 'SELECT REACT_MODE_NG WITH REACT_NO = ':ReactNo:' AND WITH START_DT > ':QUOTE(IntStartDt):' BY-DSND START_DTM ' //SelectSent = 'SELECT REACT_MODE_NG WITH REACT_NO = ':ReactNo:' AND WITH START_DT > ':StartDt:' BY-DSND START_DTM ' Set_Status(0) //RList(SelectSent, TARGET_SAVELIST$, "REACT_MODE_LIST_NG", "", "") RList(SelectSent, TARGET_ACTIVELIST$, "", "", "") IF Get_Status(errCode) THEN ErrMsg(errCode) RETURN END IF @RecCount then EoF = 0 NumKeys = @RecCount Cnt = 0 Loop ReadNext Mode Else EoF = 1 until EoF ModeList<-1> = Mode : @VM: 'REACT_MODE_NG' Repeat end ModeList = SRP_Array('SortRows',ModeList, 'DL1', 'LIST', @FM, @VM, 0) **START PRINTING PROCESS** FileName = 'Print Reactor Mode Log':@VM:'6' Title = 'Printing Reactor Mode Log':@VM:'Report' TopMargin = 0.5 BottomMargin = 0.5 LeftMargin = 0.25 RightMargin = 0.25 Margins = LeftMargin:@FM:TopMargin:@FM:RightMargin:@FM:BottomMargin PageSetup = '1' ;* LandScape PrintSetup = '2' ;* Preview Normal * PrintSetup<1,2> = '5' ;* Print & PDF buttons PrintSetup<1,2> = '0' ;* Show all buttons PrintSetup<1,5> = '1' ;* Page Range PrintSetup<1,6> = 7 ;* full mouse and keyboard support * PrintPath = Printer_Select('',1) ;* Get Default printer path PrintPath = '' PrintSetup<1, 4> = 2 ; // StartMode = hidden stat = Set_Printer("INIT",FileName,Title,Margins,PageSetup,PrintSetup,PrintPath) IF stat < 0 THEN GOTO OIPrint_Err Header = @VM:obj_Install('Get_Prop','CompTitle'):' Reactor Mode Log - Reactor ':ReactNo:' - Last ':DaysToReport:' days' Header<2> = @VM:'' font = 'Arial' font<2> = '10' font<4> = 1 ;* Bold stat = Set_Printer("FONTHEADFOOT", font) stat = Set_Printer("HEADER",Header) footer = " 'D' 'T'":@VM:@VM:" Page: 'P'" colfooter = " " stat = Set_Printer("FOOTER",footer,colfooter) @RECCOUNT = 0 FirstPass = 1 LastRecord = 0 ReadErr = 0 FirstLine = 1 * colHeader = 'Start DTM' ; colFmt = '<1080' * colHeader<1,2> = 'Elap Hrs' ; colFmt<1,2> = '>720' * colHeader<1,3> = 'Mode' ; colFmt<1,3> = '<1440' * colHeader<1,4> = 'Notes' ; colFmt<1,4> = '<2160' * colHeader<1,5> = 'RL ID' ; colFmt<1,5> = '^720' * colHeader<1,6> = 'Category Description' ; colFmt<1,6> = '<3240' * colHeader<1,7> = 'Service Description' ; colFmt<1,7> = '<4500' * colHeader<1,8> = 'Start User' ; colFmt<1,8> = '<1260' colHeader = 'Start DTM' ; colFmt = '<1080' colHeader<1,2> = 'Elap Hrs' ; colFmt<1,2> = '>720' colHeader<1,3> = 'Mode' ; colFmt<1,3> = '<1440' colHeader<1,4> = 'Notes' ; colFmt<1,4> = '<2160' colHeader<1,5> = 'Category Description' ; colFmt<1,5> = '<2100' colHeader<1,6> = 'Start User' ; colFmt<1,6> = '<1260' colHeader<1,7> = 'RL ID' ; colFmt<1,7> = '^720' colHeader<1,8> = 'Service Description' ; colFmt<1,8> = '<2500' colHeader<1,9> = 'Service Notes' ; colFmt<1,9> = '<2500' Print_React_Mode_Log_Services('PrintHeader', colHeader) Print_React_Mode_Log_Services('ReadRecords',ModeList) GoSub Bail End Service Service ReadRecords(ModeList) ReactModeKeyIndex = 1 For each ReactModeKey in ModeList using @FM //StartDTM = OCONV({START_DTM},'DT2/^HS') StartDTM = OCONV(XLATE(ModeList, ModeList, 'START_DTM', 'X'),'DT4/^S') //StopDTM = OCONV({STOP_DTM},'DT2/^HS') StopDTM = OCONV(XLATE(ModeList, ModeList,'STOP_DTM','X'),'DT4/^S') //ElapsedHrs = OCONV({ELAP_HRS},'MD2,') ElapsedHrs = OCONV(XLATE(ModeList, ModeList,'ELAP_HRS','X'),'MD2,') //Mode = OCONV({MODE},'[REACT_MODE_CONV]') if ReactModeKey<1,2> eq 'REACT_MODE' then Mode = OCONV(XLATE('REACT_MODE', ReactModeKey<1,1>, 'MODE', 'X' ),'[REACT_MODE_CONV]') end else Mode = XLATE('REACT_MODE_NG', ReactModeKey<1,1>, 'MODE', 'X' ) end //StartRLID = {START_RL_ID} StartRLID = XLATE(ModeList, ModeList, 'START_RL_ID', 'X') //ProbCatIDs = {PROB_CAT_ID} ProbCatIDs = XLATE(ModeList, ModeList, 'PROB_CAT_ID', 'X') //ProbCatDescs = {PROB_CAT_DESC} ProbCatDescs = XLATE(ModeList, ModeList, 'PROB_CAT_DESC', 'X') //ServIDs = {SERV_ID} ServIDs = XLATE(ModeList, ModeList, 'SERV_ID', 'X') //ServDescs = {SERV_DESC} ServDescs = XLATE(ModeList, ModeList, 'SERV_DESC', 'X') //StartUser = {START_USER} StartUser = XLATE(ModeList, ModeList, 'START_USER', 'X') //StopUser = {STOP_USER} StopUser = XLATE(ModeList, ModeList, 'STOP_USER', 'X') //Notes = {START_NOTES} Notes = XLATE(ModeList, ModeList, 'START_NOTES', 'X') RLNotes = XLATE('REACTOR_LOG',StartRLID, REACTOR_LOG_NOTES$, 'X') //SWAP ' ' WITH CRLF$ IN StartDTM //SWAP ' ' WITH CRLF$ IN StopDTM FOR I = 1 TO COUNT(ProbCatIDs,@VM) + (ProbCatIDs NE '') ProbCatDescs<1,I> = ProbCatIDs<1,I>:' - ':ProbCatDescs<1,I> NEXT I FOR I = 1 TO COUNT(ServIDs,@VM) + (ServIDs NE '') ServDescs<1,I> = ServIDs<1,I>:' - ':ServDescs<1,I> NEXT I SWAP @VM WITH CRLF$ IN ProbCatDescs SWAP @VM WITH CRLF$ IN ServDescs * colData = '' * colData = StartDTM * * colData<1,2> = ElapsedHrs * colData<1,3> = Mode * colData<1,4> = Notes * colData<1,5> = StartRLID * colData<1,6> = ProbCatDescs * colData<1,7> = ServDescs * colData<1,8> = StartUser colData = StartDTM colData<1,2> = ElapsedHrs colData<1,3> = Mode colData<1,4> = Notes colData<1,5> = ProbCatDescs colData<1,6> = StartUser colData<1,7> = StartRLID colData<1,8> = ServDescs colData<1,9> = RLNotes fontSpacing = 100 PRINT_REACT_MODE_LOG_SERVICES('PrintData',colData) ReactModeKeyIndex = ReactModeKeyIndex + 1 //GOSUB PrintTable Next ReactModeKey //gosub Bail end service Service PrintHeader() stat = Set_Printer('CALCTABLE',colHeader) TableSize = Get_Printer('CALCTABLE') TableHeight = TableSize<2> Test = Get_Printer('POS')<2> stat = Set_Printer('ADDTABLE',colFmt,'',colData,LTGREY$,'',1,TB_ALL) //stat = Set_Printer('PAGEBREAK') //FirstLine = 0 font<2> = 8 font<4> = 1 ;* Bold stat = Set_Printer('FONT',font,'100') stat = Set_Printer('ADDTABLE',colFmt,colHeader,'',LTGREY$,'',0,TB_ALL) font<4> = 0 stat = Set_Printer('FONT',font,fontSpacing) //stat = Set_Printer('ADDTABLE',colFmt,'',colData,LTGREY$,'',0,7) end service Service PrintData(colData) stat = Set_Printer('CALCTABLE',colFmt:@FM:colData) TableSize = Get_Printer('CALCTABLE') TableHeight = TableSize<2> Test = Get_Printer('POS')<2> stat = Set_Printer('ADDTABLE',colFmt,'',colData,LTGREY$,'',1,TB_ALL) font<2> = 8 font<4> = 0 stat = Set_Printer('FONT',font,fontSpacing) //stat = Set_Printer('ADDTABLE',colFmt,'',colData,LTGREY$,'',1,TB_ALL) end service Service RunAllReport() DialogResult = Dialog_Box('DIALOG_REACT_MODE_EXPORT',@WINDOW,'') //FromDate = ICONV(DialogResult<1>, "DT") //ToDate = ICONV(DialogResult<2>, "DT") FromDate = DialogResult<1> ToDate = DialogResult<2> FilePath = DialogResult<3> //Get All Modes AllModes = Print_React_Mode_Log_Services('GetAllModes',FromDate,ToDate) BottleChanges = Print_React_Mode_Log_Services('GetAllBottleChange', FromDate, ToDate) ASMModes = '' HTRModes = '' EPPModes = '' GaNModes = '' //Sort each according to ReactorType for each mode in AllModes using @FM if mode<1,2> EQ 'ASM' OR mode<1,2> EQ 'ASM+' then ASMModes := mode : @FM end if mode<1,2> EQ 'HTR' then HTRModes := mode : @FM end if mode<1,2> EQ 'EPP' then EPPModes := mode : @FM end if mode<1,2> EQ 'GAN' then GaNModes := mode : @FM end Next mode //Sort by Reactor for each list ASMModes = SRP_SORT_Array(ASMModes, "AL1":@FM:"AL3",1) HTRModes = SRP_SORT_Array(HTRModes, "AL1":@FM:"AL3",1) EPPModes = SRP_SORT_Array(EPPModes, "AL1":@FM:"AL3",1) GaNModes = SRP_SORT_Array(GaNModes, "AL1":@FM:"AL3",1) BottleChanges = SRP_SORT_ARRAY(BottleChanges, "AL2", 1) //dataarray = SRP_SORT_Array(dataarray, "DR3", 1) TemplatePath = Environment_Services('GetApplicationRootPath') : '\Reports\ReactMode\All_Reactor_Modes.xlsx' objDocument = Excel_Services('OpenDocument',TemplatePath) If Error_Services('HasError') then test = Error_Services('GetCode') end //Create ASM,ASM+ rows CellRow = 1 LastReactorNo = '' For Each ReportRow in ASMModes using @FM ReactorNo = ReportRow<1,1> IF LastReactorNo NE ReactorNo AND ReactorNo NE '' AND LastReactorNo NE '' then CellRow += 2 end else CellRow += 1 end Excel_Services('SetCellValue', objDocument, 'ASM-ASM+', 'A', CellRow, ReportRow<1,1>) Excel_Services('SetCellValue', objDocument, 'ASM-ASM+', 'B', CellRow, ReportRow<1,2>) Excel_Services('SetCellValue', objDocument, 'ASM-ASM+', 'C', CellRow, OCONV(ReportRow<1,3>,'DT2/^HS')) Excel_Services('SetCellValue', objDocument, 'ASM-ASM+', 'D', CellRow, ReportRow<1,4>) Excel_Services('SetCellValue', objDocument, 'ASM-ASM+', 'E', CellRow, ReportRow<1,5>) Excel_Services('SetCellValue', objDocument, 'ASM-ASM+', 'F', CellRow, ReportRow<1,6>) //Services Required ServiceCats = ReportRow<1,7> for ServiceCat = 1 to DCount(ServiceCats, @SVM) ServiceCats<1,1,ServiceCat> = ' - ' : ServiceCats<1,1,ServiceCat> Next ServiceCat swap @svm with CRLF$ in ServiceCats Excel_Services('SetCellValue', objDocument, 'ASM-ASM+', 'G', CellRow, ServiceCats) Excel_Services('SetCellValue', objDocument, 'ASM-ASM+', 'H', CellRow, ReportRow<1,8>) Excel_Services('SetCellValue', objDocument, 'ASM-ASM+', 'I', CellRow, ReportRow<1,9>) //Services Performed ServiceDescs = ReportRow<1,10> for ServiceDesc = 1 to DCount(ServiceDescs, @SVM) ServiceDescs<1,1,ServiceDesc> = ' - ' : ServiceDescs<1,1,ServiceDesc> Next ServiceDesc swap @svm with CRLF$ in ServiceDescs Excel_Services('SetCellValue', objDocument, 'ASM-ASM+', 'J', CellRow, ServiceDescs) Excel_Services('SetCellValue', objDocument, 'ASM-ASM+', 'K', CellRow, ReportRow<1,11>) LastReactorNo = ReactorNo Next ReportRow //Create HTR rows CellRow = 1 LastReactorNo = '' For Each ReportRow in HTRModes using @FM ReactorNo = ReportRow<1,1> IF LastReactorNo NE ReactorNo AND ReactorNo NE '' AND LastReactorNo NE '' then CellRow += 2 end else CellRow += 1 end Excel_Services('SetCellValue', objDocument, 'HTR', 'A', CellRow, ReportRow<1,1>) Excel_Services('SetCellValue', objDocument, 'HTR', 'B', CellRow, ReportRow<1,2>) Excel_Services('SetCellValue', objDocument, 'HTR', 'C', CellRow, OCONV(ReportRow<1,3>,'DT2/^HS')) Excel_Services('SetCellValue', objDocument, 'HTR', 'D', CellRow, ReportRow<1,4>) Excel_Services('SetCellValue', objDocument, 'HTR', 'E', CellRow, ReportRow<1,5>) Excel_Services('SetCellValue', objDocument, 'HTR', 'F', CellRow, ReportRow<1,6>) //Services Required ServiceCats = ReportRow<1,7> for ServiceCat = 1 to DCount(ServiceCats, @SVM) ServiceCats<1,1,ServiceCat> = ' - ' : ServiceCats<1,1,ServiceCat> Next ServiceCat swap @svm with CRLF$ in ServiceCats Excel_Services('SetCellValue', objDocument, 'HTR', 'G', CellRow, ServiceCats) Excel_Services('SetCellValue', objDocument, 'HTR', 'H', CellRow, ReportRow<1,8>) Excel_Services('SetCellValue', objDocument, 'HTR', 'I', CellRow, ReportRow<1,9>) //Services Performed ServiceDescs = ReportRow<1,10> for ServiceDesc = 1 to DCount(ServiceDescs, @SVM) ServiceDescs<1,1,ServiceDesc> = ' - ' : ServiceDescs<1,1,ServiceDesc> Next ServiceDesc swap @svm with CRLF$ in ServiceDescs Excel_Services('SetCellValue', objDocument, 'HTR', 'J', CellRow, ServiceDescs) Excel_Services('SetCellValue', objDocument, 'HTR', 'K', CellRow, ReportRow<1,11>) LastReactorNo = ReactorNo Next ReportRow //Create EPP rows CellRow = 1 LastReactorNo = '' For Each ReportRow in EPPModes using @FM ReactorNo = ReportRow<1,1> IF LastReactorNo NE ReactorNo AND ReactorNo NE '' AND LastReactorNo NE '' then CellRow += 2 end else CellRow += 1 end Excel_Services('SetCellValue', objDocument, 'EPP', 'A', CellRow, ReportRow<1,1>) Excel_Services('SetCellValue', objDocument, 'EPP', 'B', CellRow, ReportRow<1,2>) Excel_Services('SetCellValue', objDocument, 'EPP', 'C', CellRow, OCONV(ReportRow<1,3>,'DT2/^HS')) Excel_Services('SetCellValue', objDocument, 'EPP', 'D', CellRow, ReportRow<1,4>) Excel_Services('SetCellValue', objDocument, 'EPP', 'E', CellRow, ReportRow<1,5>) Excel_Services('SetCellValue', objDocument, 'EPP', 'F', CellRow, ReportRow<1,6>) //Services Required ServiceCats = ReportRow<1,7> for ServiceCat = 1 to DCount(ServiceCats, @SVM) ServiceCats<1,1,ServiceCat> = ' - ' : ServiceCats<1,1,ServiceCat> Next ServiceCat swap @svm with CRLF$ in ServiceCats Excel_Services('SetCellValue', objDocument, 'EPP', 'G', CellRow, ServiceCats) Excel_Services('SetCellValue', objDocument, 'EPP', 'H', CellRow, ReportRow<1,8>) Excel_Services('SetCellValue', objDocument, 'EPP', 'I', CellRow, ReportRow<1,9>) //Services Performed ServiceDescs = ReportRow<1,10> for ServiceDesc = 1 to DCount(ServiceDescs, @SVM) ServiceDescs<1,1,ServiceDesc> = ' - ' : ServiceDescs<1,1,ServiceDesc> Next ServiceDesc swap @svm with CRLF$ in ServiceDescs Excel_Services('SetCellValue', objDocument, 'EPP', 'J', CellRow, ServiceDescs) Excel_Services('SetCellValue', objDocument, 'EPP', 'K', CellRow, ReportRow<1,11>) LastReactorNo = ReactorNo Next ReportRow //Create GaN rows CellRow = 1 LastReactorNo = '' For Each ReportRow in GaNModes using @FM ReactorNo = ReportRow<1,1> IF LastReactorNo NE ReactorNo AND ReactorNo NE '' AND LastReactorNo NE '' then CellRow += 2 end else CellRow += 1 end Excel_Services('SetCellValue', objDocument, 'GaN', 'A', CellRow, ReportRow<1,1>) Excel_Services('SetCellValue', objDocument, 'GaN', 'B', CellRow, ReportRow<1,2>) Excel_Services('SetCellValue', objDocument, 'GaN', 'C', CellRow, OCONV(ReportRow<1,3>,'DT2/^HS')) Excel_Services('SetCellValue', objDocument, 'GaN', 'D', CellRow, ReportRow<1,4>) Excel_Services('SetCellValue', objDocument, 'GaN', 'E', CellRow, ReportRow<1,5>) Excel_Services('SetCellValue', objDocument, 'GaN', 'F', CellRow, ReportRow<1,6>) //Services Required ServiceCats = ReportRow<1,7> for ServiceCat = 1 to DCount(ServiceCats, @SVM) ServiceCats<1,1,ServiceCat> = ' - ' : ServiceCats<1,1,ServiceCat> Next ServiceCat swap @svm with CRLF$ in ServiceCats Excel_Services('SetCellValue', objDocument, 'GaN', 'G', CellRow, ServiceCats) Excel_Services('SetCellValue', objDocument, 'GaN', 'H', CellRow, ReportRow<1,8>) Excel_Services('SetCellValue', objDocument, 'GaN', 'I', CellRow, ReportRow<1,9>) //Services Performed ServiceDescs = ReportRow<1,10> for ServiceDesc = 1 to DCount(ServiceDescs, @SVM) ServiceDescs<1,1,ServiceDesc> = ' - ' : ServiceDescs<1,1,ServiceDesc> Next ServiceDesc swap @svm with CRLF$ in ServiceDescs Excel_Services('SetCellValue', objDocument, 'GaN', 'J', CellRow, ServiceDescs) Excel_Services('SetCellValue', objDocument, 'GaN', 'K', CellRow, ReportRow<1,11>) LastReactorNo = ReactorNo Next ReportRow //Create Bottle Changes CellRow = 1 LastReactorNo = '' For Each ReportRow in BottleChanges using @FM CellRow += 1 Excel_Services('SetCellValue', objDocument, 'Bottle Changes', 'A', CellRow, ReportRow<1,1>) Excel_Services('SetCellValue', objDocument, 'Bottle Changes', 'B', CellRow, OCONV(ReportRow<1,2>,'DT2/^HS')) Excel_Services('SetCellValue', objDocument, 'Bottle Changes', 'C', CellRow, OCONV(ReportRow<1,3>,'DT2/^HS')) Excel_Services('SetCellValue', objDocument, 'Bottle Changes', 'D', CellRow, ReportRow<1,6>) Excel_Services('SetCellValue', objDocument, 'Bottle Changes', 'E', CellRow, ReportRow<1,4>) Excel_Services('SetCellValue', objDocument, 'Bottle Changes', 'F', CellRow, ReportRow<1,5>) Next ReportRow FileSaveName = 'REACT_MODE_LOG_': OConv(DateTime(), 'DT2^HS ') : '.xlsx' //Excel_Services('SaveDocument',objDocument,FilePath : 'REACT_MODE_LOG.xlsx') Excel_Services('SaveDocument',objDocument,FilePath : FileSaveName) If Error_Services('HasError') then test = Error_Services('GetMessage') end Excel_Services('CloseDocument', objDocument) IF FilePath NE '' then SRP_Run_Command('start excel "':FilePath : FileSaveName:'"', 'VAR') end end service Service GetAllModes(FromTime, ToTime) //if @USER4 EQ 'JONATHAN_O' THEN DEBUG Response = '' //if @user4 eq 'JONATHAN_O' then debug EQU REACTOR_NO$ TO 1 EQU REACTOR_TYPE$ To 2 EQU START_DTM$ TO 3 Equ ELAPSED_HOURS$ TO 4 EQU REACTOR_MODE$ TO 5 EQU Notes$ TO 6 EQU CATEGORY_DESCRIPTION$ TO 7 EQU START_USER$ TO 8 EQU REACTOR_LOG_ID$ TO 9 EQU SERVICE_DESCRIPTION$ TO 10 EQU SERVICE_NOTES$ TO 11 DayBegin = Field(FromTime, ' ', 1) FromTime = ICONV(FromTime, "DT") ToTime = ICONV(ToTime, "DT") IF FromTime NE '' AND ToTime NE '' then //Old Modes SelectSent = 'SELECT REACT_MODE WITH START_DT >= ':QUOTE(DayBegin):' AND WITH START_DTM >= ':QUOTE(FromTime):'AND WITH START_DTM <= ':QUOTE(ToTime):' BY-DSND START_DTM ' Set_Status(0) RList(SelectSent, TARGET_ACTIVELIST$, "", "", "") IF Get_Status(errCode) THEN ErrMsg(errCode) RETURN END modeArray = '' IF @RecCount then EoF = 0 NumKeys = @RecCount Cnt = 0 Loop ReadNext Mode Else EoF = 1 until EoF ServiceCategories = XLATE('REACT_MODE', Mode, 'PROB_CAT_DESC', 'X') swap @VM with @svm in ServiceCategories ServiceDescs = XLATE('REACT_MODE', Mode, 'SERV_DESC', 'X') swap @VM with @svm in ServiceDescs ReactorLogId = XLATE('REACT_MODE', Mode, 'START_RL_ID', 'X') ReactorNo = Field(Mode,'*',1) ReactorType = XLATE('REACTOR', ReactorNo, 1, 'X') RowToAdd = '' RowToAdd <1,REACTOR_NO$> = ReactorNo RowToAdd <1,REACTOR_TYPE$> = ReactorType RowToAdd <1,START_DTM$> = XLATE('REACT_MODE', Mode, 'START_DTM', 'X') RowToAdd <1,ELAPSED_HOURS$> = OCONV(XLATE('REACT_MODE', Mode,'ELAP_HRS','X'),'MD2,') RowToAdd <1,REACTOR_MODE$> = OCONV(XLATE('REACT_MODE', Mode, 'MODE', 'X' ),'[REACT_MODE_CONV]') RowToAdd <1,Notes$> = XLATE('REACT_MODE', Mode, 'START_NOTES', 'X') RowToAdd <1,CATEGORY_DESCRIPTION$> = ServiceCategories RowToAdd <1,START_USER$> = XLATE('REACT_MODE', Mode, 'START_USER', 'X') RowToAdd <1,REACTOR_LOG_ID$> = ReactorLogId RowToAdd <1,SERVICE_DESCRIPTION$> = ServiceDescs ServiceNotes = XLATE('REACTOR_LOG',ReactorLogId, REACTOR_LOG_NOTES$, 'X') NotesDTMs = Xlate('REACTOR_LOG',ReactorLogId, REACTOR_LOG_NOTES_DTMS$, 'X') NotesUsers = Xlate('REACTOR_LOG',ReactorLogId, REACTOR_LOG_NOTES_USERS$, 'X') FormattedServiceNotes = '' For each ServiceNote in ServiceNotes using @VM setting vPos FormattedServiceNotes<0, vPos> = OConv(NotesDTMs<0, vPos>, 'DT2/^H'):' - ':OConv(NotesUsers<0, vPos>, '[CONV_XLATE,LSL_USERS*FIRST_LAST]'):' - ':ServiceNote Next ServiceNote Swap @VM with CRLF$ in FormattedServiceNotes RowToAdd <1,SERVICE_NOTES$> = FormattedServiceNotes modeArray := RowToAdd : @FM Repeat end GoSub ClearCursors ClearSelect TARGET_ACTIVELIST$ //New Modes SelectSent = 'SELECT REACT_MODE_NG WITH START_DT >= ':QUOTE(DayBegin):' AND WITH START_DTM >= ':QUOTE(FromTime):'AND WITH START_DTM <= ':QUOTE(ToTime):' BY-DSND START_DTM ' Set_Status(0) RList(SelectSent, TARGET_ACTIVELIST$, "", "", "") IF Get_Status(errCode) THEN ErrMsg(errCode) RETURN END IF @RecCount then EoF = 0 NumKeys = @RecCount Cnt = 0 Loop ReadNext Mode Else EoF = 1 until EoF ServiceCategories = XLATE('REACT_MODE_NG', Mode, 'PROB_CAT_DESC', 'X') swap @VM with @svm in ServiceCategories ServiceDescs = XLATE('REACT_MODE_NG', Mode, 'SERV_DESC', 'X') swap @VM with @svm in ServiceDescs ReactorLogId = XLATE('REACT_MODE_NG', Mode, 'START_RL_ID', 'X') ReactorNo = Field(Mode,'*',1) ReactorType = XLATE('REACTOR', ReactorNo, 1, 'X') RowToAdd = '' RowToAdd <1,REACTOR_NO$> = ReactorNo RowToAdd <1,REACTOR_TYPE$> = ReactorType RowToAdd <1,START_DTM$> = XLATE('REACT_MODE_NG', Mode, 'START_DTM', 'X') RowToAdd <1,ELAPSED_HOURS$> = OCONV(XLATE('REACT_MODE_NG', Mode,'ELAP_HRS','X'),'MD2,') RowToAdd <1,REACTOR_MODE$> = OCONV(XLATE('REACT_MODE_NG', Mode, 'MODE', 'X' ),'[REACT_MODE_CONV]') RowToAdd <1,Notes$> = XLATE('REACT_MODE_NG', Mode, 'START_NOTES', 'X') RowToAdd <1,CATEGORY_DESCRIPTION$> = ServiceCategories RowToAdd <1,START_USER$> = XLATE('REACT_MODE_NG', Mode, 'START_USER', 'X') RowToAdd <1,REACTOR_LOG_ID$> = ReactorLogId RowToAdd <1,SERVICE_DESCRIPTION$> = ServiceDescs ServiceNotes = XLATE('REACTOR_LOG',ReactorLogId, REACTOR_LOG_NOTES$, 'X') NotesDTMs = Xlate('REACTOR_LOG',ReactorLogId, REACTOR_LOG_NOTES_DTMS$, 'X') NotesUsers = Xlate('REACTOR_LOG',ReactorLogId, REACTOR_LOG_NOTES_USERS$, 'X') FormattedServiceNotes = '' For each ServiceNote in ServiceNotes using @VM setting vPos FormattedServiceNotes<0, vPos> = OConv(NotesDTMs<0, vPos>, 'DT2/^H'):' - ':OConv(NotesUsers<0, vPos>, '[CONV_XLATE,LSL_USERS*FIRST_LAST]'):' - ':ServiceNote Next ServiceNote Swap @VM with CRLF$ in FormattedServiceNotes RowToAdd <1,SERVICE_NOTES$> = FormattedServiceNotes modeArray := RowToAdd : @FM Repeat end GoSub ClearCursors ClearSelect TARGET_ACTIVELIST$ Response = modeArray end else Response = 'Missing a time parameter, unable to run.' end end service Service GetAllBottleChange(FromTime, ToTime) EQU ReactorNo$ to 1 EQU StartDTM$ to 2 Equ StopDTM$ to 3 Equ RLNotes$ to 4 Equ Technician$ to 5 Equ RLService$ to 6 Response = '' //if @user4 eq 'JONATHAN_O' then debug IF FromTime NE '' AND ToTime NE '' then DayFrom = Field(FromTime, ' ', 1) //ICONV(DialogResult<2>, "DT") TimeFrom = Field(ICONV(FromTime, "DT"), '.', 2) DayTo = Field(ToTime, ' ', 1) TimeTo = Field(ICONV(ToTime, "DT"), '.', 2) SelectSent = 'SELECT REACTOR_LOG WITH REACTOR LE 1 AND WITH START_DATE GE ' : Quote(DayFrom) : ' AND WITH START_TIME GE ' : Quote(TimeFrom) : ' ' SelectSent := 'AND WITH START_DATE LE ' : Quote(DayTo) Set_Status(0) RList(SelectSent, TARGET_ACTIVELIST$, "", "", "") IF Get_Status(errCode) THEN ErrMsg(errCode) RETURN END //Here logArray = '' logArrayIndex = 1 IF @RecCount then EoF = 0 NumKeys = @RecCount Cnt = 0 Loop ReadNext log Else EoF = 1 until EoF ReactorLogRec = Xlate('REACTOR_LOG', log, '', 'X') ReactorNo = ReactorLogRec StartDT = ReactorLogRec StartTime = ReactorLogRec StartDTM = StartDT : '.' : StartTime StopDT = ReactorLogRec StopTime = ReactorLogRec StopDTM = StopDT : '.' : StopTime Notes = ReactorLogRec swap @TM with ' ' in Notes Technician = ReactorLogRec ServiceID = ReactorLogRec ServiceName = Xlate('REACT_SERVS', ServiceID, 1, 'X') logArray = ReactorNo logArray = StartDTM logArray = StopDTM logArray = Notes logArray = Technician logArray = ServiceName logArrayIndex += 1 Repeat end //to here GoSub ClearCursors ClearSelect TARGET_ACTIVELIST$ Response = logArray end else Response = 'Missing a time parameter, unable to run.' end //SELECT REACTOR_LOG WITH REACTOR LE 1 AND WITH START_DATE GT 19500 end service * * * * * * * OIPrint_Err: * * * * * * * *Set Error for OIPrint function and return to calling procedure Msg('',stat) Error_Msg = 'Set_Printer Returned Error Status: ':QUOTE(stat) IF Get_Status(errCode) THEN Stat = Set_Status(-1,'STPROC',ErrorTitle:@SVM:Error_Msg) END ELSE Stat = Set_Status(1,'STPROC',ErrorTitle:@SVM:Error_Msg) END stat = Set_Printer('TERM',1) RETURN Bail: * * * * * * Msg(@window, MsgUp) ;* take down the processing message stat = Set_Printer("TERM") ;* Terminiate this printing session IF stat < 0 THEN GOTO OIPrint_Err Utility('CURSOR','A') RETURN ClearCursors: For counter = 0 to 8 ClearSelect counter Next counter return