{ "header": { "version": 1, "type": "record" }, "body": { "record1": { "<1>": "declare function send_event, get_property, set_property, msg, fieldcount, prod_spec_comm\r\ndeclare subroutine end_dialog, create_note\r\n\r\n$insert msg_equates \r\n$insert quote_sigs_equ\r\n\r\nend_dialog( @window, 'CANCEL' )\r\n\r\nRETURN 0\r\n\r\n/*\r\n* NEED TO DO THIS CHECK IN CASE THEY SAVE IT\r\n\r\n\r\nOrigSaveCheckControlData = get_property( @window, '@SaveCheckControlData' )\r\nSaveCheckControls = get_property( @window, '@SaveCheckControls' )\r\nCurSaveCheckControlData = get_property( SaveCheckControls, 'LIST':@rm:'LIST':@rm:'INVALUE' )\r\n\r\n* get substrate information to pass back to quote window\r\n\r\nControls = get_property( @window, '@SubControls' )\r\nSubstrateInfo = get_property( Controls, 'INVALUE' )\r\nconvert @rm to @vm in SubstrateInfo\r\nOrigSubstrateInfo = get_property( @window, '@OrigSubstrateInfo' )\r\n*\r\nMsgInfo = ''\r\nswap char(13):char(10) with @tm in OrigSubstrateInfo\r\nif SubStrateInfo <> OrigSubstrateInfo then\r\n MsgInfo = 'You have changed substrate information'\r\nend\r\n*\r\nControls = get_property( @window, '@AddlControls' )\r\nAddlInfo = get_property( Controls, 'INVALUE' )\r\nconvert @rm to @vm in AddlInfo\r\nOrigAddlInfo = get_property( @window, '@OrigAddlInfo' )\r\nswap char(13):char(10) with @tm in OrigAddlInfo\r\nif AddlInfo <> OrigAddlInfo then\r\n if MsgInfo then\r\n Ttext = ' and other production information.'\r\n end else\r\n Ttext = 'You have changed other production information.'\r\n end\r\n MsgInfo = MsgInfo:Ttext\r\nend\r\n*\r\nControls = get_property( @window, '@NDControls' )\r\nNDInfo = get_property( Controls, 'INVALUE' )\r\nconvert @rm to @vm in NDInfo\r\nOrigNDInfo = get_property( @window, '@OrigNDInfo' )\r\nswap char(13):char(10) with @tm in OrigNDInfo\r\nif NDInfo <> OrigNDInfo then\r\n if MsgInfo then\r\n Ttext = ' and new development information.'\r\n end else\r\n Ttext = 'You have changed new development information.'\r\n end\r\n MsgInfo = MsgInfo:Ttext\r\nend\r\n*\r\nControls = get_property( @window, '@PPControls' )\r\nPPInfo = get_property( Controls, 'INVALUE' )\r\nconvert @rm to @vm in PPInfo\r\nOrigPPInfo = get_property( @window, '@OrigPPInfo' )\r\nswap char(13):char(10) with @tm in OrigPPInfo\r\nif PPInfo <> OrigPPInfo then\r\n if MsgInfo then\r\n Ttext = ' and pre-production information.'\r\n end else\r\n Ttext = 'You have changed pre-production information.'\r\n end\r\n MsgInfo = MsgInfo:Ttext\r\nend\r\n*\r\n* check to see if epi info has changed first save current layer to common\r\n* and then compare with original common\r\nEpiPromptCnt = get_property( @window, '@EpiPromptCnt' )\r\nEpiControls = get_property( @window, '@EpiControls' )\r\nEpiDataOnWindow = get_property( EpiControls, 'LIST':@rm:'LIST':@rm:'INVALUE' )\r\nconvert @rm to @vm in EpiDataOnWindow\r\nCurSepLayerNo = get_property( @window, '@CurSepLayer' )\r\nAllSepLayers = get_property( @window, '@EpiInfo' )\r\nCurLayerData = field( AllSepLayers, char(247), CurSepLayerNo )\r\nif EpiDataOnWindow = @fm:@vm:@fm:str( @vm, EpiPromptCnt-2 ) then\r\n * epi prompts blank do not save to common and delete blank seperate layer\r\n AllSepLayers = fieldstore( AllSepLayers, char(247), 1, 1, char(243):'' )\r\n Acnt = fieldcount( AllSepLayers, char(247) )\r\n if CurSepLayerNo = Acnt then\r\n swap char(247):char(243) with '' in AllSepLayers\r\n end else\r\n swap char(243):char(247) with '' in AllSepLayers\r\n end\r\n convert char(243) to '' in AllSepLayers\r\n Void = set_property( @window, '@EpiInfo', AllSepLayers )\r\nend else\r\n\tCurLayerData = fieldstore( CurLayerData, char(248), 1, 1, EpiDataOnWindow )\r\n\tAllSepLayers = fieldstore( AllSepLayers, char(247), CurSepLayerNo, 1, CurlayerData )\r\n\tVoid = set_property( @window, '@EpiInfo', AllSepLayers )\r\nend\r\nOrigEpiData = get_property( @window, '@OrigEpiInfo' )\r\nEpiData = get_property( @window, '@EpiInfo' )\r\nif EpiData = '' then\r\n EpiData = @fm:@rm:@fm\r\nend\r\n\r\nif EpiData <> OrigEpiData then\r\n if MsgInfo then\r\n Ttext = ' and EPI information.'\r\n end else\r\n Ttext = 'You have changed EPI information.'\r\n end\r\n MsgInfo = MsgInfo:Ttext\r\nend\r\nif MsgInfo then\r\n\tMsgInfo = MsgInfo:' Do you wish to save?'\r\n\tMsgInfo = 'BNYC'\r\n\tMsgInfo = '?'\r\n\tResponse = msg( '', MsgInfo )\r\n\tif Response = 1 then \r\n\t Product = .sub_products->text\r\n\t if Product <> '' then\r\n\t CurProducts = xlate( 'LISTBOX_CONFIG', 'PRODUCTS', '', 'X' )\r\n\t locate Product in CurProducts using @vm setting Ppos else\r\n\t MsgInfo = ''\r\n\t MsgInfo = 'Product ':quote(Product):' is not valid.'\r\n\t MsgInfo = 'H'\r\n\t Void = msg( '', MsgInfo )\r\n\t return 0\r\n\t end\r\n\t end else\r\n\t MsgInfo = ''\r\n\t MsgInfo = 'You must select a product.'\r\n\t MsgInfo = 'H'\r\n\t Void = msg( '', MsgInfo )\r\n\t return 0\r\n\t end\r\n\t * VALIDATE THE DOPANTS\r\n\t Void = set_property( @window, '@LayerOn', 1 )\r\n\t Valid = prod_spec_comm( \"VALIDATE_DOPANT\" )\r\n\t if Valid else\r\n\t return 0\r\n\t end\r\n Valid = prod_spec_comm( \"VALIDATE_MINMAX\" )\r\n if Valid else\r\n return 0\r\n end\r\n Valid = prod_spec_comm( \"AKRION_RECIPE_CHECK\" )\r\n if Valid else\r\n return 0\r\n end \r\n\t convert @fm to @svm in EpiData ;* for conc mess\r\n\t ValToReturn = SubStrateInfo:char(244):EpiData:char(244):AddlInfo:char(244):NDInfo:char(244):PPInfo\r\n\t end_dialog( @window, ValToReturn )\r\n\tend else\r\n\t if Response = 0 then\r\n\t end_dialog( @window, 'CANCEL' )\r\n\t end\r\n\tend\r\nend else \r\n end_dialog( @window, 'CANCEL' )\r\nend\r\nRETURN 0\r\n*/" } } }