请分析下面代码:
<html>
<head>
<meta http-equiv="Expires" CONTENT="0">
<meta http-equiv="Cache-Control" CONTENT="no-cache">
<meta http-equiv="Pragma" CONTENT="no-cache">
<title>MIT ERC_V3.6.3</title>
<link rel="stylesheet" href="/erc/css/tigris.css" type="text/css" />
<link rel="stylesheet" href="/erc/css/inst.css" type="text/css" />
<link rel="stylesheet" href="/erc/css/datepicker.css" type="text/css" />
<link rel="stylesheet" href="/erc/js/sortable/sortabletable.css" type="text/css" />
<script type="text/javascript" src="/erc/js/datepicker.js"></script>
<script type="text/javascript" src="/erc/js/buttonstyle.js"></script>
<script type="text/javascript" src="/erc/js/stringutil.js"></script>
<script type="text/javascript" src="/erc/js/openwindow.js"></script>
<script type="text/javascript" src="/erc/js/sortable/sortabletable.js"></script>
<script type="text/javascript" src="/erc/js/filterlist.js"></script>
<script type="text/javascript" src="/erc/js/prototype.js"></script>
<script type="text/javascript" src="/erc/js/xmlextras.js"></script>
<!--script language="javascript" src="http://10.222.4.104:6006/ese/js/ese.js"></script>
<script language="javascript" src="http://10.222.4.104:6006/ese/js/xml2json.js"></script-->
<!--script src="/erc/dwr/engine.js"></script>
<script src="/erc/dwr/util.js"></script>
<script src="/erc/dwr/interface/checkSTRNoService.js"></script-->
</head>
<body marginwidth="0" marginheight="0" onkeydown="if(event.keyCode=='13') return false;" class="composite" > <script>
function getHoldLotInfo(){
checkRuncardStatus();
//if(checkRuncardStatus()){
var form = document.forms['updateRequestForm'];
var lotId = form.elements["requestForm.lotId"].value;
var holdStepNo= form.elements["requestForm.holdStepNo"].value;
if(lotId==""){alert("Please key-in one LotId");return false;}
if(holdStepNo==""){ form.action="updateHoldLotInfo.action";
checkboxSync();form.submit();alert("Please key-in Hold Step No#:");}
if (lotId.indexOf(" ")>0){alert("Lot Id is not allowed space!"); return false;}
form.action="updateHoldLotInfo.action";
checkboxSync();form.submit();
//}
}
function EndQtimeHanle(id){
//alert (id);
var QtimeHanle = document.getElementById("EndQtimeHanle"+id);
var sQtimeHanle = QtimeHanle.options[QtimeHanle.selectedIndex].text;
//alert(sQtimeHanle);
var tObj = document.getElementById("allEndQtimeHandle");
var allEndQtimeHandle= tObj.value;
//alert (allEndQtimeHandle);
if (allEndQtimeHandle==""){
//alert(1);
tObj.value = id +","+ sQtimeHanle+ ";";
}else{
//alert(2)
//alert (allEndQtimeHandle.indexOf(id+","));
if (allEndQtimeHandle.indexOf(id+",")>=0){
//alert ("Replace");
allEndQtimeHandle=allEndQtimeHandle.replace(id +",;",id +","+ sQtimeHanle+ ";");
//alert ("Replace 1:"+allEndQtimeHandle );
allEndQtimeHandle=allEndQtimeHandle.replace(id +",Mapping;",id +","+ sQtimeHanle+ ";");
//alert ("Replace 2:"+allEndQtimeHandle );
allEndQtimeHandle=allEndQtimeHandle.replace(id +",Ignore;",id +","+ sQtimeHanle+ ";");
//alert ("Replace 3:"+allEndQtimeHandle );
allEndQtimeHandle=allEndQtimeHandle.replace(id +",NULL;",id +","+ sQtimeHanle+ ";");
//alert ("Replace 3:"+allEndQtimeHandle );
tObj.value = allEndQtimeHandle;
}else{
//alert (2);
tObj.value = allEndQtimeHandle +id +","+ sQtimeHanle+ ";"
}
}
}
</script>
<textarea id="_HIDDEN_TABLE_SPAN_STEPFORM" style="display:none">
<script>
function updateWaferGroupResult(){
var form = document.forms['updateRequestForm'];
form.action="updateWaferGroupResult.action";
form.submit();
}
</script>
<table border="0" cellspacing="1" cellpadding="8" width="100%">
</table>
<table border="0" cellspacing="1" cellpadding="8" width="100%">
<tr class="a">
<td>Fab Area:</td>
<td>
FABJ1A
</td>
<td>NA<input type="checkbox" disabled="true"> Step No: 01600</td>
<td></td>
</tr>
<tr class="b">
<a name="1">
<td>Area:</td>
<td >YE&FQC</td>
<td>Check With RCP<input type="checkbox" disabled="true"></td>
<td>Step Serial No: <strong>1</strong></td>
</tr>
<tr class="b">
<td>Equipment:</td>
<td colspan="3">Eqp Group: JME_MET_ET1</td>
</tr>
<tr class="b">
<td>Recipe:</td>
<td colspan="3">CPBET3KA</td>
</tr>
<tr class="b">
<td>Wafer ID:</td>
<td colspan="2">#02,#03,#04,#05,#06,#07,#08,#09,#10,#11,#12,#13,#14,#15,#16,#17,#18,#19,#20,#21,#22,#23,#24,#25</td><td>Qty.: 24</td>
</tr>
<tr class="b">
<td>Contamination Flag: </td>
<td colspan="3">NA</td>
</tr>
<tr class="b">
<td colspan="4">实际下货Tools:</td>
</tr>
<tr class="b">
<td>Remark:</td>
<td colspan="3">1</td>
</tr>
<tr>
<td bgcolor="#87CEFF" colspan=9>
<b>
Qtime Configuration
<font color="#0000FF">Start </font>
at this Step in Mainflow,need setting after 'add the step':
</b>
</td>
</tr>
<tr >
<td bgcolor="#DCDCDC" width=15% colspan=2><b>Qtime info:</b></td>
<td bgcolor="#DCDCDC" colspan=7>
<TABLE border=0 cellSpacing=1 cellSpacing=1 width="100%">
<TR>
<TD >Plan ID </TD>
<TD >Plan Ver </TD>
<TD ><font color="#0000FF"><B><Red>StrStepSeq</font></TD>
<TD >EndStepSeq</TD>
<TD >IntervalTime</TD>
<TD >ControlType</TD>
<TD >ExpireAction</TD>
<TD >mpsStepSeq</TD>
</TR>
<TR>
<TD >JLF100UPI0L01</TD>
<TD >15</TD>
<TD ><font color="#0000FF"><B>01600</font></TD>
<TD >01700</TD>
<TD >60</TD>
<TD >Max Time</TD>
<TD >Hold Lot</TD>
<TD ></TD>
</TR>
</Table>
</td>
</tr>
</script>
<tr bgcolor="#FFFFFF">
<td colspan="4">
</td></tr>
<tr bgcolor="#FFFFFF">
<td colspan="4">
</td></tr>
<tr class="b">
<td colspan="4">
<center>
</center>
</td>
</tr>
</table>
<table border="0" cellspacing="1" cellpadding="8" width="100%">
<script>
function doQTime(groupResult){
var form = document.forms['updateRequestForm'];
form.action="comeinQTime.action?method=fromMainPage&groupResultId="+groupResult;
form.submit();
}
function doMainFlowQTime(groupResult){
var form = document.forms['updateRequestForm'];
form.action="comeinMainFlowQTime.action?method=fromMainPage&groupResultId="+groupResult;
form.submit();
}
</script>
<tr class="b">
<th colspan="4">Group Result</th>
</tr>
<tr class="b">
<td colspan="4">
<table border="0" cellspacing="1" cellpadding="8" width="100%">
<input
type="hidden"
name="groupResults[0].id" value="113213" /> <tr class=odder>
<td><b>Wafer List</b></td>
<td colspan=2 align=left><b>Step List</b></td>
<td colspan=2><b>QTime(m)</b></td>
<td></td>
</tr>
<tr class=odder>
<td>#02,#03,#04,#05,#06,#07,#08,#09,#10,#11,#12,#13,#14,#15,#16,#17,#18,#19,#20,#21,#22,#23,#24,#25</td>
<td width=15% colspan=2 align=left>01</td>
<td colspan=2>
<table border="0" cellspacing="1" cellpadding="8" width="100%">
<tr><TD><B>Type:</B>Max Time
<B>Period:</B>60
<B>From:</B>1
<B>To:</B>01700
<B>mpsStepSeq:</B>
<B>Action:</B>Hold Lot</TD></tr>
</table>
</td>
<td>
<input type="button" name="btnAddQtime" value="AddQTime" onclick="doQTime('113213')" class="button">
<BR>
<input type="button" name="btnAddMainFlowQtime" value="AddMainFlowQTime" onclick="doMainFlowQTime('113213')" class="button">
</td>
</tr>
</table>
</td>
</tr>
</table>
</textarea>
<script>
window.opener.document.getElementById("SPAN_STEPFORM").innerHTML = document.getElementById("_HIDDEN_TABLE_SPAN_STEPFORM").value;
</script>
<style type="text/css">
<!--
.TextBoxReadOnly
{
border:1px solid #C0C0C0;
text-align:left;
background-color:#D3D3D3;
width:200px;
readonly:expression(this.readOnly=true);
}
.TextBoxReadWrite
{
border:1px solid #C0C0C0;
text-align:left;
background-color:#FFFFFF;
width:200px;
readonly:expression(this.readOnly=false);
}
-->
</style>
<script>
var area="normal";
window.onload=function(){
//opener.document.updateRequestForm.updateWaferGroupResultBtn.click();
var fabName=document.forms['stepForm'].elements["stepForm.fabName"].value;
if((fabName=="FAB1" ||fabName=="FAB2") && area.indexOf("DIFF")!=-1){
document.getElementById("showRemark").style.display='';
}
var area=document.forms['stepForm'].elements["stepForm.area"];
if('FABJ1A'=="S1" && 'Normal'=="Scan Defect" && area.value == ""){
if(fabName=="A"){
area.value="S1A-PHOTO-M";
}
else if(fabName=="B"){
area.value="S1B-PHOTO-M";
}
else if(fabName=="C"){
area.value="S1C-CMP";
}
}
}
function checkboxSync(){
var stepForm=document.forms['stepForm'];
if (
(typeof stepForm.elements["rcpCheck"]!= "undefined") &&
stepForm.elements["rcpCheck"].checked){
stepForm.elements["stepForm.RCP"].value="on";
}else{
stepForm.elements["stepForm.RCP"].value="uncheck";
}
if (
(typeof stepForm.elements["noStepNoPar"]!= "undefined") &&
stepForm.elements["noStepNoPar"].checked){
stepForm.elements["stepForm.noStepNo"].value="on";
}else{
stepForm.elements["stepForm.noStepNo"].value="uncheck";
}
}
function changeShow(object){
var stepForm=document.forms['stepForm'];
var fabName=object.value;
if("Engineering"==fabName)
{ if(!confirm("请注意您现在选择使用的是engineer folder 下的recipe!"))
{
stepForm["stepForm.recipeType"][0].checked=true;
stepForm.action="viewStepForm.action";
checkboxSync();
stepForm.submit();
}
}
if("Matrix"==fabName)
{ if(!confirm("请注意您现在选择的是FEM run模式!"))
{ stepForm["stepForm.batchType"][0].checked=true;
return false;
}
}
if(object.value=="")
{
alert("Please select the fab area!");
return false;
}
if((fabName=="FAB1" ||fabName=="FAB2") && area.indexOf("DIFF")!=-1)
{
document.getElementById("showRemark").style.display='';
}
else
{
document.getElementById("showRemark").style.display='none';
}
if("Engineering"==fabName || "Production"==fabName || "Matrix"==fabName)
{
if("Engineering"==fabName)
stepForm.action="viewStepForm.action?stepForm.batchType=Production";
else if("Matrix"==fabName)
stepForm.action="viewStepForm.action?stepForm.energyStep=&stepForm.focusStep=";
else
stepForm.action="viewStepForm.action";
}
else
stepForm.action="viewStepForm.action?command=&stepForm.area=";
checkboxSync();
stepForm.submit();
}
function restrictLength(object){
var stepForm=document.forms['stepForm'];
var value=object.value;
if(value=="Eqp ID")
{
alert("输入的Eqp ID 的最大长度为7位!");
}
}
function checkNA(object){
var stepForm=document.forms['stepForm'];
var eqpName=stepForm.elements["stepForm.eqpModeName"].value;
var value=object.value;
if(eqpName=="DUMMY" ||eqpName.indexOf("DMY02")!=-1){
if(value!="NA"){
alert("EQPName is DUMMY.You must select the 'NA'!");
object[object.length-1].selected=true;
return false;
}
}
}
function showOvl(){
window.open('showOvl.action','','left=0,top=200,width=760,height=200');
}
function defalutValue(){
var stepForm=document.forms['stepForm'];
var chk=stepForm.elements['rcpCheck'];
var area=stepForm.elements['stepForm.area'];
var trackOutRecipe= stepForm.elements["stepForm.trackOutRecipe"];
if(chk.checked==false)
{
alert("如果想指定Chamber去auto run,可以把“Check with RCP”前边的勾去掉,Recipe里填写recipe name_chamber list(或者中划线“-”)");
if(areaValue=="PHOTO" || areaValue=="S1A-PHOTO" || areaValue=="S1B-PHOTO" ||areaValue=="S1C-PHOTO" || areaValue=="M1A-PHOTO" || areaValue=="M1B-PHOTO" || areaValue=="M1C-PHOTO" || areaValue=="SXA-PHOTO" || areaValue=="SXC-PHOTO")
trackOutRecipe.value="recipe name_chamber list";
else
stepForm.elements["stepForm.recipe"].value="recipe name_chamber list";
}
else
{
alert("请填写正确的Recipe");
if(areaValue=="PHOTO" || areaValue=="S1A-PHOTO" || areaValue=="S1B-PHOTO" ||areaValue=="S1C-PHOTO" || areaValue=="M1A-PHOTO" || areaValue=="M1B-PHOTO" || areaValue=="M1C-PHOTO" || areaValue=="SXA-PHOTO" || areaValue=="SXC-PHOTO")
trackOutRecipe.value="waiting Pi_Run Result";
else
stepForm.elements["stepForm.recipe"].value="waiting Pi_Run Result";
}
}
function clearSpec(){
var stepForm=document.forms['stepForm'];
stepForm.elements['stepForm.spec'].value="";
}
function showSpec(){
var stepForm=document.forms['stepForm'];
//stepForm.elements['stepForm.spec'].value="";
var value= stepForm.elements['stepForm.ecdPlanName'].value;
if(value==""){
alert("Please input the EdcPlan");
return false;}
window.open('showSpec.action?requestFormId=113203&edcPlan=' + value + '','','status=no,scrollbars=yes,location=no,resizable=yes,left=0,top=200,width=760');
}
function changeByArea(object){
var stepForm=document.forms['stepForm'];
if($F("stepForm.fabName")==""){
alert("Please select the fab area !");
return false;
}
var value=object.value;
var eqpId=stepForm.elements["stepForm.eqpMode"].value;
var eqpValue=stepForm.elements["stepForm.eqpModeName"].value;
if(eqpId=="Eqp ID"){
if(eqpValue=="dummy" ||eqpValue=="DUMMY" || eqpValue.indexOf("DMY02")!=-1){ //DMY02 for cension
if(areaValue=="PHOTO" || areaValue=="S1A-PHOTO" || areaValue=="S1B-PHOTO" ||areaValue=="S1C-PHOTO" || areaValue=="M1A-PHOTO" || areaValue=="M1B-PHOTO" || areaValue=="M1C-PHOTO" || areaValue=="SXA-PHOTO" || areaValue=="SXC-PHOTO"){
alert("Please do not set area as PHOTO for DUMMY Eqp ID!")
stepForm.elements["stepForm.area"].focus();
}
}
}
stepForm.elements["stepForm.eqpModeName"].value="";
if(typeof stepForm.elements["stepForm.recipe"]!= "undefined")
stepForm.elements["stepForm.recipe"].value="";
if(typeof stepForm.elements["stepForm.trackOutRecipe"]!= "undefined")
stepForm.elements["stepForm.trackOutRecipe"].value="";
stepForm.action="changeArea.action?stepForm.recipeType=Production";
checkboxSync();
stepForm.submit();
}
function changeValeuToNumber(object){
var objectValue=object.value;
var pattern = /[^\d\.\+\-]/g;
if(pattern.test(objectValue)){
alert("请输入正确的数字格式");
object.value="";
object.focus();
}
if("energyStep"==object.id)
{if( eval(objectValue)>1000 || eval(objectValue)<-1000.0)
{ alert("EnergyStep的范围在 (-1000~1000).");
object.value="";
object.focus();
}
}
if("focusStep"==object.id)
{if( eval(objectValue)>2 || eval(objectValue)<-2)
{ alert("FocusStep的范围在 (-2~2).");
object.value="";
object.focus();
}
}
}
function eqpToUpper(object){
var form = document.forms['stepForm'];
var mode=form.elements["stepForm.eqpMode"].value;
var areaValue=form.elements["stepForm.area"].value;
var value=object.value;
var reg=/\s/g;
var stringLength=value.replace(reg,"");
if(mode!="Eqp Group"){
object.value=stringLength.toUpperCase();
}
if(mode=="Eqp ID"){
if(stringLength.length>7)
{alert("最多7个字符!");
object.value="";
object.focus();
return false;
}
if(stringLength=="dummy" ||stringLength=="DUMMY" || stringLength.indexOf("DMY02")!=-1){ //DMY02 for cension
if(areaValue=="PHOTO" || areaValue=="S1A-PHOTO" || areaValue=="S1B-PHOTO" ||areaValue=="S1C-PHOTO" || areaValue=="M1A-PHOTO" || areaValue=="M1B-PHOTO" || areaValue=="M1C-PHOTO" || areaValue=="SXA-PHOTO" || areaValue=="SXC-PHOTO"){
alert("Please do not set area as PHOTO for DUMMY Eqp ID!");
form.elements["stepForm.area"].focus();
return false;
}
if (typeof form.elements["stepForm.recipe"]!= "undefined"){
form.elements["stepForm.recipe"].value="DUMMY";
form.elements["stepForm.recipe"].className="TextBoxReadOnly";
// checkNA(form.elements['stepForm.contaminationFlag']);
}
}else if(typeof form.elements["stepForm.recipe"]!= "undefined")
form.elements["stepForm.recipe"].className="TextBoxReadWrite";
}
}
function scannerToUpper(){
var form = document.forms['stepForm'];
var element = form.elements["stepForm.scannerRecipe"];
element.value =element.value.toUpperCase();
}
function trackToUpper(){
var form = document.forms['stepForm'];
var element = form.elements["stepForm.trackOutRecipe"];
element.value =element.value.toUpperCase();
}
function recipeToUpper(){
var form = document.forms['stepForm'];
var element = form.elements["stepForm.recipe"];
element.value =element.value.toUpperCase();
}
function getStepLotInfo(){
var form = document.forms['stepForm'];
var chk= form.elements['rcpCheck'];
var noStepNo= form.elements['noStepNoPar'];
if (typeof form.elements["noStepNoPar"]!= "undefined"){
if (!noStepNo.checked && form.elements["stepForm.stepNo"].value==""){
alert("Please input step No.");
form.elements["stepForm.stepNo"].focus();
return false;
}
if (noStepNo.checked && form.elements["stepForm.stepNo"].value!=""){
alert("Please unCheck NA.");
return false;
}
}
form.action="updateStepInfo.action?ercParams=true";
checkboxSync();
disableButton();
form.submit();
}
function checkBoxValue(param){
var returnPara=param;
var form = document.forms['stepForm'];
var chk= form.elements['rcpCheck'];
var noStepNo= form.elements['noStepNoPar'];
if (typeof form.elements["noStepNoPar"]!= "undefined"){
}
return returnPara;
}
function checkPageToSubmit(){
var form = document.forms['stepForm'];
var chk= form.elements['rcpCheck'];
var noStepNo= form.elements['noStepNoPar'];
var eqpID=$F("stepForm.eqpMode");
var eqpIDValue=$F("stepForm.eqpModeName");
var areaValue=$F("stepForm.area");
var stepNo=form.elements["stepForm.stepNo"];
if (typeof form.elements["noStepNoPar"]!= "undefined"){
var elementMes = form.elements["stepForm.stepNoMes"].value;
var element = form.elements["stepForm.stepNo"].value;
if (elementMes==null || element!=elementMes){
alert("Please click [go] to get MES information.");
form.elements["stepForm.stepNo"].focus();
return false;
}
}
EndQtimeHanle(113228);
if((eqpIDValue=="dummy" || eqpIDValue=="DUMMY")&& (areaValue=="PHOTO" || areaValue=="S1A-PHOTO" || areaValue=="S1B-PHOTO" ||areaValue=="S1C-PHOTO" || areaValue=="M1A-PHOTO" || areaValue=="M1B-PHOTO" || areaValue=="M1C-PHOTO" || areaValue=="SXA-PHOTO" || areaValue=="SXC-PHOTO") && eqpID=="Eqp ID"){
alert("Please do not set area as PHOTO for DUMMY Eqp ID!");
$("stepForm.area").focus();
return false;
}
if (typeof form.elements["noStepNoPar"]!= "undefined"){
if (!noStepNo.checked && form.elements["stepForm.stepNo"].value==""){
alert("Please input step No.");
form.elements["stepForm.stepNo"].focus();
return false;
}
if (noStepNo.checked && form.elements["stepForm.stepNo"].value!=""){
alert("Please unCheck NA.");
return false;
}
}
if(form.elements['stepForm.slotId'].value!="")
{ if(form.elements['stepForm.ecdPlanName'].value=="")
{alert("Please Input Corrective EDC Plan Name!");
form.elements['stepForm.ecdPlanName'].focus();
return false;}
}
if(form.elements['stepForm.ecdPlanName'].value!="")
{
if(form.elements['stepForm.slotId'].value=="")
{
alert("Please select SlotId!");
return false;
}
else
{
if(!checkWaferIdIsEqualSlotId(form)){
alert("Meas slot id is not in wafer id list");
return false;
}
}
}
if (typeof form.elements["stepForm.spec"]!= "undefined"){
var element = form.elements["stepForm.spec"].value;
if (element==""&&form.elements['stepForm.slotId'].value!=""){
alert("Please Input Corrective EDC Plan Name!");
form.elements["stepForm.ecdPlanName"].focus();
return false;
}
}
if (typeof form.elements["stepForm.area"]!= "undefined"){
var element = form.elements["stepForm.area"].value;
if (element=="Please Select"){
alert("Please select area.");
form.elements["stepForm.area"].focus();
return false;
}
}
if (typeof form.elements["stepForm.waferId"]!= "undefined"){
var element = form.elements["stepForm.waferId"].value;
if (element==""){
alert("Please select waferId.");
form.elements["stepForm.waferId"].focus();
return false;
}
}
if (typeof form.elements["stepForm.eqpModeName"]!= "undefined"){
var element = form.elements["stepForm.eqpModeName"].value;
var elementFlag = form.elements["stepForm.contaminationFlag"].value;
if (element=="" || element=="NA"){
alert("Equipment ID/Group can not be null or NA!");
form.elements["stepForm.eqpModeName"].focus();
return false;
}
if((element=="DUMMY" || element.indexOf("DMY02")!=-1)&& elementFlag!="NA"){
alert("EQPName is DUMMY.You must select the Contamination Flag 'NA'!");
return false;
}
}
if (typeof form.elements["stepForm.recipe"]!= "undefined"){
var element = form.elements["stepForm.recipe"].value;
if (element==""){
alert("Recipe can not be null");
form.elements["stepForm.recipe"].focus();
return false;
}
}
if (typeof form.elements["stepForm.area"]!= "undefined"){
var element = form.elements["stepForm.area"].value;
if (element==""){
alert("Area can not be empty");
form.elements["stepForm.area"].focus();
return false;
}
}
if (typeof form.elements["stepForm.scannerRecipe"]!= "undefined"){
var element = form.elements["stepForm.scannerRecipe"].value;
if (element==""){
alert("Scanner Recipe can not be null");
form.elements["stepForm.scannerRecipe"].focus();
return false;
}
}
if (typeof form.elements["stepForm.trackOutRecipe"]!= "undefined"){
var element = form.elements["stepForm.trackOutRecipe"].value;
if (element==""){
alert("Track Recipe can not be null");
form.elements["stepForm.trackOutRecipe"].focus();
return false;
}
}
if (typeof form.elements["stepForm.waferSlotId"]!= "undefined"){
var element = form.elements["stepForm.waferSlotId"].value;
if (element==""){
alert("Wafer/Slot Id can not be null");
form.elements["stepForm.waferSlotId"].focus();
return false;
}
}
if (typeof form.elements["stepForm.contaminationFlag"]!= "undefined"){
var element = form.elements["stepForm.contaminationFlag"].value;
var eqpName = form.elements["stepForm.eqpModeName"];
if (element=="Please Select"){
alert("Please Select Contamination Flag:");
form.elements["stepForm.contaminationFlag"].focus();
return false;
}
}
if (typeof form.elements["stepForm.remark"]!= "undefined"){
var element = form.elements["stepForm.remark"].value;
if(element.length>150)
{
alert("Remark 最多150个字符");
return false;
}
if(element.indexOf(">")!=-1 ||element.indexOf("<")!=-1){
alert("Remark can not have special character!");
form.elements["stepForm.remark"].focus();
return false;
}
if (element==""){
alert("Remark can not be null!");
form.elements["stepForm.remark"].focus();
return false;
}else{
removeEnter(form.elements["stepForm.remark"]);
}
}
if (typeof form.elements["stepForm.reticleId"]!= "undefined"){
var element = form.elements["stepForm.reticleId"].value;
if (element==""){
alert("ReticleID can not be null!");
form.elements["stepForm.reticleId"].focus();
return false;
}
}
if (typeof form.elements["stepForm.energy"]!= "undefined"){
var element = form.elements["stepForm.energy"].value;
if (element==""){
alert("Energy can not be null!");
form.elements["stepForm.energy"].focus();
return false;
}
}
if (typeof form.elements["stepForm.focus"]!= "undefined"){
var element = form.elements["stepForm.focus"].value;
if (element==""){
alert("Focus can not be null!");
form.elements["stepForm.focus"].focus();
return false;
}
}
if (typeof form.elements["stepForm.ovlData"]!= "undefined"){
var element = form.elements["stepForm.ovlData"].value;
if (element==""){
alert("OVL Data can not be null!");
form.elements["stepForm.ovlData"].focus();
return false;
}
}
if (typeof form.elements["stepForm.fabName"]!= "undefined"){
var element = form.elements["stepForm.fabName"].value;
if (element==""){
alert("Please Select the Fab Area!");
form.elements["stepForm.fabName"].focus();
return false;
}
}
if( typeof form.elements["stepForm.energyStep"]!= "undefined")
{
if(""==$F("stepForm.energyStep"))
{
alert("Please input the energyStep");
$("stepForm.energyStep").focus();
return false;
}
}
if( typeof form.elements["stepForm.focusStep"]!= "undefined")
{
if(""==$F("stepForm.focusStep"))
{
alert("Please input the energyStep");
$("stepForm.focusStep").focus();
return false;
}
}
form.action="addStepForm.action?ercParams=true";
checkboxSync();
disableButton();
form.submit();
}
function checkWaferIdIsEqualSlotId(object){
//第二个参数中的 g 表示全部匹配,i表示忽略大小写
var regS = new RegExp("S","gi");
var regS1=new RegExp("#","gi");
var slotIds;
var waferIds;
var slotId=object.elements["stepForm.slotId"].value;
var waferId=object.elements["stepForm.waferId"].value;
if(slotId.indexOf("S")!=-1){
slotIds=slotId.replace(regS,"");
}else{
slotIds=slotId.replace(regS1,"");
}
if(waferId.indexOf("S")!=-1){
waferIds=waferId.replace(regS,"");
}else{
waferIds=waferId.replace(regS1,"");
}
var array=slotIds.split(",");
for(var i=0;i<array.length;i++){
if(waferIds.indexOf(array[i])==-1) return false;
}
return true;
}
function removeEnter(object)
{
var regS = new RegExp(/\s*(.*?)\s*(\r\n)\s*/mg);
var s = object.value;
object.value = s.replace(regS, "$1"); //回车前后的空格都替换掉
}
function showWaferId(){
var windowOptions = "directories=no,location=no,width=700,height=500,alwaysRaised=yes,resizable=yes,scrollbars=yes";
var win= window.open('showWaferId.action?w&requestFormId=113203','stepFormWaferid','left=500,top=20,width=150,height=450');
win.focus();
}
function showSlotId(){
var win=window.open('showSlotId.action?s&requestFormId=113203','stepFormSlotid','left=500,top=20,width=150,height=450');
win.focus();
}
function showWaferIdStr(){
var windowOptions = "directories=no,location=no,width=700,height=500,alwaysRaised=yes,resizable=yes,scrollbars=yes";
var win= window.open('showWaferIdStr.action?w&requestFormId=113203','stepFormWaferid','left=500,top=20,width=150,height=450');
win.focus();
}
function showSlotIdStr(){
var win=window.open('showSlotIdStr.action?s&requestFormId=113203','stepFormSlotid','left=500,top=20,width=150,height=450');
win.focus();
}
function check(object){
var Number ="0123456789";
var holdStepNo="01600";
var repositStepNo="01600";
var stepNo=object.value;
for (i = 0; i < stepNo.length;i++){
var c = stepNo.charAt(i);
if(Number.indexOf(c)==-1){
alert("StepNo must be number!");
object.value="";
object.focus();
return false;
}
}
/*if(eval(stepNo)>eval(repositStepNo)||eval(stepNo)<eval(holdStepNo) )
{ alert("StepNo: "+stepNo+" must be between "+holdStepNo+" and "+repositStepNo);
object.value="";
object.focus();
return false;
}*/
}
function checkRemarkLength(object){
var value=object.value;
if(value.length>150){
alert("Remark 最多150个字符");
return false;
}
var pattern = /[^\x00-\xff]/;
if('Normal'=="Scan Defect" && pattern.test(object.value)){
alert("只能输入英文!");
object.focus();
return false;
}
}
function checkEqpID(eqpID){
var form = document.forms['stepForm'];
var areaValue=form.elements["stepForm.area"].value;
form.elements["stepForm.eqpModeName"].value="";
if(typeof form.elements["stepForm.recipe"]!= "undefined")
form.elements["stepForm.recipe"].value="";
if(typeof form.elements["stepForm.trackOutRecipe"]!= "undefined")
form.elements["stepForm.trackOutRecipe"].value="";
var eqpId=eqpID.value;
var eqpValue=form.elements["stepForm.eqpModeName"].value;
var reg=/\s/g;
var stringLength=eqpValue.replace(reg,"");
if(eqpId=="Eqp ID"){
if(stringLength.length>7)
{alert("最多7个字符!请重新输入Eqp ID");
form.elements["stepForm.eqpModeName"].value="";
form.elements["stepForm.eqpModeName"].focus();
return false;
}
if(eqpValue=="dummy" ||eqpValue=="DUMMY" || eqpValue.indexOf("DMY02")!=-1){ //DMY02 for cension
if(areaValue=="PHOTO" || areaValue=="S1A-PHOTO" || areaValue=="S1B-PHOTO" ||areaValue=="S1C-PHOTO" || areaValue=="M1A-PHOTO" || areaValue=="M1B-PHOTO" || areaValue=="M1C-PHOTO" || areaValue=="SXA-PHOTO" || areaValue=="SXC-PHOTO")
{
alert("Please do not set area as PHOTO for DUMMY Eqp ID!");
form.elements["stepForm.area"].focus();
return false;
}
if(typeof form.elements["stepForm.recipe"]!= "undefined"){
form.elements["stepForm.recipe"].value="DUMMY";
form.elements["stepForm.recipe"].className="TextBoxReadOnly";
}
}
}else if(typeof form.elements["stepForm.recipe"]!= "undefined")
form.elements["stepForm.recipe"].className="TextBoxReadWrite";
}
</script>
<div class="app">
<h3 class="center">Add Runcard Step</h3>
<form
name="stepForm" action="/erc/stepForm/addStepForm.action" method="post" onsubmit="return(stepForm_validate())"
>
<table class="wwFormTable">
<input
type="hidden"
name="requestFormId" value="113203" /><input
type="hidden"
name="stepFormId" /><input
type="hidden"
name="command" value="normal" /><input
type="hidden"
name="stepForm.RCP" value="on" /><input
type="hidden"
name="stepForm.noStepNo" value="uncheck" /><input
type="hidden"
name="stepForm.stepNoMes" value="01700" />
<input type="hidden" name="stepForm.measurementSpecNo" id="measurementSpecNo" value=""/>
<TABLE STYLE="display:none" BORDER=0 CELLSPACING=0 CELLPADDING=0>
<select name="strCondition"
>
</select> </TABLE>
<table border="0" cellspacing="1" cellpadding="8" width="100%">
<tr class="b">
<td>* Fab Area:</td>
<td>
<select name="stepForm.fabName"
onchange="changeShow(this)" >
<option value=""></option>
<option value="A" >A</option>
<option value="B" >B</option>
<option value="C" >C</option>
<option value="FAB7" >FAB7</option>
<option value="FAB11" >FAB11</option>
<option value="FAB15" >FAB15</option>
<option value="FABJ1A" >FABJ1A</option>
</select></td>
<td>StepNo:</td>
<td>
NA
<input type="checkbox" name="noStepNoPar" value="true"
/><input type="text"
name="stepForm.stepNo"
size="10" value="01700" id="stepNo" onblur="check(this)" />
<input type="button" value="Go" onclick="getStepLotInfo();" >
<input type="button" name="getStepList" value="ViewFutureStep" class="btn" onclick="doViewFutureStep('stepNo','getStepLotInfo()');">
<font color="red">(RunCard Step与MES Step做Compare)</font></td>
</tr>
<tr class="b" id="area" >
<td>* Area:</td>
<td colspan="3">
<select name="stepForm.area"
onchange="changeByArea(this)" >
<option value=""></option>
</select>
Check With RCP<input type="checkbox" name="rcpCheck" value="true"
checked="checked" onclick="defalutValue();" />
</td>
</tr>
<tr id="showRemark" style="display:none;background: #efefef">
<td colspan="4">
<pre><font color="red" face="Arial">Is it Batch run at chamber:
ADASM01_N&ADASM01_O or ADASM02_P&ADASM02_G or BDASM91_H&BDASM91_P
If it is auto run, please fill in the special Eqp Group :
ADVF_RCN_1&ADVF_RCO_1 or ADVF_RCP_1&ADVF_RCG_1 or ADVF_RCH_1&ADVF_RCP_2</font></pre>
</td>
</tr>
<tr class="b">
<td>* Equipment:</td>
<td colspan="3"><select name="stepForm.eqpMode"
onchange="checkEqpID(this)" >
<option value="Eqp ID" >Eqp ID</option>
<option value="Eqp Group" selected="selected">Eqp Group</option>
</select>:<input type="text"
name="stepForm.eqpModeName"
size="25" value="JMD_SRD_C" onblur="eqpToUpper(this)" /><font color="red"> (Eqp Group区分大小写.输入的Eqp ID 的最大长度为7位!)</font></td>
</tr>
<tr class="b" >
<td>* Recipe:</td>
<td colspan="3"><input type="input" name="stepForm.recipe" size="40" value="DI clean"/> <font color="red">(区分大小写)</font></td>
</tr>
<tr class="b">
<td>* Wafer ID:</td>
<td colspan="3">
<input type="text" readonly="true" name="stepForm.waferId" value="#02,#03,#04,#05,#06,#07,#08,#09,#10,#11,#12,#13,#14,#15,#16,#17,#18,#19,#20,#21,#22,#23,#24,#25" id="wId" size="75" onclick="showWaferId()"/>
Qty.:<input type="text" name="stepForm.waferIdQty" value="24" size="10" id="wQty" Style="background: #efefef;border:none"/>
</td>
</tr>
<tr class="b">
<td>MeasSlotId:</td>
<td colspan="3"><input type="text" readonly="true" name="stepForm.slotId" value="" id="sId" size="75" onclick="showSlotId();"/>
Qty.:<input type="text" name="stepForm.slotIdQty" value="" size="10" id="sQty" Style="background: #efefef;border:none"/></td>
</tr>
<tr class="b">
<td>* Contamination Flag: </td>
<td colspan="3">
<select name="stepForm.contaminationFlag"
onchange="checkNA(this)" >
<option value="Please Select">Please Select</option>
<option value="1--Front end w/o PR" >1--Front end w/o PR</option>
<option value="2--Front end w/i PR (photo-resist)" >2--Front end w/i PR (photo-resist)</option>
<option value="3--TiSix (eDRAM process)" >3--TiSix (eDRAM process)</option>
<option value="4--Metal (W/Ti/TiN/AI-Cu) w/o PR" >4--Metal (W/Ti/TiN/AI-Cu) w/o PR</option>
<option value="5--Metal (W/Ti/TiN/AI-Cu) w/i PR (photo-resist)" >5--Metal (W/Ti/TiN/AI-Cu) w/i PR (photo-resist)</option>
<option value="6--Cobalt salicide" >6--Cobalt salicide</option>
<option value="6.5--Cosix process b/f glue layer dep" >6.5--Cosix process b/f glue layer dep</option>
<option value="7--Metal CAP dielectric" >7--Metal CAP dielectric</option>
<option value="NA" >NA</option>
</select>
<b> current lot's contamination level:
Please refer to Queen.
</b>
</td>
</tr>
<tr class="b">
<td colspan="4"><strong>实际下货Tools:</strong></td>
</tr>
<tr class="b">
<td>* Remark:</td>
<td colspan="3"><textarea name="stepForm.remark"
cols="35"
rows="3"
value="" onblur="checkRemarkLength(this)" ></textarea><font color="red">(如果输入中文,Runcard只能Manual Run!!)</font></td>
</tr>
<tr class="b">
<td>EDC Plan Name:</td>
<!--onchange="showSpec();" -->
<td colspan="3"><input type="text" name="stepForm.ecdPlanName" onchange="clearSpec();" value="" size="20" /><input type="button" onclick="showSpec();" value="Go"></td>
</tr>
<!-- Modity-->
<tr class="b">
<td>量测规格SPEC</td>
<td colspan="3">
<textarea name="stepForm.spec"
cols="65"
rows="2"
value="" readonly="readonly" id="spec" style="background: #efefef;border:none" ></textarea> </td>
</tr>
</table>
<h3>Runcard Qtime Inforamtion</h3>
<table width="100%">
<tr>
<td bgcolor="#87CEFA" colspan=9>
<b>
Qtime Configuration
<font color="#0000FF">End </font>
at this Step in Mainflow,pls select the 'Action'.
</b>
</td>
</tr>
<tr style="display:none">
<td>
<input type="text"
name="allEndQtimeHandle"
/> </TD>
</tr>
<tr>
<td bgcolor="#E6E6FA" width=15% colspan=2><b>End Qtime info:</b></td>
<td bgcolor="#E6E6FA" colspan=7>
<TABLE border=0 cellSpacing=1 cellSpacing=1 width="100%">
<TR>
<TD >Plan ID </TD>
<TD >Plan Ver </TD>
<TD >StrStepSeq</TD>
<TD ><font color="#0000FF"><B>EndStepSeq</font></TD>
<TD >IntervalTime</TD>
<TD >ControlType</TD>
<TD >ExpireAction</TD>
<TD >Action</TD>
</TR>
<TR>
<TD >JLF100UPI0L01</TD>
<TD >15</TD>
<TD >01600</TD>
<TD ><font color="#0000FF"><B>01700</font></TD>
<TD >60</TD>
<TD >Max Time</TD>
<TD >Hold Lot</TD>
<TD >
<select name="endQtimeHanle113228"
onchange="EndQtimeHanle(113228)" >
<option value="Mapping" >Mapping</option>
<option value="NULL" >NULL</option>
</select> </TD>
</TR>
</Table>
</td>
</tr>
</table>
<table width="100%">
<tr class="a">
<tr class="b"><td colspan="4" class="center"><input type="button" onclick="checkPageToSubmit()" value="Submit" class="btn1" /> <input type="Button" class="btn1" value="Close" onclick="window.close();"></td>
</tr>
</table>
</table>
<script>
function stepForm_validate() {
var form = document.forms['stepForm'];
var focus = stepForm_validate_actual();
if (focus != null) {
element = form.elements[focus];
if(element.length > 0){
element = element[0];
}
element.focus();
if (element.type == 'text' || element.type == 'textarea') {
element.select();
}
return false;
} else {
disableButton();
return true;
}
}
function stepForm_validate_actual() {
var form = document.forms['stepForm'];
// cannot find any applicable validators
return null;
}
</script>
</form>
<h3>Runcard Step Inforamtion</h3>
<script>
function updateWaferGroupResult(){
var form = document.forms['updateRequestForm'];
form.action="updateWaferGroupResult.action";
form.submit();
}
</script>
<table border="0" cellspacing="1" cellpadding="8" width="100%">
<tr class="a">
<td><strong>Step List:</strong>
<a href="#1"><strong>1</strong></a>
</td>
</tr>
</table>
<table border="0" cellspacing="1" cellpadding="8" width="100%">
<tr class="a">
<td>Fab Area:</td>
<td>
FABJ1A
</td>
<td>NA<input type="checkbox" disabled="true"> Step No: 01600</td>
<td></td>
</tr>
<tr class="b">
<a name="1">
<td>Area:</td>
<td >YE&FQC</td>
<td>Check With RCP<input type="checkbox" disabled="true"></td>
<td>Step Serial No: <strong>1</strong></td>
</tr>
<tr class="b">
<td>Equipment:</td>
<td colspan="3">Eqp Group: JME_MET_ET1</td>
</tr>
<tr class="b">
<td>Recipe:</td>
<td colspan="3">CPBET3KA</td>
</tr>
<tr class="b">
<td>Wafer ID:</td>
<td colspan="2">#02,#03,#04,#05,#06,#07,#08,#09,#10,#11,#12,#13,#14,#15,#16,#17,#18,#19,#20,#21,#22,#23,#24,#25</td><td>Qty.: 24</td>
</tr>
<tr class="b">
<td>Contamination Flag: </td>
<td colspan="3">NA</td>
</tr>
<tr class="b">
<td colspan="4">实际下货Tools:</td>
</tr>
<tr class="b">
<td>Remark:</td>
<td colspan="3">1</td>
</tr>
<tr>
<td bgcolor="#87CEFF" colspan=9>
<b>
Qtime Configuration
<font color="#0000FF">Start </font>
at this Step in Mainflow,need setting after 'add the step':
</b>
</td>
</tr>
<tr >
<td bgcolor="#DCDCDC" width=15% colspan=2><b>Qtime info:</b></td>
<td bgcolor="#DCDCDC" colspan=7>
<TABLE border=0 cellSpacing=1 cellSpacing=1 width="100%">
<TR>
<TD >Plan ID </TD>
<TD >Plan Ver </TD>
<TD ><font color="#0000FF"><B><Red>StrStepSeq</font></TD>
<TD >EndStepSeq</TD>
<TD >IntervalTime</TD>
<TD >ControlType</TD>
<TD >ExpireAction</TD>
<TD >mpsStepSeq</TD>
</TR>
<TR>
<TD >JLF100UPI0L01</TD>
<TD >15</TD>
<TD ><font color="#0000FF"><B>01600</font></TD>
<TD >01700</TD>
<TD >60</TD>
<TD >Max Time</TD>
<TD >Hold Lot</TD>
<TD ></TD>
</TR>
</Table>
</td>
</tr>
</script>
<tr class="a">
<td colspan="4" class="center">
<input type="button" value="Update" class="btn1" onclick="window.location.href='viewStepForm.action?requestFormId=113203&stepFormId=113212&command=YE&FQC'" />
<input type="button" class="btn1" value="Delete" onclick="window.location.href='deleteStepForm.action?requestFormId=113203&stepFormId=113212'"/>
<input type="Button" class="btn1" value="Close" onclick="window.close();">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="4">
</td></tr>
<tr bgcolor="#FFFFFF">
<td colspan="4">
</td></tr>
</table>
<table border="0" cellspacing="1" cellpadding="8" width="100%">
<script>
function doQTime(groupResult){
var form = document.forms['updateRequestForm'];
form.action="comeinQTime.action?method=fromMainPage&groupResultId="+groupResult;
form.submit();
}
function doMainFlowQTime(groupResult){
var form = document.forms['updateRequestForm'];
form.action="comeinMainFlowQTime.action?method=fromMainPage&groupResultId="+groupResult;
form.submit();
}
</script>
<tr class="b">
<th colspan="4">Group Result</th>
</tr>
<tr class="b">
<td colspan="4">
<table border="0" cellspacing="1" cellpadding="8" width="100%">
<input
type="hidden"
name="groupResults[0].id" value="113213" /> <tr class=odder>
<td><b>Wafer List</b></td>
<td colspan=2 align=left><b>Step List</b></td>
<td colspan=2><b>QTime(m)</b></td>
<td></td>
</tr>
<tr class=odder>
<td>#02,#03,#04,#05,#06,#07,#08,#09,#10,#11,#12,#13,#14,#15,#16,#17,#18,#19,#20,#21,#22,#23,#24,#25</td>
<td width=15% colspan=2 align=left>01</td>
<td colspan=2>
<table border="0" cellspacing="1" cellpadding="8" width="100%">
<tr><TD><B>Type:</B>Max Time
<B>Period:</B>60
<B>From:</B>1
<B>To:</B>01700
<B>mpsStepSeq:</B>
<B>Action:</B>Hold Lot</TD></tr>
</table>
</td>
<td>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
<script>
function doViewFutureStep(callField,functionCall) {
var employeeSearchPopup;
var windowOptions = "directories=no,location=no,width=700,height=500,alwaysRaised=yes,resizable=yes,scrollbars=yes";
employeeSearchPopup = window.open('../user/popUpFetchStepInfo.action?method=peFetchStepInfo&catalogue=StepSeq&fetchDirection=0&requestFormId=113203', 'employeeSearchPopup', windowOptions);
employeeSearchPopup.focus();
callback = function (employeeNo){
document.getElementById(callField).value = employeeNo;
employeeSearchPopup.close();
if (functionCall!=null) eval(functionCall);
};
}
</script>
最新发布