Compile function NDW_VIEW_LOT_EVENTS(CtrlEntId, Event, @PARAMS) #pragma precomp SRP_PreCompiler #window NDW_VIEW_LOT Declare function Get_Property, Lot_Services, Database_Services Declare subroutine Set_Property $Insert APP_INSERTS $Insert LOT_EQUATES $Insert LOT_OPERATION_EQUATES $Insert LOT_EVENT_EQUATES GoToEvent Event for CtrlEntId else // Event not implemented end Return EventFlow or 1 //----------------------------------------------------------------------------- // EVENT HANDLERS //----------------------------------------------------------------------------- Event WINDOW.CREATE(CreateParam) GoSub SetupFormControls End Event Event EDL_LOT_ID.LOSTFOCUS(Flag, FocusID) GoSub GetLot end event Event PUB_SEARCH_LOT.CLICK() GoSub GetLot end event //----------------------------------------------------------------------------- // INTERNAL GO-SUBS //----------------------------------------------------------------------------- SetupFormControls: LabelFont = Get_Property(@Window : '.LBL_LOT_ID', 'FONT') LabelFont<1,1,2> = -20 LabelFont<1,1,6> = 10 Set_Property(@Window : '.LBL_LOT_ID', 'FONT', LabelFont) Set_Property(@Window : '.LBL_CURR_OPERATION', 'FONT', LabelFont) EditLineFont = Get_Property(@Window : '.EDL_LOT_ID', 'FONT') EditLineFont<1,1,2> = -20 EditLineFont<1,1,6> = 10 Set_Property(@Window : '.EDL_LOT_ID', 'FONT', EditLineFont) Set_Property(@Window : '.EDL_LOT_ID', 'FONT', EditLineFont) Set_Property(@Window : '.EDL_CURR_OPERATION', 'FONT', EditLineFont) return GetLot: //Get Lot LotIdText = Get_Property(@Window : '.EDL_LOT_ID', 'TEXT') If LotIdText[1, 2] EQ '1T' then LotIdText[1,2] = '' end Set_Property(@Window : '.EDL_LOT_ID', 'TEXT', LotIdText) If RowExists('LOT', LotIdText) then ThisLotId = LotIdText ThisLotRec = Database_Services('ReadDataRow', 'LOT', ThisLotId) ThisLotCurrOperationID = Lot_Services('GetLotCurrOperationId', ThisLotId) ThisLotCurrOperationName = Xlate('LOT_OPERATION', ThisLotCurrOperationId, LOT_OPERATION_OPERATION_ID$, 'X') ThisLotCurrWaferQty = Database_Services('ReadDataColumn', 'LOT', ThisLotId, LOT_WAFER_QTY$, True$, 0, False$) //Lot Operation Status' LotOperationsInSequence = Lot_Services('GetLotOperationSequence', ThisLotId) LotOperationTableData = '' For each LotOperation in LotOperationsInSequence using @FM setting dPos LotOperationRec = Database_Services('ReadDataRow', 'LOT_OPERATION', LotOperation) LotOperationTableData<1, -1> = LotOperationRec LotOperationTableData<2, -1> = LotOperationRec LotOperationTableData<3, -1> = Oconv(LotOperationRec, 'DT') LotOperationTableData<4, -1> = LotOperationRec LotOperationTableData<5, -1> = LotOperationRec LotOperationTableData<6, -1> = Oconv(LotOperationRec, 'DT') LotOperationTableData<7, -1> = LotOperationRec Next LotOperation //Lot Event Status' LotEventsInSequence = Lot_Services('GetLotEventsInSequence', ThisLotId) LotEventTableData = '' For each LotEvent in LotEventsInSequence using @FM LotEventRec = Database_Services('ReadDataRow', 'LOT_EVENT', LotEvent) ThisEventSequence = LotEventRec LotEventTableData<1, ThisEventSequence> = OConv(LotEventRec, 'DT') LotEventTableData<2, ThisEventSequence> = LotEventRec LotEventTableData<3, ThisEventSequence> = LotEventRec ThisLotEventOperationName = Field(LotEventRec, '*', 2) LotEventTableData<4, ThisEventSequence> = ThisLotEventOperationName LotEventTableData<5, ThisEventSequence> = LotEventRec Next LotEvent //Fill form Set_Property(@Window : '.EDL_CURR_OPERATION', 'TEXT', ThisLotCurrOperationName) Set_Property(@Window : '.EDL_CURR_WAFER_QTY', 'TEXT', ThisLotCurrWaferQty) Set_Property(@Window : '.EDT_LOT_OPERATIONS', 'ARRAY', LotOperationTableData) Set_Property(@Window : '.EDT_LOT_EVENTS', 'ARRAY', LotEventTableData) end else //Error: Lot did not exist end return ResetForm: Set_Property(@Window : '.EDL_CURR_OPERATION', 'TEXT', '') Set_Property(@Window : '.EDL_CURR_WAFER_QTY', 'TEXT', '') Set_Property(@Window : '.EDT_LOT_OPERATIONS', 'ARRAY', '') Set_Property(@Window : '.EDT_LOT_EVENTS', 'ARRAY', '') return