最近雖然很忙,但做的東東如果不留點底,肯定又會忘記這些東東了.
最近做了個日庫存倉庫多選,現把步驟寫下:
1:;先在JSP頁面寫:
<script language = "javascript"
src="../../findall/find_dayware/js/find_ware.js"></script>
2:在JSP頁面調用函數:
? <input? style="width:220" name = "ware_name" type = "input" class = "input2" value=""???? onkeydown="keyenter(myform,this)"? nullable="y" datatype='' cname="倉庫名稱" readonly><img style="cursor:hand" src="../../images/jt002b.gif" onclick =? "find_ware(myform.ware_code,myform.ware_name,myform.addr,myform.waretype)"readonly>
3:進入find_dayware頁面
4:JS頁面:
function find_ware(code,name,addr,ware_type){
??? var url,getfields;
??? url="../../findall/find_dayware/find_ware_operation.jsp";
??? getfields=openwindow_find(url);
?if(typeof(getfields)!="undefined"){
??if(getfields.length != 0){?
??????? ?code.value = getString(getfields,1);
???name.value = getString(getfields,2);
???addr.value = getString(getfields,3);
???ware_type.value = getString(getfields,4);
??}
?}
}
//這就是選定調用函數以"|"區分開.
function sele_all(){
?var is_checked = false;
?var strurl="";
?var strware="";
?obj_chk=window.parent.record_list_f.document.all("chk");
?if(obj_chk){
??? if(typeof(obj_chk.length)!="undefined"){
????? for(inti=0;inti<obj_chk.length;inti++){
??????? if(obj_chk[inti].checked){
????strurl+=getString(obj_chk[inti].value,1);
????strware+=";"+getString(obj_chk[inti].value,2);
????is_checked = true;
??????? }
????? }? ????
??? }else{
???if(obj_chk.checked){
????strurl+=getString(obj_chk.value,1);
????strware+=getString(obj_chk.value,2);
????is_checked = true;
???}
??? }??
??? if(is_checked){
???? str=strurl+"|"+strware+"|||";
???? window.parent.returnValue =str;
????????????? window.parent.close();
????????????? return;
??? }
?}
}
這樣選定后倉庫編碼和倉庫名稱帶出來了但需要區分開來,我們倉庫編碼是二位組成,那么我們需要區分:
if(ware_code.length()>0){
if(ware_code.length()==2){
?sqlwhere+=" and ware_code in('"+ware_code+"')";
}else{
?for(int i=0;i<=ware_code.length();i++){
??if(i+2<ware_code.length()){
???? strwarecode =strwarecode+ "'"+ware_code.substring(i,i+2)+"',";
??}else if(i+4>ware_code.length()){
???strwarecode =strwarecode+ "'"+ware_code.substring(i,i+2)+"'";
???i=ware_code.length();
??}
??i=i+1;
?}
??? sqlwhere+=" and ware_code in("+strwarecode+")";
}
}
這樣問題就解決了...