Compile function NDW_WAFER_COUNTS_EVENTS(CtrlEntId, Event, @PARAMS) #pragma precomp SRP_PreCompiler #window NDW_WAFER_COUNTS Declare function Reactor_Services, Database_Services, Get_Property, Error_Services, Environment_Services Declare function SRP_Array, Logging_Services Declare subroutine Set_Property, Logging_Services $Insert EVENT_SETUP $Insert APP_INSERTS $Insert REACTOR_EQUATES EQU DATA_ASM_REACT_ID$ to 1 EQU DATA_ASM_SUSC_CNT$ to 2 EQU DATA_ASM_SUSC_THK$ to 3 EQU DATA_ASM_TUBE_CNT$ to 4 EQU DATA_ASM_TUBE_THK$ to 5 EQU DATA_ASM_ARM_CNT$ to 6 EQU DATA_HTR_REACT_ID$ to 1 EQU DATA_HTR_SUSC_CNT$ TO 2 EQU DATA_HTR_SUSC_THK$ TO 3 EQU DATA_HTR_TUBE_CNT$ TO 4 EQU DATA_HTR_TUBE_THK$ TO 5 EQU DATA_HTR_ARM_CNT$ TO 6 EQU DATA_EPP_REACT_ID$ to 1 EQU DATA_EPP_SUSC_CNT$ TO 2 EQU DATA_EPP_SUSC_THK$ TO 3 EQU DATA_EPP_BELL_JAR_CNT$ TO 4 EQU DATA_EPP_BELL_JAR_THK$ TO 5 EQU DATA_EPP_LOWER_QUARTZ_CNT$ TO 6 EQU DATA_EPP_LOWER_QUARTZ_THK$ TO 7 ASMDataTable = @Window : '.OLE_DATA_ASM' HTRDataTable = @Window : '.OLE_DATA_HTR' EPPDataTable = @Window : '.OLE_DATA_EPP' LogPath = Environment_Services('GetApplicationRootPath') : '\LogFiles\Reactor' LogDate = Oconv(Date(), 'D4/') LogTime = Oconv(Time(), 'MTS') LogFileName = LogDate[7, 4] : '-' : LogDate[1, 2] : '-' : LogDate[4, 2] : ' Performance Reports.csv' Headers = 'Logging DTM' : @FM : 'Error Message' ColumnWidths = 20 : @FM : 15 : @FM : 60 : @FM : 300 objLog = Logging_Services('NewLog', LogPath, LogFileName, CRLF$, ' ', Headers, ColumnWidths, False$, False$) LoggingDTM = LogDate : ' ' : LogTime ; // Logging DTM If Event EQ 'OLE' then Transfer Event to OIEvent Transfer Param1 to Event Transfer Param2 to Param1 Transfer Param3 to Param2 * Transfer Param4 to Param3 * Transfer Param5 to Param4 * Transfer Param6 to Param5 * Transfer Param7 to Param6 * Transfer Param8 to Param7 end GoToEvent Event for CtrlEntId else // Event not implemented end Return EventFlow or 1 //----------------------------------------------------------------------------- // EVENT HANDLERS //----------------------------------------------------------------------------- Event WINDOW.CREATE(CreateParam) GoSub SetupOLEControls GoSub GetReactorMetrics End Event Event TABCONTROL_1.CLICK() Page = Get_Property(@Window : '.TABCONTROL_1', 'VALUE') Set_Property(@WINDOW,'VPOSITION', Page) end event Event PUB_REFRESH_DATA.CLICK() GoSub GetReactorMetrics end event //----------------------------------------------------------------------------- // Internal GoSubs //----------------------------------------------------------------------------- GetReactorMetrics: ReactorRec = '' ASMData = '' HTRData = '' EPPData = '' //Get ASM Reactors ASMList = Reactor_Services('GetReactorNumbers', 'ASM') ASMList := @FM : Reactor_Services('GetReactorNumbers', 'ASM+') ASMList = SRP_Array('SortSimpleList', ASMList, 'AscendingNumbers', @FM) //Get HTR Reactors HTRList = Reactor_Services('GetReactorNumbers', 'HTR') //Get EPP Reactors EPPList = Reactor_Services('GetReactorNumbers', 'EPP') //Get ASM Data, display to ASM data table for each Reactor in ASMList using @FM setting rPos MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor) if Error_Services('NoError') then ASMData = MetricData<1, DATA_ASM_REACT_ID$> ASMData = MetricData<1, DATA_ASM_SUSC_CNT$> ASMData = MetricData<1, DATA_ASM_SUSC_THK$> ASMData = MetricData<1, DATA_ASM_TUBE_CNT$> ASMData = MetricData<1, DATA_ASM_TUBE_THK$> ASMData = MetricData<1, DATA_ASM_ARM_CNT$> end else ErrorMessage = Error_Services('GetMessage') LogData = LoggingDTM : @FM : ErrorMessage Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$) end Next reactor Set_Property(ASMDataTable, "OLE.LIST", ASMData) //Get HTR Data, display to HTR data table for each Reactor in HTRList using @FM setting rPos MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor) if Error_Services('NoError') then HTRData = MetricData <1, DATA_HTR_REACT_ID$> HTRData = MetricData<1, DATA_HTR_SUSC_CNT$> HTRData = MetricData<1, DATA_HTR_SUSC_THK$> HTRData = MetricData<1, DATA_HTR_TUBE_CNT$> HTRData = MetricData<1, DATA_HTR_TUBE_THK$> HTRData = MetricData<1, DATA_HTR_ARM_CNT$> end else ErrorMessage = Error_Services('GetMessage') LogData = LoggingDTM : @FM : ErrorMessage Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$) end Next reactor Set_Property(HTRDataTable, "OLE.LIST", HTRData) //Get EPP Data, display to EPP data table for each Reactor in EPPList using @FM setting rPos MetricData = Reactor_Services('GetWaferCntMetricsByReactorID', Reactor) if Error_Services('NoError') then EPPData = MetricData<1, DATA_EPP_REACT_ID$> EPPData = MetricData<1, DATA_EPP_SUSC_CNT$> EPPData = MetricData<1, DATA_EPP_SUSC_THK$> EPPData = MetricData<1, DATA_EPP_BELL_JAR_CNT$> EPPData = MetricData<1, DATA_EPP_BELL_JAR_THK$> EPPData = MetricData<1, DATA_EPP_LOWER_QUARTZ_CNT$> EPPData = MetricData<1, DATA_EPP_LOWER_QUARTZ_THK$> end else ErrorMessage = Error_Services('GetMessage') LogData = LoggingDTM : @FM : ErrorMessage Logging_Services('AppendLog', objLog, LogData, @RM, @FM, False$) end Next reactor Set_Property(EPPDataTable, "OLE.LIST", EPPData) return SetupOLEControls: //Set Row Headers to invisible Set_Property(ASMDataTable, "OLE.HeaderColumn[1]", '':@FM:False$) Set_Property(HTRDataTable, "OLE.HeaderColumn[1]", '':@FM:False$) Set_Property(EPPDataTable, "OLE.HeaderColumn[1]", '':@FM:False$) //Set Number of columns for each table Set_Property(ASMDataTable, "OLE.Dimension", 6);*6 columns for ASM Data Table Set_Property(HTRDataTable, "OLE.Dimension", 6);*6 columns for HTR Data Table Set_Property(EPPDataTable, "OLE.Dimension", 7);*7 columns for EPP Data Table //Set size of columns ColSizeArray = '' ColSizeArray<1> = 100 Set_Property(ASMDataTable, "OLE.DataColumn[All]", ColSizeArray) Set_Property(HTRDataTable, "OLE.DataColumn[All]", ColSizeArray) Set_Property(EPPDataTable, "OLE.DataColumn[All]", ColSizeArray) //Set ASM Table Col. Headers HeaderTitles = 'Reactor#':@VM:'Susc. Wfr. Cnt.':@VM:'Susc. Thk':@VM:'Tube Wfr. Cnt.':@VM:'Tube Wfr. Thk':@VM:'Arm Wfr. Cnt.' Set_Property(ASMDataTable, "OLE.TitleList", HeaderTitles) //Set HTR Table Col. Headers HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Tube Run Cnt.':@VM:'Tube Thk':@VM:'Arm Wfr. Cnt.' Set_Property(HTRDataTable, "OLE.TitleList", HeaderTitles) //Set EPP Table Col. Headers HeaderTitles = 'Reactor#':@VM:'Susc. Run Cnt.':@VM:'Susc. Thk':@VM:'Bell Jar Run Cnt.':@VM:'Bell Jar Thk':@VM:'Lower Quartz Run Cnt.':@VM:'Lower Quartz thk.' Set_Property(EPPDataTable, "OLE.TitleList", HeaderTitles) return