open-insight/LSL2/STPROC/NDW_TW_PROD_EVENTS.txt
Infineon\StieberD 7762b129af pre cutover push
2024-09-04 20:33:41 -07:00

167 lines
6.0 KiB
Plaintext

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<TEST_WAFER_PROD_WAFER_DISPO_IDS$>
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<TEST_WAFER_PROD_SORT_ORDER$>
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