{ "header": { "version": 1, "type": "record" }, "body": { "record1": { "<1>": "declare function memberof, send_message, fieldcount, rds_comm\r\n$insert logical\r\n$insert prod_spec_equ\r\n$insert quote_spec_equ\r\n$insert tw_info_array_equ\r\n$insert rds_equ\r\n\r\nequ CrLf$ to char(13):char(10)\r\n\r\nequ NumRows$ to 4\r\n \r\nequ Hidden$ to 32\r\n*\r\nconvert '*' to @fm in CreateParam\r\nRejInfoArray = ''\r\nTWType = field( CreateParam<1>, ' ', 2 )\r\n\r\nswap 'PLUS' with '+' in TWType\r\nswap 'MINUS' with '-' in TWType\r\nTWQty = CreateParam<2>\r\nTWCurQty = CreateParam<3>\r\nTWCodes = CreateParam<4>\r\nTWTool = CreateParam<5>\r\nTWThick = CreateParam<6>\r\nTWRes = CreateParam<7>\r\nTWConc = CreateParam<8>\r\nTWStress = CreateParam<9>\r\nTWTrans = CreateParam<10>\r\nTWRHO = CreateParam<11>\r\nCurLabel = .tw_info->label\r\nCurLabel<1> = TWQty\r\n.tw_info->label = CurLabel\r\nif TWType = 'PROD' then\r\n BegTitle = CrLf$\r\n WafType = ''\r\nend else\r\n BegTitle = ''\r\n WafType = CrLf$:'Test'\r\nend\r\n.tw_type_label->text = BegTitle:' ':TWType:WafType:CrLf$:'Wafer(s)'\r\n\r\nTWInfoArray = ''\r\nTWInfoArray = TWCurQty\r\nTWInfoArray = TWCodes\r\nTWInfoArray = xlate( 'TW_CODES', TWCodes, 'DESC', 'X' )\r\nTWInfoArray = TWTool\r\nTWInfoArray = TWThick\r\nTWInfoArray = TWRes\r\nTWInfoArray = TWConc\r\nTWInfoArray = TWStress\r\nTWInfoArray = TWTrans\r\nTWInfoArray = TWRHO\r\n\r\nVoid = set_property( @window, '@OrigTWInfo', TWInfoArray )\r\nVoid = set_property( @window, '@TWQty', TWQty )\r\nVoid = set_property( @window, '@TWType', TWType )\r\n* TWQty used to make sure that they account for that many test wafers\r\n* no more no less\r\n.tw_info->array = TWInfoArray\r\n\r\n\r\nStyles = send_message( @window:'.TW_INFO', \"COLSTYLE\", 0, '' )\r\nfor i = TWInfoArrayThick$ to TWInfoArrayRHO$\r\n DataFound = false$\r\n for j = 1 to 4\r\n if ( TWInfoArray = '' ) then\r\n * KEEP WINDING THROUGH UNTIL FOUND OR FOUR FIRST\r\n end else\r\n DataFound = true$\r\n end\r\n until DataFound\r\n next j\r\n if DataFound else\r\n Styles = bitor( Styles, Hidden$ ) \r\n end\r\nnext i\r\nStyles = send_message( @window:'.TW_INFO', \"COLSTYLE\", 0, Styles )\r\n*\r\ngosub BuildPSNInfo\r\n*\r\nVoid = set_property( @window:'.TW_INFO', \"AUTOSIZECOL\", 3 ) \r\n.tw_info->visible = 1\r\nVoid = rds_comm( \"TW_ACCT_ROW_VAL\" )\r\nVoid = set_property( @window, '@OrigCol', 1 )\r\nVoid = set_property( @window, '@OrigRow', 1 )\r\nRETURN 1\r\n*===============================================================================================*\r\nBuildPSNInfo:\r\n\tPSNId = get_property( 'RDS_UNLOAD.PSN', 'TEXT' )\r\n\tPSNRec = xlate( 'PROD_SPEC', PSNId, '', 'X' )\r\n\tSpecEpi = PSNRec\r\n\tconvert char(248) to @fm in SpecEpi\r\n\tLayCnt = fieldcount( SpecEpi, @fm )\r\n\t\r\n\tThickTool = '';\tThickType = '';\tThickProve = ''\r\n\tResTool = '';\tResType = '';\tResProve = ''\r\n\tConTool = '';\tConType = '';\tConProve = ''\r\n\tStressTool = '';\tStressType = '';\tStressProve = ''\r\n\tTransTool = '';\tTransType = '';\tTransProve = ''\r\n\tThickMeas = ''; ResMeas = ''; ConMeas = ''\r\n\tStressMeas = ''; TransMeas = ''\r\n\r\n\tThickMeasure = xlate( 'PROD_SPEC', PSNId, 'THICK_MEASURE_ALL', 'X' )\r\n\tResMeasure = xlate( 'PROD_SPEC', PSNId, 'RES_MEASURE_ALL', 'X' )\r\n\tConMeasure = xlate( 'PROD_SPEC', PSNId, 'CON_MEASURE_ALL', 'X' )\r\n\tStressMeasure = xlate( 'PROD_SPEC', PSNId, 'STRESS_MEASURE', 'X' )\r\n\tTransMeasure = xlate( 'PROD_SPEC', PSNId, 'TRANS_MEASURE', 'X' )\r\n\t\r\n\tfor i = 1 to LayCnt\r\n\t ThisThickMeasure = ThickMeasure<1,i>\r\n\t ThisResMeasure = ResMeasure<1,i>\r\n\t ThisConMeasure = ConMeasure<1,i>\r\n\t \r\n\t ThickTool<1,-1> = field( ThisThickMeasure, '~', 1 )\r\n\t ThickType<1,-1> = field( ThisThickMeasure, '~', 2 )\r\n\t ThickProve<1,-1> = field( ThisThickMeasure, '~', 5 )\r\n\t ThickMeas<1,-1> = TWInfoArrayThick$\r\n\r\n\t ResTool<1,-1> = field( ThisResMeasure, '~', 1 )\r\n\t ResType<1,-1> = field( ThisResMeasure, '~', 2 )\r\n\t ResProve<1,-1> = field( ThisResMeasure, '~', 5 )\r\n\t if xlate( 'RDS', get_property( 'RDS_UNLOAD.RDS_NO', 'TEXT' ), rds_res_units$, 'X' ) = 'ê/Ü' then\r\n\t * ohm squared use Sheet RHO\r\n\t ResMeas<1,-1> = TWInfoArrayRHO$\r\n\t end else\r\n\t ResMeas<1,-1> = TWInfoArrayRes$\r\n\t end\r\n\t \r\n\t ConTool<1,-1> = field( ThisConMeasure, '~', 1 )\r\n\t ConType<1,-1> = field( ThisConMeasure, '~', 2 )\r\n\t ConProve<1,-1> = field( ThisConMeasure, '~', 5 )\r\n\t ConMeas<1,-1> = TWInfoArrayConc$\r\n\tnext i\r\n\tStressTool = field( StressMeasure, '~', 1 )\r\n\tStressType = field( StressMeasure, '~', 2 )\r\n\tStressProve = field( StressMeasure, '~', 5 )\r\n\tStressMeas = TWInfoArrayStress$\r\n\r\n\tTransTool = field( TransMeasure, '~', 1 )\r\n\tTransType = field( TransMeasure, '~', 2 )\r\n\tTransProve = field( TransMeasure, '~', 5 )\r\n\tTransMeas = TWInfoArrayTrans$\r\n \r\n AllTools = ThickTool:@vm:ResTool:@vm:ConTool:@vm:StressTool:@vm:TransTool\r\n AllTypes = ThickType:@vm:ResType:@vm:ConType:@vm:StressType:@vm:TransType\r\n AllProves = ThickProve:@vm:ResProve:@vm:ConProve:@vm:StressProve:@vm:TransProve\r\n AllMeas = ThickMeas:@vm:ResMeas:@vm:ConMeas:@vm:StressMeas:@vm:TransMeas\r\n\r\n Void = set_property( @window, '@Tools', AllTools )\r\n Void = set_property( @window, '@Types', AllTypes )\r\n Void = set_property( @window, '@Proves', AllProves )\r\n Void = set_property( @window, '@AllMeas', AllMeas )\r\nreturn\r\n*===============================================================================================*\r\n" } } }