Compile function NDW_TW_PROD_EVENTS(CtrlEntId, Event, @PARAMS) #pragma precomp SRP_PreCompiler #window NDW_TEST_WAFER_PROD Declare function Dialog_Box, Database_Services, Test_Run_Services, Get_Property, Error_Services Declare subroutine Dialog_Box, Set_Property, Placedialog, Msg, Test_Run_Services $Insert TEST_WAFER_TYPES_DISPO_OPTIONS_EQUATES $Insert TEST_WAFER_PROD_EQUATES GoToEvent Event for CtrlEntId else // Event not implemented end Return EventFlow or 1 //----------------------------------------------------------------------------- // EVENT HANDLERS //----------------------------------------------------------------------------- Event WINDOW.CREATE(CreateParam) PlaceDialog(-2, -2) EventFlow = 1 GoSub Refresh //Get and set dispo options to the CMB_DISPO_OPTIONS_SELECT dropdown box DispoOptions = Database_Services('ReadDataRow', 'APP_INFO', 'TEST_WAFER_TYPES_DISPO_OPTIONS') Set_Property(@Window : '.CMB_DISPO_OPTIONS_SELECT', 'LIST', DispoOptions) End Event Event PUB_CREATE_NEW.CLICK() Refresh = Dialog_Box('NDW_NEW_TEST_WAFER_PROD', @Window, '') If Refresh then GoSub Refresh end end event Event CMB_TW_PRODS.CHANGED() SelectedProd = PARAM1 SelectedProdID = Field(SelectedProd, ' - ', 1) Swap ' ' with '' in SelectedProdID Set_Property(@Window : '.EDL_SEL_PROD_ID', 'TEXT', SelectedProdID) GoSub GetSelectedProduct end event Event PUB_ADD_DISPO.CLICK() //Get Property from select list SelectedProperty = Get_Property(@Window : '.CMB_DISPO_OPTIONS_SELECT', 'DEFPROP') SelectedProdID = Get_Property(@Window : '.EDL_SEL_PROD_ID', 'TEXT') IF SelectedProdID NE '' then If SelectedProperty NE '' then //Add it to the record and refresh Test_Run_Services('AddTestWaferProductDispo', SelectedProdID, SelectedProperty) If Error_Services('NoError') then Msg(@Window, 'Dispo Added.') GoSub GetProd end else Msg(@Window, Error_Services('GetMessage')) end end end else Msg(@Window, 'Must select a product first.') end end event Event PUB_DELETE_DISPO.CLICK() CurrDispoData = Get_Property(@Window:'.EDT_DISPO_OPTIONS', 'ARRAY') SelectedPos = Get_Property(@Window: '.EDT_DISPO_OPTIONS', "SELPOS")<2> SelectedDispo = CurrDispoData<1, SelectedPos> SelectedDispoID = Field(SelectedDispo, ' - ', 1) Swap ' ' with '' in SelectedDispoID if SelectedDispoID NE '' then Test_Run_Services('DeleteTestWaferProductDispo', SelectedDispoID) If Error_Services('NoError') then Msg(@Window, 'Dispo. Removed!') GoSub GetProd end else Msg(@Window, Error_Services('GetMessage')) GoSub GetProd end end end event Event PUB_UPDATE_ORDER.CLICK() SelectedProdID = Get_Property(@Window : '.EDL_SEL_PROD_ID', 'TEXT') SelectedOrder = Get_Property(@Window : '.EDL_SORT_ORDER', 'TEXT') IF SelectedOrder NE '' then If Num(SelectedOrder) then Test_Run_Services('UpdateTWProdSortOrder', SelectedProdID, SelectedOrder) If Error_Services('NoError') then GoSub Refresh end else ErrorMsg = Error_Services('GetMessage') Msg(@Window, ErrorMsg) end end else Msg(@Window, 'Value for sort order must be a number!') end end else Msg(@Window, 'Must enter a value for sort order!') end end event //----------------------------------------------------------------------------- // INTERNAL GOSUBS //----------------------------------------------------------------------------- Refresh: //Get a list of all the product types Prods = Test_Run_Services('GetAllTWProdKeys') ProdOptions = '' for each prod in prods using @VM setting pPos ProdId = Prods<1, pPos> ProdName = Prods<2, pPos> if prodId NE '' then ProdOptions<-1> = ProdID : ' - ' : ProdName end Next prod Set_Property(@Window : '.CMB_TW_PRODS', 'LIST', ProdOptions) //Get dispo options //Get and set dispo options to the CMB_DISPO_OPTIONS_SELECT dropdown box DispoOptions = Database_Services('ReadDataRow', 'APP_INFO', 'TEST_WAFER_TYPES_DISPO_OPTIONS') Set_Property(@Window : '.CMB_DISPO_OPTIONS_SELECT', 'LIST', DispoOptions) //Clear out old Values Set_Property(@Window : '.EDT_DISPO_OPTIONS', 'LIST', '') Set_Property(@Window : '.EDL_SEL_PROD_ID', 'TEXT', '') Set_Property(@Window : '.EDL_PROD_NAME', 'TEXT', '') return GetSelectedProduct: swap ' - ' with '*' in SelectedProd SelectedProdID = Field(SelectedProd, '*', 1) SelectedProdName = Field(SelectedProd, '*', 2) GoSub GetProd return GetProd: //Clear out old Values //Set_Property(@Window : '.EDT_DISPO_OPTIONS', 'LIST', '') SelectedProdID = Get_Property(@Window : '.EDL_SEL_PROD_ID', 'TEXT') SelectedProdRec = Database_Services('ReadDataRow', 'TEST_WAFER_PROD', SelectedProdID) ProdDispoIDs = SelectedProdRec CurrentDispos = '' for each ProdDispoID in ProdDispoIDs using @VM setting dPos if ProdDispoID NE '' then ProdDispoDesc = XLATE('TEST_WAFER_TYPES_DISPO_OPTIONS', ProdDispoID, TEST_WAFER_TYPES_DISPO_OPTIONS_DISPO_DESCRIPTION$, 'X') CurrentDispos<-1> = ProdDispoID : ' - ' : ProdDispoDesc end Next ProdDispoID CurrentSortOrder = SelectedProdRec Set_Property(@Window : '.EDL_PROD_NAME', 'TEXT', SelectedProdName) Set_Property(@Window : '.EDT_DISPO_OPTIONS', 'LIST', CurrentDispos) Set_Property(@Window : '.EDL_SEL_PROD_ID', 'TEXT', SelectedProdID) Set_Property(@Window : '.EDL_SORT_ORDER', 'TEXT', CurrentSortOrder) return