二级菜单实现

来源:互联网 发布:品牌网络维护与推广 编辑:程序博客网 时间:2024/04/26 07:10

   
<HTML>
<HEAD><META content="text/html" http-equiv=Content-Type>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<META HTTP-EQUIV="Pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
<title>通用报表系统————查询向导</title>
    <link rel="stylesheet" type="text/css" href="/Library/css/default.css">
 <script Language="JavaScript" src="/Library/js/forbid.js"></script>
 <script Language="JavaScript" src="include/Common.js"></script>
 <script Language="JavaScript" src="include/public.js"></script>
    <script Language="JavaScript" src="include/iOffice_Popup.js"></script>

</HEAD>

<BODY class="winPopup" scroll="no" onkeydown="return execAccess();">
    <TABLE STYLE="WIDTH:100%;HEIGHT:380px;border-top:0;border-left:0;border-right:0">
        <TR style="display:none" id=page1 name=page1>
      <TD>
       <TABLE border=0 width=100% height=100%>
       <TR>
        <TD><IMG SRC="Images/wizard.gif" WIDTH="142" BORDER=0 ALT=""></TD>
        <TD>
         <TABLE style="WIDTH:100%;border:0">
                <tr style="height:50px"><td valign="top">&nbsp;&nbsp;&nbsp;&nbsp;<B>数据关联向导</B></td></tr>
                   <TR style="height:100px">
                    <TD valign=top style="font-size:9pt;font-family:song;color:green">
        &nbsp;&nbsp;&nbsp;&nbsp;请选择表或字段,若选择表则整张表填置、替换原来
                 的数据关联.若原来有数据关联的话选择表关联则有可能将原有的关联规则给冲掉。
                   选择字段意味着只能单个的字段添加.在无需设置所有字段关联的情况下可以采用!</TD>
                   </TR>
                   <TR style="height:40px">
                    <TD style="font-size:9pt;font-family:song" valign="middle">
        <fieldset style="width:320" align="center">
                                    <legend>查询方案</legend>
                                    <TABLE WIDTH=200px>
                                    <TR>
                                     <TD style="font-size:9pt;font-family:song"><Input type="radio" id=rdoTable checked onclick="selMode()">选择数据表</TD>
                                    </TR>
                                    <TR>
                                     <TD style="font-size:9pt;font-family:song"><Input type="radio" id=rdoField onclick="selMode()">选择字段</TD>
                                    </TR>
                                    </TABLE></fieldset>
        </TD>
                   </TR>
               </TABLE>
     </TD>
       </TR>
       </TABLE>
   </TD>
  </TR>
  <TR style="display:inline" id=page2 name=page2>
      <TD>
       <TABLE STYLE="WIDTH:100%;HEIGHT:70px;border-top:0;border-bottom:1px black solid;border-left:0;border-right:0" bgcolor="white">
      <TR>
        <TD style="font-size:10pt;font-family:song;font-weight:bold">选择输出项目</TD>
      </TR>
       <TR>
        <TD style="color:#1E3A7B;font-size:9pt;font-family:song">你想从哪个表中取数据?需要取什么样的数据,是否还要对数据进行汇总等处理呢?输出的内容要排序吗?你可以从以下数据源表列表中任选一个表作为数据来源 ,然后选择该表下的数据项目。 注:若您选择了两张不同的数据表,请你一定要选择关联表的关联条件,否则您取出来的数据可能没有什么实际意义。</TD>
       </TR>
       </TABLE>
      <TABLE STYLE="WIDTH:100%;HEIGHT:270px;border-bottom:0;border-top:1px white solid;border-left:0px;border-right:0px" >
      <TR>
       <TD WIDTH=5px>&nbsp;</TD>
       <TD valign="top" width=230px>
         <TABLE width=100% border=0 height=100%>
         <TR height=30px>
          <TD>
           <select id=sltTable1 style="width:100%" onchange="iniField(sltTable1,tblLeft)">
                     <option value=""></option>
<%
    
     strSQL = " select * from CDC_Table where nIsCreate=1";// and sTableName in (select sPopeValue from CDC_Popedoms where sUserID='"+ userid +"' and nPopeType=0)";
  
     rs =db.executeQuery(strSQL);
        while(rs.next())    {
         out.println("<option value="+rs.getString("sTableName")+">"+rs.getString("sTableCaption")+"</option>");
     }
%>
        </select>
       </TD>
         </TR>
         <TR>
          <TD>
           <div style="width:100%;height:100%;OVERFLOW: auto;border:1px inset;background-color:white;transparent:true">
           <TABLE bgColor=#ECEAE6 border=0 borderColorDark=#ffffff id=tblLeft borderColorLight=#000000 cellSpacing=0 width=100% onclick="rowClicked1()" style="font-size:9pt;font-family:song">
           <TR>
            <TD style="border-top:1px white solid;border-bottom:1px black solid" width=20px nowrap>&nbsp;</TD> <!-- img -->
            <TD style="display:none">字段英文</TD>
         <TD style="display:none">&nbsp;</TD> <!-- fieldtype -->
         <TD style="border-top:1px white solid;border-bottom:1px black solid">字段名称</TD>
         <TD style="display:none">&nbsp;</TD> <!-- dbtable -->
           </TR>
           </TABLE>
        </div>
       </TD>
         </TR>
         </TABLE>
     </TD>
     <TD WIDTH=78px>
         <TABLE style="FONT-FAMILY:MS SONG;FONT-SIZE:9pt;WIDTH:100%">
            <TR >
         <TD WIDTH=5%>&nbsp;</TD>
         <TD align="center">
            <button id="btnIn" class="SelBtn" accessKey=">" onclick="return btn_onclick();"><ins>&gt;</INS></button></TD>
         <TD WIDTH=5%>&nbsp;</TD>
            </TR>
            <TR>
         <TD></TD>
         <TD align="center">
           <button id="btnOut" class="SelBtn" accessKey="<" onclick="return btn_onclick();"><ins>&lt;</INS></button></TD>
         <TD></TD>
            </TR>
            <TR>
         <TD></TD>
         <TD align="center">
           <button id="btnAllIn" class="SelBtn" accessKey=">>" onclick="return       btn_onclick();"><ins>&gt;</INS>&gt;</button></TD>
         <TD></TD>
            </TR>
            <TR>
         <TD></TD>
         <TD align="center">
           <button id="btnAllOut" class="SelBtn" accessKey="<<" onclick="return btn_onclick();"><ins>&lt;</INS>&lt;</button></TD>
         <TD></TD>
            </TR>
            <TR>
         <TD></TD>
         <TD align="center">
           <button id="btnUp" class="SelBtn" accessKey="U" onclick="return btn_onclick();">上移(<u>U</u>)</button></TD>
         <TD></TD>
            </TR>
            <TR>
         <TD></TD>
         <TD align="center">
           <button id="btnDown" class="SelBtn" accessKey="D" onclick="return btn_onclick();">下移(<u>D</u>)</button></TD>
         <TD></TD>
            </TR>
              </TABLE>
                    </TD>
     <TD valign ="bottom" width=220px>
         <div style="width:100%;height:270;OVERFLOW: auto;border:1px  inset;margin-top:5px;background-color:white;transparent:true">
             <TABLE bgColor=#ECEAE6 border=0 borderColorDark=#ffffff id=tblRight borderColorLight=#000000 cellSpacing=0 width=100% onclick="rowClicked2()" style="font-size:9pt;font-family:song">
           <TR height=25>
            <TD style="border-top:1px white solid;border-bottom:2px silver solid" width=20px nowrap>&nbsp;</TD><!-- fieldtype -->
            <TD style="display:none">字段英文</TD>
         <TD style="display:none">fieldtype</TD>  <!-- fieldtype -->
         <TD style="display:none">table</TD>    <!--  db table-->
         <TD style="display:none">分组信息</TD>
         <TD style="display:none">计算信息</TD>
         <TD style="display:none">排序信息</TD>
         <TD style="border-top:1px white solid;border-bottom:2px silver solid">字段名称</TD>
           </TR>
       </TABLE>
        </div>
     </TD>
     <TD WIDTH=120px border=0 valign="bottom" style="font-size:9pt;font-family:song">
         <fieldset style="width:90%;font-size:9pt" align="center">
                            <legend><B>计算信息</B></legend>
                                <TABLE WIDTH=70% border=0>
                                    <TR id=trAvg>
                                     <TD style="font-size:9pt;font-family:song"><Input type="radio" id=rdoAvg  onclick="setSQL(1)">求均值</TD>
                                    </TR>
                                    <TR id=trSum>
                                     <TD style="font-size:9pt;font-family:song"><Input type="radio" id=rdoSum onclick="setSQL(2)">求和</TD>
                                    </TR>
         <TR id=trCount>
                                     <TD style="font-size:9pt;font-family:song"><Input type="radio" id=rdoCount onclick="setSQL(3)">记数</TD>
                                    </TR>
          <TR id=trCountDefault>
                                     <TD style="font-size:9pt;font-family:song"><Input type="radio" id=rdoCountDefault onclick="setSQL(4)">缺省</TD>
                                    </TR>
                                </TABLE>
      </fieldset><BR><BR>
      <fieldset style="width:90%;font-size:9pt" align="center">
                            <legend><B>排序</B></legend>
                                <TABLE WIDTH=70%>
                                    <TR id=trAsc>
                                     <TD style="font-size:9pt;font-family:song"><Input type="radio" id=rdoAsc  onclick="setSQL(5)">升序</TD>
                                    </TR>
                                    <TR id=trDesc>
                                     <TD style="font-size:9pt;font-family:song"><Input type="radio" id=rdoDesc onclick="setSQL(6)">降序</TD>
                                    </TR>
          <TR id=trOrderDefault>
                                     <TD style="font-size:9pt;font-family:song"><Input type="radio" id=rdoOrderDefault onclick="setSQL(7)">缺省</TD>
                                    </TR>
                                </TABLE>
      </fieldset><br><BR>
      &nbsp;<Input id=chkGroup type="checkbox" onclick="setSQL(8)">分组
                    </TD>
     <TD WIDTH=5px>&nbsp;</TD>
    </TR>
    </TABLE>
   </TD>
  </TR>
  <TR style="display:none" id=page3 name=page3>
      <TD>
       <TABLE STYLE="WIDTH:100%;HEIGHT:70px;border-top:0;border-bottom:1px black solid;border-left:0;border-right:0" bgcolor="white">
    <TR>
        <TD style="font-size:10pt;font-family:song;font-weight:bold">查询条件</TD>
    </TR>
       <TR>
        <TD style="color:#1E3A7B;font-size:9pt;font-family:song">你是否要对查询的数据进行某些过滤,若你同时要
     表现两张表的数据,请你最好选择关联条件。你可以选择多个查询条件,并对这些查询条件进行任意的组合:并且、或者,
     还可以通过扩号“(”等运算符号来实现条件间的先后关系。若您未选择关联条件,系统将默认为取出所有的数据。</TD>
       </TR>
       </TABLE>
    <TABLE STYLE="WIDTH:100%;HEIGHT:250px;border-bottom:0;border-top:1px white solid;border-left:0px;border-right:0px" >
    <TR>
     <TD WIDTH=5px>&nbsp;</TD>
     <TD valign="top">
         <TABLE width=100% border=0 height=100%>
         <TR height=30px>
          <TD>
           <select id=sltTable2 style="width:100%" onchange="iniField(sltTable2,tblLeft2)">
                     <option value=""></option>
<%
    
     strSQL = " select * from CDC_Table where nIsCreate=1";// and sTableName in (select sPopeValue from CDC_Popedoms where sUserID='"+ userid +"' and nPopeType=0)";

     rs =db.executeQuery(strSQL);
        while(rs.next())    {
         out.println("<option value="+rs.getString("sTableName")+">"+rs.getString("sTableCaption")+"</option>");
     }
%>
        </select>
       </TD>
         </TR>
         <TR>
          <TD>
           <div style="width:100%;height:100%;OVERFLOW: scroll;border:1px black solid;background-color:white;transparent:true">
           <TABLE bgColor=#ECEAE6 border=0 borderColorDark=#ffffff id=tblLeft2 borderColorLight=#000000 cellSpacing=0 width=100% onclick="rowClicked3()" style="font-size:9pt;font-family:song">
           <TR>
            <TD style="border-top:1px white solid;border-bottom:1px black solid" width=20px nowrap>&nbsp;</TD> <!-- img -->
            <TD style="display:none">字段英文</TD>
         <TD style="display:none">&nbsp;</TD> <!-- fieldtype -->
         <TD style="border-top:1px white solid;border-bottom:1px black solid">字段名称</TD>
         <TD style="display:none">&nbsp;</TD> <!-- dbtable -->
         <TD style="display:none">&nbsp;</TD> <!-- sFieldLookup -->
           </TR>
           </TABLE>
        </div>
       </TD>
         </TR>
         </TABLE>
     </TD>
     <TD WIDTH=5px>&nbsp;</TD>
     <TD valign="top">
      <TABLE border=0 width=100% height=250px>
      <TR>
       <TD WIDTH=100px>
        <SELECT id=sltCompare STYLE="WIDTH:100%">
                       <option selected value="=">等于</option>
                    <option value=">">大于</option>
                    <option value=">=">大于等于</option>
                    <option value="<">小于</option>
                    <option value="<=">小于等于</option>
                    <option value="<>">不等</option>
                    <option value="like">Like</option>
                       </SELECT>
       </TD>
                      <TD nowrap>
        <INPUT id="txtCompValue" style="width:100%" onkeydown="return SetValueType()">
        <DIV id=divDate style="display:none;WIDTH:150px" >
<script language="javascript">
   today=new Date();
   var year=today.getYear();
   var month=today.getMonth()+1;
   var day=today.getDate();
   document.write("<input type='text' name='sltDate' maxlength='12' size='15' value='"+year+"/"+month+"/"+day+"' readonly style='BACKGROUND-COLOR: #d4d0c8;'>&nbsp;<input type='button' class='SelBtn' value='选择日期' style='font-size: 9pt;width:65px;height:23px;cursor:hand;' alt='弹出日历下拉菜单' onClick='fPopUpCalendarDlg(document.all.sltDate);return false'>");  
</script>
        </DIV>
                             <SELECT ID="sltFieldLookup" style="display:none;width:100%">
        </SELECT>
                   </TD>
       <TD rowspan=2 style="width:60px" valign=top align=right>
        <button id="btnIns" class="SelBtn" accessKey="<" onclick="return doAdd();"><U></INS>&lt;</U> 添加</button>
        <BR><BR>
        <button id="btnDel" class="SelBtn" accessKey=">" onclick="return doRemove();"><U></INS>&lt;</U> 移出</button>
        <BR><BR>
        <button id="btnTblLink" class="SelBtn" accessKey="L" onclick="return doTblLink();"><U>L</U> 表关联</button>
       </TD>
      </TR>
      <TR>
       <TD colspan=2>
        <SELECT id=sltFilterList size=17 STYLE="WIDTH:100%;">
                       </SELECT>
       </TD>
      </TR>
      </TABLE>
     </TD>
     <TD WIDTH=5px>&nbsp;</TD>
    </TR>
    </TABLE>
   </TD>
  </TR>
  <TR STYLE="DISPLAY:none;" id="pageCode" name="pageCode" height=375>
   <TD WRAP>
      <TABLE STYLE="WIDTH:100%;HEIGHT:70px;border-top:0;border-bottom:1px black solid;border-left:0;border-right:0" bgcolor="white">
          <TR>
              <TD style="font-size:10pt;font-family:song;font-weight:bold">查询自助</TD>
          </TR>
           <TR>
              <TD style="color:#1E3A7B;font-size:9pt;font-family:song">我想快速的取出数据,我对SQL语言很熟悉,我要查询的结果很复杂,目前的查询向导
          很难满足我目前的需要,怎么办?您可以选择查询自助。有了查询自助,您可以输入任意复杂的SQL查询语句。而不用受向导的约束。</TD>
           </TR>
       </TABLE>
     <TABLE WIDTH=100% HEIGHT=305 border=0>
     <TR>
      <TD WIDTH=5px>&nbsp;</TD>
      <TD valign="middle">
          <TEXTAREA id=taSQL style="WIDTH:720;HEIGHT:280" wrap="scroll"></TEXTAREA>
      </TD>
      <TD WIDTH=5px>&nbsp;</TD>
     </TR>
     </TABLE>
   </TD>
  </TR>
 </TABLE>
<HR style="width:100%;height:2px;border-top:1px silver solid;border-bottom:1px white solid">

<TABLE id=barWizard cellpadding=0 cellspacing=0 STYLE="WIDTH:100%;HEIGHT:50px;border:0px;font-size:9pt;font-family:song">
     <TR valign="middle">
          <TD WIDTH=100px><BUTTON class="SelBtn" style="margin-left:5px" VALUE="帮 助" accesskey="H" onclick="doHelp()">帮 助(<U>H</U>)</BUTTON></TD>
          <TD COLSPAN=2 align="right">
          <!--BUTTON ID="btnPre" class="btn" VALUE="查询自助" ACCESS="Z" onclick="chgToSelf()">查询自助(<U>Z</U>)</BUTTON-->&nbsp;&nbsp;
       <BUTTON ID="btnPre" class="SelBtn" VALUE="上一步" accesskey="B" onclick="doBack()">上一步(<U>B</U>)</BUTTON>&nbsp;
       <BUTTON ID="btnNext" class="SelBtn" VALUE="下一步" accesskey="N" onclick="doNext()">下一步(<U>N</U>)</BUTTON>&nbsp;
       <BUTTON ID="btnExit" class="SelBtn" VALUE="退 出" accesskey="X" onclick="doExit()">退 出(<U>X</U>)</BUTTON>&nbsp;&nbsp;
   </TD>
     </TR>
  </TABLE>

 <TABLE id=barSelf cellpadding=0 cellspacing=0 STYLE="WIDTH:100%;HEIGHT:50px;border:0px;font-size:9pt;font-family:song;display:none">
     <TR valign="middle">
          <TD WIDTH=100px>&nbsp;&nbsp;<BUTTON class="SelBtn" VALUE="帮助" accesskey="H" onclick="doHelp()">帮助(<U>H</U>)</BUTTON></TD>
          <TD COLSPAN=2 align="right">
         <BUTTON ID="btnWizard" class="SelBtn" VALUE="查询向导" accesskey="W" onclick="chgToWizard()">查询向导(<U>W</U>)</BUTTON>&nbsp;
      <BUTTON ID="btnSearch" class="SelBtn" VALUE="查    询" accesskey="S" onclick="doExecSelf()">查&nbsp;&nbsp;询(<U>S</U>)</BUTTON>&nbsp;
      <BUTTON ID="btnQuitt" class="SelBtn" VALUE="退     出" accesskey="X" onclick="doExit()">退&nbsp;&nbsp;出(<U>X</U>)</BUTTON>&nbsp;&nbsp;
   </TD>
     </TR>
  </TABLE>    
</BODY>
</HTML>

<%
    }catch(SQLException sqle) {
        System.out.print("★★Exception: " + sqle);
    }catch(Exception e) {
        System.out.print("★★Exception: " + e.getMessage());
    }finally  {
     db.dbclose();
    }
%>
<SCRIPT LANGUAGE="JavaScript">
<!--
var strMode="table";

function doExit()
{
    window.close();
}

var curPage=2;
function doNext()
{
    if(curPage==3) {doSearch();return;}

 var objPage = document.all("page"+ curPage);
 objPage.style.display ="none";

 curPage =curPage + 1;
 objPage = document.all("page"+curPage);
 objPage.style.display ="inline";

}

function doBack()
{
    if(curPage==2) return;

 var objPage = document.all("page"+ curPage);
 objPage.style.display ="none";

 curPage =curPage - 1;
 objPage = document.all("page"+curPage);
 objPage.style.display ="inline";
}

function doHelp(){
    getSQL();
}
//2003-8-12
var sLinkTable=""; //2003-9-2
function doTblLink()
{
 var nLeft =(window.screen.availWidth/2) - 250
 var nTop = (window.screen.availHeight/2) - 150

 var sWinStyle ="dialogWidth:605px; dialogHeight:350px; status: 0;left:"+nLeft+",top:"+nTop;
    var returnValue=window.showModalDialog("CDC_TableLink.jsp?",'',sWinStyle);
    if (typeof returnValue == "undefined") { return false; }
  
 var oOption=document.createElement('OPTION');

    oOption.text  = returnValue[1];
    oOption.value = returnValue[0];
    sltFilterList.options.add(oOption);
    if(sLinkTable=="") sLinkTable = returnValue[2] + "◎" + returnValue[3];
    else  sLinkTable += "◎" + returnValue[2] + "◎" + returnValue[3];
}

function setSQL(nType)
{
 if (trNow2==null) return;

    var src = event.srcElement;
 if (nType==5)    {
  rdoAsc.checked = true;
  rdoDesc.checked =false;
  rdoOrderDefault.checked = false;

  trNow2.cells[6].innerText = "asc"
 }else if (nType==6){
  rdoAsc.checked = false;
  rdoDesc.checked =true;
  rdoOrderDefault.checked = false;

  trNow2.cells[6].innerText = "desc"
 }else if (nType==7){
  rdoAsc.checked = false;
  rdoDesc.checked =false;
  rdoOrderDefault.checked = true;

  trNow2.cells[6].innerText = ""
 }else if (nType==1){
  rdoSum.checked = false;
  rdoCount.checked =false;
  rdoAvg.checked =true ;
  rdoCountDefault.checked = false;

  trNow2.cells[5].innerText = "avg"
 }else if (nType==2){
  rdoSum.checked =true ;
  rdoCount.checked =false;
  rdoAvg.checked = false;
  rdoCountDefault.checked = false;

  trNow2.cells[5].innerText = "sum"
 }else if (nType==3){
  rdoSum.checked = false;
  rdoCount.checked =true;
  rdoAvg.checked = false;
  rdoCountDefault.checked = false;

  trNow2.cells[5].innerText = "count"
 }else if (nType==4){
  rdoSum.checked = false;
  rdoCount.checked =false;
  rdoAvg.checked = false;
  rdoCountDefault.checked = true;

  trNow2.cells[5].innerText = ""
 }else{
  if(trNow2.cells[4].innerText == ""){
   trNow2.cells[4].innerText = trNow2.cells[1].innerText
      src.checked =true
   return
  }else{
      trNow2.cells[4].innerText = ""
      src.checked =false
  }
 }

}

/*-----------------------------动态获取字段信息-----------------------------*/
var allField=new ActiveXObject('Microsoft.XMLDOM');
allField.async=false;
   
function iniField(sltDBTable,tbl)

 /*2003-8-1*/
 if(sltDBTable==sltTable1){
  trNow1=null;
        nPriRow1=0;
 }else{
  trNow3=null;
        nPriRow3=0;
 }
 /*2003-8-1*/
 if (sltDBTable.selectedIndex<0) return;
 var strTableName = sltDBTable.options[sltDBTable.selectedIndex].value;

    allField.load("CDC_allField.jsp?TableName=" + strTableName);
   
    try {
      removeAll(tbl)
    }
    catch(exception) {
      return;
    }
     
    var choosed = allField.selectNodes("/DIR/sTableName[sTableName='"+strTableName+"']");
    if(choosed==null) {
        alert("此类表目前还没有建立填报表。");
        return;
    }
 var arr = new Array()

    for(var i=0;i<=choosed.length-1;i++) {

       arr[0]  =choosed.item(i).childNodes.item(3).text;
       arr[1]  =choosed.item(i).childNodes.item(2).text;
       arr[2] = choosed.item(i).childNodes.item(1).text;
    arr[3] = choosed.item(i).childNodes.item(0).text;
    arr[4] = choosed.item(i).childNodes.item(4).text;
//alert(arr[0]+"|"+arr[1]+"|"+arr[2]+"|"+arr[3]+"|"+arr[4])
    InsertRow(tbl,arr)
   }
   
}

function removeAll(objTbl)
{
    for(var i=objTbl.rows.length-1;i>0;i--){
     objTbl.deleteRow(i);
 }
 if (objTbl==tblLeft)  trNow1=null;
 else trNow3=null;

    objTbl.refresh();  //2003-8-19
 return 0;
}

function deleteRow(objTbl,objTR)
{
 var rowsObj = objTR;
 var tblObj = rowsObj.parentElement;
 if(tblObj.tagName != "TABLE") tblObj = tblObj.parentElement;
 var iTmpRowsIndex = rowsObj.rowIndex;
 objTbl.deleteRow(iTmpRowsIndex);
objTbl.refresh();  //2003-8-19
 return 0;
}

function InsertRow(objTbl,arrValue)
{
 var sImgPath =""
    var rowObj = objTbl.insertRow()
if(objTbl==tblLeft) rowObj.attachEvent("onclick",rowClicked1);  //2003-8-1
else rowObj.attachEvent("onclick",rowClicked3);
 rowObj.className = "InactiveRecord";
    rowObj.height = 18;

    var colsObj
    colsObj = rowObj.insertCell();
 colsObj.noWrap = true;
 if ((arrValue[0]=="char")||(arrValue[0]=="text")) sImgPath = "images/a.gif";
 else if (arrValue[0]=="date") sImgPath = "images/date.gif";
 else if (arrValue[0]=="int") sImgPath = "images/i.gif";
 else if (arrValue[0]=="float") sImgPath = "images/f.gif";
 else if (arrValue[0]=="bool") sImgPath = "images/bool.gif";
 colsObj.style.align ="center";
 colsObj.innerHTML ="<img src='" + sImgPath +"' border=0>" ;

 colsObj = rowObj.insertCell();    //e-name
 colsObj.innerText = arrValue[3] + "." + arrValue[2];
 colsObj.style.display ="none"; 

 colsObj = rowObj.insertCell();   //fieldtype
 colsObj.innerText = arrValue[0];
 colsObj.style.display ="none";
 
 colsObj = rowObj.insertCell();
 colsObj.noWrap = true;
 colsObj.innerText = arrValue[1];
 
 colsObj = rowObj.insertCell();   //sFieldLookup 2003-9-1
 colsObj.innerText = arrValue[4];
 colsObj.style.display ="none";

    colsObj = rowObj.insertCell();   //db - table
 colsObj.innerText = arrValue[3];
 colsObj.style.display ="none";

//alert(objTbl.outerHTML)
objTbl.refresh();  //2003-8-19

}

/*---------------------------------------------------------------------------------------*/
var trNow1;
var nPriRow1=0;

var trNow2;
var nPriRow2=0;

var trNow3;
var nPriRow3=0;

var trNow4;
var nPriRow4=0;
/*---------------------------------------------------------------------------------------*/
function rowClicked1()
{
 var trSrc=window.event.srcElement;
    if (trSrc.tagName=="TABLE") return;

    while (trSrc.tagName != "TR") trSrc = trSrc.parentElement;
 
    if ( trSrc.rowIndex == 0) return 0;
    
    var tblSrc = trSrc;
    while (tblSrc.tagName != "TABLE")tblSrc = tblSrc.parentElement;
 
 var obj=tblSrc;
    if(!(obj==tblLeft)) return ;

    changeRowColor(tblSrc,trSrc.rowIndex,nPriRow1)
    nPriRow1 = trSrc.rowIndex;
    trNow1 = trSrc;
}
/*---------------------------------------------------------------------------------------*/
function rowClicked2()
{
 var trSrc=window.event.srcElement;
    if (trSrc.tagName=="TABLE") return;

    while (trSrc.tagName != "TR") trSrc = trSrc.parentElement;
 
    if ( trSrc.rowIndex == 0) return 0;
    
    var tblSrc = trSrc;
    while (tblSrc.tagName != "TABLE")tblSrc = tblSrc.parentElement;

 var obj=tblSrc;
    if(!(obj==tblRight)) return ;

    changeRowColor(tblSrc,trSrc.rowIndex,nPriRow2)
    nPriRow2 = trSrc.rowIndex;
    trNow2 = trSrc;

 setInterface();
}

var sCurType = "";
var sFieldLookup ="";  //2003-9-1
/*---------------------------------------------------------------------------------------*/
function rowClicked3()
{
 var trSrc=window.event.srcElement;
    if (trSrc.tagName=="TABLE") return;

    while (trSrc.tagName != "TR") trSrc = trSrc.parentElement;
 
    if ( trSrc.rowIndex == 0) return 0;
    
    var tblSrc = trSrc;
    while (tblSrc.tagName != "TABLE")tblSrc = tblSrc.parentElement;

 var obj=tblSrc;
    if(!(obj==tblLeft2)) return ;

    changeRowColor(tblSrc,trSrc.rowIndex,nPriRow3)
    nPriRow3 = trSrc.rowIndex;
    trNow3 = trSrc;

 sCurType = trNow3.cells[2].innerText;
 txtCompValue.value = "";
 //2003-9-1
 sFieldLookup = trNow3.cells[5].innerText;

 if(sFieldLookup!=""){
  sltFieldLookup.style.display = "inline";
  divDate.style.display        = "none";
  txtCompValue.style.display   = "none";
  IniLookup(sFieldLookup);
  event.cancelBubble = true;
 }else{
     if(sCurType=="date"){
      divDate.style.display        = "inline";
      txtCompValue.style.display   = "none";
   sltFieldLookup.style.display = "none";
     }else{
      divDate.style.display        = "none";
   sltFieldLookup.style.display = "none";
      txtCompValue.style.display   = "inline";
  }
 }
}
/*---------------------------------------------------------------------------------------*/
function rowClicked4()
{
 var trSrc=window.event.srcElement;
    if (trSrc.tagName=="TABLE") return;

    while (trSrc.tagName != "TR") trSrc = trSrc.parentElement;
 
    if ( trSrc.rowIndex == 0) return 0;
    
    var tblSrc = trSrc;
    while (tblSrc.tagName != "TABLE")tblSrc = tblSrc.parentElement;
    changeRowColor(tblSrc,trSrc.rowIndex,nPriRow4)
    nPriRow4 = trSrc.rowIndex;
    trNow4 = trSrc;
}
/*---------------------------------------------------------------------------------------*/
function changeRowColor(objName,iCurrRow,nPriRow)
{
    if (nPriRow > 0 ){
  objName.rows(nPriRow).className = "InactiveRecord";
 }
    if (iCurrRow > 0){
  objName.rows(iCurrRow).className = "ActiveRecord";
 }
    return iCurrRow;
}
/*---------------------------------------------------------------------------------------*/
function btn_onclick()
{
    var src = event.srcElement;
 if (src==btnIn){
  if (trNow1==null) {
   alert("请选择左边的输出项目");
   return;
  }
  /*----------------------------------------*/
  var sImgPath =""
        var rowObj = tblRight.insertRow()
     rowObj.attachEvent("onclick",rowClicked2);
     rowObj.className = "InactiveRecord";
        rowObj.height = 18;

        var colsObj
        colsObj = rowObj.insertCell();
     colsObj.noWrap = true;
  var sType = trNow1.cells[2].innerText;

     if ((sType=="char")||(sType=="text")) sImgPath = "images/a.gif";
     else if (sType=="date") sImgPath = "images/date.gif";
     else if (sType=="int") sImgPath = "images/i.gif";
     else if (sType=="float") sImgPath = "images/f.gif";
  else if (sType=="bool") sImgPath = "images/bool.gif";
     colsObj.innerHTML ="<img src='" + sImgPath +"' border=0>" ;
     colsObj.style.align ="right";

     colsObj = rowObj.insertCell();
     colsObj.innerText = trNow1.cells[1].innerText;
     colsObj.style.display ="none";

  colsObj = rowObj.insertCell();
     colsObj.innerText = trNow1.cells[2].innerText;
     colsObj.style.display ="none";

  colsObj = rowObj.insertCell();    //db-table
     colsObj.innerText = trNow1.cells[4].innerText;
     colsObj.style.display ="none";

  colsObj = rowObj.insertCell();    //group
     colsObj.innerText = "";
     colsObj.style.display ="none"; 

  colsObj = rowObj.insertCell();    //sum
     colsObj.innerText = "";
     colsObj.style.display ="none";

  colsObj = rowObj.insertCell();    //order
     colsObj.innerText = "";
     colsObj.style.display ="none";

  colsObj = rowObj.insertCell();
     colsObj.noWrap = true;
     colsObj.innerText = trNow1.cells[3].innerText;

  tblRight.refresh();  //2003-8-20

 }
 if (src==btnAllIn){
  for(var i=1;i<tblLeft.rows.length;i++){
  var sImgPath =""
        var rowObj = tblRight.insertRow()
     rowObj.attachEvent("onclick",rowClicked2);
     rowObj.className = "InactiveRecord";
        rowObj.height = 18;

        var colsObj
        colsObj = rowObj.insertCell();
     colsObj.noWrap = true;
  var sType = tblLeft.rows[i].cells[2].innerText;

     if ((sType=="char")||(sType=="text")) sImgPath = "images/a.gif";
     else if (sType=="date") sImgPath = "images/date.gif";
     else if (sType=="int") sImgPath = "images/i.gif";
     else if (sType=="float") sImgPath = "images/f.gif";
  else if (sType=="bool") sImgPath = "images/bool.gif";
     colsObj.innerHTML ="<img src='" + sImgPath +"' border=0>" ;
     colsObj.style.textAlign ="right";

     colsObj = rowObj.insertCell();
     colsObj.innerText = tblLeft.rows[i].cells[1].innerText;
     colsObj.style.display ="none";

  colsObj = rowObj.insertCell();
     colsObj.innerText = tblLeft.rows[i].cells[2].innerText;
     colsObj.style.display ="none";

    
        colsObj = rowObj.insertCell();    //db-table
     colsObj.innerText = tblLeft.rows[i].cells[4].innerText;
     colsObj.style.display ="none";

  colsObj = rowObj.insertCell();
     colsObj.innerText = "";
     colsObj.style.display ="none";

  colsObj = rowObj.insertCell();
     colsObj.innerText = "";
     colsObj.style.display ="none";

  colsObj = rowObj.insertCell();
     colsObj.innerText = "";
     colsObj.style.display ="none";
       
  colsObj = rowObj.insertCell();
     colsObj.noWrap = true;
     colsObj.innerText = tblLeft.rows[i].cells[3].innerText;
  
        }
  tblRight.refresh();  //2003-8-20
 }
 if (src==btnOut){
  if (trNow2==null){alert("请选择要移出的项目");return;}
  var iTmpRowsIndex = trNow2.rowIndex;
  if (iTmpRowsIndex==0) return;
     tblRight.deleteRow(iTmpRowsIndex);
  trNow2=null;
  nPriRow2=0;
 }
 if (src==btnAllOut){
  removeAll(tblRight)
 }
 tblRight.refresh();  //2003-8-19
}
/*---------------------------------------------------------------------------------------*/
function setInterface()
{
    var sType = trNow2.cells[2].innerText;
    /*-----任何数据类型都可以排序号的嘛------*/
        if (trNow2.cells[6].innerText==""){
   rdoAsc.checked = false;
   rdoDesc.checked = false;
   rdoOrderDefault.checked = true;
  }else if (trNow2.cells[6].innerText=="asc") {
   rdoAsc.checked = true;
   rdoDesc.checked = false;
   rdoOrderDefault.checked = false;
  }else if (trNow2.cells[6].innerText=="desc") {
   rdoAsc.checked = false;
   rdoDesc.checked = true;
   rdoOrderDefault.checked = false;
  }
    /*----------2003-8-19---------------*/
 if ((sType=="char")||(sType=="text")) {
  trSum.disabled = true;
  trAvg.disabled = true;
  trCount.disabled = true;
  trCountDefault.disabled = true;

  if (trNow2.cells[4].innerText=="")  chkGroup.checked = false;
  else chkGroup.checked = true;
  
 }else if (sType=="date") {
  trSum.disabled = true;
  trAvg.disabled = true;
  trCount.disabled = false;
  trCountDefault.disabled = false;
  
  if (trNow2.cells[4].innerText=="")  chkGroup.checked = false;
  else chkGroup.checked = true;

  if (trNow2.cells[5].innerText=="count") {
   rdoSum.checked = false;
      rdoAvg.checked = false;
      rdoCount.checked = true;
  }

 }else if ((sType=="int")||(sType=="float")) {
  trSum.disabled = false;
  trAvg.disabled = false;
  trCount.disabled = false;
  trCountDefault.disabled = false;

  if (trNow2.cells[4].innerText=="")  chkGroup.checked = false;
  else chkGroup.checked = true;

  if (trNow2.cells[5].innerText=="") {
   rdoSum.checked = false;
      rdoAvg.checked = false;
      rdoCount.checked = false;
   rdoCountDefault.checked = true;
  }else if (trNow2.cells[5].innerText=="sum") {
   rdoSum.checked = true;
      rdoAvg.checked = false;
      rdoCount.checked = false;
   rdoCountDefault.checked = false;
  }else if (trNow2.cells[5].innerText=="avg") {
   rdoSum.checked = false;
      rdoAvg.checked = true;
      rdoCount.checked = false;
   rdoCountDefault.checked = false;
  }else if (trNow2.cells[5].innerText=="count") {
   rdoSum.checked = false;
      rdoAvg.checked = false;
      rdoCount.checked = true;
   rdoCountDefault.checked = false;
  }else{
  }
    } 
}

/*---------------------------------------------------------------------------------------*/
function SetValueType()
{
 if (sCurType=="char")   return checkChar();
 else if (sCurType=="date")   return checkNum();
 else  return checkNum();

}
/*---------------------------------------------------------------------------------------*/
function doAdd()
{
 if (trNow3==null)  {
        alert("请选择要比较的项目!");
  return;
 }
    var sType = trNow3.cells[2].innerText;
 var sValue="";
 var sText ="";
 var sLookup = trNow3.cells[5].innerText

 if (sType=="char")  {
  if(sLookup==""){
      sValue = trNow3.cells[1].innerText + sltCompare.options[sltCompare.selectedIndex].value + "'" + txtCompValue.value + "'";
         sText = trNow3.cells[3].innerText + "    " + sltCompare.options[sltCompare.selectedIndex].text + "    " + "'" + txtCompValue.value + "'";
  }else{
            sValue = trNow3.cells[1].innerText + sltCompare.options[sltCompare.selectedIndex].value + "'" + sltFieldLookup.value + "'";
         sText = trNow3.cells[3].innerText + "    " + sltCompare.options[sltCompare.selectedIndex].text + "    " + "'" + sltFieldLookup.value + "'";
  }
 }else if (sType=="date")  {
  sValue = "convert(char,"+trNow3.cells[1].innerText +",111)"+ sltCompare.options[sltCompare.selectedIndex].value + "'" + sltDate.value + "'";
     sText = trNow3.cells[3].innerText + "    " + sltCompare.options[sltCompare.selectedIndex].text + "    " + sltDate.value ;
 }else {
  if (trim(txtCompValue.value)=="") txtCompValue.value="0";

  sValue = trNow3.cells[1].innerText + sltCompare.options[sltCompare.selectedIndex].value + txtCompValue.value ;
     sText = trNow3.cells[3].innerText + "    " + sltCompare.options[sltCompare.selectedIndex].text + "    " + txtCompValue.value ;
 }

 var oOption=document.createElement('OPTION');

    oOption.text  = sText;
    oOption.value = sValue;

    sltFilterList.options.add(oOption);
}
/*---------------------------------------------------------------------------------------*/
function doRemove()
{
 if (sltFilterList.selectedIndex<0){
  alert("请选择待移出的项目");
  return;
 }
    sltFilterList.options.remove(sltFilterList.selectedIndex)
}
/*---------------------------------------------------------------------------------------*/
var strCap="";

function getSQL()
{
 var sFieldClause ="";
 var sGroupClause ="";
    var sOrderClause ="";
 
 var strSQL = "";
    var sFrom = "";
 var sTemp ="";

 var nLen = tblRight.rows.length;

    for(var i=1;i<nLen;i++){
  sTemp = tblRight.rows[i].cells[4].innerText;  //group
  if(sTemp!=""){
   if (sGroupClause!="") sGroupClause += "," + sTemp ;
   else sGroupClause = sTemp ;
  }

  sTemp = tblRight.rows[i].cells[5].innerText; //sum
  if(sTemp!="") {
   if (sFieldClause!="") sFieldClause += "," + sTemp+ "(" + tblRight.rows[i].cells[1].innerText + ")";
   else sFieldClause =sTemp + "(" + tblRight.rows[i].cells[1].innerText  + ")";
  }else{
   if (sFieldClause!="") sFieldClause += "," + tblRight.rows[i].cells[1].innerText + "";
   else sFieldClause = tblRight.rows[i].cells[1].innerText + "";
  }

  sTemp = tblRight.rows[i].cells[6].innerText; //order
  if(sTemp!="") {
   if (sOrderClause!="") sOrderClause += "," + tblRight.rows[i].cells[1].innerText + "  " + sTemp ;
   else sOrderClause = tblRight.rows[i].cells[1].innerText + "  " + sTemp ;
  }
 
  sTemp = tblRight.rows[i].cells[3].innerText //db - table
  if(i==1) {
   sFrom = sTemp;
   strCap = tblRight.rows[i].cells[7].innerText
        }
  if(i>1){
   var nPos = sFrom.indexOf(sTemp);
   if (nPos==-1) sFrom += "," + sTemp;

   strCap += "," + tblRight.rows[i].cells[7].innerText
  }
 }

 sWhereClause = getWhereClause();
 if(sWhereClause!="") sWhereClause = " where " + sWhereClause;
 if(sOrderClause!="") sOrderClause = " order by " + sOrderClause;
 if(sGroupClause!="") sGroupClause = " group by " + sGroupClause;
    sFrom = getFromClause(sFrom,sLinkTable) ;
 if(sFrom!="") sFrom = " from " + sFrom ;
 
    strSQL = " select " + sFieldClause + "  " + sFrom + "  " + sWhereClause + sGroupClause + sOrderClause;
    taSQL.value = strSQL ;  //2003-8-19
 return strSQL;
}
//--------------------------------2003-9-2----------------------------------------
function getFromClause(sFrom,sLinkTable)
{
 if(sLinkTable=="") return sFrom ;
 var sFromTemp = sFrom ;
    var arrTemp = sLinkTable.split("◎");
 var nPos =0 ;
 for(var i=0;i<arrTemp.length;i++){
  nPos = pos(sFromTemp,arrTemp[i])
  if(nPos>0) continue;
  else sFromTemp = sFromTemp + "," + arrTemp[i] ;
 }
 return sFromTemp ;
}
/*---------------------------------------------------------------------------------------*/
function getWhereClause()
{
    var nCount = sltFilterList.length;
 var strWhere="";

    if ( nCount>0){
  for(var i=0;i<nCount;i++){
   if (strWhere!="") strWhere += " and " + sltFilterList.options[i].value
   else strWhere = sltFilterList.options[i].value
  }
 }
 return strWhere
}
/*---------------------------------------------------------------------------------------*/
function doSearch()
{
    var strSQL = "";
 
 if (tblRight.rows.length<2){
  alert("请先选择输出项目!")
  return;
 }

 strSQL = getSQL();
   
    var screenHeight=window.screen.height-26;
 var screenWidth=window.screen.width;
 var arr = getLT(900,520)
var sWinStyle="left="+arr[0]+",top="+arr[1];
sWinStyle+=",toolbar=no,width=900,height=520,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,menu=no";


 window.open("CDC_Search_Preview.jsp?strCap="+strCap +"&strSQL=" + escape(strSQL)  ,"",sWinStyle)
}
/*---------------------------------------------------------------------------------------*/
function doExecSelf()
{
    var strSQL = "";
 
 strSQL = taSQL.value;
 if (trim(strSQL)==""){
  alert("不能执行空的SQL语句!")
  return;
 }
   
    var screenHeight=window.screen.height-26;
 var screenWidth=window.screen.width;
 var dialogStyle="status:no,scroll:no,resizable=yes,toolbar=no,location=no,scrollbars=yes,menubar=no;"
 dialogStyle = dialogStyle + "height:" + screenHeight + ";width:" + screenWidth + ";top:0;left:0";

 window.open("CDC_Search_Preview.jsp?strCap="+strCap +"&strSQL=" + escape(strSQL)  ,"",dialogStyle)
}
/*---------------------------------------------------------------------------------------*/
function chgToWizard()
{
 barWizard.style.display="inline"
 barSelf.style.display  ="none"

    objPage = document.all("page"+curPage);
 objPage.style.display="inline"
 pageCode.style.display="none"
 
}
/*---------------------------------------------------------------------------------------*/
function chgToSelf()
{
    barWizard.style.display="none"
 barSelf.style.display  ="inline"

 objPage = document.all("page"+curPage);
 objPage.style.display="none"
 pageCode.style.display="inline"
 
}
/*---------------------------------------------------------------------------------------*/
function execAccess()
{
    if(event.altKey==true) {
  if(event.keyCode==69)
      chgToSelf();
 }
}
/*---------------------------------------------------------------------------------------*/
function IniLookup(sFieldLookup){
    var sLookup = Remove(GetList(sFieldLookup));

 var arr = new Array();
 arr = sLookup.split("★★★");

 try {
        for(var j=sltFieldLookup.length-1;j>=0;j--) {
           sltFieldLookup.options.remove(j);
        }
    }catch(e) {
        return;
    }

 for(var i=0;i<=arr.length-1;i++) {
        var oOption=document.createElement('OPTION');

        oOption.text=arr[i];
        oOption.value=arr[i];
        sltFieldLookup.options.add(oOption);
   
 }
}
//-->
</SCRIPT>
<SCRIPT language="VBScript">
Function Unencoding(vIn)
    strReturn = ""
    For i = 1 To LenB(vIn)
        ThisCharCode = AscB(MidB(vIn,i,1))
        If ThisCharCode < &H80 Then
            strReturn = strReturn & Chr(ThisCharCode)
        Else
            NextCharCode = AscB(MidB(vIn,i+1,1))
            strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
            i = i + 1
        End If
    Next
    Unencoding = strReturn
End Function

Function URLEncoding(vstrIn)
    strReturn = ""
    For i = 1 To Len(vstrIn)
        ThisChr = Mid(vStrIn,i,1)
        If Abs(Asc(ThisChr)) < &HFF Then
            strReturn = strReturn & ThisChr
        Else
            innerCode = Asc(ThisChr)
            If innerCode < 0 Then
                innerCode = innerCode + &H10000
            End If
            Hight8 = (innerCode  And &HFF00)/ &HFF
            Low8 = innerCode And &HFF
            strReturn = strReturn & "%" & Hex(Hight8) &  "%" & Hex(Low8)
        End If
    Next
    URLEncoding = strReturn
End Function

Public function Remove(strSrc)
    Remove = replace(strSrc,vbCrLf,"")
end function

function pos(str1,strSub)
    pos = InStr(str1,strSub)
end function
</script> 

原创粉丝点击