E. Special Elements

算法题解题思路与代码详解

题目:

 样例:

输入
5
9
3 1 4 1 5 9 2 6 5
3
1 1 2
5
1 1 1 1 1
8
8 7 6 5 4 3 2 1
1
1

输出
5
1
0
4
0

思路:

        思维题,这里关键是  连续 这个方面,我们可以先统计一下 a 数组相应的元素有多少个

然后利用 连续 的特征性质,遍历每个数组  元素 作为起点 往后累加,一旦大于该元素 停止累加,然后查找我们 连续累加 所得的对应结果,我们 a 数组里有没有出现过,累加答案即可

代码详解如下:

#include <iostream>
#include <unordered_map>
#define endl '\n'
#define umap unordered_map
#pragma GCC optimize(3,"Ofast","inline")
#define ___G std::ios::sync_with_stdio(false),cin.tie(0), cout.tie(0)
using namespace std;
const int N = 2e6 + 10;

umap<int, int>a, r;	// 这里是 a 数组 和 记忆数组

inline void solve()
{
	r.clear();	// 清空我们之前统计过的元素

	int n, ans = 0;
	cin >> n;
	for (int i = 0, x; i < n; ++i)
	{
		cin >> x;

		a[i] = x;

		r[x]++;	// 统计元素出现次数
	}

	for (int i = 0; i < n; ++i)
	{
		int sum = a[i];	//第 i 个元素作为起点
		for (int j = i + 1; j < n; ++j)
		{
			sum += a[j];	// 累加连续数组

			ans += r[sum];	// 答案累加统计出现的元素
			r[sum] = 0;		// 重新赋值初始化,省去下一次循环的初始化

			// 如果累加的元素超过了我们上限累加的范围,
			// 那么肯定不再存在,退出循环。
			// 这里 ai 的数据范围是   <= n ,所以最坏结果就是 n 个 n ,按道理来说累加上限就是  n * n
			// 但是题目给出的是

			// It is guaranteed that the sum of the values of n for all test cases in the input does not exceed 8000.

			// 也就是  n 个 ai 中连续累加 一定不超过  8000  ,又因为 2 <= n <= 8000  ,所以我们累加上限就是 n
			if (sum > n)
			{
				break;
			}

		}
		a[i] = 0;	// 初始化当前 a 数组的这个 元素
	}
	cout << ans << endl;
}


int main()
{
//	freopen("a.txt", "r", stdin);
	___G;
	int _t = 1;
	cin >> _t;
	while (_t--)
	{
		solve();
	}

	return 0;
}

 最后提交:

``` from abc import ABC, abstractmethod from enum import Enum import numpy as np import pyvista as pv from scipy import sparse from scipy.sparse import linalg from scipy.special import gamma from .models import IrregularMesh, ModelType from . import utils GRAD_2D = np.array([[-1.0, 1.0, 0.0], [-1.0, 0.0, 1.0]]) GRAD_3D = np.array([[-1.0, 1.0, 0.0, 0.0], [-1.0, 0.0, 1.0, 0.0], [-1.0, 0.0, 0.0, 1.0]]) class BC(Enum): NEUMANN = 1 ROBIN = 2 class MaternField(ABC): @abstractmethod def generate_field(): pass class MaternField2D(MaternField): def __init__(self, mesh, model_type=ModelType.MODEL3D): self.dim = 2 self.nu = 2 - self.dim / 2 self.model_type = model_type if model_type == ModelType.MODEL2D: points = [cell.centre for cell in mesh.m.cell] self.inds = [0, 2] # The x and z coordinates vary elif model_type == ModelType.MODEL3D: points = [[*col.centre, 0] for col in mesh.m.column] self.inds = [0, 1] # The x and y coordinates vary self.fem_mesh = pv.PolyData(points).delaunay_2d() self.get_mesh_data() self.build_fem_matrices() def get_mesh_data(self): """Extracts information on the points, elements and boundary facets of the mesh.""" self.fem_mesh["inds"] = np.arange(self.fem_mesh.n_points, dtype=np.int64) self.points = self.fem_mesh.points[:, self.inds] self.elements = self.fem_mesh.regular_faces boundary = self.fem_mesh.extract_feature_edges(boundary_edges=True, feature_edges=False, non_manifold_edges=False, manifold_edges=False) boundary_points = boundary.cast_to_pointset()["inds"] boundary_facets = boundary.lines.reshape(-1, 3)[:, 1:] self.boundary_facets = [boundary_points[f] for f in boundary_facets] self.n_points = self.fem_mesh.n_points self.n_elements = self.fem_mesh.n_cells self.n_boundary_facets = len(self.boundary_facets) def build_fem_matrices(self): """Builds the FEM matrices required for generating Matern fields in two dimensions.""" M_i = np.zeros((9 * self.n_elements, )) M_j = np.zeros((9 * self.n_elements, )) M_v = np.zeros((9 * self.n_elements, )) K_i = np.zeros((9 * self.n_elements, )) K_j = np.zeros((9 * self.n_elements, )) K_v = np.zeros((2, 9 * self.n_elements)) N_i = np.zeros((4 * self.n_boundary_facets, )) N_j = np.zeros((4 * self.n_boundary_facets, )) N_v = np.zeros((4 * self.n_boundary_facets, )) n = 0 for e in self.elements: for i in range(3): T = np.array([self.points[e[(i+1)%3]] - self.points[e[i]], self.points[e[(i+2)%3]] - self.points[e[i]]]).T detT = np.abs(np.linalg.det(T)) invT = np.linalg.inv(T) for j in range(3): M_i[n] = e[i] M_j[n] = e[j] M_v[n] = (detT * 1/12) if i == j else (detT * 1/24) kl = 1/2 * detT * GRAD_2D[:, 0].T @ invT kr = invT.T @ GRAD_2D[:, (j-i)%3] K_i[n] = e[i] K_j[n] = e[j] K_v[:, n] = kl.flatten() * kr.flatten() n += 1```在代码中进行解释,也就是在每一行后面加一个#解释
03-08
请详细分析下面代码,是否有回滚机制以及如何防止呢: <#import "/decorators/includes/macros.ftl" as m> <#assign ww = JspTaglibs["/WEB-INF/webwork.tld"] /> <#include "/template/includes/actionerrors.ftl"> <script> xmlParse = new function(){ this.xmlDoc = null; this.parse=function(response){ this.xmlDoc = response.responseXML.documentElement; } //取得所有节点 this.getRows=function(_xpath){ return this.xmlDoc.selectNodes(_xpath); } //取得单个节点 this.getRow=function(_xpath){ return this.xmlDoc.selectSingleNode(_xpath); } //取得单个节点的文本值 this.getRowValue=function(_xpath){ return this.xmlDoc.selectSingleNode(_xpath).text; } //取得属性值 this.getRowAttribute=function(_rowItem,attr){ var xpath="@"+attr; return _rowItem.selectSingleNode(xpath).text; } } function checkRuncardStatus(){ var url ="checkFormData.action"; var ajaxRequest = new Ajax.Request( url,{ method: 'post', asynchronous: 'false', parameters: $('requestFormId').serialize(), onComplete: function(transport){ //alert(transport.responseText); xmlParse.parse(transport); var status =xmlParse.getRows("/roots/status"); var flag=status[0].getAttribute("value"); //alert(xmlParse.getRowValue("/roots/status")); if(flag=="nodraft"){ alert("This runcard had been issued, don't click the button of back off in the browser.\n\n Please apply new application !"); } }}); } function checkPageToPreview(){ var form = document.forms['updateRequestForm']; var holdStepNo=form.elements["requestForm.holdStepNo"]; var ercStepNo=form.elements["requestForm.ercStepNo"]; var holdStepNoMes=form.elements["requestForm.holdStepNoMes"]; var ercStepNoMes=form.elements["requestForm.ercStepNoMes"]; clearHoldLotInfo(holdStepNo); clearCompleteLotInfo(ercStepNo); /* remove the Lot Type check. var lotType="${requestForm.lotType?default('')?if_exists}"; var runcardCategory=$F("requestForm.ercCategory"); if(lotType=="P" | lotType=="R" | lotType=="M" |lotType=="B" |lotType=="E1" |lotType=="E2"|lotType=="E3" |lotType=="E9"){ if(runcardCategory!="Input the STR Number" && runcardCategory!="STR" && runcardCategory!="MSTR" ) { alert("Because the lotType is "+lotType+ ". Please select 'the For STR/MSTR lots(Pls input the effective STR or MSTR number)' in RunCard Category, and input the STR# ! "); $("requestForm.ercCategory").focus(); return false; } }*/ if (typeof form.elements["requestForm.lotId"]!= "undefined"){ var element = form.elements["requestForm.lotId"].value; if (element==""){ alert("The Lot field can not be null"); form.elements["requestForm.lotId"].focus(); return false; } } if (typeof form.elements["requestForm.ercRunMode"]!= "undefined"){ if (!form["requestForm.ercRunMode"][0].checked&&!form["requestForm.ercRunMode"][1].checked){ alert("Please choose the Runcard's Follow mode after Runcard completed!"); return false; } } if (typeof form.elements["requestForm.needCheck"]!= "undefined"){ if (!form["requestForm.needCheck"][0].checked&&!form["requestForm.needCheck"][1].checked){ alert("Please choose the check RunCard's Product Id method!"); return false; } } if (typeof form.elements["requestForm.holdStepNo"]!= "undefined"){ var element = form.elements["requestForm.holdStepNo"].value; if (element==""){ alert("The Hold Step No field can not be null"); form.elements["requestForm.holdStepNo"].focus(); return false; } var elementMes = form.elements["requestForm.holdStepNoMes"].value; if (elementMes==null || element!=elementMes){ alert("Please click [go] to get MES information."); form.elements["requestForm.holdStepNo"].focus(); return false; } } if (typeof form.elements["requestForm.holdStepNo"]!= "undefined"){ var element = form.elements["requestForm.holdStepNo"].value; if (element==""){ alert("The Hold Step No field can not be null"); form.elements["requestForm.holdStepNo"].focus(); return false; } } if (typeof form.elements["requestForm.relatedModlue"]!= "undefined"){ var element = form.elements["requestForm.relatedModlue"].value; if (element==""){ alert("You must select related module manager to sign runcard"); form.elements["requestForm.relatedModlue"].focus(); return false; } } if (typeof form.elements["requestForm.E1Mgr"]!= "undefined"){ var element = form.elements["requestForm.E1Mgr"].value; if (element==""){ alert("You must select E1 manager to sign runcard"); form.elements["requestForm.E1Mgr"].focus(); return false; } } if (typeof form.elements["requestForm.mfgMgr"]!= "undefined"){ var element = form.elements["requestForm.mfgMgr"].value; if (element==""){ alert("You must select MFG manager to sign runcard"); form.elements["requestForm.mfgMgr"].focus(); return false; } } if (typeof form.elements["requestForm.ercCategory"]!= "undefined"){ var element = form.elements["requestForm.ercCategory"].value; if (element=="Please Select"){ alert("You must select Runcard Category!"); form.elements["requestForm.ercCategory"].focus(); return false; } } if (typeof form.elements["requestForm.purpose"]!= "undefined"){ var element = form.elements["requestForm.purpose"].value; if(element.length>150){ alert("Remark最多150个字符!"); element.focus(); return false; } if (element==""){ alert("Purpose can not be null!"); form.elements["requestForm.purpose"].focus(); return false; } } if (typeof form.elements["requestForm.strEnNo"]!= "undefined"){ var element = form.elements["requestForm.strEnNo"].value; if (element==""){ if(form.elements["requestForm.ercCategory"].value=="For Customer Request") alert("EN#. can not be null!"); else alert("STR NO#. can not be null!"); form.elements["requestForm.strEnNo"].focus(); return false; } } if (typeof form.elements["requestForm.ercContamination"]!= "undefined"){ var element = form.elements["requestForm.ercContamination"].value; if (element=="Please Select"){ alert("Please select Lot Contamination Flag!"); form.elements["requestForm.ercContamination"].focus(); return false; } } if (typeof form.elements["requestForm.ercStepNo"]!= "undefined"){ var element = form.elements["requestForm.ercStepNo"].value; if (element==""){ alert("Step No#. can not be null!"); form.elements["requestForm.ercStepNo"].focus(); return false; } var elementMes = form.elements["requestForm.ercStepNoMes"].value; if (elementMes==null || element!=elementMes){ alert("Please click [go] to get MES information."); form.elements["requestForm.ercStepNo"].focus(); return false; } } if (typeof form.elements["requestForm.ercEngineerNo"]!= "undefined"){ var element = form.elements["requestForm.ercEngineerNo"].value; if (element==""){ alert("Engineer can not be null!"); form.elements["requestForm.ercEngineerNo"].focus(); return false; } } if (typeof form.elements["requestForm.ercEngineerTel"]!= "undefined"){ var element = form.elements["requestForm.ercEngineerTel"].value; if (element==""){ alert("Engineer Tel. can not be null!"); form.elements["requestForm.ercEngineerTel"].focus(); return false; } } <#if requestForm.formType=="Normal" || requestForm.formType=="Auto Reposition Step"> var wHeight=400; var wWidth=620; var wTop=(screen.height-wHeight)/2; var wLeft=(screen.width-wWidth)/2; var str=window.showModalDialog("stepCompareRule.action?requestFormId=${requestForm.id}","","dialogTop:"+wTop+"px; dialogLeft:"+wLeft+"px;dialogheight :"+wHeight+"px; dialogwidth :"+wWidth+"px; edge: Raised; center: Yes; help: No; resizable: No; status: No; scroll:Yes;"); if(str=="null" || str==undefined || str!="Yes"){ return false; } </#if> form.action="updateRequestForm.action"; form.submit(); } </script> <#if requestForm.status!="DRAFT"><div><font color="red">This runcard had been issued.If you want to apply the case,please click the new application.</font></div></#if> <#if requestForm.haveQtime?has_content><div><font color="red">This runcard information had been stored the MES.If you want to delete this runcard,please click the button(Prview and Cancel Runcard ).If you want to submit it,please click the button (Preview and Continue Runcard)</font></div></#if> <#if (requestForm.match)?default("")=="N"><div>Compare with MES Result:  <font color="red">Not match MES Info</font></div><#elseif (requestForm.match)?default("")=="Y"> <div>Compare with MES Result:  <font color="red">Match MES Info</font></div><#else><div>Compare with MES Result:  <font color="red">${requestForm.match?default("")}</font></div> </#if> <div class="app"> <h3>e-Runcard Request Form(${requestForm.formType?if_exists})</h3> <form name="updateRequestForm" action="updateRequestForm.action" namespace="/user" method="post"> <@ww.hidden name="'requestFormId'" value="${requestForm.id}"/> <@ww.hidden name="'requestForm.match'" value="'No Comparison'"/> <@ww.hidden name="'requestForm.compareResultComment'" value="''"/> <@ww.hidden name="'requestForm.holdStepNoMes'"/> <@ww.hidden name="'requestForm.ercStepNoMes'"/> <input type="hidden" name="paginationSupport.startIndex" value="0"/> <input type="hidden" name="paginationSupport.countOnEachPage" value="10"/> <table border="0" cellspacing="1" cellpadding="8" width="100%"> <tr class="b"> <td>RunCard No.:</td> <td>${requestForm.caseNo?if_exists}</td> <td>Status:</td> <td><font color="red">${requestForm.status?if_exists}</font></td> </tr> <tr class="b"> <td>Applicant:</td> <td><@m.directoryLink requestForm.applicant?if_exists/> </td> <td>Organization:</td> <td>${requestForm.applicantOrg?if_exists}</td> </tr> <tr class="b"> <td>Submit Date:</td> <td>${requestForm.submitDate?if_exists}</td> <td>Effective Date:</td> <td>${requestForm.effectiveDate?if_exists}</td> </tr> <#switch requestForm.formType> <#case "Auto Reposition Step"> <#include "includeLotInfo.ftl"/> <#include "includeSignInfo.ftl"/> <#include "includeErcHeaderInfo_reposition.ftl"/> <#include "includeErcCompleteInfo.ftl"/> </table> <#break> <#default> <#include "includeLotInfo.ftl"/> <#include "includeSignInfo.ftl"/> <#include "includeErcHeaderInfo.ftl"/> <#include "includeErcCompleteInfo.ftl"/> </table> <table border="0" cellspacing="1" cellpadding="8" width="100%"> <#assign showWGRbtn="true"/> <#include "includeStepInfo.ftl"/> </table> </#switch> <#if requestForm.lotCategory?exists> <table border="0" cellspacing="1" cellpadding="8" width="100%"> <tr><td><center><font color="#FF0000"><b>!!! Special lot, category is ${requestForm.lotCategory}, pls take care !!!</b></font></center></td></tr> </table> </#if> <hr/> <table width="100%"> <tr> <td class="center"> <!--input type="button" onclick="window.open('../stepForm/printRuncard.action?requestFormId=${requestForm.id}','','resizable=yes,scrollbars=yes,width=800,height=600')" value="Print"/-->     <input type="button" onclick="checkPageToPreview()" value="Preview"/> </td> </tr> </table> </form> </div>
09-19
请分析下面代码: <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>*&nbspFab 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>*&nbspArea:</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>*&nbspEquipment:</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>*&nbspRecipe:</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>*&nbspWafer 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>*&nbspContamination 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>*&nbspRemark:</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>
09-19
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值