COMPILE FUNCTION obj_Tool(Method,Parms) /* Methods for TOOL table 10/19/2007 JCH - Initial Coding Properties: Methods: KeysByType() ;* Returns all kesy sorted by Tool Type Find() ;* Lookup Tool Escalation key */ DECLARE FUNCTION Get_Status, Msg, Utility, obj_Tables, Dialog_Box, Database_Services DECLARE SUBROUTINE Set_Status, Msg, obj_Tables, Send_Dyn, Btree.Extract, ErrMsg DECLARE SUBROUTINE obj_Notes, Send_Info $INSERT TOOL_ESC_EQUATES $INSERT TOOL_EQUATES $INSERT MSG_EQUATES ErrTitle = 'Error in Stored Procedure "obj_Tool"' ErrorMsg = '' IF NOT(ASSIGNED(Method)) THEN ErrorMsg = 'Unassigned parameter "Method" passed to subroutine' IF NOT(ASSIGNED(Parms)) THEN Parms = '' IF ErrorMsg NE '' THEN Set_Status(-1,ErrTitle:@SVM:ErrorMsg) RETURN '' END Result = '' BEGIN CASE CASE Method = 'KeysByType' ; GOSUB KeysByType CASE Method = 'ModeHistory' ; GOSUB ModeHistory CASE 1 ErrorMsg = 'Unknown Method ':QUOTE(Method):' passed to routine.' END CASE IF ErrorMsg NE '' THEN Set_Status(-1,ErrTitle:@SVM:ErrorMsg) RETURN '' END RETURN Result * * * * * * * KeysByType: * * * * * * * Result = Database_Services('ReadDataRow', 'APP_INFO', 'TOOL_KEYS_BY_TYPE') * OPEN 'TOOL' TO FileIn THEN * SELECT "TOOL" BY "TOOL_TYPE" SETTING Cursor ELSE * Status = Set_FSError() * ErrorMsg = 'Error performing SELECT_BY agains TOOL table.' * RETURN * END * END ELSE * ErrorMsg = 'Unable to open table "TOOL" for index lookup' * RETURN * END * * ToolIDs = '' * Done = 0 * LOOP * READNEXT ToolID USING Cursor ELSE Done = 1 * UNTIL Done * READ ToolRec FROM FileIn,ToolID THEN * // Ignore tools that are Out of Service or GaN. * IF (ToolRec NE 1) AND (ToolRec NE 'G') AND (ToolRec NE 'Reactor') AND (ToolRec NE 'Bottle Change') THEN * ToolIDs := ToolID:@VM * END * END * REPEAT * * ToolIds[-1,1] = '' * * Result = ToolIDs RETURN * * * * * * * ModeHistory: * * * * * * * ToolID = Parms[1,@RM] IF ToolID = '' THEN RETURN OPEN 'DICT.TOOL_LOG' TO DictVar THEN SearchString = 'TOOL_ID':@VM:ToolID:@FM Option = '' Flag = '' Btree.Extract(SearchString, 'TOOL_LOG', DictVar, TLKeys, Option, Flag) IF Get_Status(errCode) THEN ErrMsg(errCode) RETURN END FOR I = 1 TO COUNT(TLKeys,@VM) + (TLKeys NE '') TLKey = TLKeys<1,I> Result = INSERT(Result,1,1,0,TLKey) ;* List is sorted ascending - rearrange to descending NEXT I END RETURN